Текст
                    Голицына О.Л., Максимов Н.В., Партыка Т.Л., Попов И.И.
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Издание 2-е, переработанное и дополненное
Рекомендовано Министерством образования Российской Федерации
в качестве учебника для студентов учреждений среднего
профессионального образования, обучающихся
по группе специальностей Информатика
и вычислительная техника
Рекомендовано Учебно-методическим объединением вузов
Российской Федерации по образованию в области прикладной
информатики в качестве учебника для студентов высших учебных
заведений, обучающихся по специальности 080801 «Прикладная информатика (по областям)»

Москва
ФОРУМ - ИНФРА-М 2008


Оглавление Введение Глава 1. ИНФОРМАТИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ 1.1. Информатика — состав и структура 1.2. Соотношение понятий «информация», «данные», «знания» 1.3. Структуризация взаимосвязи информатики с предметной областью применения 1.4. Уровни информационных процессов Глава 2. ТЕХНОЛОГИИ ОБРАБОТКИ ДОКУМЕНТОВ 2.1. Текстовая информация. Модель документа 2.2. Языки разметки документов 2.3. Технологии XML. 2.4. Текстовые редакторы 2.5. Работа с электронными таблицами Глава 3. МУЛЬТИМЕДИЙНЫЕ ТЕХНОЛОГИИ 3.1. Обработка аудиоинформации 3.2. Форматы записи-воспроизведения аудиосигналов 3.3. Технологии статических изображений 3.4. Программные средства обработки изображений 3.5. Цифровое видео 3.6. Элементы технологии алгоритмов MPEG 3.7. Трехмерная компьютерная графика Глава 4. ИНФОРМАЦИОННЫЕ КРОСС-ТЕХНОЛОГИИ 4.1. Оптическое распознавание символов (OCR) 4.2. Системы распознавания речи 4.3. Системы генерации речи 4.4. Системы автоматизированного и автоматического перевода текстов Глава 5. ТЕХНОЛОГИИ ДОСТУПА К ДАННЫМ. ФАЙЛОВЫЕ СИСТЕМЫ И БАЗЫ ДАННЫХ 5.1. Файловые системы 5.2. Базы данных и СУБД 5.3. Физическая организация данных в системах управления данными 5.4. Анализ информации и хранилища данных 2
Глава 6. СЕТЕВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ. INTERNET 6.1. Некоторые основные понятия 6.2. Технологии Internet 6.3. Прикладные протоколы коммуникации Internet 6.4. Распределенные файловые системы Internet 6.5. Распределенные информационные системы Internet Глава 7. ТЕХНОЛОГИИ РАСПРЕДЕЛЕННОЙ ОБРАБОТКИ ИНФОРМАЦИИ 7.1. Распределенные базы данных 7.2. Клиент-серверные архитектуры распределенной обработки данных 7.3. Архитектура сервера баз данных 7.4. Схемы размещения и доступа к данным в распределенных БД 7.5. Объектно-ориентированные технологии распределенной обработки Глава 8. ЗАЩИЩЕННЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ 8.1. Информационная безопасность и защита информации 8.2. Криптографические методы защиты данных 8.3. Компьютерные вирусы и защита от них 8.4. Средства защиты данных в СУБД 8.5. Защита информации в сетях Заключение Глоссарий Список сокращений 3
Введение На современном этапе развития общества информационные системы и технологии становятся теми средствами, которые человек может использовать как для расширения, так и для развития своих собственных способностей. Термин «технология», обозначающий существо основного предмета данного пособия, в современных публикациях является настолько часто употребляемым и расхожим, что практически стал исполнять роль прилагательного, отражающего в большей степени специфику какоголибо средства. Согласно словарю Ожегова, технология — это: 1) совокупность методов и приемов воздействия на какие-либо предметы, объекты или процессы (труда); 2) наука, посвященная изучению или разработке этих методов (приемов). Следует заключить, что информационные технологии должны относиться к совокупности методов воздействия на информационные объекты (информация, данные, знания, системы, ресурсы, программы и пр.) или процессы (обработка, поиск, хранение, представление, передача информации), а также с теоретическими знаниями о таких методах. При этом сами эти методы могут носить ярко выраженный информационный (нематериальный) характер. В большинстве случаев термин «информационные технологии» ассоциируется с системой методов, способов и средств сбора, регистрации, хранения, поиска, обработки и передачи информации на основе применения средств вычислительной техники и телекоммуникаций. Сбор данных (информации) представляет собой процесс регистрации, фиксации, записи данных о событиях, объектах (реальных и абстрактных), связях, признаках и соответствующих действиях. Более сложным является понятие «сбор информации» — процесс отбора из различных источников данных, необходимых для решения целевой задачи основной деятельности, их идентификации и представления в форме, необходимой для ввода в ЭВМ, последующего поиска и функциональной обработки. Обработка данных включает в себя ряд взаимосвязанных операций, таких, как поиск, выборка, сортировка, слияние, проведение расчетов и т. д. Обработка данных представляет собой процесс управления данными, по возможности, без учета смысла, заложенного в данные. Обработка информации представляет собой переработку данных, реализующую содержательное (функциональное) преобразование информации какого-либо определенного типа (текстовой, цифровой, графической и др.). Причем, зачастую тип данных (как форма существования информации) определяется характером содержания, т. е. обработка информации — это преобразование данных с учетом их содержания. Особенностью информационных технологий является то, что они не могут рассматриваться изолированно, вне материальной сферы. Информация является неотъемлемой и, часто, определяющей компонентой практически всех материальных процессов, которые инициирует (или в которых участвует) человек. Такое соотношение материальной и информационной составляющих определяет, что эффективность использования информационных технологий (в том числе вычислительной техники, программного и информационного обеспечения) проявляется и может быть оценена только в сфере материального производства. Другая важная особенность ИТ предопределена естественным для больших систем требованием надежности и устойчивости функционирования и развития, а также возможности интеллектуального (человеческого) контроля в условиях большой сложности. Это означает, что сфера информационных технологий должна быть 4
распространена практически на все этапы жизненного цикла продукта, в том числе обеспечивающие и инструментальные средства. Третья особенность — это непосредственное или опосредованное участие человека в технологических процессах. Любой автоматизированный и даже автоматический процесс на том или ином этапе связан с необходимостью представления (или получения) информации в форме удобной (иногда единственно возможной) для человека. Это породило отдельное направление — технологии человеко-машинного взаимодействия и интерфейсы информационных систем. Данный учебник написан в предположении, что читатели владеют основами информатики и вычислительной техники, а также знакомы с языками программирования. Книга должна рассматриваться скорее как введение в проблематику автоматизированной обработки информации, в силу ограниченности объема, не претендующее на полномасштабное изложение материала разделов, каждый из которых представляет отдельную дисциплину и зачастую представлен полноценным пособием. Для заинтересованного читателя материал книги может стать отправной точкой и путеводителем в многообразии методов, средств и технологий обработки информации с использованием средств вычислительной техники. В главе 1 представлены общие вопросы терминологии, понятий и классов объектов и процессов, связанных с проблематикой информационных технологий: информатика — состав и структура; соотношение понятий «информация», «данные», «знания»; структуризация взаимосвязи информатики с предметной областью применения; рассмотрены уровни информационных процессов. В главе 2 представлены основные (базовые) типы технологий пользователя: обработка текстовой и табличной информации. Рассмотрены определения моделей документа, языки разметки документов, технологии XML, функции текстового редактора Word; работа с электронными таблицами на примере MS Excel. Глава 3 посвящена описанию основных принципов мультимедийных технологий: обработка аудиоинформации; форматы сжатия аудиосигнала (МРЗ и др.); технологии статических изображений; программные средства обработки изображений; принципы цифрового видео, элементы технологий алгоритмов MPEG. Глава 4 содержит описание смешанных (кросс-) информационных технологий, в том числе — оптическое распознавание символов (OCR); системы распознавания речи; системы генерации речи; средства автоматизированного и автоматического перевода текстов. В главе 5 рассматриваются технологии доступа к данным: файловые системы, базы данных и СУБД; физическая организация данных в системах управления данными, а также хранилища Данных и их использование для анализа информации (OLAP). Глава 6 содержит описание сетевых информационных технологий и технологий Internet. Рассмотрены структуры сетей, модель взаимодействия открытых систем, технологии Internet, прикладные протоколы коммуникации Internet, распределенные файловые системы Internet, распределенные информационные системы Internet. В главе 7 рассматриваются технологии распределенной обработки информации: распределенные информационные ресурсы; клиент-серверные архитектуры распределенной обработки данных; архитектуры сервера баз данных; схемы размещения и доступа к данным в распределенных БД; объектно-ориентированные технологии распределенной обработки (DCOM, CORBA); электронные библиотеки. В главе 8 рассмотрены защищенные информационные технологии (ЗИТ), в том числе — проблемы информационной безопасности и защиты информации; особенности некоторых криптографических методов защиты данных; характеристики компьютерных вирусов и средств борьбы с ним; системы защиты данных в СУБД и информационных сетях. 5
В приложении приводится глоссарий терминов и список сокращений. Учебник базируется на материалах, накопленных авторами в процессе практической и исследовательской деятельности, а также преподавания в МИФИ, МИСИ, МЭСИ, РГГУ. Авторы выражают благодарность коллегам, принявшим участие в обсуждении материала, а также студентам РГГУ и РЭА им. Г. В. Плеханова за предоставленные иллюстративные материалы. 6
Глава 1 ИНФОРМАТИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ Информатика — наука, изучающая законы и методы накопления, передачи и обработки информации. В качестве источников информатики как теоретической платформы информационных систем обычно называют две науки — документалистику и кибернетику, возникновение которых было тесно связано с бурным развитием сложных производственных систем и технологий. Основным предметом документалистики было изучение рациональных средств и методов повышения эффективности документооборота как информационной основы накопления и поиска информации. Понятие информации составило также и основу кибернетики, как науки о методах анализа и синтеза систем эффективного управления. 1.1 Информатика — состав и структура Сфера информатики является в достаточной степени неопределенной по той же причине, по которой неопределенной является область интересов родственной дисциплины — кибернетики, а именно — значительная широта и «размытость» критериев отбора соответствующих знаний для включения в предметную область. Для кибернетики таким критерием является применение математических методов и моделей для описания процессов управления и связи. Informatique во французском языке трактуется как «вычислительная техника» что, в частности, зафиксировано в названии одной из фирм-производителей ЭВМ — СП («Compagne Internationale pour Informatique», т. е. «Международная компания по информатике», что является почти полным синонимом названия другой фирмы — «International Buisiness Machines» — IBM, гораздо более известным). В немецком языке Informatik есть совокупность знаний, связанных с документоведением, библиотековедением, архивоведением и т. д. (включая музеи, ландшафты, картографию), т. е. охватывает любые проявления и применения информации. В англоязычных странах приняты термины computer science (вычислительная техника, программирование и смежные дисциплины), что является аналогом «французской информатики» и information science (информационные науки), что аналогично «немецкой информатике». Таким образом, здесь мы имеем варианты как наиболее узкого, так и наиболее широкого толкования информатики. Любая из наук, взаимодействуя с информатикой, может породить свою специальную «отраслевую» информатику, которая будет обслуживать соответствующую науку, содействуя внедрению в нее информационных технологий и способствуя информатизации общества. Область интересов информатики включает разработку общих подходов к применению информационных технологий в естественно-научных и социально-гуманитарных исследованиях (в том числе — специализированного программного обеспечения); создание баз и банков данных/знаний; применение информационных технологий представления данных и анализа структурированных, текстовых, изобразительных и др. источников; компьютерное моделирование; использование информационных сетей {Internet и др.); развитие и применение мультимедиа и других новых направлений информатизации, а также применение информационных технологий в образовании. В соответствии со сказанным выше, можно говорить о прикладной информатике (связанной с использованием стандартных и разработкой специфичных информационных технологий) и теоретической информатике. 7
Развитие информатики сформировало устойчивую структуру профессионального сообщества, состоящего из нескольких групп (слоев), взаимодействующих, но несколько различающихся по своей роли: • первая группа — это разработчики алгоритмов, программ и технологий; • вторая группа — квалифицированные пользователи информационных технологий и программного обеспечения; они осваивают реалии стремительно меняющегося мира информационных технологий, творчески адаптируют его новые достижения (с учетом специфики данных источников и задач их обработки) и внедряют их в свою практику; • третья (и, возможно, наиболее многочисленная) группа — широкий слой пользователей, пришедших к необходимости применять в своей работе информационные технологии, которые они используют, ориентируясь преимущественно на тот опыт и те образцы, которые продуцируют первые две группы. Конечно, эта «стратификация» достаточно условна — группы могут пересекаться; специалисты из третьей группы могут переходить во вторую, а из второй группы — в первую и т. д. Важно, однако, другое — эта структура должна не только обеспечивать науку и производство новыми методами и современными технологиями, но и давать убедительные примеры их использования при решении крупных проблем. Сегодня предмет информатики связывают с совокупность таких понятий, как: • средства вычислительной техники; • программное обеспечение средств вычислительной техники; • методы взаимодействия человека с вычислительной техникой и программными средствами (программным обеспечением); • информационные ресурсы (ИР), в том числе средства создания, хранения, поиска информации; • средства и технологии доступа к распределенным информационным ресурсам; • методы и средства взаимодействия человека с информационными ресурсами на базе вычислительной техники с использованием программного обеспечения; • инструментальные средства и технологии, обеспечивающие жизненный цикл ИР. Таким образом, определения понятий «информатика» и «информационные технологии» должны рассматриваться во взаимосвязи с понятиями «информация», «данные», «знания». Информатика занимается обработкой информации (хотя и представленной преимущественно в числовой и символьной форме), а не собственно вычислениями — обработкой данных, являющимися предметами программирования. 1.2 Соотношение понятий «информация», «данные», «знания» Понятие «информация» достаточно широко используете? обычной жизни современного человека. Значение информации жизни общества стремительно растет, меняются методы работы с информацией, расширяются сферы применения информационных технологий. Динамизм информатики как науки отражается и в постоянном появлении новых определений и толкован! основного понятия информатики — информации. Информация Наиболее часто термин «информация» употребляется в его исходном значении (от латинского слова informatio) — это сведения, сообщения о каком-либо событии, деятельности и т. д. При этом в различных областях знаний могут вводиться разные определения этого понятия. Информация в кибернетических системах — основа функционирования самоуправляемых систем (технических, биологических, социальных), и она рассматривается как обозначение содержания сигнала, полученного системой из окружающего мира в процессе взаимодействия системы с ним (Н. Винер). 8
Объединяющим (по крайней мере, с философской точки зрения) определением является следующее: «Информация — это отраженное разнообразие» (А. Д. Урсул). Разнообразие и отражение в развивающемся материальном мире неразрывно связаны и взаимно определяют друг друга: чем выше внутреннее разнообразие системы, тем более адекватно отражение ею внешнего мира. Чем выше возможности отражения (восприятия и понимания взаимодействия с окружающей средой), тем больше у системы возможностей адаптироваться — развиваться и увеличивать свое разнообразие (принцип необходимого разнообразия). Данные Остановимся на понятии «данные», которое, например, в [17] вводится следующим образом." «Мы живем в материальном мире. Все, что нас окружает, и с чем мы сталкиваемся, относится либо к физическим телам, либо к физическим полям. Все объекты находятся в состоянии непрерывного движения и изменения, которое сопровождается обменом энергией и ее переходом из одной формы в другую. Все виды энергообмена сопровождаются появлением сигналов. При взаимодействии сигналов с физическими телами в последних возникают определенные изменения свойств — это явление называется регистрацией сигналов. Такие изменения можно наблюдать, измерять или фиксировать теми или иными способами — при этом возникают и регистрируются новые сигналы, т. е. образуются данные». Это определение принимает первичность и объективность существования данных, в том числе — независимость от субъекта их использующего. Но если существование данных не зависит от того, будут ли они когда-либо использованы или нет, эффективность функционирования многих процессов (имеющих контур управления) зависит от данных. Например, данные, используемые для изменения поведения процесса на основе построения прогноза (т. е. факты, характеризующие предшествующие состояния), позволят оптимизировать получение конечного результата, и будут уже выступать в роли управляющей информации. Роль и характер используемых данных в целом отражены на обобщенной схеме управляемого функционального процесса, представленной на рис. 1.1. Система преобразования ресурса, функциональность которой обусловлена проблемным контекстом (данными, представляющими целевую задачу), фактически преобразует и информацию. Потенциально полезные данные, выделенные из общего множества в соответствии с контекстом задачи (исходная информация) в результате использования порождает выходную информацию — актуализированные данные, подтверждающие или отрицающие действенность выбранных исходных данных для решения задачи. Знания 9
Переходя к рассмотрению роли понятия «информация» в человеко-машинных комплексах, используемых в когнитивных, социальных и производственных системах, необходимо более полно определить понятие «знания». Понятие «знания» может быть определено следующим образом: «Научное знание — вся совокупность сведений, являющаяся результатом отражения материальной и нематериальной действительности в человеческом сознании» (Урсул А. Д.). С другой стороны, утверждается, что «научно-техническая информация — это задокументированное научное знание, введенное в оборот, участвующее в функционировании и развитии общества» (Муранивский Т. В.). То есть, знание, являющееся достоянием чьего-либо сознания и не получившее «толчка» для циркулирования в обществе, не может рассматриваться как информация. Основываясь на этом, можно констатировать условность превращения знания в информацию и информации в знание. Информация выступает как форма знания, отчужденная от его носителя (сознания субъекта), и обобществляющая его для всеобщего использования: информация — это динамическая форма существования знания, обеспечивающая его распространение и действенность (применение). Получая информацию, пользователь превращает ее путем интеллектуального усвоения (информационно-когнитивного процесса) в свои новые личностные знания, т. е. происходит воссоздание знаний на основе информации. Соответственно можно сказать, что на начальном этапе знания — это данные, актуализированные субъектом, особенностью которых является то, что они не могут быть использованы без участия самого субъекта. Результаты решения задач (обычно, «субъективизированного»), обобщения в виде законов, теорий, совокупностей взглядов и представлений, выступающие как истинная, проверенная информация, отчужденные от субъекта их сформировавших, образуют обобществленные знания. Представленные обычно в форме документов и сообщений, они, в свою очередь, могут рассматриваться как объективно существующие данные. Функциональное соотношение этих понятий иллюстрируется схемой, приведенной на рис. 1.2, где когнитивный процесс рассматривается как неотъемлемая составляющая любого созидательного, как творческого, так и производственного процесса, предполагающего возможность прогнозирования и управления. Станут ли данные информацией, зависит от того, известен ли метод преобразования (отражения) данных в новые или уже известные понятия. То есть, чтобы извлечь информацию из Данных, необходимо иметь метод получения информации, адекватный форме представления данных. Причем необходимо учитывать тот факт, что информация 10
не является статичным объектом — она динамична и существует только в момент взаимодействия данных и методов. Можно сказать, что все прочее время она пребывает в «потенциальном» состоянии и представлена как данные. Кроме того, одни и те же данные могут представлять разную информацию в зависимости от степени адекватности взаимодействующих с ними методов, к которым надо отнести и условия ее извлечения (например, наличного знания субъекта). Таким образом, в отличие от данных, которые по своей природе являются объективными (так как это результат регистрации объективно существующих сигналов, вызванных изменениями в материальных телах или полях), методы являются субъективными в том смысле, что они создаются или выбираются и далее целенаправленно применяются для решения практически значимых задач конкретного субъекта. В основе создаваемых (искусственных) методов лежат алгоритмы (упорядоченные последовательности команд), составленные и подготовленные субъектами (людьми), а в основе естественных методов лежат биологические свойства субъектов. Соответственно информация возникает и существует в момент взаимодействия объективных данных и субъективных методов. Свойства информации Как и всякий объект, информация обладает свойствами. На свойства информации влияют как свойства данных, так и свойства методов, взаимодействующих с данными в ходе информационного процесса. По окончании процесса обработки свойства информации переносятся на свойства новых данных, то есть свойства методов могут переходить в свойства данных. Спектр свойств информации существенно шире того, которым обладают другие, например, физические объекты. Известно высказывание Б. Шоу: «Если у тебя и меня имеется по одному яблоку, и мы ими обменялись, то у каждого из нас осталось по одному яблоку; если у тебя и меня имеется по одной идее и мы ими обменялись, то у каждого из нас будет по две идеи». Информация специфична и с точки зрения старения (информация не только устаревает со временем, но и при появлении новой, отрицающей или уточняющей информации). С другой стороны, свойства информации необходимо рассматривать в их органическом единстве: не только в контексте ее использования в сфере информационной деятельности, но и на других этапах работы и в других областях деятельности. С точки зрения исследования и создания эффективных методов и средств обработки информации эти атрибутивные свойства делятся на две группы: • свойства, определяющие объективные закономерности, связанные с информацией и преимущественно в пределах отдельной предметной области науки, техники, производства (условно эти свойства можно назвать «внутренними»); • свойства, определяющие закономерности движения информации в межотраслевом масштабе («внешние» свойства). Любой процесс (событие, действие) существует не сам по себе, а непременно во взаимосвязи с другими процессами, причем связи эти разнообразны: • причина — следствие; • прошлое — настоящее — будущее; • укрупнение или дробление; • часть — целое и т. п. Говоря об информационной технологии как об автоматизированном процессе преобразования объектов (например, представленных в машинной форме описаний реальных объектов), необходимо определить адекватный способ их идентификации. Это необходимо для их поиска — «узнавания» и выделения из множества других объектов окружающей среды. 11
Виды и коммуникационные свойства информации Существуют различные деления и классификации информации. Приведем наиболее известные. Классификация по структуре и форме. Отметим, что разделение информации на табличную (числовую), текстовую и графическую отражает последовательность, в которой эти виды «осваивались» компьютерами (табл. 1.1). Первоначальные языки программирования (ЯП) были рассчитаны прежде всего на обработку числовой (Fortran, Algol), нежели символьной информации. Раньше появляются и табличные базы данных, также преимущественно рассчитанные на обработку числовых таблиц (файлов). Затем осваиваются текстовые файлы (текстовые редакторы) и текстовые БД автоматизированные информационно-поисковые системы — библиографические и полнотекстовые). Наконец, с существенным повышением быстродействия и емкости памяти компьютеров, на сцену выходят графические и Другие мультимедийные файлы (графические, аудио, видеоредакторы). Говорить о графических (мультимедиа) базах данных и ЛИС пока все же преждевременно. Эта последовательность прямо противоположна той, в которой данные виды информации осваивает человек. Действительно, сначала он знакомится с графическими образами (птицы, цветы и бабочки на шкафчиках для одежды в детском саду), затем — учится читать и писать, и только потом осваивает таблицу умножения. Классификация по содержанию. В то время как классификация по структуре и форме является более характерной и важной с точки зрения информационных систем и технологий, классификация по содержанию более соответствует уровню информационных ресурсов (табл. 1.2). 12
1.3 Структуризация взаимосвязи информатики с предметной областью применения Подобная структуризация может быть осуществлена в следующих взаимосвязанных аспектах: • уровни процессов и объектов информатики, информатизации; • факторы или компоненты (страты, слои, подслои) информационных технологий; • фазы или этапы развития автоматизированных информационных технологий (АИТ) и систем (АИС); • типология пользователей машин, программ, систем Уровни информационных процессов Прежде всего, могут быть рассмотрены уровни, различающиеся степенью связи «информатики» с «предметной областью»: • информационные технологии; • информационные системы; • информационные ресурсы. В принципе, можно утверждать, что информационные технологии являются менее зависимыми от структуры и специфики предметной области, чем информационные системы и/или ресурсы, однако эта связь всегда существует, если, например, определить автоматизированную информационную технологию как целенаправленное и согласованное использование: • технических средств информатизации (аппаратурный фактор); • программных средств и систем (программный фактор); 13
• информационный фактор — собственно информация, т. е. сигналы, сообщения, массивы данных, файлы и базы данных; • интеллектуальных усилий и человеческого труда (человеческий, гуманитарный фактор), для решения задачи (задач) предметной области — всегда присутствует человек – пользователь, решающий задачи какой-либо предметной области с использованием инструментария информатики. Аналогично, информационные системы рассматриваются как комплексы информационных технологий, ориентированных на процедуры сбора, обработки, хранения, поиска, передачи и отображения информации предметной области, а информационные ресурсы — комплексы соответствующих информационных систем, рассматриваемые дополнительно также и на социально-экономических уровнях описания и применения. Этапы развития информатизации Могут быть выделены следующие этапы развития информатизации, связанные с вышеперечисленными компонентами (факторами). Технический период («железный век», аппаратная фаза), в течение которого сложились основные представления о структуре универсальных вычислительных машин (ЭВМ), определилась архитектура и типы устройств. За этот период отпали АВМ (аналоговые ВМ), машины для открывания и закрывания дверей, шахматные машины и пр. специализированные контроллеры. Этот период можно ограничить 1947—1970 гг., с момента появления первой ЭВМ и до окончательного утверждения современных представлений о составе, принципах функционирования и структурах ЭВМ. В последующем развитие в основном шло в направлениях повышения экономической, технической, энергетической эффективности путем миниатюризации и повышения быстродействия электронных и механических устройств ЭВМ. Нет оснований ожидать каких-либо революций с точки зрения появления неожиданных устройств или структур ЭВМ. Исследования в направлении специализированных схем или процессоров постоянно идут: появляются «машины баз данных», «процессоры изображений», «коммуникационные процессоры» и пр., однако вряд ли они смогут в обозримом будущем вытеснить с массовых рынков ЭВМ классической структуры, а разве что будут входить в их состав [14, 24, 25]. Эти машины включают центральное устройство, состоящее из процессора и главной памяти, а также широкий спектр периферийных устройств, используемых для долговременного хранения, ввода-вывода и преобразования информации. Центральный процессор и память при всем многообразии конструкций подчиняются так называемым принципам фон-Неймана [24]. Программный период («бронзовый век», программная фаза) — выработалась современная классификация программных средств, их структур и взаимосвязей, сложились языки программирования, разработаны компиляторы и принципы процедурной обработки, операционные системы, языки управления заданиями. Ограничен 1954 — 1970 гг., а именно — появлением первого языка программирования Fortran и формированием окончательных представлений о функциях операционных систем, систем программирования и прикладных программ (приложений), что наиболее ярко проявилось в появлении операционной системы UNIX и языка программирования С (Си) [9]. Можно сказать, выражаясь экстремистски, что за эти годы «все программы были написаны», осталось их только модернизировать и исправлять (здесь есть элемент преувеличения, однако более чем 2000-летняя история математики, физики, механики к 1970 г. нашла свое полное отражение в библиотеках и фондах программ и алгоритмов). Информационный период («серебряный век», информационная фаза) — в центре внимания исследователей и разработчиков оказываются структуры данных, языки описания (ЯОД) и манипулирования (ЯМД) данными, непроцедурные подходы к 14
построению систем обработки информации, базы данных, автоматизированные ИПС — с 1970 г. по 1990 г. Придерживаясь выше-использованной терминологии, скажем, что за этот период «все Данные были введены в машины», и их остается только уточнять и исправлять [14]. Гуманитарный период («золотой век») — связан с резким возрастанием круга пользователей АИТ, появлением ПЭВМ, развитием систем коммуникации и повышением роли интерфейсных, коммуникационных и навигационных возможностей соответствующих систем (с 1990 г.). Конструктивный (процедурный) аспект Перечисленные компоненты (факторы) — технические, программные средства, информация и человеческий фактор — в значительной степени взаимозаменяемы при решении задач. Это означает, что в широких пределах некоторый эффект может быть получен, а некоторая задача — решена как в рамках электронных схем, так и посредством программ или информационных ресурсов (а также естественно-интеллектуальными усилиями человека). Предположим, необходимо извлечь квадратный корень из некоторого числа, тогда: • электронное решение — собрать нелинейный усилитель, в котором диод или транзистор используют начальную часть вольт – амперной характеристики, которая близка к параболе; • алгоритмический подход — написать программу, реализующую алгоритм Герона извлечения корня; • информационный подход — построить таблицу величин X, Y, в которой Y= Аналогично могут быть рассмотрены такие примеры, как перемножение двух переменных, построение случайной последовательности чисел и т. п. Заметим, что чисто аппаратурное решение задач положено в основу так называемых аналоговых вычислительных машин (АВМ), в настоящее время практически забытых. В 1949—1950 гг. были созданы первые АВМ, называемые интеграторами постоянного тока: ИПТ-1—ИПТ-5. Они предназначались для решения линейных дифференциальных уравнений с постоянными и переменными коэффициентами и широко применялись для имитационного моделирования сложных динамических систем (рис. 1.3). Здесь же надо отметить, что техническое, программное и информационное обеспечение как бы образуют различные слои обработки информации, взаимодействие между которыми должна, быть сбалансировано в том смысле, что не должно быть чрезмерно «толстых» или «тонких» слоев. Содержательный или информационный аспект Здесь мы сталкиваемся с трактовкой и связью таких понятий, как адрес, имя, содержание1. Электронно-аппаратурный уровень (этап) ассоциируется с понятием адреса (номера позиции) данных или устройств (элементов) ЭВМ. Машинные команды оперируют в терминах адресов оперативной памяти, все внешние устройства ЭВМ имеют машинные номера (адреса). На начальном этапе развития систем программирования существовало 15
такое понятие, как программирование в машинных адресах (или машинных кодах), при этом управление как процессами вычислений, так и пересылкой информации между оперативной и внешней памятью осуществляется путем обращения к соответствующим абсолютным адресам памяти. Программа при этом является просто совокупностью машинных слов и задается своими начальным и конечным адресами в памяти. Например, программист должен был описать процедуру выборки данных с магнитной ленты примерно следующими командами: «на лентопротяжном механизме № 4 перемотать ленту, пропустив 11 блоков, начиная с этого места записать 3 блока информации с магнитной ленты в оперативную память, начиная с адреса 234 561» и т. п. Подобные манипуляции соответствуют программированию в машинных адресах. Программный этап или уровень приводит к понятию имени данного, устройства, программы и пр. Языки программирования (системы программирования) используют символические обозначения (имена, идентификаторы) для данных (чисел, строк, структур) и элементов программ (блоков, функций, процедур). Операционные системы (ОС) оперируют именами файлов, томов, устройств, реализуя управление данными, избавляют пользователя от работы с адресами, заменяя ее на работу с именами данных. Типичная команда ОС (например, DOS) не содержит каких-либо машинных адресов: copy c:\games\comic.doc prn. Информационный этап, или уровень, приводит к определению и использованию содержания (значения) данного. Пользователей информационных систем не волнует машинный адрес хранения информации или имя файла, их интересует содержание. Связи адреса и содержания реализуются на уровне прикладных программ, именуемых СУБД (системы управления базами данных) и АИПС (автоматизированные информационнопоисковые системы). В свою очередь, установление таких связей может быть осуществлено как программно (вычисление адреса по содержанию, или рандомизация, хэширование) так и информационно, с помощью дополнительных файлов, указательных таблиц (индексов, инверсных списков и пр. — индексирование). Первый тип использовался в ранних СУБД и широкого распространения тогда не получил. Существенное удешевление накопителей информации привело к тому, что в последнее время преимущественно используется второй тип связей «содержание-адрес». Попытки реализовать эти связи аппаратно (ассоциативная память, Data Base Machine и пр. [14]), еще не получили широкого коммерческого распространения. В то же время достигнуты определенные обнадеживающие результаты на пути комбинирования этих двух подходов — индексирования и рандомизации. Существенно также, что в этот период появились языки программирования информационных систем (в которых основное внимание уделяется описанию данных сложной структуры, а не описанию вычислений и алгоритмов). Пользователи средств информатизации Проследим вкратце развитие во времени человеческого фактора информатизации, рассмотрев динамику пользователей (ЭВМ, систем, информационных технологий), а именно: • программист-алгоритмизатор, оператор ЭВМ (доминируют на первой, аппаратурной, фазе информатизации); • системный программист, прикладной программист, администратор ОС (системы, машины), оператор ЭВМ (системный оператор, SysOp), вторая фаза; • администратор базы данных, квалифицированный конечный пользователь (EndUser), информационный посредник (третья фаза); 16
• появление в массовом масштабе ПЭВМ (четвертая фаза) прерывает эту дифференциацию и начинает процесс интеграции указанных функций на уровне конечного пользователя, (кроме того, появляются новые профессии — например, WEBдизайнер и пр.). В исторической перспективе развития информатики к середине 80-х гг. сложились следующие представления о видах пользователей вычислительных и информационных систем: • администратор базы данных (АБД) — лицо или группа, отвечающая за сопровождение данных, назначение уровней доступа, включение/исключение пользователей, защиту/восстановление данных. Обычно АБД участвует в проектировании и определении структуры БД; • системный администратор — лицо (группа), отвечающее за установку и сопровождение операционной системы ЭВМ и приложений общего назначения; • оператор ЭВМ — отвечает за текущее функционирование вычислительной установки, осуществляет слежение за прохождением задач, готовностью устройств, наличием и использованием машинных ресурсов (оперативной и внешней памяти, времени, расходных материалов и пр.); • операторы подготовки данных (ОПД) — персонал, осуществляющий ввод данных с рабочих листов или документов, на основе соответствующих инструкций, в среде специальных программных интерфейсов (или аппаратных средств); • интерактивные пользователи — лица, имеющие доступ на ввод, коррекцию, обновление, уничтожение и чтение данных в рамках, как правило, ограниченной области БД; • конечные пользователи — лица, использующие БД для получения справок и решения задач. • Отдельной строкой рассматривались разработчики, среди которых принято выделять две группы: • системные программисты — персонал, занимающийся разработкой операционных систем, приложений общего назначения, с использованием машинно-ориентированных языков; • прикладные программисты — персонал, разрабатывающий конкретные прикладные задачи, с использованием систем программирования высокого уровня или готовых других прикладных систем. Здесь видна достаточно стройная система, в которой выделяются: • разработчики программных средств (системных и прикладных); • системные пользователи ЭВМ (администраторы и операторы, ответственные за функционирование ОС и общесистемных приложений); • системные пользователи ИС и БД (администраторы и операторы, ответственные за функционирование информационной системы); • конечные пользователи (интерактивные и нет). С появлением персональных ЭВМ начинается интеграция всех данных ролей. Рядовой пользователь ПЭВМ совмещает в одном лице: • администратора системы (когда он редактирует файлы config.sys или autoexec.bat или решает, какие файлы ОС или прикладной системы он будет копировать с дистрибутивного диска); • оператора ЭВМ (запуская и останавливая программы, просматривая содержимое дисков или даже заправляя бумагу в принтер); • администратора БД (когда он в рамках системы FoxPro создает файлы данных), оператора (когда он заполняет эти файлы); • конечного пользователя (когда он редактирует или просматривает файлы данных). 17
Реже пользователь такой становится прикладным программистом и почти никогда — системным. 1.4 Уровни информационных процессов Рассмотрим подробнее аспект уровней информационных процессов, описанный выше. Информационные технологии Для определения содержания и места информационных технологий рассмотрим следующие определения: • «методология — объединенная единым подходом совокупность методов, применяемых для получения запланированного проектного результата; • технология — это представленное в инструктивной форме выражение знаний и опыта, позволяющее рационально организовать получение проектного результата путем выполнения некоторого процесса с использованием тех или иных средств, реализующих соответствующий метод; • технологический процесс — последовательность действий (согласованных, в том числе с условиями выполнения, технологических операций, использующих соответствующие средства), направленных на создание заданного (проектного) объекта; • технологическая операция представляет собой одно или несколько действий, направленных в рамках технологии на изменение состояния объекта или его взаимосвязи с окружением. Технологическая операция характеризуется наличием: • одного или нескольких входных объектов; • выходного объекта — результата обработки; • управления (субъекта и средств) обработкой. Практически любой конкретный технологический процесс можно рассматривать как часть более сложного процесса и совокупность менее сложных (в пределе — элементарных) технологических процессов. Элементарным технологическим процессом можно назвать такой, дальнейшая декомпозиция которого приводит к потере признаков, характерных для метода, положенного в основу данной технологии. В этом смысле технологическая операция может рассматриваться как элементарный технологический процесс. В каждом из перечисленных понятий явно или неявно присутствует понятие метод, имеющее общефилософское значение, как путь исследования или преобразования действительности, основанный на знании закономерностей развития этой действительности. Метод предполагает средства — то, с помощью чего осуществляется действие, реализующее метод, и способы — то, каким образом осуществляется действие. Обратим также внимание на то, что методы и средства могут использоваться в разных процессах и, следовательно, технологиях. В рамках системного анализа сложные системы изучаются посредством разбиения на элементы: предполагается, что сложная система есть целое, состоящее из взаимосвязанных частей, которые не могут быть определены априорно, а строятся или выбираются в процессе декомпозиции (физической или концептуальной) исходной системы. Образующиеся в результате декомпозиции элементы обычно являются центрами некоторой активности (деятельности), и потому называются элементами деятельности. При рассмотрении сложных систем наиболее часто выделяют функциональные элементы/подсистемы (однородные группы решаемых задач или технологических процессов) и организационные (обособленные, автономные и централизованно управляемые как целеустремленные элементы сложной структуры). Декомпозиция сложной системы на технологические подпроцессы приводит к понятию элемента (объект-процесс) технологии [32] (рис. 1.4): у = Р(т, и), g = g(y, m, u). 18
Элементарный процесс состоит из двух контуров: • рабочего (энергетического, материального), включающего рабочий вход и и рабочий выход у, функция преобразования входа в выход соответствует назначению данного элемента; • управляющего (информационного), включающего рабочий вход т и выход g. Первое из вышеприведенных соотношений связывает выход процесса у с управляющим воздействием и рабочим входом, а второе — отражает оценку процесса в тех или иных шкалах g (все переменные в общем случае могут быть векторами разных размерностей). Комплексные технологические процессы очевидно могут конструироваться по меньшей мере путем соединения элементов последовательно по управляющим (Р1—Р3) или рабочим контурам (Р2—Р3—Р4, рис. 1.5). Информационные технологии могут быть определены, как технологии, полностью или частично состоящие из элементарных процессов, в которых рабочий контур образуют информационные потоки (массивы, данные, файлы) (табл. 1.3). 19
Комплексы информационных технологий представляют собой процессы обработки, поиска, представления данных, результаты шагов которых (элементов технологии) определяются как запланированными типами обработки, выполняемой как на предшествующих/последующих шагах (рабочие контуры т—у и характер операции Р), так и фактически осуществившимися событиями (информация g). Очевидно, не все из реальных элементов технологий предполагают обязательное наличие всех входов (выходов), указанных на рис. 1.4 (см., например, табл. 1.3). Автоматизированные информационные технологии (АИТ) могут представлять собой как развитие неавтоматизированных (предметных) [17] технологий (если прототипы известны и существовали достаточно давно), так и новые способы и процессы обработки информации, ранее недоступные. АИТ являются композициями четырех взаимосвязанных и взаимозаменяемых факторов (компонент): интеллектуальных усилий и навыков пользователя; технических средств обработки данных; программного обеспечения; информационных ресурсов. Схема рис. 1.4 может быть детализирована в схему абстрактного технологического процесса, представленную на рис. 1.6. Целевая обработка — это функционально-ориентированное преобразование получаемых или хранимых объектов обработки, обеспечивающее получение проектного результата под управлением субъекта (в качестве которого, так или иначе, выступает человек). Информационные ресурсы — внешние по отношению к функциональному процессу источники информации, использование которых (обычно при управлении процессом) позволяет обеспечить эффективность целевой обработки. Интерфейсные средства реализуют тот или иной способ (режим) взаимодействия субъекта с компонентами функциональной обработки. 20
Таким образом, с точки зрения обобщенной схемы, представленной на рис. 1.6, ИТ можно подразделить на три основных класса: • технологии собственно обработки информации (ввода, обработки, хранения, поиска и передачи данных); • технологии человеко-машинного взаимодействия, реализуемые в интерфейсах; • инструментальные и другие вспомогательные технологии, позволяющие эффективно создавать и развивать ИТ предшествующих классов. Отметим, что такое разделение, отражающее специализированность используемых методов и средств, соответствует и «специализации» пользователей соответствующих технологий, где давно сложилось разделение на «разработчиков», «конечных пользователей» и «администраторов». С точки зрения этой «специализации» представляется целесообразным подразделять технологии на базовые, обеспечивающие и инструментальные. Базовыми информационными технологиями (т. е. используемыми практически в любом процессе) являются те, которые в значительной степени определяются требованиями «архитектурного» уровня — принципами фон Неймана. Обработка разнородной по форме информации, представляемой разнотипными данными, предопределяет соответствующий ряд средств и технологий, ориентированных на форму представления информации и виды операций, как, например (табл. 1.4): • системы числовой обработки; • системы и технологии обработки текстов (текстовые процессоры, системы распознавания текстов); • средства обработки мультимедийной информации (например, растровой или векторной графики, звука, видео). Обычно эти технологии реализуются в виде прикладных функциональноориентированных продуктов, которые ассоциируются с понятием «технологии конечного пользователя». «Обеспечивающие» информационные технологии — средства, непосредственно позволяющие эффективно достигать целевого, функционально значимого результата, включает: 21
• технологии и системы управления данными и, в том числе — информационные системы; • средства и технологии распределенной обработки (сетевые технологии); • средства удаленного доступа (телекоммуникационные технологии); • средства и технологии человеко-машинного взаимодействия и интерфейсы конечного пользователя; • средства и технологии защиты информации. Отметим, что перечисленные технологии являются, безусловно, важнейшими, но они относятся к «обеспечивающим», поскольку необходимость или необязательность их использования обусловлены характером задач пользователя или средой функционирования. Эти технологии, имеющие инженерный, «системный» характер, ориентированы на администраторов. «Инструментальные» технологии, обеспечивающие жизненный цикл самих ИТ, составляют третью группу, как, например: • технологии проектирования и инструментальные средства разработки программного обеспечения; • технологии проектирования баз данных; • технологии реинжиниринга информационных систем. Такая схема разделения ИТ на «базовые», «обеспечивающие» и «инструментальные» в целом не противоречит и другой классификации ИТ — с точки зрения объектов и методов. Здесь можно выделить следующие «страты»: • процессов обработки, передачи и управления данными (ввод, хранение, поиск, манипулирование), происходящих в основном без учета семантики и прагматики; • управления информацией — представление, извлечение, поиск, преобразование данных (ее представляющих) в контексте семантики и прагматики (в том числе для субъекта обработки — это получение, передача и использование знаний); • управления взаимодействием с человеком (представление информации предметной области и результатов обработки, человеко-машинный диалог). Для случая инструментальных технологий (создания и использования целесообразных 22
средств решения прикладных задач) — это методы и средства связывания технологий обработки данных и технологий обработки информации. Информационные системы Обобщенное определение информационной системы может быть построено, например, путем рассмотрения системы информационного обмена с декомпозицией ее на функциональные (основная и информационная деятельность) и организационные (потребители-поставщики информации и информационные системы) элементы [33]. Информационный обмен представляет собой сложный процесс, допускающий рассмотрение в разных аспектах, на различных уровнях иерархии описания, в свете постановки разнообразных исследовательских задач. Взаимодействие потребителей-поставщиков информации. Элементы систем информационного обмена могут быть выбраны исходя из следующих рассуждений. Решение всякой проблемы в общем случае включает следующие этапы (рис. 1.7). 1. Поиск информации (документов, сообщений). Внешняя среда—с точки зрения потребителя информации — является некоторым генератором потока сообщений, представленных на языке коммуникации, не тождественном «внутреннему языку» потребителя информации, связанному с конкретной решаемой проблемой. На этом этапе используются услуги различных информационных систем и неформальные каналы, доступные конкретному потребителю информации. 2. Интерпретация сообщений. В связи с конкретным характером решаемой задачи и профилем потребителя, имеет место уже упомянутое различие «языка коммуникаций» и «внутреннего языка». Данный этап заключается в адаптации сообщений — извлечении из сообщений информации, необходимой для решения поставленной задачи. Второй этап заканчивается созданием информационного обеспечения (ИО) решаемой задачи. Информационным обеспечением является результат первого этапа: построение совместными усилиями потребителя и информационной системы некоторой совокупности сообщений, релевантных (потенциально полезных) для задач исследователя. 3. Решение задачи — используя ИО, а также собственные знания и опыт, и прилагая определенные усилия, потребитель (разработчик) создает новую информацию, составляющую решение. Эта информация зафиксирована на языке задачи и без дополнительных затрат труда не представляет ценности за пределами конкретной задачи 4. Создание сообщений — поставщик информации осуществляет интерпретацию полученного результата на «языке коммуникаций», т. е. подготавливает сообщение в стандартной форме, одной из тех, которые приняты на данном этапе развития системы 23
научных, деловых (и др. видов) коммуникаций вообще и информационных систем, в частности. Это может быть письмо, проект договора, статья, выступление на конференции, циркулярное сообщение по электронной почте и т. д. 5. Распространение сообщений. Создатели сообщений вступают в активное взаимодействие с системой коммуникации, затрачивая определенные усилия по вводу новой информации в один (или несколько) из доступных каналов коммуникации (пересылка документа, депонирование рукописи, публикация, аудиторное выступление или сообщение и т. д.). Эффективность данного этапа определяется как степенью усилий, предпринимаемых поставщиком информации, так и теми возможностями, которые ему предоставляет система коммуникации. Очевидно, что в общем случае данные этапы реализуются сложным последовательнопараллельным образом (рис. 1.7 отображает обобщенную логику рассматриваемого процесса). Кроме того, в конкретных ситуациях процесс принятия и исполнения решения не обязательно включает все указанные этапы или, по крайней мере, не все они предполагают сравнимые затраты труда (времени). Первый и пятый этапы являются этапами собственно информационной деятельности (ИД), поскольку их эффективность во многом определяется свойствами совокупности коммуникаций и информационных систем. Третий этап — собственно основная деятельность (ОД). Этапы второй и четвертый носят пограничный, диффузный характер и могут быть отнесены как к ИД, так и к ОД. Приведенная линейная микроструктура (последовательность разных типов деятельности) представляет собой некоторый элемент деятельности (центр деятельности); в виде взаимосвязанной совокупности этих элементов может быть представлена любая, весьма сложная и разветвленная система (деятельность), функционирование которой опирается на информационный обмен. Примером может являться система наука — техника — производство. Пересечение совокупности типов деятельности является организационным элементом системы информационного обмена (ОЭ). Примерами ОЭ, в зависимости от уровня декомпозиции исходной системы, являются отдельные исследователи, малые группы коллективы, НИИ, отрасли, система национальной научной деятельности, другие формально и организационно структурированные элементы и объединения. Характерными признаками организационного элемента являются компактность (территориальная административная, экономическая, физическая и т. д.) и гетерогенность (включение различных типов деятельности). В противовес организационным могут быть выделены функциональные элементы, соответствующие определенному типу (этапу) деятельности (например, «сбор информации» или «передача информации»). В рассмотренном (рис. 1.7) примере выделяются, по меньшей мере, два функциональных элемента – ИД (по входу и выходу) и ОД. В системах, базирующихся на обмене информацией, целесообразно выделять два типа организационных элементов: включающие и не включающие ОД. Элементы первого типа являются потребителями-поставщиками (конечными) информации и могут взаимодействовать как непосредственно (реализуя информационную деятельность в собственных организационных рамках), так и через посредство элементов второго типа, которые представляют собой промежуточных потребителей-поставщиков информации, или информационные системы. Наиболее общее представление о взаимодействии потребителей-поставщиков информации проиллюстрировано рис. 1.8. Уровни (каналы) взаимодействия могут быть разделены на три типа: 24
• непосредственное рабочее взаимодействие (связь 3—3) представляет собой постоянный обмен информацией в группе или коллективе, в процессе совместной деятельности; • непосредственное документальное взаимодействие (связь 4—2) заключается в оформлении результата и ограниченном контролируемом распространении (например — передача отчета или документации заказчику); • опосредованное документальное взаимодействие (связь 5—1) состоит в опубликовании результата и его последующем неограниченном перемещении по каналам ИС. Управление информационным обменом на макроуровне может быть разделено на три типа задач, соответствующих данным каналам: • организация работ и взаимодействия соисполнителей при выполнении работ (связи 3—3); • маркетинг — поиск заказчиков на результат работ, получение заказов, связь с заказчиками, оформление и передача результатов, поиск прочих возможных потребителей результатов (связи 4—2); • управление документальными потоками — распространение информации в документальной форме по каналам обобщенной ИС, решение задач повышения полноты, точности, оперативности информационного обмена и обслуживания (связи 5—1). Обобщенными информационными системами в рассматриваемом случае могут являться (в зависимости от уровня рассмотрения): • специалисты-аналитики или информаторы; • информационно-аналитические подразделения организаций; • информационные службы или институты информации; • мировые информационные системы и сети информационного обмена. Автоматизированная информационная система (ЛИС) таким образом может быть определена как комплекс автоматизированных информационных технологий, входящий в состав обобщенной ИС и предназначенный для информационного обслуживания — организованного непрерывного технологического процесса подготовки и выдачи научной, управленческой и др. информации потребителям, используемой для принятия решений, в соответствии с их нуждами для поддержания эффективной деятельности. Компоненты и структуры АИС. Рисунок 1.9 отображает структуру типичного совокупного технологического процесса АИС, или представление АИС как совокупности функциональных под 25
систем — сбор, ввод, обработка, хранение, поиск, распространение информации. Очевидно (как и в ранее рассмотренных структурах), многие элементы рис. 1.9 являются альтернативными: • модель объекта может отсутствовать либо отождествляться с базой данных (БД), которая часто интерпретируется как информационная модель предметной области, структурная (для случая табличных, фактографических БД) или содержательная (для случая документальных БД). В экспертных системах (ЭС) в качестве модели объекта (предметной области) фигурирует база знаний (БЗ), представляющая собой процедурное развитие понятия БД (БД, по своей сущности, непроцедурный объект); • модель объекта и БД могут отсутствовать (а соответственно и процессы хранения и поиска данных), если система осуществляет динамическое преобразование информации и формирование выходных документов, без сохранения исходной, промежуточной, результирующей информации. Если преобразование данных также отсутствует, то подобный объект информационной системой не является (он не выполняет информационной деятельности), а должен быть отнесен к другим классам систем (например, канал передачи информации и т. п.); • процессы ввода и сбора данных являются необязательными поскольку вся необходимая и достаточная для функционирования АИС информация может уже находиться в БД у составе модели, и т. д. Основные ТИПЫ АИС К наиболее распространенным и перспективным типам относятся (табл. 1.5): • фактографические АИС; • документальные; • интеллектуальные (экспертные); • гипертекстовые. Это определяется следующими факторами [14]: • системы появлялись и развивались именно в данной исторической последовательности; 26
• более ранние типы систем (фактографические, документальные) являются, как правило, платформой и средой для реализации более поздних (экспертные, гипертекстовые); • перечисленные типы характеризуют следующие отличительные черты: — распространенность (в статистике мировых информационных ресурсов документальные и фактографические БД занимают 1- и 2-е места); — перспективность (интеллектуальные системы успешно осваивают новые области применения); — гипертекстовые системы являются основой мировой информационной сети WWW (Word Wide Web) — наиболее популярной составляющей Internet. При этом хотелось бы отметить, что в традиционном понимании выражение «информационная система» (особенно «автоматизированная информационная система» или «автоматизированная информационно-поисковая система — АИ ПС») обычно ассоциируется с документальными системами (базами данных); термин же «база данных», как правило, ассоциируется с фактографическими, управленческими системами, задачами типа АСУ. Хотя, конечно же, и те и другие типы систем являются информационными и обычно строятся на основе концепции баз данных, т. е. физически включают базы данных в свой состав. 27
В этой традиционной интерпретации находит свое отражение то обстоятельство, что в фактографических системах модель предметной области заключена в структуре БД, и потому основное внимание сосредоточивается на проблеме проектирования БД, в документальных же системах моделью является наполнение, содержание БД, в том числе — словарей, тезаурусов и т. д., поэтому основное внимание уделяется языковым, семантическим проблемам. (Эти и другие различия указанных типов систем описываются в табл. 1.5.) Информационные ресурсы Кругооборот информационного ресурса, как и всякого иного продукта человеческой деятельности, подчиняется естественному циклу: создание — распространение — потребление. Несмотря на то, что информация физически не разрушается при потреблении и не исчезает (в отличие от материальных товаров и ресурсов), при рассмотрении процессов в длительной перспективе становится очевидным, что информационный ресурс не избегает участи всего сущего и, переходя в новые формы знания, практически бесследно в них растворяется (кому сейчас интересны тексты библиотек программ на Алголе, бывшие бестселлерами всего 40 лет назад !?). Традиционный цикл информационного обмена, существовавший в течение столетий, представлен на рис 1.10, а и заключается в последовательности процессов концентрации—рассеяния совокупных (составных) информационных потоков (в данном случае образуемых печатными изданиями первичных документов). Основной поток здесь идет по цепочке автор — издательство — библиотека — читатель, однако существуют и обходные пути: автор — читатель; издательство — читатель (подписка), которые также подчиняются принципу концентрации—рассеяния. Переход в начале 70-х гг. информационных служб на дублирование в машиночитаемой форме сначала вторичных (реферативные журналы, каталоги, справочные издания), а затем и первичных (полнотекстовых) документов, не нарушая в принципе общей структуры (последовательно-параллельное сосуществование процессов концентрации— рассеяния), вносит определенное Разнообразие (рис 1.10, б). 28
Поставщиками содержания теперь являются любые из участников процесса рис 1.10, а: автор (обычно корпоративный автор — организация или фирма, выполнившая работу), издательство или библиотека. Издание баз данных и онлайновое обслуживание также никому не возбраняется. Например, одна из крупнейших информационных систем по естественным наукам — INSPEC — развилась из библиотечной службы вуза (IEE — Institution of Electrical Engineers, Великобритания). Информационные сети, представляющие собой коммуникационную среду для конечного пользователя, часто входят в состав издательств или распространителей БД, образуя интегральные распределенные информационные службы. Таким образом, электронная инфраструктура образует относительно самостоятельный слой (рис. 1.10, г), не являясь зеркальным подобием традиционных коммуникаций. Появление в конце 80-х — начале 90-х гг. нового фактора — Internet (рис. 1.10, в) с его информационными ресурсами/сервисами (FTP, Gopher, Usenet, WWW) — дополняет общую картину. Удешевление и повсеместное распространение коммуникационного оборудования, услуг связи (с повышением их производительности), а также высокая степень стандартизации форматов, протоколов передачи данных и программных средств — все это привело к интеграции информационных сетей разной физической организации и пропускной способности в однородную среду, в которой взаимодействуют все агенты, обозначенные на рис 1.10, а, б и «прозрачность» которой во всех направлениях со временем быстро возрастает. Таким образом, в настоящее время наблюдается 3-слойная инфраструктура информационных ресурсов (рис 1.10, г), в которой: 29
• каждый последующий уровень инкапсулирует (поглощает) предшествующий в качестве потребителя-источника информации и добавляет новых участников коммуникации; • характер коммуникации варьируется от структурированной, но замедленной (уровень 1), до «бурного потока» (уровень 3); • со временем происходит постепенный переход основной активности от нижних слоев к верхним. В табл. 1.6 приведены основные классы информационных ресурсов. В последующих главах настоящего пособия будут рассмотрены: • технологии конечного пользователя (обработка документов, мультимедиа информации, кросс-технологии), доступ к информационным ресурсам; 30
• технологии разработчиков и администраторов информационных ресурсов и систем (организация доступа к локальным и распределенным информационным ресурсам, информационный поиск, защита информации). Контрольные вопросы 1. Охарактеризуйте соотношение понятий «информация», «данные», «знания». 2. Дайте определение понятия «информация». 3. Охарактеризуйте прагматические свойства информации. 4. Перечислите атрибутивные свойства информации. 5. Назовите и охарактеризуйте формы концентрации информации. 6. Что представляют собой факторы информатизации? 7. Какие периоды развития информатизации могут быть выделены? 8. Что такое уровни информационных процессов? 9. Дайте определение технологии и информационной технологии. 10. Что такое элемент технологии? Приведите примеры. 11. Перечислите основные классы информационных технологий. 12. Что такое обобщенная система информационного обмена? 13. Назовите уровни взаимодействия потребителей-поставщиков/Информации. 14. Какова структура технологического процесса АИС? 15. Назовите основные классы АИС. 16. Перечислите основные классы баз данных. 17. Что такое информационные ресурсы? Приведите? примеры. 18. Дайте классификацию информационных ресурсов. 31
Глава 2 ТЕХНОЛОГИИ ОБРАБОТКИ ДОКУМЕНТОВ Технологии работы с документами на компьютерах весьма популярны и часто отождествляются пользователями с информационными технологиями вообще. Преподавание информационных технологий в учебных заведениях (средних, да и высших) зачастую исчерпывается обучением навыкам работы с текстовыми редакторами (наподобие MS Word) и табличными процессорами (MS Excel и др.). Ни в коей мере не умаляя важности и необходимости владения данным инструментарием и уделяя ему соответствующее место в рамках данной главы, авторы попытались основное внимание сосредоточить на вопросах описания и обработки структур документов, охватываемых понятием модель документа. В то время как понятие модели данных (концепции, связанной со структурой предметной области БД, включающей как физический, так и логический уровни, — см. далее, гл. 5 или подробнее [8]) является достаточно распространенным и популярным, модель документа является во многом «вещью в себе». 2.1. Текстовая информация. Модель документа Известно, что существуют различные типы текстовых файлов (плоские, размеченные, ASCII и пр.). Соответственно, для ввода, работки, представления информации в таких файлах требуются различные программные возможности. Для работы с текстами на компьютере используются программные средства, называемые текстовыми редакторами, или текстовыми процессорами. Разновидности текстовых форматов Существует большое количество разнообразных текстовых редакторов, различающихся по своим возможностям, — от очень простых учебных до мощных, многофункциональных программных средств, называемых издательскими системами, которые используются для подготовки к печати книг, журналов и газет. Эти программы позволяют работать с различными типами и форматами текстовых файлов, по необходимости преобразуя их друг в друга. Например, в текстовом формате (плоский текст — .ТХТ) работают редактор Notepad, встроенные редакторы оболочек Norton Commander и Far Manager (рис. 2.1), в то время как Word (а также WordPad) позволяют работать с размеченными текстовыми файлами в коммуникативном (тип файла .RTF — rich text format, или «обогащенный формат текста»), внутреннем (.DOC), 32
И текстовом ( TXT) форматах (рис. 2.2, 2.3). Распространен также редактор документов Adobe Arobat (рис. 2.4), использующий коммуникативный формат .PDF (portable document format). Ниже более подробно рассмотрены форматы разметки текстов HTML (см- рис 2.6, 2.7). 33
Необходимо отметить, что наиболее развитые редакторы позволяют обрабатывать не просто тексты, а документы (тексты, содержащие встроенные или внедренные объекты или файлы других типов — табличные, графические, мультимедиа и пр.). Типы файлов для размещения документов Перечислим наиболее типичные файлы данных: 34
• текстовые файлы — обобщенное название для простых и размеченных текстов, ASCII-файлов и других наборов данных символьной информации, которые интерпретируются и обрабатываются текстовыми редакторами, процессорами, анализаторами (Lexicon, Word, TEC, анализаторы SGML, HTML); • текст без разметки (планарный) — файл, содержащий только отображаемые (воспроизводимые на всех печатающих устройствах и терминалах) символы кода ASCII, а также простейшие управляющие символы: CR — возврат каретки; LF — перевод строки; TAB — символ табуляции, иногда LF — новая страница (табл. 2.1); • текст с разметкой — планарный файл, содержащий бинарную (см. табл. 2.1, колонки 1, 2) и символьную (остальные колонки) разметку, управляющую отображением информации (программно и/или аппаратно); • ASCII-файл — содержит только отображаемые коды левой части кодовой таблицы ASCII (латиница и служебные символы), обычно применяется для хранения документов с символьной разметкой (RTF, SGML, HTML). Форматы полнотекстовых документов. Модель документа Понятие модель документа охватывает аспекты создания, преобразования, хранения, поиска, передачи и отображения документов. Принято рассматривать структуру документа в двух аспектах: логическом (содержание) и физическом (макет). Логическая структура определяет составные компоненты и их соотношения в понятиях, отвечающих взгляду на документы как смысловые структуры. Например, к основным смысловым компонентам относятся: авторские данные (имя автора, место работы), аннотация, оглавление, главы, разделы, параграфы, рисунки, сноски. На рис. 2.5 приведен пример документа «Пояснительная записка к дипломному проекту (работе)». Здесь выделены такие базовые понятия структуры документа, как обязательность/необязательность элемента, уникальность или повторяемость, вхождение нижестоящих элементов в вышестоящие по принципу И (оба типа данных должны или могут входить в элемент) либо ИЛИ (только какой-либо один из типов данных может или должен входить в элемент). Макетная структура содержит описание документа в терминах физических единиц — страниц, полос, колонок, колонтитулов, рамок для рисунков, шрифтов, стилей и пр. Подходы к моделированию документов опираются на два стандарта — ISO 8613 (ODA — Office Document Architecture — архитектура управленческой документации и ISO 8879 (SCM – Standard Generalized Markup Language — стандартный обобщенный язык разметки). 35
Документ в ODA представлен в виде профиля и собственно документа, организованных в форме древовидной структуры. Профиль содержит информацию о документе в целом и его прохождении; формальные признаки — дата составления, вид, регистрационный номер и т. д. Собственно документ содержит текст и сведения о его структуре и стиле, а именно: • структуру документа — заглавие, параграфы, оглавление и т. п. (логическая структура), а также абзацы, расположение текста, шрифты (физическая структура); • архитектуру содержания — набор графических элементов, выделение определенных слов, строк и т. п.; • коммуникативный формат — способы кодирования объектов, признаков и содержания документов. 2 2. Языки разметки документов В системах обработки текстов в документ включается дополнительная информация, называемая разметкой и выполняющая следующие функции: • выделение логических элементов данного документа; • задание функций обработки выделенных элементов. В обычных текстовых процессорах существуют встроенные команды включения/выключения шрифтов и др., аналогичные командам управления размещением информации на экране или при печати (так называемые Escape-последовательности). Такой подход называется командной или процедурной разметкой (табл. 2.1). Альтернативный способ разметки заключается в выделении части текста без указания способа обработки выделения. Затем другие команды назначают фрагментам способ обработки. Такая разметка называется описательной (дескриптивной). Она включает метки (tags, таги) начала и окончания элемента текста и указывает, как интерпретировать данный фрагмент. 36
Изменяя набор процедур, соответствующий описательной разметке, можно изменить внешнее представление одного и того же документа. Развитие идей описательной разметки привело к определению разметки как формального языка. Это позволяет проверить правильность разметки и минимизировать ее объем за счет подстановки умолчаний. Основным достоинством описательной разметки является ее гибкость, поскольку фрагменты текста отмечены как «чем они являются» (а не «как они должны быть отображены»), причем в будущем может быть написано программное обеспечение для такой обработки этих фрагментов, которая даже не предусматривалась разработчиками языков. Например, гиперссылки HTML, первоначально предназначенные для навигации пользователями по совокупности связей в сети, в дальнейшем стали использоваться также механизмами поиска и индексирования в сети, для оценки популярности ресурсов и т. д. Описательная разметка также облегчает задачу переформатирования документа при необходимости, поскольку описание формата не связано с содержанием. Например, курсив может использоваться либо для выделения текста, либо отметки иностранных (или жаргонных) слов, либо для других целей. Однако если слова просто выделены (дескриптивно или процедурно) как курсив в этой двусмысленности нельзя полностью разобраться. Если же эти два случая были по-разному размечены в самом начале, каждый может быть переформатирован независимо от других. Родовидовая (generic markup) разметка — другое наименование для описательной разметки. Практически элементы различных классов разметок обычно сосуществуют в любой конкретной системе. Например, HTML содержит как элементы разметки, которые являются процедурными ( b для полужирного шрифта), так и другие, которые являются описательными («blockquote», или «href», — признак). HTML также включает элемент PRE, который ограничивает область текста, которая будет расположена точно так, как напечатано. 37
Самые современные системы описательной разметки рассматривают документы как иерархические структуры (деревья), а также обеспечивают некоторые средства для встроенных перекрестных ссылок. Поэтому такие документы могут трактоваться и обрабатываться как базы данных, структура которых достаточно хорошо определена (однако, поскольку они не имеют таких строгих схем, как реляционные базы данных, их обычно называют «слабоструктурированными базами данных»). С наступлением III тысячелетия возник интерес к документам неиерархических структур. Например, древняя и религиозная литература обычно имеет риторическую структуру или структуру прозы (рассказ, раздел, параграф и т. д.), а также включает справочную информацию (книги, главы, строфы, строки). Так как границы этих модулей часто пересекаются, они не могут быть полностью закодированы с использованием только системы разметки с древовидной структурой. Среди систем моделирования Документов, которые поддерживают такие структуры, — MECS, TEI Guidelines, LMNL, и CLIX. Термин «разметка» происходит от традиционной практики разметки рукописей перед публикацией (т. е. добавления символических команд на полях и между строк в бумажной рукописи), течение многих столетий это делали работники издательства (редакторы и корректоры) которые отмечали, каким шрифтом, стилем и кеглем должны быть набраны фрагменты текста, а затем передавали рукопись наборщикам, которые вручную осуществляли набор текста с учетом символов разметки. В настоящее время существует множество языков разметки (табл. 2.2), среди наиболее широко известных — DocBook, 38
MathML, SVG, Open eBook, XBRL и др. В основном они предназначены для представления различных текстовых документов но специализированные языки могут использоваться во многих других областях. Безусловно, наиболее хорошо известен язык разметки HTML (язык разметки гипертекста), одна из основ WWW (Всемирной паутины). Рассмотрим некоторые из систем разметки. RUNOFF RUNOFF была первой системой форматирования текстов, которая получила значительную известность. Она была разработана в 1964 г. для операционной системы CTSS Джеромом X. Салтзером (Jerome H. Saltzer) с использования ассемблера MAD. Продукт фактически состоял из пары программ: • TYPSET, который был в основном редактором документов; • RUNOFF — процессор вывода. RUNOFF осуществлял поддержку разбиения на страницы и размещения заголовков, а также выравнивания текста. RUNOFF — прямой предшественник программы форматирования документов в ОС Multics, которая в свою очередь была предком программ форматирования для ОС Unix (roff и nroff), и их потомков. Он был также предком FORMAT для OS/360 IBM, и конечно косвенно для всех последующих программ и систем обработки текстов. Название, как предполагается, исходило из фразы, популярной в то время — I'll run off a copy. ТеХ ТеХ — аббревиатура от τεχνη (TEXNH — techne), греческий термин для «искусства, ремесла, умения», источник для слова «технический». По английски произносится «тек» (как в слове technology). ТеХ — наборная система, созданная Дональдом Нутом (Donald Knuth). Вместе с языком METAFONT для описания шрифта и Computer Modern typeface (Компьютерного Современного шрифта) он был спроектирован для двух основных целей — во-первых, представить каждому пользователю возможность создавать высококачественные книги в 39
пределах разумных трудозатрат во-вторых, чтобы такая система давала идентичные результаты на любых компьютерах как в настоящее время, так и в будущем. ТеХ — бесплатное программное обеспечение, популярное в академическом сообществе, особенно среди математиков, физиков информатиков, экономистов, и в технических сообществах. Оно в значительной степени конкурирует с другим популярным форматизатором ТеХ — Unix troff, и во многих инсталляциях Unix они используются совместно. Признано, что ТеХ является наилучшим путем создания и распечатки сложных математических формул, но теперь оно также используется для многих других наборных задач, особенно в форме LaTeX и других программных средств форматирования. Команды ТеХ обычно начинаются с обратной косой черты и группируются в блоки изогнутыми фигурными скобками. Однако почти все синтаксические свойства ТеХ могут быть изменены при исполнении программы, что затрудняет обработку входа ТеХ другими программами. ТеХ — язык на основе макросов и лексем и многие команды, включая наиболее часто определяемые пользователем, расширяются при исполнении, пока не останутся только нерасширяемые лексемы, которые и выполняются. Базовый вариант ТеХ включает приблизительно 300 команд, названных примитивами. Однако эти команды низкого уровня редко используются непосредственно пользователями, большинство функциональных возможностей обеспечивается файлами формата (копии памяти ТеХ после того, как были загружены большие наборы макрокоманд). Первоначальный формат Нута (по умолчанию), который добавляет приблизительно 600 команд, называется Plain ТеХ. Более широко используемым форматом является LaTeX, первоначально разработанный Лесли Лампортом, который включает стили документа для книг, писем, слайдов и т. д, а также добавляет поддержку ссылок и автоматической нумерации формул и разделов. Другой широко используемый формат — AMS-TeX, разработан Американским математическим обществом (American Mathematical Society) и предусматривает дополнительно много дружественных команд, которые могут быть изменены издательствами, чтобы обеспечить их фирменный стиль. Большинство особенностей AMS-TeX может применяться в LaTeX при использовании AMS «packages» (что именуется как AMS-LaTeX). Чтобы написать программу печати строки «Programming» в Plain TeX, необходимо создать файл myfile.tex со следующим содержанием: Programming \bye % end of the file; not shown in the final output. По умолчанию все, что следует за знаком процента на строке, — комментарий, игнорируемый интерпретатором ТеХ. Если выполнить ТеХ на этом файле (например, набирая tex myfile.tex в режиме командной строки), то будет создан выходной файл с именем myfile.dvi, который представляет содержимое страницы в независимом от устройств формате (Device Independent Format — DVI). Результаты могут или быть напечатаны непосредственно из средства просмотра интерактивной цифровой видеосистемы или преобразованы в более общий формат, типа PostScript, используя программу dvips. Такие варианты ТеХ, как PDFTeX, непосредственно производят файлы формата PDF. Рассмотрим форматирование математической формулы. Например, чтобы написать известное выражение для корня квадратного уравнения, можно ввести: The quadratic formula is $-b \pm \sqrt{b^2 - 4ac} \over 2a$ \bye Это приведет к выводу следующего текста: Несколько систем обработки документов основаны на ТеХ, особенно jadeTeX, который использует ТеХ как внутренний для того, чтобы печатать с выхода James Clark's DSSSL Engine, и Texinfo, обработчик документации системы GNU. ТеХ был официальным наборным пакетом для операционной системы GNU с 1984 г. 40
Известны многочисленные расширения и сопутствующие программы для ТеХ, среди них BibTeX для библиографий (распространяется совместно с LaTeX), PDFTeX, который обходит формат DVI и осуществляет прямой вывод в Adobe Systems' Portable Document Format (pdf), и Omega, которая позволяет ТеХ использовать набор символов Unicode. Большинство расширений ТеХ может быть получено бесплатно во Всесторонней Сети Архивов ТеХ (Comprehensive ТеХ Archive Network — CTAN). ТеXmacs — редактор научной литературы на основе ТеХ, поддерживает режим полного соответствия (WYSIWYG) и предназначен чтобы быть совместимым с ТеХ и Emacs. Во многих технических областях, таких как прикладная информатика, математика и физика, ТеХ стал фактическим стандартом. Много тысяч книг были изданы, используя ТеХ, такими издательствами, как Addison-Wesley, Cambridge University Press, Elsevier, Oxford University Press or Springer. Многочисленные журналы в этих областях произведены с использованием ТеХ ил LaTeX, причем авторам разрешено представлять рукописи в формате ТеХ. Начиная с версии 3 ТеХ использовал специфическую систему нумерации версий, где обновления обозначались с помощью дополнительной цифры к десятичному числу так, чтобы номер версии асимптотически приближался к л. Это — отражение того факта, что ТеХ является очень устойчивым и ожидаются только незначительные обновления. Текущая версия ТеХ — 3.141592; это было последнее обновление в декабре 2002. PostScript PostScript (PS) — язык программирования, реализующий функцию описания страниц, использующийся в электронных изданиях и настольных издательских системах. Концепция языка PostScript была создана в 1976 г., когда Джон Вонок (John Warnock), работая в фирме Evans и Sutherland, известной компании компьютерной графики, разрабатывал интерпретатор для большой трехмерной графической базы данных по ньюйоркской гавани. Вонок задумывал язык систем проектирования для обработки графической информации. Ранние принтеры были устроены так, чтобы печатать символы текста, обычно поступающего на вход в коде ASCII. Было множество технологий для этой цели, но наиболее распространенным было то, что печатаемые символы были «намертво» проштампованы на клавиши пишущей машинки, отлиты в металле для линотипов или нанесены на негативы фотонаборных устройств и поэтому их было физически трудно изменить. Это изменилось до некоторой степени с распространением матричных печатающих устройств. Символы на этих системах могли быть «нарисованы» как совокупность точек, соответствующих определенным таблицам шрифтов в принтере. По мере усовершенствования матричные печатающие устройства стали включать несколько встроенных шрифтов, из которых пользователь мог выбирать, а некоторые модели давали пользователям возможность передать (загрузить) их собственные заказные шрифты в принтер. Матричные печатающие устройства также дали возможность печатать растровую графику. Графические символы интерпретировались компьютером и посылались как ряд точек на принтер, используя «escape-последовательности» (см. табл. 2.1). Эти языки управления менялись от принтера к принтеру, требуя разработки многочисленных драйверов. Векторный вывод графических символов возлагался на другие устройства — плоттеры (графопостроители). Они также могли использовать общий командный язык — HPGL, но имели ограниченное использование для чего-нибудь другого, кроме вывода векторной графики. Кроме того, они были дорогими и медленными, и таким образом не имели широкого распространения. 41
PostScript порвал с этой традицией, комбинируя лучшие особенности как принтеров, так и плоттеров. Как и плоттеры, PostScript предложил высококачественную штриховую графику и единый язык управления, который мог использоваться на принтерах любых марок. Как матричные печатающие устройства, PostScript предложил простые способы генерировать страницы текста и растровой графики. Но, в отличие от обоих, PostScript мог располагать все эти данные на единой странице, что предлагало гораздо больше гибкости, чем любой принтер или плоттер. PostScript выходил за пределы типичного языка управления принтером и был полным языком программирования. Многие прикладные программы могут преобразовать документ в программу PostScript, выполнение которой приведет к формированию образа оригинала документа. Эту программу затем можно передать на интерпретатор принтера, который осуществит печать документа, или в другое приложение, которое отобразит документ на экране. Так как документ-программа не требует изменений в зависимости от адресата, он называется независимым от устройства (device-independent). PostScript примечателен тем, что может осуществлять растеризацию образа в процессе обработки данных («на лету»), поскольку все, даже текст, определено в терминах прямых линий и кубических кривых Безье (cubic Bezier curves, ранее использовавшихся только в САПР — системах автоматизированного проектирования), что позволяет осуществлять произвольное масштабирование, вращение изображения и другие преобразования. В процессе работы интерпретатор программы PostScript преобразует эти команды в точки изображения, формируя вывод. Поэтому интерпретаторы PostScript также иногда называют процессорами растровых изображений (PostScript Raster Image Processors, или RIP). Почти столь же сложны, как сам Postscript, были его методы обработки шрифтов. Система генерации шрифтов использовала графические примитивы Postscript, чтобы вычерчивать символы в режиме векторной графики, которая затем могла быть передана на устройство с любой разрешающей способностью. При этом возникало множество типографских проблем, которые следовало бы решить. В 1980-е гг. Adobe получал большую часть своего дохода за счет лицензионных выплат от реализации PostScript для принтеров, известных как процессоры растровых изображений (raster image processor — RIP). Поскольку в середине 1980-х стало доступным множество новых платформ на основе RISC-процессоров, возникло мнение, что поддержка новых машин средствами Adobe явно недостаточна. Это и проблемы стоимости приводили к реализации PostScript третьими сторонами, что стало обычным, особенно в дешевых принтерах (где лицензионная плата была точкой преткновения), а также в высокопроизводительном типографском наборном оборудовании (где требования скорости вызывали необходимость поддержки новых платформам быстрее, чем Adobe могла бы это обеспечить). В какой-то момент Microsoft и Apple объединились, чтобы попытаться преодолеть монополию лазерных принтеров Adobe. Microsoft лицензировала Apple, приобретенный ею совместимый с Postscript интерпретатор —Truelmage, а Apple лицензировала Microsoft новый формат шрифтов — TrueType. Apple достигла соглашения с Adobe и лицензировала подлинный PostScript для своих принтеров, но TrueType стал стандартной технологией контурного шрифта как для Windows, так и для Macintosh. Много распространенных и недорогих лазерных принтеров не поддерживают PostScript, а используют драйверы, которые просто растеризуют исходные форматы графических символов вместо того, чтобы сначала преобразовать их в PostScript. Когда поддержка PostScript необходима для такого принтера, может использоваться бесплатный PostScriptсовместимый интерпретатор, именуемый Ghostscript. Ghostscript печатает документы PostScript на «нe-PostScriptoвских» принтерах, используя мощности ЦП компьютера для 42
растеризации и передавая на принтер результат как большой точечный рисунок (single large bitmap). Ghostscript может также использоваться для предварительного просмотра документов PostScript на компьютерном мониторе и преобразовать страницы PostScript в растровую графику (файлы типов tiff и рng) и векторные форматы (например, pdf). PostScript является полным язык программирования (в смысле Тьюринга). Как правило, PostScript-программы создаются не программистами, а другими программами. Конечно, есть возможность создать графические образы или выполнить какие-либо вычисления, кодируя вручную на ЯП PostScript. PostScript — интерпретируемый язык на основе стека (стековый язык), подобный Forth, использующий структуры данных, аналогичные встречающимся в Лиспе (Lisp) и пр. Большинство операторов (в других языках используется термин функция) принимает значения параметров из стека и помещает результат выполнения в стек. Синтаксис языка опирается на обратную польскую запись (reverse Polish notation — RPN), которая делает круглые скобки ненужными, но при которой чтение программы требует некоторых навыков, поскольку требуется помнить содержание стека. Рассмотрим ряд примеров. С помощью оператора в RPN 3 4 add 5 1 sub mul будет вычислен такой результат: (3 + 4) х (5 - 1). Чтобы производить графические образы, PostScript использует обычную декартову систему координат, например оператор 100 200 moveto 300 400 lineto stroke перемещает «курсор» в точку с координатами (100, 200), а затем чертит прямую линию к точке (300, 400). 50 70 moveto 100 200 50 80 100 100 curveto stroke создает кубическую Кривую Безье между точками (50, 70) и (100, 100), проходящую через контрольные точки (100, 200) и (50, 80). 250 250 moveto (Programming Languages) show поместит начало текста «Programming Languages» в точку с координатами (250, 250). Шрифт, которым будет набран текст, может быть предварительно задан (например, командной строкой /Courier findfont 12 scalefont setfont). Portable Document Format (PDF) Переносимый формат документов — PDF — формат файла, созданный Adobe Systems в 1993 г. для использования в настольных издательских системах. Формат PDF позволяет представлять двумерные документы в форме, независимой от разрешающей способности устройств печати (или дисплеев). Каждый файл формата PDF содержит полное описание двумерного документа (с появлением Acrobat 3D — трехмерных документов), который включает текст, шрифты, изображения и двумерную векторную графику, которые образуют документ. Когда формат PDF впервые появился в начале 1990-х гг., он не сразу завоевал популярность. В частности, ранние версии формата PDF не имели поддержки механизмов внешних гиперссылок, что ограничивало его применимость в Internet. Кроме того, существовали конкурирующие форматы, например, Envoy, Common Ground Digital Paper и даже собственный формат Adobe — PostScript (.ps). В дальнейшем Adobe начала бесплатно распространять программу чтения Acrobat Reader (сейчас — Adobe Reader) и продолжала поддерживать формат PDF в его медленном многолетнем «пути наверх». PDF в конечном счете стал фактическим стандартом для печатных документов. Формат файла формата PDF подвергся нескольким изменениям с выпуском новых версий Adobe Acrobat. Известно восемь версий формата PDF - 1.0 (1993 г.), 1.1 (1994 г.), 1.2 (1996 43
г.), 1.3 (1999 г.), 1.4 (2001 г.), 1.5 (2003 г.), 1.6 (2005 г.) и 1.7 (2006 г. ) которые соответствуют выпускам Adobe Acrobat от 1.0 до 8.0 Формат PDF использует следующие технологии: • подмножество языка программирования и описания страниц PostScript, чтобы генерировать размещение и графику; • систему встраивания и замены шрифтов для обеспечения перемести мости документов; • структурированную систему хранения, позволяющую связывать эти элементы в отдельный файл, с использованием сжатия данных при необходимости. Язык SGML SGML разработан на базе программного продукта DCF GML фирмы IBM и представляет собой метод создания структурированных документов, а также языков для их разметки. В языке SGML каждый документ имеет три части: • декларации (объявления, определения) языка SGML, привязывающие к определенным значениям параметры обработки, а также имена синтаксиса; • пролог, состоящий из деклараций о типе документа. Они определяют типы элементов, взаимосвязи между элементами и их атрибуты, а также условные обозначения, которые могут быть задействованы при разметке; • данные, которые состоят из разметки документа и собственно информации. Основные типы конструкций языка — описания: • элементов <!ELEMENT. . .>; • объектов <!ENTITY. . .>; • атрибутов <!ATTRIBUTE LIST...>, образующих структуру документа (документов), при этом элемент — основная компонента документа; объект — группа, род элементов; атрибут — характеристика элемента. Все «квадратики», приведенные на рис. 2.5, являются элементами. Запишем одну из возможных конструкций, соответствующую выделенной на рис. 2.5 цепочке элементов (подраздел — параграф — текст...): <! ELEMENT SUBDIV (PAR*) > — подраздел состоит из параграфов (повторяющихся); <!ELEMENT PAR (TEXT | TABLE? | PICT?)> — параграф — из текста или таблицы/ рисунка (необязательны): < ! ELEMENT PICT (IMAGE & CAPT) > — рисунок – из изображения и подписи. Декларации и пролог на языке SGML задают структуру документа и, будучи отделены от размеченного текста, образуют описание типа документа (DTD — Document Type Definition). На сегодня известно более 5000 DTD, соответствующих различным национальным и международным стандартам, из которых наиболее важен HTML. HTML — язык разметки гипертекста HTML — Hypertext Markup language формулируется в терминах языка SGML. Например, документ как целое в DTD задается декларацией: <! ELEMENT HTML ((HEAD | BODY | %oldstyle)*, PLAINTEXT?)>. HTML ориентирован на решение нескольких важных задач, в которых участвуют его различные конструкции и элементы: • описание структуры документа ( HEAD, BODY, HI—Н6, шрифты, списки и пр.); • адресация ресурсов (BASE, LINK, HREF и пр.); • создание гипертекстовых ссылок и управление навигацией в БД локальных и WWW Internet (HREF и т. п. ); • реализация интерфейсов с пользователем (ISINDEX, MENU, FORM и пр.). 44
Рассмотрим здесь только некоторые функции представления документов (см. также табл. 2.1). Функции навигации и интерфейсов будут детализированы далее (гл. 6). Базовые элементы HTML-документа: • HEAD — содержит всю информацию о документе в целом, но не содержит какого-либо текста. Последний является лишь частью документа и должен находиться в элементе BODY. Декларации SGML: <! ELEMENT HEAD (%head.content) + (%head.misc)> <! ENTITY % head.content "TITLE & ISINDEX? & BASE?"> • BODY — в противоположность элементу HEAD элемент BODY содержит всю ту информацию, из которой собственно и состоит рассматриваемый документ. Декларация SGML: <! ELEMENT BODY (%bodyelement | %htext;)*>. Приведем некоторые элементы HTML, относящиеся к представлению документа. 1.Заголовки разд ел о в документа. SGML-декларация: <!ENTITY % heading "HI|Н2|НЗ|Н4|Н5|Н6">. Возможная интерпретация: H1 — жирный, очень крупный шрифт, текст центрирован Между заголовком и последующим текстом вставляется одна или две пустые строки. При выводе на принтер заголовок печатается на новой странице; Н2 — жирный крупный шрифт, до и после заголовка помещаются одна или две пустые строки; НЗ — наклонный крупный шрифт, до и после заголовка помещаются одна или две пустые строки. Печатается с небольшим отступом; Н4 — жирный нормальный шрифт, до и после заголовка помещается пустая строка; Н5 — наклонный шрифт, как и для Н4, пустая строка ставится перед заголовком; Н6 — жирный шрифт, перед заголовком ставится пустая строка. 2 Физические (макетные) стили. SGML-декларация: <!ENTITY % font "TT|I|B|U|STRIKE|BIG|SMALL|SUB|SUP">. Возможная интерпретация: тт — (телетайп) шрифт фиксированной ширины; В — жирный или еще каким-либо образом выделенный шрифт; I — наклонный шрифт (или видоизмененный еще каким-либо образом); U — подчеркивание. 3.Логические стили. SGML-декларация: <!ENTITY % phrase "EM|STRONG IDFN|CODE|SAMP IKBD|VARI CITE"> . Интерпретация: EM — выделение символов (обычно наклон шрифта), смысловое усиление определенного слова или фразы; STRONG — более четкое выделение, привлечение внимания (обычно применение более жирного шрифта); СОDE — пример кода; обычно фиксированный шрифт (формулы, выражения); SAMP — последовательность символов (названия команд, примеры); VAR — имя переменной (имена переменных в примерах, формулах); DFN — определение к какому-либо термину — обычно жирный наклонный; 45
— цитата, обычно наклонный шрифт (названия документов, выдержки из документов, цитируемые фразы и т. д.) Рассмотрим пример документа с разметкой HTML, содержащий приведенные выше элементы управления стилем символов текста: СIТЕ <HTML> <TITLE> Примеры управления шрифтами </TITLE> <Н1> Заголовок 1 </Н1> <Н2> Заголовок 2 </Н2> <Ь> Это текст Bold </b><p> <i> Это текст Italic</ixp> <u> Это подчеркнутый текст </и> <р> <strike> Это перечеркнутый текст </strike> <р>В обычный текст можно вставить <sub> подстрочный </sub> текст, что позволяет написать выражение типа P<sub>max</sub>=max{P<sub>K/sub>,P<sub>2</sub>} <р>В обычный текст можно вставить <sup> надстрочный</зир> текст, что позволяет написать обозначение изотопа в виде Cs<sup>134</sup> </HTML> Пример отображения этого текста браузером Mozilla FireFox представлен на рис 2.6. Некоторые дополнительные возможности. Списки. В HTML предусмотрены следующие виды списков: • UL — ненумерованный список (неупорядоченный); • OL — нумерованный список (упорядоченный); • DL — список определений. Типичный неупорядоченный список: <UL> <LH>Titlе of WWW programmes (NCSA). <LI> NCSA HTTPD; <LI> NCSA MOSAIC <UL> <LH>Title of WWW programmes (CERN). <LI> CERN HTTPD; <LI> AGORA - email robot; <LI> HTTPD CERN; <LI> WWW Line Browser; 46
<LI> Arena. </UL> <UL> <LH> Title of WWW programmes (Netscape). <LI> Netsite - server; <LI> Netscape Navigator. </UL> Пример интерпретации данного списка приведен на рис. 2.7-Таблицы. Для описания таблиц служит элемент TABLE, который является контейнером для других элементов описания таблицы. Наиболее часто он употребляется с атрибутом BORDER, определяющим разделительные линии граф таблицы, которые могут быть либо трехмерными (рис. 2,8), либо обычными. Из элементов формы следует отметить COLSPEC И DP. COLSPEC позволяет заказать параметры отображения каждой колонки таблицы и имеет вид: COLSPEC="L20 C8 L40" Здесь определены три колонки шириной 20, 8 и 40 условных единиц которые могут измеряться в пикселях и типографских интервалах или зависеть от размеров самой таблицы. Атрибут DP определяет вид десятичной точки. Элемент TR (Table Row) дает общее описание строки таблицу Обычно используется для выравнивания содержания граф строки. Способ выравнивания определяют: атрибут ALIGN — горизонтальное выравнивание, который принимает значения left,right center, justify, decimal, и атрибут VALIGN — вертикальное выравнивание, который принимает значения top, bottom, middle baseline. По умолчанию графы – заголовки центрируются, а графы – данные выравниваются по левому верхнему углу. 47
Элементы ТН (Table Header) и TD (Table Data) используются для описания граф таблицы. Кроме выравнивания тн и то позволяют еще и объединять графы, как это показано в примере (третья строка из текстового примера, см. ниже). Это делается с помощью атрибутов ROWSPAN (пропуск строки) и COLSPAN (пропуск столбца). Цифра в этих атрибутах определяет количество последовательно расположенных граф таблицы, объединенных в одну графу. Приведем пример таблицы (интерпретация отображена на рис. 2.8): <TABLE BORDER> <CAPTION>A test table with merged cells. <CREDIT>(T.Berners Lee/WWWC, 1995.) </CREDITX></CAPTION> <TR><TH R0WSPAN=2><TH C0LSPAN=2>Average> <TH rowspan=2>other<BR>category<TH ROWSPAN=2>Misc</TR> <TR><TH>height<TH>weight</TR> <TR><TH ALIGN=left>males<TD>l . 9<TD>0 . 003 <TR><TH ALIGN=left>females<TD>1.7<TD>0.002 </TABLE> Математика. Для реализации математических выражений в языке определен элемент MATH, внутри которого содержатся следующие компоненты: • ABOVE (запись символа над выражением); • BELOW (запись символа под выражением); • SQRT,ROOT (радикалы); • TEXT (для записи текста); • в,Т,ВТ (выделение символов); • OVER (черта) и пр. Например, запись <ROOT>3<OF>1+X</ROOT> соответствует . 2.3 Технологии XML С конца 80-х гг. самые существенные языки разметки были основаны на принципах SGML, включая например TEI и DocBook. SGML был провозглашен как международный стандарт ISO8879 в 1986 г. SGML нашел широкое использование в областях с крупномасштабными документационными требованиями. Однако он оказался слишком громоздким и трудным для обучения (побочный эффект попытки создать универсальный и всеобъемлющий язык). Например, в SGML теги конца (или теги начала, или даже оба) являются необязательными в определенных контекстах (предполагалось, что разметка будет делаться только вручную и это сэкономило бы пользователю время и усилия). Новый язык разметки, который теперь широко используется, — XML (Extensible Markup Language — расширяемый язык разметки), был разработан Консорциумом WWW и основная задача состояла в том, чтобы упростить SGML, сосредоточиваясь на частной проблеме, — обмен документами в Internet. XML остается метаязыком, как и SGML, разрешая пользователям создавать любые необходимые теги (поэтому он — «расширяемый»), а затем описывая эти теги и их разрешенную интерпретацию. Принятию XML способствовало то, что каждый документ XML является также и документом SGML, поэтому существующие пользователи SGML и действующее программное обеспечение могли легко адаптироваться к XML. XML устранил также многие из более сложных особенностей SGML, облегчая изучение и выполнение. Другие усовершенствования исправили некоторые проблемы SGML в международных 48
параметрах настройки и позволили анализировать и интерпретировать иерархию документа, даже при отсутствии его схемы в явном виде. XHTML С января 2000 г. все рекомендации W3C для HTML основываются на ХML, а не на SGML, при этом используется сокращение XHTML (EХtensible HyperТext Markup Language) — расширяемый язык разметки гипертекста. Языковая спецификация требует, чтобы Webдокументы XHTML были «правильно структурированными» документами XML — это позволяет создавать более устойчивые документы, используя теги, знакомые по HTML. Одно из самых значимых различий между HTML и XHTML — правило, что все теги должны быть закрыты: «пустые» HTML-теги, типа <br> должны быть либо «закрыты» правильным тегом окончания либо заменены специальной формой: <br/> (отметим, что перед «/» на теге конца должен быть «пробел», иначе, тег — недопустимый SGML). Другое — в том, что все «атрибуты» в тегах должны браться в кавычки. В настоящее время известно множество приложений, основанных на XML, включая Resource Description Framework (RDF), XForms, DocBook, OpenDocument (ODF), SOAP и Web Ontology Language. Упрощая ситуацию, можно сказать, что разработчики XML взяли лучшие решения SGML и, руководствуюсь опытом HTML, создали язык, не уступающий по мощности SGML, но гораздо более удобный и легкий в использовании. XML предназначен для создания новых языков разметки и используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. С его помощью можно описать целый класс агрегатов данных, называемых XMLдокументами, ориентированными на конкретную предметную область. XML позволяет определить допустимый набор тегов, их атрибуты и внутреннюю структуру документа. Теги (подобно тегам в HTML) представляют специальные инструкции, предназначенные для формирования в документах определенной структуры и четких отношений между различными элементами этой структуры. Для описания данных XML использует DTD (Document Type Definition — Определение типа документа) или схему документа. Синтаксис XML Так же, как и в HTML, инструкции, заключенные в угловые скобки, называются тегами и служат для разметки основного текста документа. В XML существуют открывающие, закрывающие и пустые теги (в HTML понятие пустого тега тоже существует, но специального его обозначения не требуется). Тело документа XML состоит из элементов разметки и непосредственно содержимого документа — данных. XML-теги предназначены определения элементов документа, их атрибутов и других конструкций языка. Любой XML-документ должен всегда начинаться с инструкции <?xml?>, внутри которой также можно задавать номер версии языка, номер кодовой страницы и другие параметры, необходимые программе-анализатору в процессе разбора документа. Содержимое XML-документа представляет собой набор элементов, секций CDATA, директив анализатора, комментариев, спецсимволов, текстовых данных. Рассмотрим каждый из них подробней. Элементы данных. Элемент — это структурная единица XML-документа. Например, заключая слово rose в теги, мы определяем непустой элемент, называемый <flower>, содержимым которого является rose. В общем случае в качестве содержимого элементов могут выступать как просто какой-то текст, так и другие, вложенные, элементы документа, секции CDATA, инструкции по обработке, комментарии, т. е. практически любые части XML-документа. Любой непустой элемент должен состоять из начального, конечного тегов и данных между ними, заключенных: <flower> rose </flower>. 49
Элемент в DTD определяется с помощью дескриптора ! ELEMENT, в котором указывается название элемента и структура его содержимого. Например, для элемента <flower> можно определить следующее правило: <!ELEMENT flower PCDATA> Ключевое слово ELEMENT указывает, что данной инструкцией будет описываться элемент XML. Внутри этой инструкции задается название элемента (flower) и тип его содержимого. Атрибуты. Если при определении элемента необходимо задать какие-либо параметры, уточняющие его характеристики, то имеется возможность использовать атрибуты элемента. Атрибут – это пара название = значение, которую надо задавать при определении элемента в начальном теге, например, <cоlor RGB="true">#ff08ff</color> <cоlor RGB="false">white</color> Списки атрибутов элемента определяются с помощью ключевого слова !ATTLIST. Внутри него задаются названия атрибутов, типы их значений и дополнительные параметры. Например для элемента <article> могут быть определены следующие атрибуты: <!ATTLIST article id ID #REQUIRED about CDATA #IMPLIED type (actual | review | teach ) 'actual' '' > В данном примере для элемента article определяются три атрибута: id, about и type, которые имеют типы ID (идентификатор), CDATA и список возможных значений соответственно. Всего существует шесть возможных типов значений атрибута: • CDATA — содержимым документа могут быть любые символьные данные; • ID — определяет уникальный идентификатор элемента в документе; • IDREF (IDREFS) — указывает, что значением атрибута должно выступать название (или несколько таких названий, разделенных пробелами во втором случае) уникального идентификатора определенного в этом документе элемента; • ENTITY (ENTITIES) — значение атрибута должно быть названием (или списком названий, если используется ENTITIES) компонента (макроопределения), определенного в документе; • NMTOKEN (NMTOKENS) — содержимым элемента может быть только одно отдельное слово (т. е. этот параметр является ограниченным вариантом CDATA); • список допустимых значений — определяется список значений, которые может иметь данный атрибут. Также в определении атрибута можно использовать следующие параметры: • #REQUIRED — определяет обязательный атрибут, который должен быть задан во всех элементах данного типа; • #IMPLIED — атрибут не является обязательным; • #FIXED значение — указывает, что атрибут должен иметь только указанное значение, однако само определение атрибута не является обязательным, но в процессе разбора его значение в любом случае будет передано программе-анализатору. Значение задает значение атрибута по умолчанию Сущности и специальные символы. Сущности (entity) представляют собой определения, содержимое которых может быть повторна использовано в документе. В языках программирования подобные элементы называются макроопределениями 50
(расширениями). Для того чтобы включить в документ символ, используемый для определения каких-либо конструкции языка (например, символ угловой скобки) и не вызвать при этом ошибок в процессе разбора такого документа, нужно использовать его специальный символьный либо числовой идентификатор. Например, &lt;, &gt; &quot; или &#036 (десятичная форма записи), &#xla (шестнадцатеричная) и т. д. Создаются DTD-сущности с помощью инструкции !ENTITY: <!ENTITY hello ' Мы рады приветствовать Вас!' > Программа-анализатор, просматривая в первую очередь содержимое области DTD – определений, обработает эту инструкцию и при дальнейшем разборе документа будет использовать содержимое DTD-сущности в том месте, где будет встречаться его название. То есть теперь в документе мы можем использовать выражение &hello;, которое будет заменено на строчку «Мы рады приветствовать Вас». В общем случае, внутри DTD можно задать следующие типы сущностей: • внутренние — предназначены для определения строковой константы, с их помощью можно организовывать ссылки на часто изменяемую информацию, делая документ более читабельным. Внутренние компоненты включаются в документ с помощью амперсанда &; • внешние — указывают на содержимое внешнего файла, причем этим содержимым могут быть как текстовые, так и двоичные данные. В первом случае в месте использования макроса будут вставлены текстовые строки, во втором — бинарные данные, которые анализатором не рассматриваются и используются внешними программами. Комментариями является любая область данных, заключенная между последовательностями символов: <!-- --> Комментарии пропускаются анализатором и поэтому при разборе структуры документа в качестве значащей информации не рассматриваются. Директивы анализатора. Инструкции, предназначенные для анализаторов языка, описываются в XML-документе с помощью специальных тегов <? и ?>;. Программа клиента использует эти инструкции для управления процессом разбора документа. Наиболее часто инструкции используются при определении типа документа (например, <? Xml version="l. 0"?>) или создании пространства имен. CDATA. Чтобы задать область документа, которую при разборе анализатор будет рассматривать как простой текст, игнорируя любые инструкции и специальные символы, но, в отличии от комментариев, иметь возможность использовать их в приложении, необходимо использовать теги <![CDATA] и ]]>. Внутри этого блока можно помещать любую информацию, которая может понадобиться программе-клиенту для выполнения каких-либо действий (в область CDATA МОЖНО помещать, например, инструкции JavaScript). Естественно, надо следить за тем, чтобы в области, ограниченной этими тегами, не было последовательности символов]]. Формат DocBook DocBook — язык разметки технических документов. Он был первоначально предназначен для того, чтобы разрабатывать техническую документацию, связанную с компьютерной аппаратурой и программным обеспечением, однако может использоваться и для любых других видов документации. Одно из основных преимуществ DocBook — он дает возможность пользователям создавать содержание документа в нейтральной форме, которая описывает только логическую структуру содержания, которое затем может быть отображено в разнообразных форматах, включая HTML, формат PDF, страницы руководства и помощи, не требуя от пользователей каких-либо изменений в исходном тексте. 51
DocBook появился в 1991 г. как совместная разработка HaL Computer Systems и O'Reilly & Associates и в конечном счете породил свою собственную организацию обслуживания (Davenport Group) перед перемещением в 1998 г. в консорциум SGML Open, который впоследствии был преобразован в OASIS (The Organization for the Advancement of Structured Information Standards — Организация развития стандартов структурированной информации). DocBook в настоящее время поддерживается ПосВоок Technical Committee (подразделение OASIS). DocBook первоначально начал существование как приложение SGML, однако затем было разработано эквивалентное приложение XML, которое заменило SGML в большинстве применений. Первоначально только ключевая группа компаний-разработчиков программного обеспечения использовала DocBook, поскольку их представители были вовлечены в его начальный дизайн. В конечном счете, однако, DocBook был принят сообществом свободного программного обеспечения, где стал стандартом для того, чтобы создавать документацию для многих проектов, включая FreeBSD, KDE, GNOME, справочную информацию GTK+API, документацию по Linux и работу Linux Documentation Project. Рассмотрим пример кода. Формат DocBook, будучи основанным на XML, легко читается и понимается как людьми, так и компьютерами. Формат состоит из меток (тегов типа <book>), каждой из которых соответствует закрывающая метка (например, </book>), и текстового содержания (например, Hello world!). Полное содержание Документа («книга») структурировано в данном примере в две «главы» (<chapter>), каждая из которых имеет «заголовок» ^:title>) и состоит из одного или более «параграфов» (<рага>). акая структура может образовывать книгу произвольного размера или любой другой документ. Отметим, что теги указывают структуру и значение содержания, но не его отображение. Нет таких команд, которые требуют «напечатать этот параграф жирным шрифтом» или «центрировать эту строку» и т. д. Один и тот же файл DocBook может быть преобразован во многие различные выходные форматы, каждый с полностью отличным представлением и даже с другим расположением элементов содержания. ODF OpenDocument (ODF) — сокращение от «OASIS Open Document Format for Office Applications» (Открытый формат документов для офисных приложений), является форматом файла документа, используемым для того, чтобы описать электронные документы, например письма, сообщения, книги, электронные таблицы, диаграммы, презентации и файлы текстовых процессоров. Стандарт основан на формате XML, был разработан техническим комитетом OASIS (Organization for the Advancement of Structured Information Standards) и первоначально воплощен в офисном комплексе OpenOffice.org. 52
OpenDocument является стандартом OASIS и принят как международный стандарт ISO/ IEC 26300:2006. Основная цель таких открытых форматов как OpenDocument состоит в том, чтобы гарантировать долгосрочный доступ к данным без юридических или технических барьеров, и некоторые правительства пришли к выводу, что использование открытых форматов следует рассматривать как аспект публичной политики. OpenDocument предназначен, чтобы быть альтернативой закрытым форматам, включая такие, как doc, xls и ppt, обычно используемые Microsoft Office и другими приложениями (эти форматы не описаны в открытой документации, но описание может быть получено путем заключения соответствующего соглашения непосредственно с Microsoft Corporation). Microsoft поддерживает создание дополнений к программам для MS Office, чтобы позволить использовать OpenDocument. В частности, Microsoft создал транслятор Office Open XML — проект «моста» между Office Open ; XML и OpenDocument. Предполагается в течение 2007 г. выпустить версию этого программного обеспечения для Microsoft Word, Excel и PowerPoint. Для имен файлов, содержащих документы OpenDocument, используются следующие расширения: • . odt — для текстовых документов; • . ods — для электронных таблиц; • . odp — для презентаций; • . odg — для графической информации; • . odf — для документов, содержащих формулы или математических уравнения. Файл OpenDocument может быть или XML-файлом, который использует <office:document> как корневой элемент, или сжатым ZIР-архивом, содержащим множество файлов и каталогов. ZIР – формат используется чаще, так как может содержать бинарную информацию и обычно значительно меньше в размере. OpenDocument основан на разделении по четырем отдельным XML-файлам таких составляющих документа, как содержание, стили, метаданные и параметры настройки приложений. Перевод Excel-таблицы в формат XML Как уже отмечалось, язык XML позволяет описывать различные типы структурированных данных (листы табличных процессоров, базы данных и пр.). Предположим, имеется простая таблица данных процессора Excel (рис. 2.9, а). Она может быть переведена в формат XML, в котором будет иметь следующий вид (приводится в сокращении): <?xml version="1. 0"?> <?mso-application progid="Excel.Sheet"?> <. . .> <DocumentProperties xmlns="urn:schemas-microsoft-com:office: office"> <LastAuthor>Петров</LastAuthor> <Created>2005-05-04</Created> <Version>2</Version> </DocumentProperties> <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> <WindowHeight>8700</WindowHeight> <WindowWidth>11355</WindowWidth> <ProtectStructure>False</ProtectStructure> <ProtectWlndows>False</ProtectWindows> </ExcelWorkbook> <Styles> <Style ss:ID="Default" ss:Name=Normal"> 53
< Alignment ss : Vertical = "Bottom"/> <Borders/> <Font ss:FontName="Arial Cyr" x:CharSet="204"/> <Interior/> <NumberFormat/> <Protection/> </Style> </Styles> <Worksheet ss:Name="Лист1"> <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="5" x:FullColumns="l" x:FullRows="l"> <Column ss:Width="70.5"/> <Row ss:Index="2"> <Cell><Data ss:Type="String">наименование</Data></Cell> <Cell><Data ss:Type="String">цена</Data></Cell> </Row> <Row> <Cell><Data ss:Type="String">торт</Data></Cell> <Cell><Datа ss:Type="Number">52</Data></Cell> </Row> <Row> <Cell><Datа ss:Type="String">кекс</Data></Cell> <Cell><Datа ss:Type="Number">96</Data></Cell> </Row> <ROW> <Cell><Data ss:Type="String">мороженое</Data></Cell> <Cell><Data ss:Type="Number">45</Data></Cell> </Row> </Table> <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> 54
............ </WorksheetOptions> <x:WorksheetOptions></x:WorksheetOptions> </Worksheet> </Workbook> На рис. 2.9, б приводится структурная схема данного XML документа (также в сокращенном виде). 2.4. Текстовые редакторы Редакторы, предназначенные для подготовки текстов условно можно разделить на обычные (подготовка писем и других простых документов) и сложные (оформление документов с разными шрифтами, включающие графики, рисунки и др.). Наибольшей популярностью пользуется текстовый процессор MS Word for Windows. Редактор Word Основные функции. Текстовый редактор Word реализует следующие функции: • создание, открытие, закрытие, сохранение текстовых документов (рис. 2.10, а); • задание параметров страниц (рис. 2.10, б); • набор текста (режим прописных букв, гарнитура, кегль и Цвет шрифта, страница, работа с выделенным фрагментом "текста, межстрочный интервал, способы выравнивания, буфер обмена); • форматирование абзаца (задание параметров абзаца, красная строка, межстрочный интервал) — рис. 2.10, в; 55
• задание шрифтов (рис. 2.10, г); • установка рамки и заливки абзаца; • создание нумерованных и маркированных списков, настройка нумерованных списков; • ссылки, заголовки, оглавления; • проверка правописания, расстановка переносов; • создание, заполнение и форматирование статических таблиц; рамки, заливка. Изменение структуры таблицы (добавление и удаление строк и столбцов, объединение ячеек, изменение размеров ячеек). Преобразование текста в таблицу и наоборот (рис. 2.11, а); • вставка и редактирование объектов — рисунков, клипов, MIDI-файлов, математических формул (рис. 2.11, 6); • деловая графика (построение диаграмм и графиков). Вставка рисунков, настройка положения, размера и способа обтекания рисунка (в тексте, перед текстом, за текстом и пр.) — рис. 2.12; • работа с автофигурами (линии, фигуры, стрелки и пр.), использование WordArt; • печать текста (рис. 2.13). Добавление символов в текст осуществляется в режиме вставки, при этом текстовый курсор должен находиться в месте 56
документа, где будет производиться эта процедура. Индикация режима замены или вставки производится в статусной строке служебной области окна программы редактирования. При наборе очередного добавляемого символа часть строки справа (включая курсор) сдвигается на одну позицию вправо, а введенный символ появляется в позиции курсора. Если включен режим замены, то вновь набираемые символы замещают присутствующие в тексте редактируемого документа символы. Для удаления одного или нескольких символов используются клавиши <Del> или <Backspace>. Нажатие клавиши <Del> приводит к удалению символа, находящегося в позиции курсора, правая часть строки сдвигается влево, сам курсор остается на месте. Нажатие клавиши <Backspace> вызывает удаление символа в позиции слева от курсора, курсор и правая часть строки сдвигаются влево. Эта клавиша используется в основном для удаления одного или нескольких символов. Технология удаления больших фрагментов текста предполагает предварительное выделение фрагмента для редактирования. Как правило, в текстовом окне может быть выделен только один фрагмент. Удаление может производиться двояко: • выделенный фрагмент изымается из текста, оставшийся текст смыкается; • выделенный фрагмент удаляется в буфер памяти временного хранения, откуда может быть извлечен для вставки в другое место редактируемого документа либо использован в текстах других документов. Поиск в документах, использующих программы обработки текстов, выполняется несколькими способами. Поиск по образцу, например, для последующей замены найденного словосочетания сводится к следующему: • задается образец (символ, слово или цепочка символов); 57
• указывается направление поиска (вперед от текущей позиции курсора либо назад); система подготовки текстов начинает поиск заданного фрагмента; • при обнаружении фрагмента просмотр приостанавливается, курсор позиционируется перед искомым фрагментом, и пользователь имеет возможность произвести нужную коррекцию. Оформление документа в целом. Важным элементом работы с любым текстовым процессором является установление некоторых начальных параметров, например параметров страницы, формата, языка и др. Такие процедуры называют оформлением структурных элементов текста. Стандартными параметрами оформления страниц документа являются: поля страниц; размер печатного листа и ориентация текста на бумаге; расположение колонтитулов; число колонок текста (газетный стиль). Текстовый процессор Word для Windows по умолчанию предлагает следующие параметры оформления документа: • символы в обычном формате типа Times New Roman с размером символа, соответствующим кеглю 10 пунктов; • абзацы без отступов, выровненные влево, через один интервал; • табуляция через 0,5 дюйма (или 1,27 см); • печатная страница документа в формате А4 (210 х 297 мм); • границы текста на печатной странице: левое и правое поля — 3,17 см, верхнее и нижнее — 1,5 см. Таким образом, при создании нового документа предлагается некоторый шаблон документа (в данном случае он называется «Normal»). Текстовые редакторы порой содержат набор шаблонов для создания различных типовых, а порой и стандартизированных, документов. Пример набора шаблонов в WinWord представлен на рис. 2.14, а. Шаблон содержит разнообразную информацию о стилях форматирования частей документа, вставленных полях и т. д. В шаблонах хранятся выбранные и установленные для них макрокоманды, элементы глоссария, кнопки панели инструментов, нестандартные меню и способы установки клавиш сокращения, облегчающих работу с документами. Один раз созданные и сохраненные в памяти компьютера, шаблоны позволяют быстро готовить аналогичные по форме (но не по содержанию) документы без затрат времени на форматирование. Одним из основных структурных элементов любого документа является абзац. При наборе текста новый абзац образуется после нажатия <Enter>. При этом курсор ввода переходит на новую строку и устанавливается в позицию левого отступа следующего абзаца. Позиция отступа зависит от параметров настройки конкретной системы текстовой обработки. К наиболее общим параметрам абзацного форматирования можно отнести: • выравнивание границ строк; • отступы для строк; • межстрочные интервалы; • обрамление и цвета фона текста; • расположение текста абзаца на смежных страницах документа. 58
Если система подготовки текста используется для создания и оформления многостраничного документа, то применяется форматирование страниц или разделов. В тексте могут появиться новые структурные элементы: закладки, сноски, перекрестны ссылки, колонтитулы. Под закладкой (bookmark), или меткой, понимается определенный фрагмент текста документа, которому пользоваться присваивает имя (рис. 2.14, б). В многостраничном документе закладка может использоваться для: • быстрого перехода к месту документа, обозначенному закладкой; • создания перекрестных ссылок в документе. Иногда документ содержит дополнения к основному тексту подстрочные примечания. Подстрочные примечания оформляют сносками (рис. 2.14, в). В состав подстрочного примечания входят два неразрывно связанных элемента: так сноски и текст собственно примечания. Знак сноски располагают в основном тексте у того места, к которому относится примечание, и в начале самого примечания. Редактор документов OpenOffice.org Writer Работая в OpenOffice.org Writer, пользователь может создавать любые текстовые документы, составлять личные и официальные письма, брошюры, факсы и профессиональные учебные пособия. Документы, которые используются часто, можно сохранять как шаблоны, например бланк счета. Имеется проверка орфографии и тезаурус, а при необходимости может быть задействована Автозамена и расстановка переносов во время ввода текста с клавиатуры. В OpenOfTice.org нет ограничений на длину текстового документа (рис. 2.15). Создание и структурирование документов, OpenOffice.org предлагает большой выбор средств для создания документов. Используя Мастер стилей, можно создавать и 59
редактировать стили абзацев, отдельных символов, рамок и страниц. Навигатор поможет при создании структурированных текстов, а также позволит отредактировать уже созданную структуру текста путем передвижения абзацев из одного места в другое. Можно создавать разнообразные указатели и таблицы в текстовых документах, а структуру и внешний вид этих указателей и таблиц задавать в соответствии с потребностями. Активные гиперссылки и закладки позволяют переходить к соответствующим местам в тексте. Подготовка публикации с помощью OpenOffice.org Writer. OpenOffice.org Writer содержит многочисленные возможности для создания профессиональных документов. Текст может быть многостолбцовым и содержать текстовые рамки, рисунки, таблицы и пр., встроенные в него. Текстовые рамки могут создавать газетный формат. Такие возможности, как линии выравнивания, рамки для иллюстраций выборочно и по всему документу и выбор любого цвета для символов, абзацев и таблиц, помогают создавать различные документы на высоком профессиональном уровне. Вычисления. Текстовые документы в OpеnOffice.org имеют встроенную функцию вычисления, которая позволяет выполнить математические действия или создать логические связи. Чтобы выполнить вычисления, в текстовом документе можно создать таблицу. Создание чертежей. Удобный и легко доступный инструмент для черчения позволяет создавать чертежи, рисунки, врезки и пр. непосредственно в текстовых документах. Вставка изображений. Предусмотрена возможность вставки текстовый документ картинок различного формата, включая jpg, gif и пр. Наиболее распространенные форматы могут быть отредактированы непосредственно в текстовом документе с помощью графического редактора. Кроме этого, Галерея предоставляет коллекцию тематически упорядоченных картинок. Изменяемый интерфейс приложения. Интерфейс программы разработан таким образом, что каждый пользователь может настроить его в соответствии с личными предпочтениями. Различные окна (Мастер стилей, Навигатор и т. п.) могут быть размещены как плавающие окна в любом месте экрана, а некоторые из них могут быть пристыкованы к краю. Значки и меню также могут быть изменены. Перетаскивание. Возможность перетаскивания позволяет работать с текстовым документом в OpenOffice.org более быстро и эффективно. Например, можно перетаскивать картинки непосредственно из Галереи в активный документ. 60
Полнообъемная справка. Программа предоставляет Справку, которая служит гидом по элементам программы в OpenOffice.org и включает в себя большой набор инструкций для решения простых и сложных задач. Стандартный просмотрщик PostScript — ghostview (KGhostView) GhostView — одна из первых в Unix программа, созданная для просмотра файлов Adobe PostScript. KGhostView (перенесенная на KDE [22] программа Ghostмview отображает и распечатывает файлы PostScript (.ps, .eps) и Portable Document Format (.pdf). Если документ не соответствует стандарту структуры документа Adobe, функциональность программы ограничена. Например, если отсутствует оглавление, становится невозможным отмечать страницы и перемещаться по документу, пропуская их. Рассмотрим содержимое основного окна KGhostView, действия с помощью кнопок панели инструментов и методы использования списка страниц. Могут быть открыты несколько окон KGhostView, чтобы просматривать несколько документов. Заголовок окна отображает название документа, открытого в этом окне (рис. 2.16, В основной части окна отображается страница текущего документа (рис. 2.16, 2). Если страница слишком велика и не помешается в окне, у его границ автоматически размещаются панели прокрутки. Это свойство может быть отключено с помощью меню Настройка. Панель инструментов и список страниц могут быть скрыты с помощью опций меню Настройка, чтобы освободить пространство экрана для отображения содержимого. Предусмотрена возможность прокручивать страницу, используя клавиши <↑> и <↓> или меню Вид\прокрутить вверх (<Shift+Space>) и Вид\Прокрутить вниз (<Ctrl+Space>), чтобы перемещаться по документу. Кнопки панели инструментов Следующая страница и Предыдущая страница служат для перехода между страницами (также можно щелкнуть левой кнопкой мыши по номеру страницы в списке, чтобы перейти на нее). Список страниц (если выбран показ в меню Настройка) отображается у левой стороны окна (рис. 2.16, 3). Он включает два столбца: первый может содержать флажок отметки страницы, второй отображает номера страниц. Этот список может использоваться, чтобы перемешаться по документу или отмечать страницы для печати. Может быть установлен «отмечающий страницу» флажок для отображаемой страницы с помощью комбинации клавиш <Ctrl+M> или щелчком на странице в списке. Вы также 61
можете удалить или изменить пометки, используя меню, выпадающее по щелчку правой кнопки мыши в списке страниц, или с помощью меню Отметки страниц. 2.5. Работа с электронными таблицами Электронная таблица — интерактивная система обработки информации, упорядоченной в виде таблицы с поименованными строками и столбцами. Прототипом современных электронных таблиц послужила разработанная в 1979 г. специалистами США программа Visual Calc. Ныне наиболее часто используются электронные таблицы Quatro Pro, MS Excel и Lotus 1-2-3. Основные характеристики программного продукта Excel Excel представляет собой мощный арсенал средств ввода, обработки и вывода в удобных для пользователя формах фактографической информации. Эти средства позволяют обрабатывать фактографическую информацию, используя большое число типовых функциональных зависимостей: финансовых, математических, статистиченских, логических и т. д., строить объемные и плоские диаграммы, обрабатывать информацию по пользовательским программам, анализировать ошибки, возникающие при обработке информации, выводить на экран или печать результаты обработки информации в наиболее удобной для пользователя форме. Структура таблицы включает нумерационный и тематический заголовки, головку (шапку), боковик (первая графа таблицы, содержащая заголовки строк) и прографку (собственно данные таблицы). На пересечении столбца и строки устанавливается графическая смысловая связь между понятием, объединяющим материал в строку, и понятием, объединяющим материал в столбец, что позволяет выявить ее без мысленного перевода в словесную форму и существенно облегчить усвоение и анализ организованных в таблицу данных. Структура таблиц и основные операции: • в нижней части электронной таблицы расположен алфавитный указатель (регистр), обеспечивающий доступ к рабочим листам. Пользователь может задавать названия листам в папке (вместо алфавитного указателя), что делает наглядным содержимое регистра, облегчает поиск и переход от документа к документу; • в режиме оформления и модификации экрана можно фиксировать заголовки строк, столбцов, оформлять рабочие листы и т. д.; • для оформления рабочих листов в табличном процессоре предусмотрены возможности: выравнивания данных внутри клетки, выбора цвета фона клетки и шрифта, изменения высоты строк и ширины колонок, черчения рамок различного вида, определения формата данных внутри клетки (например: числовой, текстовый, финансовый, дата и т. д.), а также обеспечения автоматического форматирования, когда в систему уже встроены различные варианты оформления таблиц, и пользователь может выбрать наиболее подходящий формат; • для вывода таблиц на печать предусмотрены функции, обеспечивающие выбор размера страницы, разбивку на страницы, установку размера полей страниц, оформление колонтитулов, а также предварительный просмотр получившейся страницы; • связывание данных — абсолютная и относительная адресации являются характерной чертой всех табличных процессоров. Они дают возможность работать одновременно с несколькими таблицами, которые могут быть тем или иным образом связаны друг с другом; • вычисления — для удобства вычисления в табличных процессорах имеются встроенные функции: математические, статистические, финансовые, даты и времени, логические и др. Менеджер функций позволяет выбрать нужную и, проставив значения, получить результат; 62
• деловая графика — возможность построения различного типа двухмерных, трехмерных и смешанных диаграмм (более 20 различных типов и подтипов), которые пользователь может строить самостоятельно. Многообразны и доступны возможности оформления диаграмм, например, вставка и оформление легенд, меток данных; оформление осей — возможность вставки линий сеток и другие; • выполнение табличными процессорами функций баз данных — обеспечивается заполнением таблиц аналогично заполнению БД, т. е. через экранную форму защитой данных, сортировкой по ключу или по нескольким ключам, обработкой запросов к БД, созданием сводных таблиц. Кроме этого, осуществляется обработка внешних БД, позволяющая работать с файлами, созданными например, в формате dBase, Paradox или других форматах; • программирование — в табличном процессоре существует возможность использования встроенного языка программирования макрокоманд. Разделяют макрокоманды и макрофункции. При использовании макрокоманд упрощается работа с табличным процессором и расширяется список его собственных команд. С помощью макрофункций определяют собственные формулы и функции, расширив, таким образом, набор функций, предоставляемый системой. Интерфейс Excel. Интерфейс обеспечивает дружественное выполнение указанных функций и включает иерархическое меню с множеством подменю, директорий и команд и совокупности командных и селекторных кнопок окна Excel. Окно Excel может содержать множество различных элементов. Все зависит от того, какие инструменты Excel вызваны на экран. Инструменты вызываются командой Панели инструментов меню Вид. В простейшем случае, когда на экран не вызваны никакие инструменты, окно Excel имеет только строку меню, находящуюся в верхней части экрана, расположенную под ней строку формул, вертикальную и горизонтальную полосы прокрутки, линейку прокрутки рабочих листов и рабочую область, занятую рабочим листом. Рабочий лист отображает электронную таблицу и разбит на ячейки, образующие прямоугольный массив, координаты которых определяются путем задания их позиции по вертикали (в столбцах) и по горизонтали (в строках). Лист может содержать до 256 столбцов (от А до IV) и до 65 536 строк (от 1 до 65 536), в силу чего на экране в каждый данный момент времени расположена только некоторая часть рабочего листа (рис. 2.17). Столбцы обозначаются буквами латинского алфавита (А,В,С, ..., Z,AA,AB,AC, ..., AZ,BA,BB, ...), а строки — числами натурального ряда (рис. 2.17, а, б). Так, 63
D14 обозначает ячейку, находящуюся на пересечении столбца D и строки 14, a CD99 — ячейку, находящуюся на пересечении столбца CD и строки 99. Имена столбцов всегда отображаются в верхней строке рабочего листа, а номера строк — на его левой границе. Одна из ячеек таблицы всегда является текущей или активной (рис. 2.17, в). Она отображается указателем в виде утолщенной рамки или прямоугольника с иным цветом фона, а ее адрес указывается в строке ввода и редактирования. Именно в нее вводят информацию. Для перемещения по ячейкам таблицы вправо по строке используется клавиша <Таb>. Если будет достигнут последний столбец созданной пользователем таблицы, произойдет переход на первый столбец следующей строки. Размеры строк и столбцов можно изменять. Для этого нужно вести курсор мыши на границе между заглавиями столбцов (строк), нажать левую кнопку мыши и переместить появившийся крестик вместе с линией разграничения столбцов (строк) до нужной позиции. Совокупность одного или нескольких рабочих листов составляет рабочую книгу Excel. Переход от одного рабочего листа к другому той же рабочей книги осуществляется с помощью линейки прокрутки рабочих листов с 1 —8 лепестками их названий, расположенной в нижней левой полосе экрана. Слева от ярлычков листов находятся кнопки, позволяющие перейти к первому рабочему листу, к последующему, к предыдущему. Полосы прокрутки внизу и справа рабочей области позволяют перемещать рабочий лист горизонтально и вертикально. Строка формул, расположенная под строкой меню, высвечивает формулу активизированной ячейки (правая часть строки) и ее адрес (левая часть строки). Справа от строки меню расположена кнопка, позволяющая уменьшить размер рабочего листа, представив его отдельным окном экрана. Слева от строки меню расположена селекторная кнопка, позволяющая манипулировать окном рабочей книги: перемещать, изменять размер, свертывать в значок, развертывать, восстанавливать, закрывать окно, переходить к другому окну. В левом верхнем углу экрана есть аналогичная селекторная кнопка, позволяющая манипулировать окном Excel в целом. В правом верхнем углу экрана расположены две кнопки, одна из которых сворачивает окно, а вторая переводит рабочий лист в режим отдельного окна. Как правило, при решении большинства задач на экран вызываются следующие панели инструментов: Стандартная, Форматирование, Мастер подсказок. При вызове каждой панели инструментов на экране появляется соответствующая панель командных кнопок, нажатие которых щелчком мыши инициирует выполнение запрограммированных действий. Кнопки Панели инструментов можно убирать, заменять, вводить новые, используя директорию Настроить Панели инструментов меню Вид. Стандартная панель инструментов (расположена под строкой меню) позволяет вызывать нужную команду, не обращаясь к меню. Панель Форматирования (расположена ниже стандартной панели) позволяет изменять оформление рабочего листа. Кнопки на панелях инструментов позволяют быстро вызывать многие функции Excel. Те же самые функции можно вызывать посредством меню. Указатель мыши, направленный на любую кнопку, высвечивает подсказку о назначении кнопки. Рабочие ячейки Excel, расположенные на пересечении строк и столбцов рабочего листа, определяют основу работы всей системы Excel. Для обеспечения реализации всего многообразия указанных ранее функций Excel рабочая ячейка Excel имеет сложную информационную структуру, включающую пять взаимосвязанных уровней записи, хранения, обработки и вывода информации. 64
Для объектов электронной таблицы определены следующие операции редактирования, объединенные в одну группу: удаление, очистка, вставка, копирование (рис. 2.18). Операция перемещения фрагмента сводится к последовательному выполнению операций удаления и вставки. Перед выполнением конкретной операции редактирования необходимо определить объект, над которым выполняется действие. По умолчанию таким объектом является текущая ячейка. Остальные объекты должны быть выбраны (выделены) с помощью мыши или клавиатуры. Обычно при выполнении операций копирования фрагментов фрагменту-копии передаются все свойства соответствующих ячеек фрагмента-оригинала, но возможна передача только содержания, значения или формата. В качестве содержания ячейки выступают числовые и текстовые константы, а также выражения (формулы). В качестве значения ячейки рассматриваются выводимые на экран представления числовых и текстовых констант, а также результатов вычисления выражений (формул). Под выражением понимается совокупность операндов, соединенных знаками операций. В качестве операндов используются числовые и текстовые константы, адреса ячеек и встроенные функции. При этом числовые и текстовые константы используются непосредственно, вместо адресов ячеек используются значения соответствующих клеток таблицы, а вместо встроенных функций — возвращаемые ими значения. Адреса ячеек в роли операндов и аргументов встроенных функций выступают в двух формах: относительной и абсолютной. Относительный адрес указывает на положение адресуемой ячейки относительно той ячейки, в содержании которой он используется и записывается как обычно (имя столбца и номер строки, например «F7»). Абсолютный адрес указывает на точное положение адресуемой ячейки в таблице и записывается со знаком «$» перед именем столбца и номером строки (например, «$F$7»). Возможна 65
абсолютная адресация только столбца или строки («$F7» или «F$7»). При редактировании объектов таблицы относительные адреса соответствующим образом корректируются, а абсолютные адреса не изменяются. Шаблоны таблиц. Создав таблицу и выполнив в ней все необходимые процедуры форматирования, можно построить для нее типовые диаграммы, если они будут в дальнейшем использоваться. Для этого из меню Файл вызывают директиву сохранить как. ... В открывшемся диалоговом окне указывают имя типового документа и выбирают директорию, где он будет храниться. Затем щелкают по стрелке в поле Тип файла и в открывшемся списке выбирают элемент Шаблон. Для окончания процедуры закрывают окно щелчком по командной кнопке Сохранить. Документ получает присваиваемое шаблонам расширение .XLT. В дальнейшем его можно загружать как любой другой файл. В этом случае открывается не сам шаблон, а его копия, что позволяет многократно использовать исходный шаблон при построении других таблиц. Для модификации шаблона из меню Файл вызывают директиву открыть. После выбора шаблона нажимают клавишу <shift> и «щелкают» по кнопке Открыть. После редактирования шаблон сохраняют обычным образом. Если необходимо поменять имя листа, то это можно достичь двойным щелчком по корешку листа или в следующей последовательности через меню Формат\Лист\Переименовать. В формулах в открытых книгах, ссылающихся на переименовываемый лист, имя меняется автоматически. Добавить новый лист можно, щелкнув правой кнопкой мыши по корешку листа и выбрав команду Добавить. При этом появится запрос типа создаваемого листа (лист с таблицей, диаграмма, диалоговое окно, лист макросов или шаблон). Другой вариант — через меню Вставка\Лист, но при этом не появляются запросы, а сразу создается лист с таблицей перед текущим листом. Табличные вычисления. Важным свойством программы является возможность использования формул и функций. Чтобы процессор мог отличить формулу от текста, ввод формулы в ячейку таблицы начинается со знака равенства (=). После этого знака в ячейку записывается математическое выражение, содержащее аргументы, арифметические операции и функции. В формуле можно использовать числовые и текстовые константы (последние в двойных кавычках), ссылки на ячейки (диапазоны), имена диапазонов и полей, функции и простые арифметические Действия. В качества аргументов в формуле обычно используют числа и адреса ячеек. Для обозначения арифметических операций можно применять символы: «+» — сложение, «— » — вычитание, «*»— умножение, «/» — деление, «^» — возведение в степень. Формула может содержать ссылки на ячейки таблицы, расположенные в том числе на другом рабочем листе или в таблице другого файла. Для ссылки на другие листы и книги используются так называемые трехмерные ссылки. Они отличаются от обычных наличием имени книги (в квадратных скобках) и листа, заканчивающегося восклицательным знаком. Например, формула = [otdel. xls]Заказы!Н7 ссылается на ячейку Н7 на листе Заказы в книге Otdel. Для создания такой ссылки можно через меню Окно выбрать исходную (открытую) книгу, затем выбрать лист и щелкнуть по ячейке левой кнопкой мыши. Однажды введенную формулу можно модифицировать в любое время. Встроенный Менеджер формул помогает найти ошибку или неправильную ссылку в таблице. Изменения в исходных данных влияют на результат в конечных данных. Табличный процессор автоматически пересчитывает результаты формул, но можно использовать и принудительную команду с помощью клавиши <F9>. 66
Процессор позволяет работать со сложными формулами, содержащими несколько операций. Для наглядности можно включить текстовый режим, тогда в ячейку будет введен не результат вычисления формулы, а собственно формула. Мастер функций. Используемые для табличных вычислений формулы и их комбинации часто повторяются. Процессор предлагает более 200 запрограммированных формул, называемых функциями. Для удобства ориентирования в них функции разделены по категориям. Встроенный Мастер функций помогает правильно применять функции на всех этапах работы и позволяет за два шага строить и вычислять большинство функций. Функции вызываются из списка через меню Вставка\Функция или нажатием кнопки на стандартной панели инструментов. Для выбора аргументов функции (на втором шаге мастера) используется кнопка, присутствующая справа от каждого поля ввода. Вернуться в исходное состояние (после выбора аргументов) можно клавишей <Enter> или кнопкой. Для конструирования функций предварительно маркируют ячейку, в которой должен появиться результат вычислений. Затем щелчком по пиктограмме Мастера функций со значком «fх» открывают диалоговое окно Мастера. . . (рис. 2.19). В окне Выберите функцию перечислены предлагаемые Мастером. . . функции, ниже — краткое описание активизированной пользователем функции. Если мышью нажать на кнопку ок, то появится специальное окно Аргументы функции, в которое вводят необходимые значения и нажимают кнопку ок. Мастер диаграмм. Табличные процессоры предлагают различные виды иллюстраций деловой графики (диаграмм), причем их построение облегчено за счет использования Мастера диаграмм — встроенных автоматизированных пошаговых процедур, позволяющих выбрать тип диаграммы и для него выполнить все необходимые операции, в том числе оформления различными компонентами. Гистограмма показывает изменение данных за определенный период времени и иллюстрирует соотношение отдельных их значений. Категории располагаются по горизонтали, а значения — по вертикали. Ориентирована на изменения во времени. Гистограмма с накоплением демонстрирует вклад отдельных элементов в общую сумму (рис. 2.20, а). Линейчатая диаграмма отражает соотношение отдельных компонентов. Категории расположены по горизонтали, а значения — по вертикали. Ориентирована на сопоставление значений и меньшее — изменения во времени. Линейчатая диаграмма с накоплением показывает вклад отдельных элементов в общую сумму (рис. 2.20, б). График представляет варианты отображения изменений данных за равные промежутки времени (рис. 2.20, в). 67
Круговая диаграмма отражает как абсолютную величину каждого элемента ряда данных, так и его вклад в общую сумму. На круговой диаграмме может быть представлен только один ряд данных. Такую диаграмму рекомендуется использовать, когда необходимо подчеркнуть какой-либо значительный элемент (рис. 2.20, г). Точечная диаграмма показывает взаимосвязь между числовыми значениями в нескольких рядах и представляет две группы чисел в виде одного ряда точек в координатах х и у. Она отображает нечетные интервалы (или кластеры) данных и часто используется для представления данных научного характера. При подготовке данных следует расположить в одной строке или столбце все значения переменной х, а соответствующие значения у — в смежных строках или столбцах (рис. 2.20, д). Поверхностная диаграмма используется для поиска наилучшего сочетания двух наборов данных. Как на топографической карте, области с одним значением выделяются одинаковым узором и цветом (рис. 2.20, е). Кроме этого, в инструментарии предусмотрены следующие типы диаграмм. Диаграмма с областями подчеркивает величину изменения в течение определенного периода времени, показывая сумму введенных значений, а также вклад отдельных значений в общую сумму. 68
Кольцевая диаграмма, как и круговая диаграмма, показывает вклад каждого элемента в общую сумму, но в отличие от круговой диаграммы может содержать несколько рядов данных. Каждое кольцо в кольцевой диаграмме представляет отдельный ряд данных. Лепестковая диаграмма. Здесь каждая категория имеет собственную ось координат, исходящую из начала координат. Линиями соединяются все значения из определенной серии. Лепестковая диаграмма позволяет сравнить общие значения из нескольких наборов данных. Пузырьковая диаграмма является разновидностью точечной диаграммы. Размер маркера данных указывает значение третьей переменной. При подготовке данных в одной строке или столбце располагают все значения переменной х, а соответствующие значения у — в смежных строках или столбцах. Биржевая диаграмма часто используется для демонстрации цен на акции. Этот тип диаграммы применяют для отображения научных данных, например изменения температуры. Для построения этой и других биржевых диаграмм необходимо правильно организовать данные. Информационные связи. В табличном процессоре можно ввести ссылки на ячейки, расположенные в другой таблице. После установления ссылки значения, находящиеся в ячейках, будут автоматически обновляться. Для обращения к значению ячейки, расположенной на другом рабочем листе, указывают имя этого листа вместе с адресом соответствующей ячейки. Например, для обращения к ячейке F7 на рабочем листе Akt3 вводится формула =Akt3!A7. Если в названии листа есть пробелы, то название заключается в кавычки. Адреса ячеек указывают латинскими буквами. Информационное связывание двух ячеек можно упростить, если скопировать значение исходной ячейки в буфер (с помощью клавиш <ctrl+C>) и промаркировать ячейку, в которой должен появиться результат. Затем из меню Правка выполняется директива Специальная вставка. В диалоговом окне этой директивы выбирают вариант вставки и щелкают по кнопке ок. Обмен данными. Функция обмена данными позволяет пользователю процессора импортировать в свои таблицы объекты из других прикладных программ и передавать (экспортировать) собственные таблицы для встраивания их в другие объекты. Концепция обмена данными является одной из основных в среде Windows. Редактор «Excel» поддерживает стандарт обмена данными OLE 2.0 (Object Linking and Embedding). Между объектами, обрабатываемыми различными прикладными программами, создаются информационные связи, например между таблицами и текстами (рис. 2.21). Эти информационные связи реализованы динамически, например, копия таблицы, встроенная в текст, будет обновляться (актуализироваться) всякий раз, когда в ее оригинал вносятся изменения. OpenOffice.org Calc 69
Редактор электронных таблиц OpenOffice.org Calc позволяет вычислять, анализировать и преобразовывать данные в электронной таблице. Могут быть импортированы и обработаны также таблицы Microsoft Excel (рис. 2.22). Вычисления. OpenOfficc.org Calc позволяет использовать Функции (включающие статистические, финансовые, банковские операции), которые можно использовать для построения сложных формул обработки данных. Для построения формул предлагается встроенный Мастер функций. Динамические вычисления. Система предоставляет возможность немедленно увидеть, каким образом меняются результаты вычислений, подверженные влиянию множества факторов, при Условии изменения одного из этих факторов. Предусмотрена возможность построения обширных таблиц, отражающих изменения переменных в различных сценариях. Функции базы данных. Предусмотрены возможности хранения, фильтрации и сортировки данных в таблицах, а также импорт содержания таблиц из внешних баз данных. Организация данных. При работе с таблицами можно легко срыть или показать данные, отвечающие определенным критериям, а также форматировать данные и определять итоговые суммы и подсуммы при сортировке строк. Динамические диаграммы. OpenOffice.org Calc позволяет представлять данные из таблиц в форме разнотипных диаграмм которые автоматически обновляются при изменении данных. Открытие и сохранение файлов Microsoft. OpenOffice.org Calc позволяет конвертировать файлы Excel (см. рис. 2.21), а также открывать и сохранять их во множестве различных иных форматов. Список наиболее часто используемых комбинаций клавиш в OpenOffice.org (что относится как к OpenOffice.org Calc, так и к OpenOffice.org Writer) приводится в табл. 2.3. 70
71
В заключение заметим, что программы электронных таблиц могут успешно использоваться не только для расчетных задач, но и при математическом моделировании и оптимизации, в частности, для решения задач линейного программирования или решения дифференциальных уравнений путем построения динамических имитационных моделей «зацикливанием» функциональных связей между зависимыми переменными. Контрольные вопросы 1. В чем отличие логической и макетной структур документов? 2. Приведите примеры разметки текстов. 3. Какова структура документа в SGML? 4. Что такое DTD? 5. Что такое логические и физические стили? 6. Охарактеризуйте возможности и назначение языка XML. 7. Перечислите основные синтаксические единицы XML. 8. Назовите основные компоненты семейства XML-технологии. 9. Перечислите функции текстовых редакторов. 10. Охарактеризуйте возможности интерфейса текстового редактора. 11. Перечислите параметры документа в целом и опишите методы их задания. 12. Какова структура рабочего листа табличного процессора? 13. Охарактеризуйте возможности интерфейса табличного процессора. 14. Опишите возможности Мастера функций. 15. Перечислите основные типы диаграмм. 72
Глава 3 МУЛЬТИМЕДИЙНЫЕ ТЕХНОЛОГИИ Мультимедиа — совокупность программно-аппаратных средств, реализующих интегрированную обработку и представление информации в символьном, звуковом и зрительном виде. Мультимедиа представляет собой объединение нескольких способов подачи информации — текст, неподвижные изображения (рисунки и фотографии), движущиеся изображения (мультипликация и видео) и звук (цифровой и MIDI) в интерактивный продукт. Появление систем мультимедиа, безусловно, производит большие изменения в таких областях, как образование, компьютерный тренинг, во многих сферах профессиональной деятельности, науки, искусства, в компьютерных играх и т. д. Поскольку технические средства мультимедиа и их характеристики более подробно описываются, например, в [25], здесь мы ограничимся рассмотрением некоторых методов представления и обработки информации в таких системах. 3.1. Обработка аудиоинформации В то время как даже в нецифровых технологиях фото и видео в принципе могут быть найдены элементы дискретности (в первом случае зерна пленки и фоточувствительные ячейки иконоскопа или матрица ПЗС, во втором — то же плюс разбиение изображения на строки), звуковой сигнал в своей основе является чисто аналоговым (если не вдаваться в такие тонкости, как магнитные домены в чувствительном слое при записи на ленту). Поэтому целесообразно здесь сказать несколько слов о преобразовании звука (аналог – код и обратно). Аналого-цифровое преобразование Аналого-цифровое (дискретное) преобразование (АЦП) — (ADC — analog-to-digital conversion) — заключается в формировании последовательностей n – разрядных двоичных слов, представляющих с заданной точностью аналоговые сигналы. В необходимых случаях осуществляется обратное — дискретно-аналоговое (цифроаналоговое преобразование — ЦАП, DAС). Более чем тридцатилетнее развитие теории и практики ЭВМ приводит к вытеснению (в том числе и на бытовом уровне) аналоговых устройств и сигналов цифровыми. Наиболее популярным примером является несомненно аудиокомпакт-диск (digital audio CD) [25]. В этом случае звуковой сигнал (рис. 3.1) сначала преобразуется в дискретную аппроксимацию («многоуровневый ступенчатый сигнал»), при этом происходит квантование по времени, которое заключается в измерении (sampling) в дискретные моменты необходимого параметра аналогового сигнала. При квантовании по амплитуде каждая ступенька представляется последовательностью бинарных цифровых сигналов. Принятый в настоящее время стандарт CD использует так называемый «16-разрядный звук с частотой сканирования 44 кГц». Для рис. 3.1 в переводе на нормальный язык это означает, что «длина ступеньки» (τ) 1 / 44 100 с, а «высота ступеньки» (δ) составляет 1/65 536 максимальной громкости сигнала (поскольку 216 = 65 536). При этом частотный диапазон воспроизведения составляет 0—22 кГц, а динамический диапазон — 96 децибел (что 73
составляет совершенно недостижимую для магнитной или механической звукозаписи характеристику качества). Необходимо заметить что различные звуковые карты могут обеспечить 8- или 16-битные выборки, 8-битные карты позволяют закодировать 256 различных уровней дискретизации звукового сигнала, соответственно 16-битные — 65 536 уровней. Количество выборок в секунду, т. е. частота дискретизации аналогового звукового сигнала, также может принимать различные значения: 5,5, 11, 22 и 44 кГц. Таким образом, качество звука в дискретной форме может быть очень плохим (качество радиотрансляции) при 8 битах и 5,5 кГц и очень высоким (качество аудиоСD) при 16 битах и 44 кГц. Поскольку компакт-диск — стереосистема, необходимо записывать два 16-разрядных слова каждый 44 100 раз в секунду. Это удается в пределах 176,4 Кбайт/с, 10,58 Мбайт/мин или 635 Мбайт/ч. Самый распространенный формат файла цифровой звукозаписи на ПК — WAV. Для записи звука к звуковой плате может быть подключен микрофон или устройство воспроизведения звука (магнитофон, CD-плейер). Для воспроизведения звука к ее выходу могут быть подключены акустические колонки или наушники, а также любая акустическая система (магнитофон, музыкальный центр и т. д.). Запись и редактирование аудиоматериалов требует большое пространство жесткого диска — при качестве компакт-диска звучание 10 мин потребует более чем 100 Мбайт. Чем быстрее диск и подсистема ввода-вывода, тем легче работать с такими большими файлами. Современные жесткие диски и PCI-контроллеры способны к поддержке передачи не менее 4 Мбайт/с. Необходимы гарантии, чтобы не было никаких прерываний в аудио-потоке. Многие НЖМД делают прерывание, чтобы выполнить тепловую перекалибровку, которое может привести к короткой, но нежелательной паузе в звуке. Некоторые дисководы AV специально проектируются без тепловой перекалибровки, таким образом устраняя этот эффект. Звуковые платы Звуковая плата ПК содержит несколько аппаратных систем, связанных с производством и сбором аудиоданных, две основные e аудиоподсистемы, предназначенные для цифрового «аудио-захвата», синтеза и воспроизведения музыки (рис. 3.2). Исторически подсистема синтеза и воспроизведения музыки генерирует звуковые волны одним из двух способов: • через внутренний синтезатор (например, ЧМ-синтезатор); • проигрывая оцифрованный (sampled) звук. Секция цифровой звукозаписи звуковой платы состоит из пары 16-разрядных преобразователей — ЦАП и АЦП и содержит программируемый генератор частоты выборки, синхронизирующий преобразователи и управляемый от ЦП. Компьютер передает оцифрованные звуковые данные к преобразователям или обратно. Частота преобразования обычно кратна (или составляет часть от) 44,1 кГц. Большинство плат использует один или более каналов прямого доступа к памяти, некоторые платы также обеспечивают прямое цифровое подключение S/PDIF (или 74
SPDIF). Кабель передачи SPDIF (Sony/Philips Digital InterFace — Цифровой Интерфейс Sony/Philips) может быть оформлен в двух видах: коаксиальный и оптический. Входы и выходы коаксиального SPDIF выполнены на разъемах типа RCA. Оптический SPDIF использует для передачи данных оптический кабель, входы и выходы которого выполнены на разъемах типа Toslink. Генератор звука, установленный на плате, использует процессор цифровых сигналов (Digital Signal Processor — DSP), который проигрывает требуемые музыкальные ноты, объединяя их считывание из различных областей звуковой таблицы с различными скоростями, чтобы получить требуемую высоту тона. Максимальное количество доступных нот связано с мощностью DSP-процессора и называется полифонией платы. DSP-процессоры используют сложные алгоритмы, чтобы создать эффекты наподобие реверберации, хорового звучания и запаздывания. Реверберация создает впечатление, что инструменты играют в больших концертных залах. Хор используется, чтобы создать впечатление, что несколько инструментов играют совместно, тогда как фактически есть только один. Добавление запаздывания к партии гитары, например, может дать эффект пространства и стереозвучания. Частотная модуляция. Первой широко распространенной технологией, которая используется в звуковых платах, была частотная модуляция (ЧМ, Frequency Modulation — FM), разработанная в начале 1970-х гг. Дж. Чоунингом (Стэнфордский университет). Синтез с использованием частотной модуляции (FM-synthesis) основывается на последовательном и параллельном подключении генераторов простых сигналов и их взаимомодуляции. Схема соединения генераторов и параметры каждого сигнала (частота, амплитуда и закон их изменения во времени) определяют тембр звучания, а количество генераторов степень тонкости управления ими определяет предельное количество синтезируемых тембров. Данный метод очень удобен с точки зрения дешевизны реализации, но при этом требует сложного программирования и тонкой настройки. Использовался в большинстве звуковых PC-карт в виде стандартных GM-устройств, а также активно популяризировался фирмой Yamaha и ее модельным рядом синтезаторов GX. Каждый голос ЧМ-синтезатора требует минимум двух генераторов сигнала, обычно называемых «операторами». Различные конструкции ЧМ-синтезатора имеют различные степени управления параметрами оператора. Сложные системы ЧМ могут использовать 4 или 6 операторов на каждый голос, и операторы могут иметь корректируемые параметры, которые позволяют настроить скорости нарастания и угасания сигнала. Yamaha была первой компанией, которая вложила капитал в исследования по теории Чоунинга, что привело к разработке легендарного синтезатора DX7. Специалисты Yamaha скоро поняли, что смешивание более широкого диапазона несущих и модуляторов позволяет создать более сложные тембры, приводя к более реалистическим звучащим инструментам. Аппаратные средства их синтезатора OPL3 — фактический стандарт для игровых плат, использует параметры, загруженные программным Драйвером, чтобы управлять каскадными генераторами ЧМ, которые создают аналог акустических и электронных музыкальных инструментов. Хотя системы ЧМ были осуществлены в аналоговом исполнении на ранних клавиатурных синтезаторах, в дальнейшем выполнение синтеза FM было сделано в цифровой форме. Методы синтеза FM очень полезны для того, чтобы создать выразительные новые звуки. Однако если цель синтезирующей системы состоит в том, чтобы воспроизвести звук некоторого существующего инструмента, это лучше делать в цифровой форме на основе выборок сигналов, как при синтезе с использованием звуковых таблиц (WaveTable Synthesis). 75
Табличный синтез (WaveTable synthesis или PCM-synthesis). Здесь используются выборки звуков реальных инструментов — небольших сэмплированных «кусочков» звуковой волны, определенный набор которых позволяет создать звучание инструмента, смоделировать интересные звуки. Активно используется в PPG, Waldorf, Korg DW-8000, Ensoniq ESQ-1 и ряде других синтезаторов. Выборка — цифровое представление формы звука, произведенного инструментом. Платы, использующие ISA, обычно сохраняют выборки в ROM, хотя более новые PCl-изделия используют основную системную оперативную память ПК, которая загружается при запуске ОС (например, Windows) и может включить новые звуки. В то время как все звуковые платы ЧМ звучат аналогично, платы звуковых таблиц значительно отличаются по качеству. Качество инструментов определено несколькими факторами: • качество первоначальной записи; • частота, на которой выборки были записаны; • количество выборок, использованных для каждого инструмента; • методы сжатия, использованные для сохранения выборки. Большинство инструментальных выборок записаны в стандарте 16 бит и 44,1 кГц, но многие изготовители сжимают данные так, чтобы больше выборок или инструментов можно было записать в ограниченный объем памяти. Однако сжатие часто приводит к потере динамического диапазона или качества. Когда аудиокассета воспроизводится слишком быстро или слишком медленно, ее высота звучания меняется, и это справедливо также для цифровой звукозаписи. Проигрывание выборки на более высокой скорости, чем ее оригинал, приводит к более высокому воспроизводимому звуку, позволяя инструментам исполнять более чем несколько октав. Однако если некоторые тембры воспроизводятся быстро, они звучат слишком слабо и тонко; аналогично, когда выборка проигрывается слишком медленно, она звучит уныло и неестественно. Чтобы преодолеть эти эффекты, изготовители разбивают клавиатуру на несколько областей и применяют различные выборки звуков инструментов в каждой из них. Каждый инструмент звучит с различным тембром в зависимости от стиля игры. Например, при мягкой игре на фортепьяно, не слышен звук молотков, бьющих по струнам. При более интенсивной игре мало того, что этот звук становится более очевидным, но можно заметить также и изменения тона. Для каждого инструмента должны быть записаны много выборок и их разновидностей, чтобы синтезатор точно воспроизвел соответствующий диапазон звука, а это неизбежно требует большего количества памяти. Типичная звуковая плата может содержать до 700 инструментальных выборок в пределах ROM 4 Мбайт. Точное воспроизведение фортепьяно соло, однако, требует от 6 до 10 Мбайт данных, вот почему нет никакого сравнения между синтезируемым и реальным звуком. Обновление звуковой таблицы не всегда означает необходимость покупать новую звуковую плату. Большинство 16-разрядных звуковых плат имеет разъем, который может соединиться с дополнительной платой звуковой таблицы (daughterboard). Качество звучания инструментов, которые такие платы обеспечивают, значительно отличается, и это обычно зависит от того, каков объем памяти расположен на плате. Большинство плат содержит между 1 и 4 Мбайт выборок, и предлагает целый ряд цифровых звуковых эффектов. Другие методы звукового синтеза. Аддитивный или суммирующий синтез (additive synthesis). Данный метод прекрасно иллюстрируют первые модели от Hammond, которые были основаны на принципе построения звучания реальных органов. В его основе лежит следующая идея — создание 76
сложных гармонически насыщенных звуков из простых изменяющихся синусоидальных волн, различных по амплитуде и/или частоте. Вычитающий синтез (subtractive synthesis). Данный метод противоположен предыдущему. В качестве исходного берется тембрально богатый, насыщенный гармониками звук, а потом в результате сложной фильтрации из него формируется определенный тембр с характерной тоновой окраской. Direct Draw. В ряде синтезаторов используются осцилляторы, генерирующие звуковые волны со стандартными формами (синусоида, прямоугольная, пилообразная и т. п.). В варианте Uirect Draw пользователь может самостоятельно рисовать любые Формы. Гранулированный синтез (Granular synthesis). Является частным случаем табличноволнового синтеза. Звук формируется из коротких сэмплированных фрагментов звуковой волны. Результате взаимодействия частоты их повторения и частотных составляющих сэмплированной звуковой формы получается тембрально сложный монотонный звук, который впоследствии можно обрабатывать методами вычитающего синтезирования. Одна из первых реализаций подобного была в программе Ross Bencina AudioMulch. Сэмплинг (Sample playback). Данный метод базируется на использовании сэмплированных (записанных) инструментов и воспроизведении их в режиме обычного проигрывателя. Небольшие звуковые фрагменты, из которых складывается звучание инструмента, загружаются в память (ROM или RAM) и затем воспроизводятся. Ресинтезированный PCM (Resynthesized (RS) — PCM). Этот метод синтеза был введен фирмой Roland и основан на анализе сэмплированного звука и его последующего воссоздания аддитивным методом синтеза. Линейно-арифметический синтез (Linear/ Arithmetic (L/A) synthesis). Этот метод также был введен фирмой Roland в конце 80-х гг., начиная с модели D-50. За основу концепции L/A synthesis было взято смешивание небольшого фрагмента сэмпла «живого» инструмента (обычно атаки) с синтезированной волновой формой. Этот метод позволяет дать натуральную звуковую окраску, близкую к реальному звучанию, при этом получается выигрыш в меньшей загрузке аппаратных вычислительных мощностей. Передовое интегрирование (Advanced Integrated synthesis). Данный метод был впервые представлен в модели Korg M-1. Он использует сэмплированную атаку и другие волновые формы, которые впоследствии обрабатываются методами вычитающего синтеза, при этом для получения качественно новых звуков дополнительно могут использоваться сложные эффект – процессоры. Синтез переменной архитектуры (VAST — Variable Architecture Synthesis Technology). Разновидность DSP-синтеза, основанная на комбинировании мощных вычислений по формированию пэтчей, включая сэмплированные звуки, добавление сложных эффектов и открытую архитектуру. Z-Plane synthesis. Данный метод синтезирования является уникальной разработкой и впервые был представлен в звуковом модуле E-mu Systems Morpheus. Его суть состоит в следующем — берутся две волновые формы разных инструментов и одна промежуточная для плавного перетекания от первой ко второй. Синтез физического моделирования (Physical deling synthesis). За основу данного метода берется сложная математическая модель, которая полностью описывает формирование звука в инструменте. Впервые этот вид синтезирования был представлен в модельном ряде синтезаторов Yamaha VL-1 и VL-7 а теперь используется повсеместно, хотя до полноценного математического повторения реальных физических процессов еще далеко. Синтез по математической функции (Mathematical function synthesis). Также частный случай физического моделирования, с помощью которого можно вкладывать математические функции, объединять их в функциональные блоки, а из них создавать математические алгоритмические модели. Вернее сказать, что этот метод является одним 77
из простейших разделов физического моделирования. Он хорошо подходит для эмуляции аналоговых синтезаторов. Спектральный синтез (Spectral synthesis). Это даже не метод, а скорее способ создания сложных гармонических звуков. За основу их построения берется обыкновенная спектрограмма (графическое представление зависимости частоты от амплитуды). Плата SoundBlaste. В 1998 г. Creative Technology был выпущен удачный образец звуковой платы SoundBlaster Live!, ставший в дальнейшем стандартом де-факто. Версия Platinum 5.1 карты Creative SoundBlaster Live!, которая появилась к концу 2000 г., имела следующие гнезда и соединители (рис. 3.2): • аналогово-цифровой выход — либо сжатый сигнал в формате Dolby AC-3 SPDIF с 6 каналами для подключения внешних цифровых устройств или динамиков цифровых систем, либо аналоговая система громкоговорителей 5.1; • линейный вход — соединяется с внешним устройством типа кассетного, цифрового магнитофона, плейера и пр.; микрофонное гнездо — соединяется с внешним микрофоном для ввода голоса; • линейный выход — соединяется с динамиками или внешним усилителем для аудиовывода или наушниками; • соединитель джойстика/MIDI — соединяется с джойстиком или устройством MIDI; и может быть настроен так, чтобы соединяться с обоими одновременно; • CD/SPDIF-соединитель — соединяется с выводом SPDIF, расположенным на дисководе DVD или CD-ROM; • дополнительный аудиовход — соединяется с внутренними аудиоисточниками типа тюнера, MPEG или других подобных плат; • соединитель аудиоСD — соединяется с аналоговым аудио-выводом на CD-ROM или DVD-ROM, используя кабель аудиоСD; • соединитель автоответчика — обеспечивает монофоническую связь со стандартным голосовым модемом и передает сигналы микрофона к модему. Аудиорасширение (цифровой ввод-вывод) — соединяется с цифровой платой вводавывода (может располагаться в свободной нише накопителя на 5,25", выходящей на переднюю панель компьютера), иногда называемой Live!Drive. Обеспечивает следующие соединения: • гнездо RCA SPDIF — соединяется с устройствами цифровой звукозаписи типа цифровой ленты и мини-дисков; • гнездо наушников — соединяется с парой высококачественных наушников; вывод динамика отключается; 78
• регулировка уровня наушников — управляет громкостью сигнала наушников; • второй вход (линейный/микрофонный) — соединяется с высококачественным динамическим микрофоном или аудиоисточником (электрогитара, цифровое аудио или мини-диск); • переключатель второго входа (линейный/микрофон); • соединитель MIDI — соединяется с устройствами MIDI через кабель Mini DIN-Standard DIN; • инфракрасный порт (сенсор) — позволяет организовать дистанционное управление ПК; • вспомогательные гнезда RCA — соединяются с оборудованием бытовой электроники типа видеомагнитофона, телевизора или проигрывателя компакт-дисков; • оптический вход/выход SPDIF — соединяется с устройствами цифровой звукозаписи наподобие цифровой ленты или мини-дисков. Другие изготовители звуковых плат быстро восприняли идею относительно отдельного модуля разъемов ввода-вывода. Было разработано множество разновидностей — одни были размещены в отсеке для накопителей подобно Live!Drive, другие были внешними модулями, некоторые из которых были разработаны, чтобы действовать как концентраторы USB. Современные аудиокарты поддерживают также ряд стандартных возможностей моделирования, генерации и обработки звукового сигнала: • DirectX — предложенная Microsoft система команд управления позиционированием виртуального звукового источника (модификации — DirectX 3, 5, 6); • A3D — разработанный в 1997 г. NASA (National Aeronautics and Space Administration) и Aureal для использования в летных тренажерах стандарт генерации таких эффектов, как густой туман или подводные звуки. A3D2 позволяет моделировать конфигурацию помещения, в котором раздаются и распространяются звуки, вычисляя до 60 звуковых отражений (как в ангаре, так и в колодце); • ЕАХ (Environmental Audio Extensions) — предложенная Creative Technology в 1998 г. модель добавления реверберации в A3D с учетом звуковых препятствий и поглощения звуков; • MIDI (Musical Instrument Digital Interface) — протокол, разработанный в 1980-х гг., в соответствии с которым команды передаются по стандартному интерфейсу. В Windows MIDI-файлы могут воспроизводиться специальной программой-проигрывателем MIDISequcncer. В этой области синтеза звука также имеются свои стандарты. Основным является стандарт МТ-32, разработанный фирмой Roland и названный в соответствии с одноименным модулем генерации звуков. Этот стандарт также применяется в звуковых картах LAPC и определяет основные средства для управления расположением инструментов, голосов, а также для деления на инструментальные группы (клавишные, ударные и т. д.) (рис. 3.3). 79
MIDI Цифровой интерфейс музыкальных инструментов (Musical Instrument Digital Interface или MIDI) появился в начале 1980-х гг. и был разработан, чтобы обеспечить стандартный интерфейс между пультами управления музыкой (наподобие клавиатур) и звуковыми генераторами (типа синтезаторов и «роботов-барабанщиков»). Кроме того, он первоначально был предназначен для работы через последовательное подключение, аналогичное стыку RS-232 [24, 25], и включал в себя как стандарт передачи информации, так и протокол электрических сигналов. На уровне электросигналов MIDI представляет полудуплексную токовую петлю (5 мА), которая пропускает последовательный поток данных по 8 битов на скорости передачи 31,25 килобод. На уровне передачи информации MIDI представляет собой что-то вроде языка для того, чтобы описать музыкальные такты и эффекты в реальном масштабе времени. Он обеспечивает соединение более чем по 16 каналам, позволяя подключить до 16 инструментов MIDI к одному интерфейсу. Некоторые MIDI-интерфейсы имеют 16 выходов, позволяя одновременно обращаться к 256 инструментам. Интерфейс MIDI передает не звук, а команды, которые выполняет устройство-приемник. Инструменты соединяются стандартными разъемами 5-DIN. Например, если на клавиатуре нажата определенная клавиша, то передается команда Note On (включить ноту), которая заставляет принимающее устройство проиграть некоторую музыкальную ноту. Команда состоит из трех элементов: • байт состояния (Status Byte); • номер ноты (Note Number); • значение скорости нажатия клавиши (Velocity Value). Байт состояния содержит информацию о типе команды (в этом случае — «включить ноту»), а также на какой канал она должна быть послана (1 —16). Номер ноты описывает клавишу, которая была нажата (скажем, «ре» Большой Октавы). Значение скорости указывает силу, с которой эта клавиша была нажата. Принимающий инструмент будет исполнять эту ноту, пока не придет команда Note off (отключить ноту), которая содержит аналогичные данные. В зависимости от того, какой именно звук проигрывается, синтезаторы по-разному обрабатывают данные Velocity Value. Звук фортепьяно, например, становится громче, если клавиша нажата более сильно, а также изменяются тональные свойства. 80
Профессиональные синтезаторы часто вводят дополнительные тембры, чтобы подражать звуку молоточков, ударяющих по струнам. Число голосов (MIDI-каналов) или полифония звуковой платы определяет максимальное количество элементарных звуков, которые плата может воспроизвести одновременно. Это число иногда указывают в названии звуковой карты, например-SB 16, AWE 64, SB PCI 64, SB PCI 128 и т. д. Существует несколько разновидностей стандарта MIDI — 6М, GS и т. д. Практически все современные звуковые адаптеры совместимы со стандартом GM (General MIDI — единый или общий MIDI). Постоянные контроллеры Continuous Controllers (CC) используются, чтобы управлять параметрами настройки: уровень звучания, эффекты, панорамирование (позиционирование стереозвука) и др. Многие устройства MIDI позволяют установить внутренние параметры для СС (до 128). На этой базе Ассоциация Изготовителей MIDI (MIDI Manufacturers Association — MMA) разработала спецификацию для синтезаторов, известную как General MIDI. MIDI секвенсоры. Первые приложения MIDI были рассчитаны на то, чтобы при игре на одной клавиатуре сочетать звуки, произведенные несколькими синтезаторами. Сегодня тем не менее это используется главным образом в секвенсорах, хотя MIDI также применяется и в системах театрального освещения и сопровождения как удобный способ управления множеством прожекторов и кино (видео) проекторов. По существу, секвенсор (sequencer) представляет собой цифровой магнитофон, который записывает и воспроизводит команды MIDI, а не аудиосигналы. Первые секвенсоры имели небольшую память и были способны к запоминанию только от 1 до 2 тыс. музыкальных тактов. С развитием секвенсоров совершенствовались и системы MIDI. He ограничиваясь только проигрыванием нот в MIDI, изготовители разработали способы управления индивидуальными звуковыми параметрами и встроенными цифровыми эффектами, используя постоянные контроллеры (СС). Большинство программсеквенсоров — приложения на основе ПК, и имеют возможности корректировать эти параметры, используя графические слайдеры. Использование секвенсоров позволяет удобно редактировать музыкальные фразы и синхронизировать их с фильмом. При этом обеспечиваются экономичные возможности для разработчиков мультимедиа, предоставляющие слушателям высококачественный звук. Для записи оцифрованной музыки требуется не менее 10 Мбайт/мин, в то время как данные MIDI требуют только малую долю от этого. Сэмплер — синтезатор, у которого для хранения образцов звучания (сэмплов) вместо постоянной памяти (ROM) используется оперативная память большого объема (RAM). Пользователь перед каждым сеансом работы загружает в память уже готовые звуки, или записывает новые звуки точно так же, как на обычный магнитофон. Впоследствии все эти сэмплы воспроизводятся с разной высотой под управлением клавиатуры или секвенсора. Для изменения высоты тона сэмплов используются такие же алгоритмы, как и в программах типа Sound Forge, только они действуют в реальном времени. При формировании звуков в сэмплерах не используются алгоритмы компрессии, которые, например, позволяют «упаковать» в 4 Мбайт ROM 250—400 звуков разного тембра, как это происходит в синтезаторах. Кроме этого, синтезаторы ограничены тем набором звуков, который находится в ROM, а для сэмплеров выпускается огромное количество библиотек звуков на компакт-дисках, поэтому можно, имея всего лишь одно устройство, практически безгранично расширять его возможности. Помимо всех перечисленных достоинств, сэмплеры имеют одну очень важную черту — пользователь может создавать звук самостоятельно от первого до последнего шага. 81
В сэмплере каждый звук создается в нескольких источниках, сигналы которых смешиваются между собой. Каждый такой источник принято называть леером (от англ. layer — слой). Главным элементом любого леера является генератор — именно в нем образуется звук при воспроизведении сэмпла. Иногда генератор сэмплера называют осциллятором. Сэмплы находятся в оперативной памяти устройства и извлекаются оттуда при поступлении соответствующей команды от программы управления. Генератор воспроизводит сэмпл с разной высотой, в зависимости от поступающей в него команды MIDI Note (MIDI нота). Причем, сэмпл может воспроизводиться как линейно, т. е. от чала до конца, так и зацикливаться. В последнем случае инструмент звучит ровно столько, сколько времени удерживается в Жатом состоянии клавиша на MIDI-клавиатуре. Помимо изменения высоты тона, генератор изменяет уровень воспроизводимого сэмпла в зависимости от сообщения Velocity (скорость нажатия клавиши). В сэмплере с помощью генератора низкой частоты (LFO — Low Frequency Oscillator) можно менять высоту воспроизведения сэмпла с некоторой периодичностью. Но в отличие от программного FM-синтезатора, частотой колебаний LFO сэмплера можно управлять в реальном времени с помощью MIDI-клавиатуры. Амплитудой колебаний LFO можно управлять с помощью генератора огибающей (Envelope Generator), создающего произвольную огибающую. Этот метод называется амплитудной модуляцией (AM — Amplitude Modulation). Но в любом сэмплере с помощью амплитудной модуляции можно управлять не только параметрами генератора низкой частоты, но и параметрами воспроизведения сэмпла. Например, если указано «время линейной атаки» 1 с, то после нажатия клавиши громкость сэмпла будет линейно возрастать от минимальной громкости к максимальной в течение 1 секунды. Если указывается время затухания (Release) 0,5 с, то после отпускания клавиши сэмпл будет звучать указанное время, причем его громкость будет линейно уменьшаться. Естественно, можно «нарисовать» и более сложные огибающие. К сэмплу, который воспроизводится генератором с разной высотой и уровнем в зависимости от поступающих с клавиатуры команд MIDI Note (MIDI нота) и Velocity (Скорость нажатия клавиш), можно применить два вида модуляции: частотную и амплитудную. В первом случае будет периодически меняться высота воспроизводимого сэмпла относительно взятой на клавиатуре ноты, а во втором — его относительный уровень в течение времени звучания. Эквалайзер. Для управления тембром звука используются эквалайзеры — программноаппаратные средства, способные понижать или повышать уровень разных частотных полос. При этом понижается или повышается относительный уровень разных гармоник сигнала, в результате чего мы в акустических системах слышим изменение тембра звука. Известно два основных типа эквалайзеров — графические и параметрические. Первые отличаются наличием фиксированного количества полос: их обычно бывает 15 (можно менять уровень каждой 2/3 октавы звукового диапазона) или 30 (можно менять уровень каждой 1/3 октавы звукового диапазона). На любой из полос уровень сигнала может опускаться или подниматься на Ю—15 дБ (см. рис. 3.7 — графический 10-полосный эквалайзер Winamp). Параметрические эквалайзеры, в отличие от графических, могут настраиваться на любую частотную полосу любой ширины и поднимать/опускать ее уровень. Единый (общий) стандарт MIDI (General MIDI) Ввод стандарта MIDI позволял музыкантам создавать аранжировки, используя любые инструменты MIDI, имевшиеся в наличии. Но когда созданные файлы проигрывались на другом синтезаторе, не было никакой гарантии, что звучание будет тем же самым, потому 82
что различные изготовители могли назначить инструментам различные номера программ, так что фортепьяно, записанное на одном синтезаторе, может прозвучать как труба на другом и пр. В сентябре 1991 г. Ассоциация изготовителей MIDI (MMA) и Японский комитет стандартов MIDI (JMSC) положили начало новому этапу в технологии MIDI, приняв стандарт «Общая Система MIDI, уровень 1» (General MIDI System Level 1 — GM или GM1). Спецификация разработана, чтобы обеспечить необходимый уровень совместимости функционирования инструментов MIDI. GM1. Спецификация налагает ряд требований на совместимые звукогенерирующие устройства (клавиатура, звуковой модуль, звуковая плата, программные продукты), включая: • минимум 24 канала («голоса») должно быть доступно одновременно для звуков мелодии и ударных инструментов, или 16 каналов для мелодии плюс 8 для ударных; • поддерживаются все 16 каналов MIDI, каждый из которых способен воспроизвести различное число голосов (полифония) или различные инструменты (звук, аккорд, тембр); • минимум 16 различных тембров может выполняться одновременно, воспроизводя различные инструменты. Поддерживается как минимум 128 предварительно настроенных инструментов (номера MIDI-программ), соответствующих Инструментальной карте GM1 (GM1 Instrument Patch Map), и 47 звуков ударных, которые соответствуют Карте ударных GM1 (GM1 Percussion Key Map). Мелодический набор состоит из 16 групп инструментов по 8 в каждой группе (фортепиано, органы, струнные, духовые гитары, и т. п.). За всеми инструментами были закреплены конкретные номера, поэтому мелодия, записанная в GM, будет похоже звучать на разных GM-синтезаторах. GS (General Synthesizer) — стандартный набор тембров фирмы Roland, включает дополнительно к General MIDI новые наборы мелодических и ударных инструментов, различные эффекты (скрип двери, звук мотора, крики и т. п.), а также дополнительные способы управления инструментами через MIDI-контроллеры. Многие звуковые карты поддерживают GM по умолчанию, a GS — в порядке расширения. Стандарт XG (Extended General) фирмы Yamaha включает несколько сотен мелодических и ударных инструментов, применяемых профессиональными музыкантами. XG содержит значительно более развитые средства управления синтезом, чем GM и GS. Любой MIDIканал может быть независимо от других установлен в режим мелодических или ударных инструментов. Использование стандарта XG позволяет создавать переносимые MIDIфайлы со звучанием, приближенным к профессиональному. 3.2. Форматы записи-воспроизведения аудиосигналов Формат МРЗ МРЗ — сокращение от MPEG Lауег3. Это один из основных цифровых форматов хранения аудио, разработанный Fraunhofer IIS и THOMSON, позднее утвержденный как часть стандартов сжатого видео и аудио MPEG1 и MPEG2. Данная схема является наиболее сложной схемой семейства MPEG Layer 1/2/3. Она требует наибольших затрат машинного времени для кодирования по сравнению с двумя другими и обеспечивает более высокое качество кодирования. Используется главным образом для передачи аудио в реальном времени по сетевым каналам и для кодирования Audio CD. Высокая степень компактности МРЗ при сохранении качества звучания достигается с помощью дополнительного квантования по установленной схеме, позволяющей минимизировать потери качества. Степень сжатия и, соответственно, объем дополнительного квантования, определяются не форматом, а самим пользователем при задании параметров кодирования. Ширина потока, 83
или битрейт (bitrate) может изменяться от наибольшего для МРЗ (320 кбит/с) до 96 кбит/с и даже ниже. Термин битрейт обозначает общую ширину потока, независимо от того, монофонический или стереофонический сигнал он содержит. При испытаниях опытные эксперты, специализирующиеся на субъективной оценке качественности звучания, не смогли различить звучание оригинального трека на CD и закодированного в МРЗ с коэффициентом сжатия 6 : 1, т. е. с битрейтом в 256 кбит/с. Более низкие битрейты, несмотря на их популярность, не дают возможности обеспечить надлежащее качество кодирования. Объективно и 256 кбит/с не дает возможности осуществить полностью обратимое кодирование, то же самое можно сказать и про наивысший битрейт — 320 кбит/с, но отличия от CD Audio, по которому кодируется тестовый МРЗ, сравнимы с отличиями самого CD Audio от исходного высококачественного сигнала, из которого он был получен путем оцифровки. Поэтому самое большое на сегодня преимущество МРЗ перед другими подобными форматами состоит в том, что ни про один другой формат нельзя пока уверенно сказать, что он полностью гарантирует устойчивое сохранение качества звучания на достаточно высоких битрейтах, или что для него написано такое же множество удобного программного обеспечения, как для МРЗ. Файл формата МРЗ (обычно используется расширение * . mp3) может также содержать информацию о файле непосредственно в заголовке: имя исполнителя, графику (альбом диска), KL для дальнейшей информации, текст песни и т. д. Процесс кодирования. Перед кодированием исходный сигнал разбивается на участки, называемые фреймами, каждый из которых кодируется отдельно и помещается в конечный файл независимо от других. Последовательность воспроизведения определяется порядком Расположения фреймов. Каждый фрейм может кодироваться с разными параметрами. Информация о них содержится в заголовке фрейма. Кодирование начинается с того, что исходный сигнал с помощью фильтров разделяется на несколько, представляющих отдельные частотные диапазоны, сумма которых эквивалентна исходному сигналу. Для каждого диапазона определяется величина маскирующего эффекта, создаваемого сигналами соседних диапазонов и сигналом предыдущего фрейма. Если она превышает мощность сигнала интересующего диапазона или мощность сигнала в нем оказывается ниже определенного опытным путем порога слышимости, то для данного фрейма данный диапазон сигнала не кодируется. Для оставшихся данных каждого диапазона определяется, сколькими битами на сэмпл можно пожертвовать, чтобы потери от дополнительного квантования были ниже величины маскирующего эффекта. При этом учитывается, что потеря одного бита ведет к внесению шума квантования величиной порядка 6дБ. После завершения работы психоакустической модели формируется итоговый поток, который дополнительно кодируется по Хаффману, на этом кодирование завершается. Кроме того, кодирование стереосигнала осуществляется четырьмя различными методами: • Dual Channel — каждый канал получает ровно половину потока и кодируется отдельно, как моносигнал. Рекомендуется главным образом в случаях, когда разные каналы содержат принципиально разный сигнал — скажем, текст на различных языках; • Stereo — каждый канал кодируется отдельно, но кодер может принять решение отдать одному каналу больше места, чем другому; • Joint Stereo (MS Stereo) — стереосигнал раскладывается на средний между каналами и разностный. При этом второй кодируется с меньшим битрейтом. Это позволяет несколько увеличить качество кодирования в обычной ситуации, когда 84
каналы по фазе совпадают. Но приводит и к резкому его ухудшению, если кодируются сигналы, по фазе не совпадающие; • Joint Stereo (MS/IS Stereo) — вводит еще один метод упрощения стереосигнала, повышающий качество кодирования на особо низких битрейтах. Состоит в том, что для некоторых частотных диапазонов оставляется уже даже не разностный сигнал, а только отношение мощностей сигнала в разных каналах. Очевидно, для кодирования этой информации употребляется еще меньший битрейт. MS Stereo — частный случай MS/IS Stereo, когда переменная, отвечающая за кодируемый таким образом диапазон, принимает нулевое значение. Скорости передачи. На низких битрейтах всегда срезаются мелкие, сравнительно тихие детали, наличие или отсутствие которых нередко серьезно меняет эмоциональную окраску композиции, придает или лишает ее таких эффектов, как ощущение «кристальной чистоты» звука (в той мере, в которой она присутствует в CD Audio). Кроме того, в соответствии с психоакустической моделью, высшие (более 16 кГц) частоты на низких битрейтах кодируются с очень низким приоритетом. Кроме того, имеют место разные особенности кодеров. Так, у кодеров от FhG IIS на 128 кбит/с могут оказаться «смазанными» верхние частоты, наблюдается эффект «шепелявости». Узкое место всех схем компрессии класса MPEG — участки с резкими изменениями сигнала. В случае МРЗ задержка может достигать величин порядка 160 мс, теоретический минимум — 59 мс. На высших битрейтах при последовательном применении психоакустической модели, разработанной FhG IIS, проблемы могут доставлять только ошибки, внесенные при написании кодера. Битрейты порядка 112—128 кбит/с по качеству неплохи для прямых трансляций и ознакомительного прослушивания, но отнюдь не для создания архивов музыки качества CD Audio. Любители МРЗ по-разному оценивают степень приемлемости одних и тех же битрейтов и имеют свой взгляд на то, какой именно битрейт следует считать оптимальным. Одни выбирают 128 кбит/с, другие — 160 кбит/с, третьи золотую середину: 192—256 кбит/с, некоторые — 320 кбит/с. Из этого можно сделать три вывода. Во-первых, битрейт 256 кбит/с следует считать пограничным. Во-вторых, для абсолютного большинства пользователей он действительно достаточен. В-третьих, для высокого качества следует несколько увеличить запас скорости. С Другой стороны, те же тесты определили диапазон «—192 кбит/с как в большинстве случаев вполне приемлемый я хранения аудио на компьютере, например, в компьютерных Tax, когда внимание отвлечено. Следующий после 256 кбит/с битрейт — 320 кбит/с, он же — максимальный для кодирования аудио с характеристиками CD Audio, т. е. 44,1 кГц 16 бит Stereo. В данном случае мы имеем запас в 1/4 от битрейта 256 кбит/с, и его вполне можно считать достаточным в силу имеющихся данных о степени улучшения качества кодирования при кодировании на 160 кбит/с вместо 128 кбит/с. Однако различие между качеством звука на битрейтах 128 кбит/с и 256 кбит/с / 320 кбит/с принципиально. Первый к качеству уровня CD никакого отношения не имеет, в отличие от двух последних. В Internet, как правило, можно найти только МРЗ, закодированные с битрейтом 128 кбит/с. Этот битрейт был признан также , оптимальным для использования в Internet. В XingTech был разработан кодер, использующий технику переменного битрейта (VBR), при которой разные участки трека кодируются с разным битрейтом, исходя из степени их сложности для кодирования. Другие форматы 85
WAV. Формат WAV является метаформатом для данных любого типа. Имеет стандартный заголовок и описания областей данных, которых может быть несколько, способ же кодирования аудиосигнала может быть каким угодно. Вполне могут содержаться данные, не имеющие отношения к аудио. Каждый метод кодирования, указываемый в заголовке, имеет собственный идентификатор, в соответствии с которым Windows и определяет, установлен ли кодек для работы с данным файлом, и если установлен — подключает его. Кодеки, индивидуальные для каждого подформата, регистрируются в системе при их установке, после чего становится возможным использовать WAV-файлы, содержащие аудиоданные в форматах, поддерживаемых данными кодеками. Стандарт МРЗ не определяет никакого точного стандартного математического алгоритма кодирования, его разработка целиком и полностью остается на совести разработчиков кодеров. Вместо этого он определяет общую схему процесса кодирования, а также формат закодированного фрейма. Сами последовательности фреймов могут передаваться потоком (streaming) или храниться в файлах. Часто к последовательности фреймов добавляют стандартный заголовок метааудиоформата WAV и получается то, что называют WAV-МРЗ. VQF Этот формат разработан компанией NТТ. Алгоритм кодирования широко не разглашается, но если сравнить результаты кодирования в форматах VQF и МРЗ, то можно заключить, что алгоритмы имеют очень мало общего и основаны на совершенно разных подходах к сжатию звука. Самая сильная сторона формата — степень сжатия. VQF-файл с компрессией 80 кбит/с по качеству идентичен МРЗ-файлу, записанному в 128 кбит/с, степень сжатия превосходит МРЗ более чем на 30 %. Главный недостаток алгоритма — высокое потребление системных ресурсов. WMA. В 1998 г. компания Voxware присоединилась к проекту TwinVQ и в его составе участвовала в разработке формата VQF. Через некоторое время компания отделилась от проекта и на основе разработок VQF создала новый формат, получивший название Voxware Audio Codec 4.0. Он стал первым алгоритмом сжатия, обеспечивающим качество 128 кбит/с МРЗ-файлов при цифровом потоке в 64 кбит/с. OGG Vorbis. Этот формат был опубликован летом 2000 г. В это же время появилась бетаверсия его кодера. После втрое более медлительного по сравнению с WMA процесса кодирования на выходе при 128 кбит/с получается звук, близкий к оригинальной записи. В файле OGG может содержаться до 255 каналов, т. е. можно кодировать многоканальные потоки вроде Dolby Digital. Кроме того, в OGG-файлы можно встраивать графические изображения и тексты, которые могут возникать по ходу воспроизведения. МРЗРrо. Создателем МРЗРrо является частная компания Coding Technologies. Созданная в 1997 г., компания занимается Разработкой и маркетингом кодеков на основе технологии SBR (Spectral Band Replication). У Coding Technologies два солидных стратегических партнера — Fraunhofer Institute и Thomson Multimedia. Прежде всего своим появлением она обязана возникновению потребности передачи цифровой музыки в реальном времени через Internet (Internet-радио и т. д.), а также для мобильных копьютеров и различных портативных цифровых плейеров. Ограниченная скорость передачи или малый объем памяти вынуждают использовать низкие битрейты при сжатии музыки применяя форматы МРЗ или ААС. Использование более скоростных способов связи, таких, как ISDN или xDSL, не обеспечивает постоянного потока данных из-за перегрузки сети Internet Формат МРЗ Pro в отличие от стандартного МРЗ содержит два потока, один из которых обычный Layer III-поток, а второй содержит информацию, на основе которой декодер восстанавливает самые верхние частоты. Поэтому файл, сжатый с использованием 86
МРЗРrо (имеющий расширение *.mp3), может быть воспроизведен и обычным проигрывателем, но с частотой дискретизации 22 кГц, так как плейер воспримет только первый поток. DVD-аудио. Известно, что первым оптическим носителем данных, ставшим широко доступным публике, был хорошо знакомый аудиокомпакт-диск. Компьютерной промышленности потребовалось несколько лет для того, чтобы понять, что компакт-диск является идеальной средой для того, чтобы сохранять и распределять большие количества цифровых данных, и только в 1990 гг. устройства CD-ROM стали стандартными компонентами ПК. С появлением DVD производители CD начали создавать стандарты более высококачественного воспроизведения. Среди них — аудиокомпакт-диск высшего качества (SACD или Super Audio CD), диск цифровой звукозаписи (DAD или Digital Audio Disc). Эти стандарты предполагают диски с разрешающей способностью (уровни квантования) 24 бита и частотой выборки в 96 кГц, в противоположность обычному CD с форматом 16 бит и 44,1 кГц. Кроме того, формат SACD обладает обратной совместимостью с существующими проигрывателями — факт, который может помочь в сражении за потребителя. Когда DVD появились в 1996 г., еще не был предусмотрен формат DVD-Audio и только в начале 1998 г. DVD-Форум в сотрудничестве с ключевыми производителями промышленности музыки выпустил проект такого стандарта [24, 25]. Спецификация DVD аудио VI.0 была выпущена весной 1999 г., но потребовался еще год, прежде чем вышла спецификация VI .2, в которой были добавлены защита от копирования и создание водяных знаков. Основное преимущество спецификации DVD-аудио сравнительно с DVD-видео и компакт-диском заключается в значительном увеличении качества при записи в аудиоформате РСМ (Pulse Code Modulation или импульсно-кодовая модуляция). DVD -аудио обеспечивают значительно более высокое качество РСМ -аудио, чем возможно на компакт-диске или DVD-видео. DVD-аудио РСМ может быть записан с диапазоном частот, который более чем в 4 раза шире, чем для CD, что предоставляет живость и выразительность, невозможные на компакт-диске. DVD -аудио РСМ также имеет намного больший динамический диапазон, чем это возможно на компакт-диске, — делающий громкие звуки громче, а тихие — более тихими. Таблица 3.1 сравнивает технические спецификации для РСМ на DVD-аудио и стандартном компакт-диске. 87
Вместимость двухслойного диска DVD-аудио — по крайней мере до 2 ч для полного, окружающего звука, и до 4 ч для стереозвука. Вместимость однослойного диска — вполовину ниже. Сравнительные характеристики некоторых форматов. На Рис. 3.4 приводятся амплитудно-частотные характеристики (АЧХ) аудиосигналов: • исходный звук (WAVE-файл); • результаты кодирования-декодирования каждым из кодеков: МРЗ на 128 и 192 кбит/с; МРЗРrо на 64 и 96 кбит/с; WMA на 64 и 96 кбит/с. Жанры музыки, выбранные для тестирования: Dance — современная танцевальная музыка (Gala «Keep Secret», ритмичный и богатый различными стереоэффектами фрагмент); Jazz — джаз с живыми исполнителями (Joe Cocker «Could You Be Loved», исключительно живая музыка с мощным мужским вокалом и женским бэк-вокалом, насыщенная на средних и высоких частотах); 88
Pop — поп-музыка с вокалом (Nek «Laura No Esta», итало-поп с ярко выраженным вокалом и, соответственно, богатыми средними частотами). На АЧХ, представляющих танцевальную музыку и битрейты, соответственно 128 кбит/с для МРЗ и 64 кбит/с для МРЗРrо и WMA (рис. 3.4, а), легко заметить, что на частотах до 10 кГц все кодеки выглядят практически одинаково, не считая провала на 30 Гц у МРЗ, который, правда, не будет заметен на слух. В случае джаза, где реальные инструменты звучат в сочетании с различными вокалами (рис. 3.4, б) следует отметить МРЗ/128, как обеспечивающий наиболее точный результат. Несмотря на то, что фильтрация верхнего диапазона начинается уже на 15,5 кГц, передача высоких частот до этого момента достаточно точная. В случае МРЗРrо /64 звук более богат деталями высоких частот. В случае поп-музыки (рис. 3.4, в) лидером является МРЗРrо. При рассмотрении более высоких битрейтов (рис. 3.4, г, д), заметно, что все кодеки ведут себя более предсказуемо, при этом ближе всех к форме оригинальной АЧХ графики у МРЗРrо и МРЗ, a WMA не передает ряд мелких деталей. Если говорить о поп-музыке, то теперь WMA не искажает вокал Nek и звучит очень хорошо, примерно на уровне МРЗ в 128 —160, хотя этого и не скажешь, глядя на графики АЧХ. По частотному балансу МРЗРrо 96 и МРЗ 192 идут практически на одном уровне. Вполне естественно, что увеличение потока приведет к улучшению и такой более сложной для кодирования музыки, как джаз. Программные средства записи-воспроизведения звука Большинство МРЗ-файлов производится из материала, находящегося на аудиокомпактдиске. Это — двухступенчатый процесс, первая стадия включает преобразование дорожек из формата цифровой звукозаписи CD-DA (CD-Digital audio) к формату WAV. Есть программы, которые могут произвести МРЗ непосредственно из аудио CD, но они достигают этого, все же выполняя извлечение аудио из компакт-диска как начальный шаг процесса. Задача выполняется специализированными программами, известными как CDRipper (взломщики CD). Программа читает дорожки аудиокомпакт-диска в цифровой форме и записывает их на жесткий диск как WAV-файлы. Четырехминутная дорожка (трек, фонограмма) занимает около 40—50 Мбайт формата WAV (расширение .wav), так что преобразование полного компакт-диска требует большое пространство на жестком диске. Вторая стадия в процессе заключается в конвертировании .wav-файла в формат .mрЗ. ЭТОТ шаг использует специализированное программное обеспечение и программы, которые исполняют эту задачу, известны как кодеры МРЗ. МРЗ-файлы могут создаваться, используя разнообразие норм сжатия, разрешая пользователям выбрать оптимальное соединение количества и качества. Как правило, доступны следующие варианты: • качество компакт-диска — сжатие 12:1, поток данных (битрейт) между 128 и 192 кбит/с; • почти качество компакт-диска — сжатие в пределах 18 : 1; • качество радио ЧМ — сжатие может быть 70 : 1, скорость — 64 кбит/с. МРЗ Maker. Программный продукт Magix 2004 МРЗ Maker (рис. 3.5, 3.6) реализует следующие преобразования звуковых данных: • дорожка аудиоСD — файл МРЗ; • микрофонный или линейный вход — файл МРЗ; • файл МРЗ — аудиоСD и пр. Winamp. Winamp является весьма популярным плейером, это мультимедиа плейер с поддержкой неограниченного числа форматов (рис. 3.7). При этом используются декодеры, предоставляемые производителями. В целом система напоминает работу Windows с WAV-файлами. Он является одним из самых развитых плейеров, и не только 89
МРЗ. Большинство МРЗ-файлов, доступных через Internet, закодировано в формате 44 кГц и 128 Кбит/с, который приводит к хорошему коэффициенту «качество/размер» для файла МРЗ. 90
Системы воспроизведения звукового окружения. Средства воспроизведения звукового окружения начинались со стереозаписей и УКВ ЧМ-радио. Широко использовались магнитофоны и FM-стерсо тюнеры с высококачественным двухканальным звуком. В кинотеатрах зрители могли оценить звук в формате Dolby Stereo Optical. Первые видеокассеты предполагали только монофонический звук посредственного качества, однако вскоре начали тиражироваться кассеты с двухканальным звуком. Сначала использовались просто раздельные звуковые дорожки, затем технология Hi-Fi. Лазерные диски с самого начала выпускались с двухканальным стереозвуком высокого качества. Вскоре и большинство стандартов вещательного телевидения были адаптированы для передачи видео с двухканальным звуковым сопровождением в эфире и в кабеле. Первыми на рынке появились простые декодеры Dolby Surround, которые позволяли на домашней аппаратуре выделить и прослушать третий пространственный канал — surround channel. Впоследствии был разработан более интеллектуальный декодер, Dolby Surround Pro Logic, который выделял и центральный — center channel. Получился «домашний кинотеатр – комплекс аппаратуры для высококачественного воспроизведения звука и видео с декодером Dolby Pro Logic Surround Sound (рис 3.8). Во-первых, технология Dolby Pro Logic удачно совмещает оптимальную конфигурацию пространственных каналов (R, L, С, S) с возможностями записи и передачи (два физических канала), которыми обладает практически вся бытовая аппаратура. Во-вторых, возможности и качество Dolby Pro Logic отвечают актуальным требованиям современного пользователя. И, в-третьих, используются единые стандарты на аппаратные и программные средства. Сегодня в Dolby Surround кодируется звуковое сопровождение вещательного телевидения, причем не только художественных фильмов, но музыкальных, спортивных передач и даже новостей. Dolby Surround используется и в областях, не связанных с видео, например, 91
звукозаписывающие компании Delos, RCA Victor/BMG Classic, Concord Jazz выпустили на рынок CD и аудиокассеты с музыкальными записями в Dolby. Многими разработчиками ведутся успешные эксперименты по внедрению Dolby Surround в видеоигры и другие мультимедийные приложения. Кодер Dolby Surround не предназначен для передачи четырех независимых сигналов звука, каждый из которых надо прослушивать раздельно (например, звука одной ТВ программы на разных языках). В этом случае развязка между двумя любыми кана-1ами должна была бы быть максимальной, а амплитуды и фазы сигналов могли бы быть совершенно не связаны между собой. Напротив, задача Dolby Surround — передать четыре канала звука (soundtrack), которые будут прослушиваться одновременно и при этом воссоздавать в сознании слушателя пространственную звуковую картину (soundfield). Эта картина составляется из нескольких звуковых образов (sound images) — звуков, которые слушатель воспринимает связанными со зрительными образами на экране. Звуковой образ характеризуется не только содержанием и мощностью звука, но и направлением в пространстве. На входе кодера Dolby Surround присутствуют сигналы четырех каналов. — L, С, R и S, а на выходах — два канала Lt (left total) и Rt (right total). Слово «total» (общий) означает, что каналы содержат не только «свой» сигнал (левый и правый), но и кодированные сигналы других каналов — С и S. Кодирование реализуется простыми аналоговыми методами. Сигнал, кодированный в Dolby Surround, не содержит каких-либо управляющих сигналов или инструкций для декодера. По своим электрическим характеристикам он ничем не отличается от обычного двухканального сигнала стерео, и опознать кодированный сигнал простыми аппаратными методами (например, с помощью осциллографа или анализатора спектра) невозможно. 3.3. Технологии статических изображений С 80-х гг. бурно развивается технология обработки на компьютере графической информации. Компьютерная графика широко используется в компьютерном моделировании в научных исследованиях, компьютерных тренажерах, компьютерной анимации, деловой графике, играх и т. д. Растровая и векторная информация Существуют два основных принципа формирования изображения. Первый — путем нанесения на поверхность рисунка совокупности точек разного цвета, плотности, яркости (как это и происходит в цветной или черно-белой полиграфии), второй — путем вычерчивания и заштриховывания (графика или гравюра). Оба этих подхода сохранились и в компьютерную эру, только точечное изображение получило наименование растрового (впрочем, как это и было у печатников — рис 3.9, а), рисованное — векторного (рис. 3.9, б). Кроме того, компьютеризация сама предложила ряд новых подходов к графике, например фрактальный. Фрактал — это объект, отдельные элементы которого наследуют свойства родительских структур. Фракталы позволяют детально описывать целые классы изображений с расходованием относительно малого количества памяти, однако к изображениям вне этих классов фракталы плохо применимы. Большинство устройств ввода-вывода данных в ЭВМ имеют дело с растровой информацией, хотя векторное изображение более экономично, например, чтобы провести прямую, при векторном подходе достаточно задать координаты се начала и конца (четыре числа, (х1, у1), (х2, у2)) в то время как растровое описание требует задания всех точек прямой (а их может быть несколько сотен или тысяч!). Более того, векторное представление легко масштабируется (рис. 3.9, б), что и используется в форматах документов PostScript, PDF и пр. 92
Поэтому перед разработчиками информационных систем стоит важная проблема — векторизация растрового изображения (рис. 3.9, в). Этот процесс называется трассировкой. Программа трассировки отыскивает группы пикселей с одинаковым цветом, а затем создает соответствующие им векторные объекты. Схемы цветообразования Цвета одних предметов человек видит потому, что они излучают свет, а других — потому, что они его отражают. Когда предметы излучают свет, они приобретают тот цвет, который мы видим. Когда они отражают свет (бумага, например), их цвет определяется цветом падающего на них света и цветом, который эти объекты отражают. Сегодня диаметрально противоположные способы генерации цвета мониторов и принтеров являются основной причиной искажения экранных цветов при печати. Для того чтобы получать предсказуемые результаты на экране и печати, нужно хорошо представлять работу двух противоположных систем описания цвета в компьютере: аддитивной и субтрактивной. Аддитивные и субтрактивные цвета. Аддитивный цвет (от англ. add — суммировать, складывать) образуется при соединении лучей света разных цветов. В этой системе используются три основных цвета — красный, зеленый и синий (RGB — Re d, G r e e n, В1 u e). Если их смешать друг с другом в равной пропорции, они образуют белый цвет, а при смешивании в разных пропорциях — любой другой, отсутствие же всех основных цветов представляет черный цвет. Система аддитивных цветов работает с излучаемым светом, например от монитора компьютера. В системе субтрактивных цветов (от англ. subtract — вычитать) происходит обратный процесс — вы получаете какой-либо цвет, вычитая другие цвета из общего луча отраженного света. В этой системе белый цвет появляется в результате отсутствия всех цветов, тогда как их присутствие дает черный цвет. Система субтрактивных цветов работает с отраженным светом, например от листа бумаги. Белая бумага отражает все цвета, окрашенная — некоторые поглощает, а остальные отражает. В системе субтрактивных цветов основными являются голубой, пурпурный и желтый цвета (CMY), противоположные красному, зеленому и синему. Когда эти цвета смешиваются на белой бумаге в равной пропорции, получается черный цвет. Вернее, предполагается, что должен получиться черный цвет. В действительности типографские 93
краски поглощают свет не полностью и поэтому комбинация трех основных цветов выглядит темно-коричневой. Чтобы исправить возникающую неточность, для представления тонов черного цвета принтеры добавляют немного черной краски. Систему цветов, основанную на таком процессе четырехцветной печати, принято обозначать аббревиатурой CMYK (Cyan, Magenta, Yellow, Black). Цветовая модель RGB. Монитор компьютера создает цвет непосредственно излучением света и использует, таким образом, систему цветов RGB. Поверхность монитора состоит из мельчайших точек (пикселей) красного, зеленого и синего цветов, форма точек варьируется в зависимости от типа электронно-лучевой трубки (ЭЛТ). Пушка ЭЛТ подает сигнал различной мощности на экранные пиксели. Каждая точка имеет один из трех цветов, при попадании на нее луча из пушки она окрашивается в определенный оттенок своего цвета в зависимости от силы сигнала. Поскольку точки маленькие, уже с небольшого расстояния они визуально смешиваются друг с другом и перестают быть различимы. Комбинируя различные значения основных цветов, можно создать любой оттенок из более 16 млн цветов, доступных в RGB. Лампа сканера светит на поверхность захватываемого изображения (или сквозь слайд), затем отраженный или прошедший через слайд свет с помощью системы зеркал попадает на чувствительные датчики, которые передают данные в компьютер также в системе RGB. Система RGB адекватна цветовому восприятию человеческого глаза, рецепторы которого тоже настроены на красный, зеленый и синий цвета. Цветовая модель CMYK. Система цветов CMYK была широко известна задолго до того, как компьютеры стали использоваться для создания графических изображений. Триада основных печатных цветов: голубой, пурпурный и желтый (CMY, без черного) является, по сути, наследником трех основных цветов живописи (синего, красного и желтого). Изменение оттенка первых двух связано с отличным от художественных химическим уставом печатных красок, но принцип смешения тот же самый, художественные, и печатные краски, несмотря на провозглашаемую самодостаточность, не могут дать очень многих оттенков. Поэтому художники используют дополнительные краски на основе чистых пигментов, а печатники добавляют как минимум черную краску. Система CMYK создана и используется для печати. Все файлы, предназначенные для вывода в типографии должны быть конвертированы в CMYK. Этот процесс называется цветоделением. Цвет в CMYK может быть описан совокупностью четырех чисел (или цветовыми координатами), каждое из которых представляет собой процент краски основных цветов, составляющий цветовую комбинацию. Например, для получения темно-оранжевого цвета следует смешать 30 % краски cyan, 45 % magenta, 80 % yellow и 5 % black, тогда этот цвет можно закодировать следующим образом — (30,45,80,5), или же C30M45Y80K5. Схема YUV. Исследования показали, что глаз человека более восприимчив к яркости, чем к цветам. Это использовано в телевизионном методе YUV для кодирования изображений, при котором интенсивность обрабатывается независимо от цвета. Сигнал Y предназначен для передачи интенсивности и измеряется в максимальном разрешении, в то время как U и V — для цветовых сигналов различия. При YUV-представлении видеосигнала цветоразностные компоненты U и V передаются с вдвое меньшим разрешением (частота дискретизации у сигнала яркости в 4 раза больше основной частоты в 3 МГц, а у цветоразностных — в 2 раза). Обычно при характеристике устройств ввода такую оцифровку называют половинным разрешением (или YUV 4:2:2). Запись 4:1:1 (разрешение одной четверти YUV 4:1:1) означает в 4 раза меньшую частоту выборки, что приводит к потере качества изображения. Запись 8:8:8 означает представление и оцифровку видеосигнала как RGB-составляющих с наилучшим качеством. 94
Перевод в цифровую форму сигнала YUV вместо RGB требует 16 битов (два байта) вместо 24 битов (три байта), чтобы представить точный цвет, так что одна секунда видеоформата PAL требует приблизительно 22 Мбайта. Цветовые модели HSB и HSL. Системы цветов RGB и CMYK базируются на ограничениях, накладываемых аппаратным обеспечением (мониторами и сканерами в случае с RGB и типографскими красками в случае со CMYK). Более логичным способом описания цвета является представление его в виде тона, насыщенности и яркости — система HSB. Она же известна как система HSL (тон, насыщенность, освещенность). Тон представляет собой конкретный оттенок цвета на цветовом круге, отличный от других: красный, зеленый, голубой и т. п. Насыщенность цвета характеризует его относительную интенсивность (или чистоту). Уменьшая насыщенность, например красного, мы делаем его более пастельным, приближаем с серому. Яркость (или освещенность) цвета показывает величину затемнения или осветления исходного оттенка. HSB имеет перед другими системами важное преимущество она больше соответствует природе цвета, хорошо согласуется с моделью восприятия цвета человеком. Многие оттенки можно быстро и удобно получить в HSB, конвертировав затем в RGB или CMYK, доработав в последнем случае, если цвет был искажен. Цветовая модель Grayscale. Цветовая модель Grayscale представляет собой ту же индексированную палитру, где вместо цвета пикселям назначена одна из 256 градаций серого. Форматы графических файлов Сжатие информации. Объем обрабатываемой и передаваемой информации быстро растет. Это связано с выполнением все более сложных прикладных процессов, появлением новых информационных служб, использованием изображений и звука. Сжатие данных (data compression) — процесс, обеспечивающий уменьшение объема данных. Сжатие позволяет резко уменьшить объем памяти, необходимой для хранения данных, сократить (до приемлемых размеров) время их передачи. Особенно эффективно сжатие изображений. Сжатие данных может осуществляться как программным, так и аппаратным или комбинированным методом. Сжатие текстов связано с более компактным расположением байтов, кодирующих символы. Определенные результаты дает статистическое кодирование, в котором наиболее часто встречающиеся символы имеют коды наименьшей длины. Здесь также используется счетчик повторений пробелов. Что же касается звука и изображений, то объем представляющей их информации зависит от выбранного шага квантования и числа разрядов аналого-дискретного преобразования. В принципе, здесь используются то же методы сжатия, что и при обработке текстов. Если сжатие текстов происходит без потери информации, то сжатие звука и изображения почти всегда приводит к ее некоторой потере. Сжатие широко используется при архивировании данных. Размер файла, в котором сохраняется изображение, существенно зависит от формата файла, а это — важная характеристика технологии, поскольку высокие разрешающие способности, поддерживающиеся многими современными сканерами, могут при вести к созданию файлов размером до 30 Мбайт для страницы формата А4. Методы сжатия графики. RLE. При сжатии методом RLE (Run Length Enconding кодирование длины серий) последовательность повторяющихся величин (например, набор бит для представления пикселя) заменяется парой — повторяющейся величиной и числом ее повторений. Метод сжатия RLE используется в некоторых графических форматах, например в PCX. Программа сжатия файла может сначала записывать количество видеопикселей, а затем их цвет или наоборот. Поэтому возможна такая ситуация, когда программа, считывающая файл, ожидает появления данных в ином порядке, чем программа, сохраняющая этот файл 95
на диске. Если при попытке открыть файл, сжатый методом RLE, появляется сообщение об ошибке или полностью искаженное изображение, нужно считать этот файл с помощью другой программы или преобразовать его в иной формат. Сжатие методом RLE наиболее эффективно для изображений, которые содержат большие области однотонной закраски, и наименее эффективно для отсканированных фотографий, так как в них нет длинных последовательностей одинаковых видеопикселей. Метод сжатия LZW (назван так по первым буквам его разработчиков Lempel, Ziv, Welch) основан на поиске повторяющихся узоров в изображении. Сильно насыщенные узорами рисунки могут сжиматься до 0,1 их первоначального размера. Метод сжатия LZW применяется для файлов форматов TIFF и GIF; при этом данные формата GIF сжимаются всегда, а в случае формата TIFF право выбора возможности сжатия предоставляется пользователю. Существуют варианты формата TIFF, которые используют другие методы сжатия. Это означает, что возможна ситуация, когда файл в формате TIFF не может быть прочитан некоторой графической программой, хотя она должна «понимать» этот формат. Метод сжатия JPEG обеспечивает высокий коэффициент сжатия для рисунков фотографического качества. Формат файла JPEG, использующий этот метод сжатия, разработан объединенной группой экспертов по фотографии (Joint Photographic Experts Group). Сжатие по JPEG сильно уменьшает размер файла с растровым рисунком (возможен коэффициент сжатия 100:1). Высокий коэффициент сжатия достигается за счет сжатия с потерями, при котором в результирующем файле теряется часть исходной информации. Метод JPEG использует тот факт, то в то время как человеческий глаз чувствителен к изменению кости, изменения цвета он замечает хуже. Поэтому при сжатии этим методом запоминается больше информации о разнице между яркостями пикселей и меньше — о разнице между их цветами. Уровень сжатия (степень потери данных) может изменяться, но даже при задании максимального качества JPEG теряет некоторые подробности. Количество доступных уровней сжатия зависит от используемого для редактирования изображений программного обеспечения. Растровые форматы Перечислим основные растровые форматы изображений. BMP (BitMaP — точечный рисунок) — основной формат растровой графики в ОС Windows. Для имени файла, представленного в BMP-формате, чаще всего используется расширение .bmp, хотя некоторые файлы имеют расширение .rle, что обычно указывает на то, что произведено сжатие растровой информации файла одним из двух способов сжатия RLE, которые допустимы для файлов ВМР-формата. В файлах BMP информация о цвете каждого пикселя кодируется 1, 4, 8, 16 или 24 битами (бит/пиксель). Числом бит/пиксель, называемым также цветовой глубиной, определяется максимальное число цветов в изображении. Изображение при глубине 1 бит/пиксель может иметь всего два цвета, а при глубине 24 бит/пиксель — более 16 млн (224) различных цветов. Файл разбит на четыре основных раздела — заголовок файла Растровой графики, информационный заголовок растрового массива, таблица цветов и собственно данные растрового массива загодовок файла растровой графики содержит информацию Файле, в том числе адрес, с которого начинается область данных растрового массива. В информационном заголовке массива содержатся сведения об изображении, хранящемся файле (например, высоте и ширине в пикселях). В таблице цветов представлены значения основных цветов RGB (красный зеленый, синий) для используемых в изображении цветов. Программы, считывающие и отображающие BMP-файлы, в случае использования видеоадаптеров, которые не позволяют отображать более 256 цветов, для точной цветопередачи могут программно устанавливать такие значения RGB в цветовых палитрах адаптеров. 96
Формат собственно данных растрового массива в файле BMP зависит от числа бит, используемых для кодирования данных о цвете каждого пикселя. При 256-цветном изображении каждый пиксель в той части файла, где содержатся собственно данные растрового массива, описывается одним байтом (8 бит). Это описание пикселя не представляет значений цветов RGB, а служит указателем для входа в таблицу цветов файла. Таким образом, если в качестве первого значения цвета RGB в таблице цветов файла BMP хранится R/G/B = 255/0/0, то значению пикселя 0 в растровом массиве будет поставлен в соответствие ярко-красный цвет. Значения пикселей хранятся в порядке их расположения слева направо, начиная (как правило) с нижней строки изображения. Таким образом, в 256-цветном ВМР-файле первый байт данных растрового массива представляет собой индекс для цвета пикселя, находящегося в нижнем левом углу изображения; второй байт представляет индекс для цвета соседнего справа пикселя и т. д. Файлы BMP с глубиной 16 и 24 бит/пиксель не имеют таблиц цветов; в этих файлах значения пикселей растрового массива непосредственно характеризуют значения цветов RGB. PCX — первый стандартный формат файлов для растровой графики в компьютерах систем IBM PC. На этот формат, применявшийся в программе Paintbrush фирмы ZSoft, в начале 1980-х гг. фирмой Microsoft была приобретена лицензия, затем он распространялся вместе с изделиями Microsoft, в дальнейшем был преобразован в Windows Paintbrush и начал распространяться с Windows. Хотя область применения этого популярного формата сокращается, файлы формата PCX, которые легко узнать по расширению рсх, все же распространены и сегодня. Файлы PCX включают три части — заголовок PCX, данные растрового массива, факультативную таблицу цветов. Заголовок (128-байтовый) содержит несколько полей данных, в том числе о размере изображения и количестве бит для кодирования цветовой информации каждого пикселя. Информация растрового массива сжимается с использованием метода RLE; факультативная таблица цветов в конце файла содержит 256 значений цветов RGB, определяющих цвета изображения. Кодирование цвета каждого пикселя в современных изображениях PCX может производиться с глубиной 1, 4, 8 или 24 бит. TIFF (Tagged Image File Format — формат файлов изображения, снабженных тегами). Если PCX — один из самых простых для декодирования форматов растровой графики, то TIFF — один из самых сложных. Файлы TIFF имеют расширение tif. Каждый файл начинается 8-байтовым заголовком файла изображения (IFH), важнейший элемент которого — каталог файла изображения (Image File Directory — IFD) — служит указателем к структуре данных. IFD представляет собой таблицу для идентификации одной или нескольких порций данных переменной длины, называемых тегами, хранящими информацию об изображении. В спецификации формата файлов TIFF определено более 70 различных типов тегов. Например, тег, хранящий информацию о ширине изображения в пикселях, или о его высоте, или таблица цветов (при необходимости), или сами данные растрового массива. Изображение, закодированное в файле TIFF, полностью определяется его тегами, и этот формат файла легко расширяется, поскольку для придания файлу дополнительных свойств достаточно определить дополнительные типы тегов. Данные растрового массива в файле TIFF могут сжиматься с использованием любого из нескольких методов, поэтому в надежной программе для чтения файлов TIFF должны быть средства распаковки RLE, LZW и несколько других. GIF (Graphics Interchange Format — формат обмена графическими данными, произносится «джиф») разработан компанией CompuServe (расширение — gif). Структура файла зависит от версии GIF-спецификации (распространены две версии — GIF 87а и GIF89a). Независимо от номера версии файл GIF начинается с 13-байтового заголовка, 97
содержащего сигнатуру, которая идентифицирует этот файл в качестве GIF-файла, номер версии GIF и другую информацию. Если файл хранит только одно изображение, вслед за заголовком обычно располагается общая таблица цветов, определяющая палитру изображения. Если в файле хранится несколько изображений, то вместо общей таблицы цветов каждое изображение сопровождается ложной таблицей цветов. Основные достоинства GIF заключаются в широком распространении этого формата и его компактности. Но ему присущи два достаточно серьезных недостатка. Один из них состоит том, что в изображениях, хранящихся в виде GIF-файла, не может быть использовано более 256 цветов. Второй, возможно, еще более серьезный, заключается в том, что разработчики программ, использующие в них форматы GIF, должны иметь лицензионное соглашение с CompuServe и вносить плату за каждый экземпляр программы; такая ценовая политика была принята CompuServe после того, как Unisys объявила, что начнет добиваться соблюдения своих прав собственности и потребовала от тех, кто пользуется алгоритмом сжатия LZW, вносить лицензионные платежи. Возникшее в результате этого запутанное юридическое положение тормозит внедрение в свои графические программы средств для работы с файлами GIF. PNG (Portable Network Graphic — переносимый сетевой формат, произносится «пинг», расширение — .png) был разработан для замены GIF, чтобы обойти юридические препятствия, стоящие на пути использования GIF-файлов. PNG унаследовал многие возможности GIF и, кроме того, позволяет хранить изображения с истинными цветами. Еще более важно, что он сжимает информацию растрового массива в соответствии с вариантом пользующегося высокой репутацией алгоритма сжатия LZ77 (предшественника LZW), которым любой может пользоваться бесплатно. JPEG (произносится «джейпег», расширение — .jpg) был разработан компанией C-Cube Microsystems как эффективный метод хранения изображений с большой глубиной цвета, например, получаемых при сканировании фотографий с многочисленными едва уловимыми оттенками цвета. Используется алгоритм JPEG-сжатия с потерями информации. Таблица 3.2 иллюстрирует размеры и цветовую глубину файлов, которые соответствуют различным форматам при сохранении исходного изображения размером в 1 Мбайт. Векторные форматы Файлы векторного формата содержат описания рисунков в наборе команд для построения простейших графических объектов (линий, окружностей, прямоугольников, дуг и т. д.). Кроме того, в этих файлах хранится некоторая дополнительная информация. Различные векторные форматы отличаются набором команд и способом их кодирования. 98
WMF (Windows Metafile) — формат, доступный большинству приложений Windows, так или иначе связанными с векторной графикой, служит для передачи векторов через буфер обмена (Clipboard). Однако может искажать цвет, не сохранять ряд параметров, которые могут быть присвоены объектам в различных векторных редакторах, не воспринимается программами Macintosh. EPS (Encapsulated PostScript) — упрощенный PostScript, может использоваться большинством настольных издательских систем и векторных программ, некоторыми растровыми программами. Однако не может содержать в одном файле более одной страницы, не сохраняет ряд установок для принтера. Как и в файлы печати PostScript, в EPS записывают конечный вариант Работы, хотя такие программы как Adobe Illustrator, Photoshop и Macromedia FreeHand могут использовать его как рабочий. DXF (Drawing Interchange Format) используется всеми программами САПР, многими векторными редакторами, некоторыми издательскими системами. CGM (Computer Graphics Metafile) используется в программах редактирования векторных рисунков, САПР и издательских системах. SVG (Scalable Vector Graphics) — расширение языка XML (разработанное Консорциумом Всемирной Паутины), предназначенное для того, чтобы описать двумерную векторную графику как статическую, так и анимированную. SVG допускает три типа графических объектов: 1) векторные графические формы (например контуры, состоящие из прямых и кривых линий и областей, ограниченных ими); 2) растровая графика, представляющая оцифрованные образы; 3) текст. Тип файла — svg, svgz. Источниками статических изображений традиционно являлись растровые сканеры, а в последнее время широко используются цифровые фотокамеры [25]. Рассмотрим основные характеристики изображений, процессов их создания и обработки. Оптическое разрешение Оптическое разрешение измеряется в пикселях на дюйм (ppi — pixels per inch), иногда dpi — точки на дюйм, однако понятие точка означает элемент, не имеющий конкретной формы, ими меряется разрешение печатающих устройств. Сканеры и растровые графические файлы оперируют пикселями, имеющими форму квадрата. Сканеры. Оптическое разрешение показывает, сколько пикселей сканер может считать на квадратный дюйм. Его значение записывается так: 300 x 300, 300 x 600, 600 х 1200 и т. п. Первое число говорит о количестве считывающих информацию датчиков, именно на него стоит обращать внимание, хотя часто производители и продавцы любят указывать, в качестве разрешения, что-нибудь вроде 4000, 4500 dpi. Это интерполированное разрешение, которое является свойством не сканера, а его поддерживающей программы. Качество изображений, полученных таким образом зависит не только от сканера, но и от качества функций интерполяции, реализованных в программе [25]. Интерполяция — способ увеличения (уменьшения) размера или резолюции файла посредством программы. При уменьшении данные отбрасываются, при увеличении — программа их вычисляет. Таким образом, сильно увеличенные картинки выглядят размытыми или зубчатыми (в зависимости от способа интерполяции). Известны три основных способа интерполяции: • Nearest Neighbor — для добавляемого пикселя берется значение соседнего с ним; • Bilinear — выбирается среднее цветовое значение пикселей с каждой стороны от создаваемого; • Bicubic — усредняется значение группы не только непосредственно граничащих, но и всех соседних пикселей. Какой именно диапазон пикселей выбирается для усреднения и по какому алгоритму это усреднение происходит — этим отличаются способы бикубической интерполяции в разных программах. 99
Наконец, важным свойством относительно новых образцов сканеров является сканирование в 32-битном (и более) режиме. Здесь цвет одного пикселя описывается не в 24 битах стандартного RGB — один из 16 700 000 оттенков, а большим количеством информации, что позволяет передать большее количество уникальных оттенков. Затем Photoshop, или другая программа в соответствии с установками генерации 24-битного RGB, производит цветовую интерполяцию — усредняет оттенки. Результат получается лучше, хотя это видно только на калиброванных мониторах и на качественных распечатках. Цифровые камеры. Качество цифровой камеры зависит от нескольких факторов, включая оптическое качество линзы, матрицы съемки изображения, алгоритмов сжатия и других компонентов. Однако, самый важный детерминант качества изображения — разрешающая способность матрицы ПЗС: чем больше элементов, тем выше разрешающая способность, и таким образом, больше подробностей может быть зафиксировано. В 1997 г. типичная разрешающая способность цифровых камер была 640 х 480 пикселей, год спустя появились «камеры мегапикселя», что подразумевало, что за те же деньги можно было приобрести модель на 1024 х 768 или даже 1280 х 960. К началу 1999 г. разрешающие способности дошли до 1536 х 1024 и к середине этого же года был преодолен барьер 2 мегапикселей с появлением разрешающей способности 1800 х 1200 = 2,16 млн пикселей. Год спустя — барьер 3 мегапикселей (2048x1536 = 3,15 млн пикселей). Первая камера с 4 мегапикселями появилась в середине 2001 г., обеспечивая 2240 х 1860 = 4,16 млн пикселей Однако даже датчик Foveon ХЗ (4096 х 4096 = 16,8 млн пикселей) [25] все еще не перекрывает возможностей обычной фотопленки. поскольку высококачественные линзы объективов обеспечивают разрешение по крайней мере 200 точек на 1 мм, негативная пленка стандарта 100ASA шириной 35 мм и размером кадра 24 х 36 мм обеспечит разрешение 24 х 200 х 36 х 200 -= 34,56 млн пикселей, что все еще недостижимо для цифровых камер. Разрядная глубина Разрядная (битовая, цветовая) глубина сканера характеризует количество информации, содержащейся в одном пикселе выходного образа. Битовую глубину изображения часто называют цветовой разрешающей способностью. Она измеряется в битах на пиксел (bit per pixel, bpp). Так, если речь идет об иллюстрации, имеющей в каждом пикселе по 8 бит цветовой информации, то ее цветовая разрешающая способность будет 8 bpp, что дает 28 = 256 доступных для 8-битового изображения цветов. Самый простой сканер (черно-белый сканер на 1 бит) использует для представления каждого пикселя «1» или «0». Чтобы воспроизвести полутона между черным и белым, сканер должен иметь хотя бы 4 бита (для 16 = 24 полутонов) или 8 бит (для 256 = 28 полутонов) на каждый пиксель. Самые современные цветовые сканеры поддерживают не менее 24 бит, что означает фиксацию 8 бит информации по каждому из первичных цветов (красный, синий, зеленый). Устройство на 24 бита может теоретически фиксировать более чем 16 млн различных цветов, хотя практически это число намного меньше. Это почти фотографическое качество, и упоминается поэтому обычно как «полноцветное» сканирование («true colour» scanning). На принципе 8-битного цвета основана широко использовавшаяся в первой половине 90-х и применяемая в Internet даже сегодня цветовая модель Index Color. Она работает на основе создания палитры цветов. Все оттенки в файле делятся на 256 возможных вариантов, каждому из которых присваивается номер. Далее, на основе получившейся палитры цветов строится таблица, где каждому номеру ячейки приписывается цветовой оттенок в значениях RGB. 100
К форматам файлов, использующим только индексированные палитры относятся распространенный в прошлом на РС формат программы Paint — PCX, а также не потерявший и в наши дни своей актуальности GIF. Некоторые форматы как, на пример тот же GIF или PNG, позволяют делать палитры на основе произвольного количества цветов (до 256). До появления 8-битового цвета из-за малых мощностей персональных компьютеров тех времен использовались палитры из 16 цветов (4 bpp), 4 цветов (2 bpp) и самая первая компьютерная графика была однобитовая — 2 цвета. Однобитовые изображения называемые Bitmap или, иногда, Lineart, используются и сегодня там, где не требуются цвето – тоновые переходы. Равный по размеру Bitmap-файл в 24 раза меньше, чем файл RGB, и кроме того, очень хорошо сжимается. Динамический диапазон Динамический диапазон по своей сути подобен разрядной глубине, которая описывает цветовой диапазон сканера, и определяется как функционированием АЦП сканера, так и чистотой света, качеством цветных фильтров и уровнем любых помех в системе. Динамический диапазон измеряется в шкале от 0,0 (абсолютно белый) до 4,0 (абсолютно черный), и единственное число, данное для конкретного сканера, говорит, сколько оттенков модуль может различить. Большинство цветных планшетных сканеров с трудом воспринимает тонкие различия между темными и светлыми цветами на обоих концах диапазона и имеет динамический диапазон около 2,4. Это, конечно, немного, но обычно достаточно для проектов, где идеальный цвет не самоцель. Для получения большего динамического диапазона следует использовать цветовой планшетный сканер высшего качества с увеличенной разрядной глубиной и улучшенной оптикой. Эти высокопроизводительные модули обычно обеспечивают динамический диапазон между 2,8 и 3,2 и хорошо подходят для большинства приложений, требующих высококачественный цвет (например, офсетная печать). Наиболее близко к пределу динамического диапазона позволяют подойти барабанные сканеры, часто обеспечивающие значения от 3,0 до 3,8. Теоретически сканер на 24 бита предлагает диапазон 8 бит (256 уровней) для каждого первичного цвета, и различие между двумя из 256 уровней обычно не воспринимается человеческим глазом. К сожалению, наименьшие из значащих битов теряются в шуме, в то время как любые тональные исправления после сканирования еще более сужают диапазон. Именно поэтому лучше всего предварительно устанавливать любые исправления яркости и цвета на уровне драйвера сканера перед заключительным сканированием. Более дорогие сканеры с глубиной в 30 или 36 битов имеют намного более широкий диапазон, предлагая более детализированные оттенки, и разрешают пользователю делать тональные исправления, заканчивающиеся приличным 24-битовым изображением. Сканер на 30 битов принимает 10 битов данных на каждый цвет, в то время как сканеры на 36 битов — по 12 битов. Драйвер сканера позволяет пользователю выбрать, какие именно 24 бита из исходных 30 или 36 битов сохранить, а какие — нет. Эта настройка делается путем изменения «кривой цветовой гаммы» (Gamma Curve), и доступна при обращении к Настройке тонов (Tonal Adjustment control)драйвера TWAIN. Режимы сканирования Среди разнообразия методов представления изображений в ЭВМ наиболее распространенными являются: • штриховая графика (line art); • полутоновое изображение (grayscale); • цветное изображение (colour). 101
Штриховая графика — наиболее простой формат. Так как сохраняется только чернобелая информация (в компьютере представлен черный цвет как «1» и белый как «0»), требуется только 1 бит данных, чтобы сохранить каждую точку сканированного изображения. Штриховая графика наиболее подходит при сканировании чертежей или текста. Полутоновое изображение. В то время как компьютеры могут сохранять и выдавать изображения в полутонах, большинство принтеров не способно печатать различные оттенки серых цветов. Они применяют метод, названный обработкой полутонов, используя точечный растр, имитирующий полутоновую информацию. Изображения в оттенках серого — наиболее простой метод сохранения графики в компьютере. Человек может различить не более 255 различных оттенков серого, что требует единственного байта данных со значением от 0 до 255. Данный тип изображения составляет эквивалент черно-белой фотографии. Полноцветные изображения — наиболее объемные и самые сохраняемые и обрабатываемые в ПК, используют 24 бита (по 8 на каждый из основных цветов), чтобы представить полный цветовой спектр. 3 4. Программные средства обработки изображений Драйвер TWAIN Изготовители сканеров создали специальный стандарт TWAIN (Toolkit Without Anlnteresting Name), обеспечивающий взаимодействие сканеров практически с любым прикладным ПО — пакетами обработки изображений наподобие Adobe PhotoShop, настольными издательскими системами или программами распознавания символов. Этот стандарт совместно разработан Hewlett-Packard, Kodak, Aldus, Logitech и Caere и определяет, каким образом устройства получения изображений (сканеры, цифровые камеры и др.) передают данные прикладным программам. Стандарт TWAIN позволяет приложениям работать с устройствами получения изображений, «не зная» что-либо об устройстве непосредственно. Если устройство совместимо с TWAIN, и приложение — тоже, они должны работать вместе независимо от того, было ли программное обеспечение куплено вместе с устройством или нет. Разрешается одновременно подсоединять к ПК более чем одно TWAIN-совместимое устройство, как показано на рис. 3.10. Каждое из устройств при этом имеет свою собственную копию модуля TWAIN. Это обеспечивает конечного пользователя возможностью выбора, которое именно из устройств TWAIN следует использовать в течение сеанса. Допустим, пользователь выбрал опцию Импорт (Acquire) в меню Файл такого приложения, как PhotoShop, и в нем — соответствующий источник (Source) – TWAIN. При этом будет активизирован TWAIN, который загрузит собственный драйвер устройства, не покидая основное приложение. После сканирования драйвер автоматически закрывается, оставляя полученное изображение открытым в основном приложении. 102
Все большее число изготовителей предоставляют сканеры с двумя драйверами TWAIN. Первый — основной, упрощенный драйвер, предназначенный для новичков, где сканер управляется в основном парой кнопок. Кнопка Предварительное сканирование (Preview) приводит к появлению «грубого» изображения в окне предварительного сканирования. Сканер в ускоренном режиме захватывает изображение низкого разрешения (около 20—35 dpi), чтобы пользователь мог выбрать только необходимый фрагмент. Здесь область сканирования может быть уточнена, а также откорректированы глубина цвета и разрешение. Почти все современные настольные модели предоставляют возможность предварительной цветокоррекции. Когда пользователь полностью удовлетворен результатами предварительного сканирования, он может нажать кнопку Сканирование (Scan), чтобы инициализировать окончательное сканирование. Для более «продвинутых» пользователей может использоваться кнопка Advanced Scanning Options где-нибудь на первом драйвере. Она запускает второй драйвер, предлагающий более высокие возможности полной настройки изображения (яркость, контраст, цвет и исправление цветовой гаммы). Это позволяет корректировать определенные диапазоны тональных значений, как в целом, так и в каждом из первичных цветов. Разберем некоторые функции программы сканирования на примере утилиты MiraScan, поставляемой совместно с USB-сканерами (рис 3.11). Выбор типа изображения — отраженный (Reflective) или проходящий свет; Туре (цветовая модель) — позволяет выбрать цветовую модель. Обычно в таких списках присутствуют (Line art) только черный и белый, Grayscale 8 bit, 12 bit — 256 и больше градаций серого, Millions of Colors (стандартный RGB). Иногда у планшетных и всегда у профессиональных сканеров есть опция сканирования в режиме CMYK. В CMYK имеет смысл сканировать, только когда есть много картинок, предназначенных для цветоделения, или же из-за большого количества файлов есть опасность, что какая-то из RGB-картинок будет забыта; Resolution (разрешение) — для Internet сканируется с разрешением 72 dpi — экранная резолюция; для газе ты — около 130—180 dpi (зависит от линиатуры растра, с которой печатается газета); для струйного принтера (обычная бумага) — 150— 200 dpi; для качественной печати в типографии на лазерном или струйном принтере 103
(хорошая бумага) 300 dpi. В режиме Bitmap имеет смысл сканировать от 300 dpi и выше (до 1200) в зависимости от желаемого качества и размера файла; Scaling (масштабирование) — увеличение используют как правило, для слайдов. На планшетных сканерах со специальными крышками слайды сканировать не стоит, для слайдов существуют специальные сканеры. Auto Contrast & Color Correction — функции автоматической подстройки контраста и цветокоррекции. Используются, когда качество необязательно. Если нужна оптимальная цветопередача, все корректируется «на глаз»; Brightness (яркость) — темные и средние изображения, предназначенные для полиграфии можно слегка осветлять, так как при печати они будут несколько затемнены; Descreen (убрать муар) — опция, позволяющая эффективно убирать муар. Действует на основе определения линиатуры растра ранее напечатанной в типографии и теперь сканируемой картинки (Descreen не применяется к продукции струйных принтеров, так как их распечатки не имеют растровой сетки); Муар (Screen, Moire) — паразитные узоры, образуемые наложением растровых сеток. Заметны при использовании линиатуры растра в 150 lpi и ниже; Линиатура растра (Screen frequency) — плотность рядов точек (линий) в растровой сетке. Измеряется в линиях на дюйм — lpi (lines per inch); Полутоновой растр (Halftone screen) — сетка точек на печатной плате. На каждой плате сетка повернута под своим углом, где точки больше, там большее сгущение цвета. Наложение всех плат CMYK дает полноцветную картинку. Чтобы пользоваться Descreen, не обязательно точно знать линиатуру растра, достаточно выставить тип сканируемого оригинала: газета (Newspaper), 85 lpi, журнал (Magazine), 133 lpi журнал высокого полиграфического качества (Art Magazine) 150 lpi Custom. Надо отметить, что газеты могут печататься с натурой в диапазоне 60— 85 lpi, журналы — 150—175 lpi, репродукции в книгах печатают на 175—200 lpi. Растр 175 lpi мало различим на глаз, растровая сетка в 200 lpi и выше уже не видна. Выбор линиатуры при растрировании оператором фотонабора обусловлен качеством бумаги и 104
типом печатной машины, на которых будет выводиться издание. В диалоговом окне опции Custom… можно выставить точное количество линий на дюйм, если оно известно; Filter – здесь, обычно, присутствуют фильтры размытия и усиления контраста. У всех типов сканеров есть свойство усиливать уже имеющиеся на изображении помехи: пыль, царапины, муар. Особенно важно предохранять от повреждений и запыления слайды, так как они будут увеличиваться — хранить и транспортировать их в антистатических конвертах. Цветовая калибровке Одна из особенностей использования настольного сканера — отсканированное изображение может выглядеть по-разному на экране и в отпечатанной форме и все это будет отличаться и от оригинала. Решение этой проблемы — система цветовой калибровки (или установка соответствия цветов). Такое программное обеспечение действительно ценно для сканирования высококачественных изображений (прозрачные пленки, печатные издания профессионального качества и т. д.), где необходимо выполнять строгие качественные стандарты. Однако для большинства людей, использующих настольный сканер, не столь же важен точный цвет, как приятный цвет. Сложности человеческого восприятия цветов сделали калибровку цветов большой проблемой, вследствие чего есть несколько различных подходов, как разработанных, так и перспективных. Одна из самых полных систем — система управления цветом, разработанная Kodak (colour management system — CMS), который использует различные цветовые профили, соответствующие каждому устройству: сканеру, монитору, принтеру в системе, чтобы передавать и стандартизировать цвета. Элементы СМS встраиваются в Adobe PhotoShop и другое программное обеспечение, и CMS постепенно становится наиболее распространенным средством, применяемым для подготовки графических иллюстраций и других задач, которые связаны с согласованием цветов. Другие системы были разработаны изготовителями сканеров и прикладными программистами. Эти системы также базируются на цветовых профилях различных устройств, которые будут использоваться для сканирования, редактирования и вывода заключительного изображения. В таких системах используется исправление на основе вывода, при этом сканируется и выводится стандартно калиброванное эталонное изображение, и затем вносятся изменения в цветовые профили, чтобы стандартизировать цвета. Это — менее сложный процесс и, вероятно, не соответствует потребностям пользователей, которые хотят непрерывно перекалибровывать свои системы для оптимальных результатов. Фоторедактирование (ретуширование) Когда сканер осуществляет фиксацию цветного изображения, это — часто только начало технологического процесса. Будучи однажды оцифрованной, фотография может быть представлена в разных видах и комбинироваться с другой информацией в растровом редакторе или пакете раскрашивания (рис. 3.12). В подготовке печатного издания очень редко используются «сырые» изображения — черты моделей «очищаются»: сглаживание морщин, окраска глаз, «причесывание» волос и пр. Обычно фоторетушер пытается сделать одну из двух вещей — или замена некоторых элементов изображения (например, изменение цвета чьих-то волос), или сотворение чегото нереального и фантастического. В любом случае, вмешательство ретушера не должно обнаруживаться визуально. Большинство этих видов работ может быть произведено, например, используя Adobe PhotoShop, но даже самые простые программы раскрашивания позволяют проделать подобные изменения. Однако, хотя многое может быть выполнено с помощью более 105
дешевых пакетов наподобие PaintShop Pro или PC Paintbrush, программы, подобные PhotoShop, Xres и Corel PhotoPaint, позволяют намного проще достигнуть сложных эффектов (рис. 3.13). Возможности редактора MS Paint вкратце отображены на рис. 3.12. Не ограничиваясь этим, рассмотрим также редакторы, входящие в комплект приложений Linux-Unix/KDE [22]. Графический редактор OpenOffice.org Draw Работа с векторной графикой. OpenOfTice.org Draw является объектноориентированной программой для создания векторной графики. Объектами могут быть линии, прямоугольники, трехмерные цилиндры или любые многоугольники. Для всех объектов уже установлены параметры, такие как размер, цвет поверхностей и контуров, привязанные файлы и т. д. Все параметры могут быть изменены (рис. 3.14). Благодаря векторной технологии можно вращать объекты в любом направлении и изменять их размер. Объекты можно двигать и частично совмещать, так как все они контролируются индивидуально. Работа с трехмерными объектами. Пользователь не ограничен двухмерностью при использовании OpenOffice.org Draw, Можно создавать кубы, сферы, цилиндры и другие трехмерные объекты, вращать их и даже подсвечивать с помощью различных эффектов. Используя эти параметры, можно быстро создавать презентации 106
. Работа с диаграммами. OpenOffice.org Draw объектно-ориентирован. Это дает возможность создавать прямоугольники, содержащие текст и связанные друг с другом. При перемещении фигур связи автоматически сохраняются, что упрощает рисование и работу с презентациями и диаграммами. Связи размещаются между точками соединения, что заметно облегчает создание технических рисунков с текстовыми пояснениями. Рисование. При обычном рисовании используются прямые, простые линии, кривые Безье и различные виды прямоугольников и прочих геометрических фигур. Трехмерные параметры могут быть использованы для создания трехмерных объектов, например кубов, сфер и торов. Также возможно вращение двумерных форм в трехмерном измерении. Выбирая цвет с растровой структурой, перспективой и освещением, можно создать трехмерные объекты для приглашений, брошюр и визитных карточек. Для вставки в рисунки дополнительных элементов используйте коллекцию картинок, находящихся в галерее. Не имеет значения, состоят ли графические объекты из векторов или точек. Экспорт. OpenOffice.org Draw может использоваться для создания кнопок и значков для Web-страниц и экспорта их в форматах gif, jpg, png И др. Создать. Программа предлагает ряд подсказок для создания собственных рисунков. Можно определить сетку, к которой объект будет привязан во время создания или перемещения или временно привязать несколько новых объектов к границам и узлам уже существующих объектов. Размер объекта можно изменить в любое время с помощью ввода новых размеров в окне диалога Параметры. Интегрировать. Предусмотрена возможность импорта текстов, таблиц, диаграмм, формул из других программных модулей OpenOffice.org в рисунок. Графический редактор GIMP GIMP (Gnu Image Manipulation Program). Как следует из названия, это программа для манипуляций изображениями. По возможностям GIMP схож с редакторами PaintShop Pro и Adobe PhotoShop. При первом запуске производится начальная настройка программы. Далее появляется основная панель инструментов, в верхней части которой расположено меню (рис. 3.15). 107
Выбрав в меню Файл команды Новый или Открыть, можно создать новое изображение или загрузить его с диска. В окне редактирования можно вызвать меню с помощью правой кнопки мыши (рис. 3.16). 3.5. Цифровое видео Основные принципы Известны три формы кодирования сигнала телевидения: • система PAL (использует большинство стран Европы); • Франция, Россия и некоторые восточно-европейские страны используют SECAM, который отличается от системы PAL только в тонкостях, однако этого достаточно, чтобы они были несовместимыми; • США и Япония используют систему NTSC. В системе PAL (Phase-Alternation-Line, чередование строк) каждый законченный кадр заполняется построчно, сверху донизу. В Европе используется переменный электрический ток с частотой 50 Гц, и система PAL связана с этим — здесь выполняется 50 проходов экрана каждую секунду. Требуется два прохода, чтобы нарисовать полный кадр, так что частота кадров равна 25 кадров/с. Нечетные строки выводятся при первом проходе, четные — на втором. Этот метод называется чересстрочная развертка (interlaced), в противоположность чему изображение 108
на компьютерном мониторе, создаваемое за один проход, известно как без чередования строк (progressive). Компьютеры, наоборот, имеют дело с информацией в цифровой форме. Чтобы хранить визуальную информацию в цифровой форме, аналоговый видеосигнал должен быть переведен в цифровой эквивалент с использованием аналого-цифрового преобразователя-конвертера (ADC, или АЦП). Процесс преобразования известен как осуществление оцифровки, или видеозахват. Так как компьютеры имеют дело с цифровой графической информацией, никакая другая специальная обработка данных не требуется, чтобы в дальнейшем выводить это цифровое видео на компьютерный монитор. Однако чтобы отобразить цифровое видео на обычном телевизоре, обратный конвертер — цифроаналоговый (DAC или ЦАП), должен преобразовать двоичную информацию в аналоговый сигнал. Кроме того, источником видеоинформации в цифровой форме являются цифровые видеокамеры. Цифровые видеокамеры Начиная с введения Sony в 1995 г. формата DV и последующего почти повсеместного принятия интерфейса IEEE 1394 цифровые видеокамеры стали почти столь же свойственным ПЭВМ атрибутом, как мышь. Массовый пользователь получил доступ к технологии, которая позволила создавать в цифровом формате видеоматериал, качество которого далеко превосходило возможности аналоговых средств, доступных в то время — наподобие Hi-8 и S-VHS — и превращать его в профессионально выглядящее домашнее кино на настольном ПК. Запись и сохранение видео и аудио в цифровой форме устраняют возможности для целого диапазона ошибок в изображении и звуке почти тем же образом, как музыкальные компакт-диски изменили к лучшему записи на виниловых дисках (LP). Кассеты цифрового видео не могут быть прочитаны на видеомагнитофонах, однако любая цифровая видеокамера имеет обычные, аналоговые AV-гнезда выхода, что позволяет записанный материал передать на видеомагнитофон либо на телевизор. Поскольку интерфейс IEEE 1394 стал вездесущим в области видео потребителя, он позволяет передавать видеосигнал от одной цифровой камеры к другой, к цифровому видеомагнитофону или на ПЭВМ. В процессе своего развития цифровые видеокамеры все чаще снабжаются аналоговыми звуковыми и видеовходами, позволяя копирование старых записей в аналоговых форматах VHS или 8 мм в формат цифрового видео, и таким образом обеспечивая как архивирование без потерь, так и доступ к мощным средствам редактирования цифрового видео. Светочувствительная матрица (прибор с зарядовой связью — ПЗС) цифровой видеокамеры — обычно размером в '/4" — собирает и обрабатывает свет, приходящий от объектива, и преобразует его в электрический сигнал. В то время как видеокамеры среднего качества оборудованы единственной ПЗС, модели более высокого ряда используют три матрицы. В этом случае объектив содержит призму, которая расщепляет поступающий свет на три основных цвета, причем каждый поступает на отдельную матрицу. Результатом является высококачественные цветопередача и качество изображения, заметно лучшие чем для моделей с единственной ПЗС, хотя и при существенной дополнительной стоимости. Число пикселей, которые составляют матрицу, может изменяться от одной модели к другой, однако большее число пикселей не обязательно означает лучшее качество изображения. Матрицы в цифровых видеокамерах Canon, например, обычно имеют намного более низкое число пикселей, чем в моделях JVC или Panasonic, но все же способны к достижению превосходных результатов. Современные камеры имеют мощные способности «наезда» (трансфокатор), реализованные как путем оптического изменения масштаба изображения (обычно 10-х 109
или более), так и цифрового (до 200-х). Конечно, в этих случаях изображения становятся высокозернистыми и их стабильность становится существенной проблемой. Используются два варианта видоискателя: традиционный окуляр и выдвижной цветовой жидкокристаллический экран, который дополнительно может быть сенсорным, срабатывающим от прикосновения и позволяющим осуществлять цифровое увеличение объекта, указанного прикосновением на экране. Большинство потребительских цифровых камер продаются как единые решения для видео, фото и даже МРЗ и электронной почты. Большинство из них, однако, может захватить фото только с разрешением, характерным для цифрового видео (720 х 576 пикселей, что не дотягивает даже до 1 мегапикселя), которое приходится уменьшать до 640 х 480, чтобы сохранить правильное отношение размеров экрана (3 :4). Некоторые видеокамеры обладают более высоким разрешением для фото, но часто при этом используется интерполяция, чтобы достигнуть Указанного разрешения. Видеокамеры на 1,5 мегапикселей позволят получить разрешение в 1360 х 1020 для фото. Способность делать запись фотоснимков — также все более популярная особенность профессиональных цифровых видеокамер, некоторые из которых даже способны к настройке датчиков изображения к удобному для компьютера формату сборки картины, что оптимизировано для записи фотоизображения. Цифровые камеры обеспечивают цифровую или оптическую стабилизацию изображения, чтобы уменьшить колебание, которое неизбежно сопровождает ручную съемку. Цифровая стабилизация изображения (Digital image stabilisation — DIS) очень эффективна, но имеет тенденцию уменьшать разрешение картины, поскольку активно используется для записи образа меньший процент датчиков (остальные заняты стабилизационной обработкой). Оптическая стабилизация изображения (Optical imagе stabilisation — OIS) использует призму, которая компенсирует колебания регулировкой пути светового луча, проходящего через систему линз камеры. Оба метода достигают примерно одной и той же степени видимой стабильности, но OIS, возможно, лучше, так как не уменьшает разрешение. Форматы цифрового видео VCD. Формат VideoCD был создан, чтобы обеспечить диалоговую среду, которая была бы недорога для копирования, поддерживала полный экран и видео полного движения и функционировала бы в широком диапазоне различных платформ ПЭВМ, телевидения, игровых приставок или мультимедийного оборудования. В середине 1993 г. Philips, Sony, Matsushita и JVC согласовали спецификации VideoCD, позже получившие известность как «Белая Книга». Стандарт использует определения, описанные в стандартах «красной» (CD-DA) и «желтой» (CD-ROM) книг и вводит дополнительную гибкость, чтобы учесть защиту авторского права, вставки библиографической информации, абстрактных данных, компьютерных программ, обеспечить диалоговый контроль в течение воспроизведения. Формат стал чрезвычайно популярным в Азии, и начиная с середины 1990-х гг. почти все гонконгские фильмы были доступны на VCD, а по сделанной в конце тысячелетия оценке, только в Китае ежегодно производились более чем 2 млн плейеров VCD. Формат никогда не завоевывал популярность на западе и остается малоизвестным в Северной Америке и Европе. VCD использует CD-ROM XA Mode 2, чтобы делать запись первой дорожки диска (Track 1), который содержит файловую структуру ISO 9660 и информационную область. Файловая система ISO может также включать расширения Joliet, чтобы поддерживать длинные имена файлов Windows. VCD 1.1 поддерживает понятие выбираемых треков, но только в VCD 2.0 версии (1995 г.) поддерживалась полная интерактивность через дистанционное управление. VCD 2.0 позволяет организовать до 98 треков, каждый из которых может быть индексирован в 99 110
сценах. Каждый трек может содержать и воспроизводить сцены, которые могут быть видео, звуковыми или фотоизображениями. В основном этот формат можно трактовать как Audio CD с дополнением видео или фотофрагментами и средствами навигации по содержанию. Стандарт поддерживает обратную совместимость, так что версия 1.1 VCD работает в плейерах версии 2.0. VCD имеет вместимость до 74/80 минут (на носителе 650/700 Мбайт соответственно) видео полного движения, сопровождаемого стереозвуком. Используется технология сжатия MPEG-1 для обеспечения качества видео, эквивалентного пленке VHS или аудио CD-DA. Таблица 3.3 содержит ключевые характеристики вариантов VCDстандарта. SVCD. Выпущенный в 1998 г. консорциумом, который включал Philips, Sony, Matsushita и JVC, формат «VCD Высшего качества» (SuperVCD) — впоследствии стандартизированный как ISO IEC 62107 — является естественным развитием стандарта VCD. Основное различие в том, что для видеопотока используется кодирование MPEG-2 (вместо MPEG-1), которое обеспечивает более высокое разрешение и скорость, а также поддерживает субтитры и переменную скорость видеопотока. Как последствие, CD способен к показу в 2 раза более четких видеоизображении, чем его предшественник, за счет уменьшенной вместимости (35 и 80 мин на диск в зависимости от средней используемой оптовой скорости). Формат имеет обширную поддержку субтитров и режима караоке. Видеопоток SVCD может содержать до четырех независимых каналов субтитров для различных языков, которые накладываются на видеоизображения в процессе воспроизведения и могут подключаться или удаляться по желанию. Так как субтитры сохранены как битовая графика, они не привязаны к какому-то специфическому набору символов. Наконец, SVCD стандарт поддерживает гиперсвязи типа HTML, позволяет подключать фотографии, автоматическое проигрывание слайдов ц музыкальных фрагментов, поддерживает многоуровневые иерархические меню и оглавления (индексацию). Характеристики формата приведены в табл. 3.4. 111
XVCD и XSVCD (extended VCD и extended SVCD - расширения соответственно) являются неофициальными вариантами стандартов VCD и SVCD, предназначенными, чтобы достигнуть улучшенного качества изображения, например, увеличивая битовую скорость (битрейт) в соответствии с более быстрой способностью передачи данных современными накопителями CD-ROM-XSVCD работает на принципах, обычных для уровня DVD, что обеспечивает скорость, близкую к DVD-Video (до 9,8 Мбит/с — поддерживает полное разрешение DVD в дополнение к обычному SVCD 480x576/480x480). DivX. Формат DivX базируется на видеотехнологии MPEG-4 с дополнением звукового потока МРЗ. Поскольку сжатый в формате DivX кинофильм составляет от 10 до 20 % размера оригинала DVD (обычно 5 Гбайт), 80—90 минутное DVD-кино занимает приблизительно 650 Мбайт в разрешении 640 х 480 — фильм Голливуда может вообще поместиться на единственном CD-ROM. Единственным весомым недостатком является то, что не предусмотрено возможности развернуть изображение формата 16 : 9 до 4 : 3. Просмотр осуществляется на широко распространенном Windows Media Player (Microsoft) с небольшими добавлениями. К концу 2001 г. появилась новая версия DivX — проект с открытыми исходными программами кодека, известный как «Project Mayo» или как «OpenDivX» или «DivX для Windows/Linux/Mac». В отличие от оригинала DivX, OpenDivX не имеет ничего общего с Microsoft. Однако, подобно его предшественнику, он также базируется на формате сжатия MPEG-4. Формат DV. Panasonic и Sony были первыми, кто использовал стандарт цифрового видео на своих видеокамерах, и хотя он и не был первоначально предназначен для профессионального использования, обе компании впоследствии объявили их собственные расширения для стандарта — Panasonic DVCPRO в 1995 г., a Sony — DVCAM в 1996 г. Однако оба изготовителя придерживались формата MiniDV для производимого цифрового оборудования. 112
Формат DV использует пленку с металло-оксидным напылением ширины 1/4" (6,35 мм), способную к записи до 3 часов видео в стандартном режиме (standard play, SP) на кассете, которая имеет размеры 125 х 78 х 14,6 мм. Технически DV использует дискретное косинус-преобразование, используя процесс с тремя стадиями. Первая стадия использует DCT-сжатие, удаляющую информацию, которая не может замечена человеческим глазом. При этом в каждом пикселе отделяют цветовую и яркостную информацию, что сокращает данные на одну треть. Затем сигнал RGB преобразуется в YUV – Y для яркости и U и V для цвета, по формуле YUV 4 : 2 : 2. Затем цифровой видеокодек оптимизирует формулу к YUV 4 : 2 : 0, связывая цветовую информацию от смежных пикселей в блоки 4x4. Далее, система аппаратного сжатия, размещенная на камере, сжимает видео с использование алгоритма подобного M-JPEG. Система DV отличается способностью записи различных частей каждого кадра с различной степенью сжатия. Так, синее небо в фоне изображения может быть сжато, скажем, к 25 : 1, в то время как лес на переднем плане, который нуждается в большем количестве деталей, только до 7 : 1. Этим способом цифровое видео может оптимизировать видеоструктуру потока кадров. Наоборот M-JPEG должен иметь установленную норму сжатия для видео в целом и не может разумно регулировать сжатие каждого изображения. Кроме того, также используется техника, известная как адаптивное межстрочное сжатие, которое заключается в том, что перекрывающиеся строки кадра (как в PAL, например) соединяются в одну, если различие между ними невелико. В теории это означает, что сцены с меньшим количеством движения обрабатываются лучше, чем быстрые сцены. Номинальный поток данных DV — 25 Мбит/с, который увеличивается до 36 Мбит/с с учетом аудио и различных средств управления данными и коррекции ошибок. Mini-DV (мини-цифровое видео). Главное преимущество формата MiniDV состоит в том, что лента, являющаяся 1/12 от размера стандартной пленки VHS, позволяет сделать запись 1 часа в формате SP или до 90 мин более низкого качества выхода в «долгоиграющем режиме» (long play, LP) при горизонтальном разрешении до 500 линий. Видеокамеры этого формата являются часто достаточно маленькими, чтобы удобно размещаться в ладони руки. Digital8. Введенный в начале 1999 г., формат видеокамеры Sony Digital8 может рассматриваться как шаг между 8 мм или Hi-8 и MiniDV. Запись здесь производится почти в том же самом качестве как для MiniDV, но на ленты 8 мм и Hi-8, которые имеют размер 1/4 размера VHS и вместимость до 1 часа. Формат — хороший выбор для тех, кто переходит к цифровой видеокамере, так как видеокамера Digital8 может также воспроизводить старые записи аналоговых видео на 8 мм и Hi-8; MICROMV. В 2001 г. Sony объявила ряд цифровых видеокамер MICROMV, использующих формат сжатия MPEG-2 при записи сигналов качества DV на ленты, размер которых составляет 70 % от кассет MiniDV. При скорости в 12 Мбит/с ультракомпактный формат MICROMV имеет битовую скорость, вполовину меньшую, чем для miniDV, что делает редактирование видео на ПЭВМ намного менее ресурсопоглощающей задачей. Форматы DVD. Фирма Hitachi объявила первую цифровую видеокамеру, способную к записи на носитель DVD (в данном случае это был DVD-RAM) летом 2000 г., что было очередным шагом в движении видеоприложений к области ПЭВМ. Важное преимущество формата DVD — способность к прямой выборке видео и непосредственному переходу к определенным сценам видеозаписи, экономя время и ресурсы, затрачиваемые на запись/редактирование. DVD видео. Видео DVD обычно кодируются в формате MPEG-2. MPEG-2 предлагает более высокую степень сжатия, чем MPEG-1, и приводит к намного более четкому и чистому изображению (табл. 3.5). Раскодированный из MPEG-2 видеосигнал 113
обычно использует 480 горизонтальных строк в кадре (или 720 х 480 пикселей) по сравнению с 425 строками для CD-видео и 250—270 строками для VHS-видео. Переменная битовая скорость (VBR) позволяет достичь более высокого качества изображения и более низкой средней скорости передачи информации в битах, при этом используется больше данных для кодирования тех частей видеопоследовательности, которые более сложны и плохо сжимаются. При использовании постоянной битовой скорости (CBR) скорость передачи данных должна быть достаточно высокой, чтобы одинаково хорошо кодировать все сцены видео. Ранние диски DVD-ROM использовали два метода для записи MPEG-2 видео: • аналоговый оверлей (наложение видеоизображений или просто оверлей); • метод встраивания VGA, иногда упоминаемый как VideoInlay. Оба метода отображают видео в окне или полном экране, но они реализуют различные подходы. Videolnlay использует графический адаптер PC, чтобы масштабировать видео и вывести его на монитор. Оверлейные платы обеспечивают масштабирование собственными аппаратными средствами и выводят видео самостоятельно, встраивая его в графический выводом, который приходит от платы VGA. При использовании этих плат дополнительный кабель соединяет выход адаптера VGA с вводом на плате декодера. Главный недостаток подхода VideoInlay — нагрузка на систему. При проходе сцен, закодированных с высокой скоростью передачи информации, метод VideoInlay может перегрузить информацией старые, более медленные адаптеры дисплея, что может потребовать сокращения горизонтальной разрешающей способности для получения приемлемого изображения. Требуя немного большего количества усилий по установке и конфигурированию, платы наложения видеоизображений требуют меньше системных ресурсов и допускают более широкое разнообразие аппаратных средств. В то время как видеовывод может быть менее четким, чем в случае встраивания VGA, наложение видеоизображений имеет то преимущество, что может дать приличное качество фактически с любыми видеоплатами. Односторонний (DVD 5) диск может вместить типичный кинофильм, длительность которого составляет в среднем 133 минуты. MPEG-2 кодирование использует сжатие с потерями, которое удаляет избыточную информацию (например, неизменяющиеся области изображения) и информацию, которая не воспринимается человеческим глазом. Выходной видеосигнал, особенно когда он сложен или содержит быстрые изменения, может иногда включать визуальные недостатки в зависимости от качества обработки и 114
коэффициента сжатия. При использовании сжатия MPEG-2 полномасштабное изображение требует минимальную скорость передачи данных 3500 кбит/с. Звуковое окружение — центральный, левые, правые, лево-тыловые и право-тыловые каналы, плюс ненаправленный басовый громкоговоритель — требует дополнительно еще 384 кбит/с. Если учесть добавочную память для фонограмм дублирования а различных языках и титров, необходимо увеличение скорости до 4,692 кбит/с (минимум 4 Мбит/с, требуемых для высоко – качественных результатов). Окончательный итог — требование размера памяти в 4,68 Гбайт. Более высокие скорости передачи данных могут привести к повышению качества, почти неотличимому от оригинала, при скоростях более чем 6 Мбит/с. С развитием MPEGтехнологий сжатия лучшее качество достигается при более низких скоростях. Кроме того, DVD-видео обычно поддерживают множественные коэффициенты сжатия, позволяя при просмотре выбрать по меньшей мере из пары широкоэкранных форматов (например 16:9 или более обычного 4 : 3). Кроме того, DVD-видео также обычно позволяет выбрать один из восьми языков и предоставляет 32 различных набора субтитров. Двухслойный (DVD 9) диск. Здесь вместимость увеличивается до 240 мин. Двусторонний однослойный диск (D VD 10) будет вмещать немного больше (около 266 минут), но он должен быть перевернут, чтобы была доступна вторая сторона. Многие производители видео DVD используют двусторонние диски, помещая версию, отформатированную для нормального телевидения или монитора с экраном 4 : 3 на одной стороне и широкоэкранную версию, отформатированную для экрана 16: 9 — на другой. Существуют два способа записи двухслойных DVD — параллельный проход дорожки (Parallel track path — РТР) и противоположный проход дорожки (Opposite track path — ОТР). В дисках РТР оба слоя считываются от внутренней части Диска к внешней, тогда как в диске ОТР сначала считывается внешний слой от внутренней части к внешней, а затем — внутренний слой обратным ходом. Это позволяет дисководу читать оба слоя почти непрерывно, с коротким перерывом, чтобы перефокусировать линзу лазера. В 1998 г. Цифровой Видео Экспресс (DVE) — партнерство жду одним из крупнейших американских розничных продавцов электроники, Circuit City, и видной Лосанджелесской юридической фирмой — объявил альтернативный формат DVD-видео, использующий подход «оплата за использование» при прп смотре фильмов, и быстро получил поддержку таких ведущих студий, как Disney, Paramount, Universal и MGM. Региональное кодирование. Поскольку обычно выход фильма на экраны не является одновременным (фильм может выйти на видео в США, когда только выходит на экраны в Европе) киностудии хотят контролировать выпуск видеокопий в различных странах. Поэтому потребовалось, чтобы стандарт DVD включал коды, которые могут предотвратить воспроизведение некоторых дисков в определенных географических областях (регионах). Каждый видеопроигрыватель получает код для региона, в котором он продан. Это означает, что диски, купленные в одной стране, не могут считываться на плейерах, купленных в другой стране. Региональные коды являются дополнительными для изготовителя диска и отсутствие кода означает отсутствие региональных ограничений. Это — не система кодирования, а только информационный байт, обозначающий восемь различных регионов, который проверяется при проигрывании диска (табл. 3.6). 115
В сводной табл. 3.7 приводятся основные технические характеристики цифровых видеоформатов, перечисленных выше. Видеоредактирование Известны два типа видеоредактирования. Первый заключается в редактировании при переписывании одной ленты на другую и называется линейным редактированием. Второй требует, чтобы редактируемые видеопоследовательности были вначале помещены на жесткий диск, затем отредактированы и возвращены на пленку. Этот метод известен как нелинейное редактирование (НЛР, NLE). Для нелинейного редактирования видеопередачи карты захвата переводят видео в цифровую форму на жесткий Диск ПЭВМ и при этом функция редактирования выполняется полностью на ПЭВМ, почти так же, как редактируется документ текстовом редакторе. Носители могут быть дублированы и многократно использоваться по мере необходимости, сцены могут быт перестроены, добавлены или удалены в любое время в течение процесса редактирования (рис. 3.17, 3.18). 116
Широкое распространение НЛР началось в начале 1990-х гг., что связано с появлением все более вместительных, быстрых и дешевых НЖМД, с разработкой все более мощного программного обеспечения редактирования видео, получило мощную поддержку в 1995 г. с появлением формата DV Sony. Хотя видеоформат MPEG-2 уже нашел широкое использование в распространении информации, проблемы возникли в производстве и при редактировании видео. Если необходимо сделать вырезку из потока данных, то может оказаться, что В-кадры или Р – кадры (см. ниже, п. 3.6) будут отделены от структур, к которым они относятся, и их соответствие нарушится. В результате видео в формате MPEG-2 необходимо восстанавливать в несжатую (исходную) форму перед редактированием, или же редактирование видео приходится производить в несжатой форме и откладывать MPFGкодирование на самый последний момент. Так, в частности строится работа с программным продуктом Pinnacle Studio 9 (рис 3 18, 3.19). Здесь последовательно осуществляется видеозахват (рис 3.18), разбиение на сиены (материал сохраняется в слабосжатой форме формата AVI — при качестве DV — 3,8 Мбайт/с, пои качестве MPEG — 0,76 Мбайт/с), затем происходит формирование выходного видеопотока, который выводится в файл MPEG-1, MPEG-2 или какого-либо другого формата. Некоторые изготовители пытались разработать системы MPEG-2, допускающие редактирование без ограничений. Например, компания Sony предложила специальный формат под названием SX для профессиональных цифровых видеокамер и видеомагнитофонов, который использует очень короткие GOP, или группы кадров (четыре или меньше кадров), включающие только I- и Р – кадры (см. ниже, п. 3.6). При этом скорость передачи составляет 18 Мбит/с, что эквивалентно сжатию 10 : 1, но качество изображения сопоставимо с M-JPEG при 5:1. Позже фирма Pinnacle разработала методы редактирования коротких GOP IP-кадров MPEG-2 с использованием своей карты видеозахвата DC 1000 в системе Adobe Premier. 117
Pinnacle утверждает, что ее карта требует только половину полосы пропускания эквивалентного M-JPEG видео, позволяя одновременно обрабатывать два видеопотока на дешевой платформе с небольшим объемом памяти. Сталкиваясь с проблемой редактирования MPEG-2, изготовители видеопродукции, входящие в комитет ProMPEG, предложили профессиональную версию, известную как MPEG-2 4:2:2 Profile@Main Level (см. ниже, табл. 3.8). Здесь используются только Iкадры, что дает более высокие скорости передачи данных — до 50 Мбит/с. Формат был одобрен Европейским радиовещательным союзом (European Broadcasting Union) и его американским партнером — Обществом инженеров телевидения и кинематографии (Society of Motion Picture Television Engineers — SMPTE), для широкого диапазона применений в производстве видеопродукции. Хотя здесь и нет никакого преимущества в ширине полосы пропускания перед М-JPEG, а преобразование потоков к другим форматам MPEG-2 и обратно требует перекодирования, эта версия MPEG-2 (только Iкадры) — согласованный стандарт, позволяющий передавать материал между различными системами. По контрасту NLE-системы, которые используют M-JPEG, имеют тенденцию использовать немного различающиеся форматы файлов, что делает их несовместимыми. Несмотря на все их преимущества, файлы в сжатых форматах остаются все еще довольно большими и поэтому нуждаются в быстром интерфейсе для их передачи между видеокамерой и ПЭВМ. К счастью, решение этой проблемы существовало уже в течение ряда лет. Технология интерфейса FireWire была первоначально предложена Apple Computer, но затем утверждена как международный стандарт IEEE 1394. Когда этот интерфейс был разработан, цифровое видео было в младенческом состоянии и еще не существовало массовой потребности в такой быстрой технологии интерфейса, поэтому в течение нескольких лет интерфейс FireWire был решением проблемы, которая еще не возникла. Первоначально представляя сектор высоких технологий цифрового видеорынка, системы редактирования IEEE 1394 постепенно следовали за цифровыми видеокамерами в сферу потребителя. Так как FireWire передает видеоданные в сжатом цифровом состоянии, копии, сделанные в этом методе, теоретически должны быть точными клонами оригинала. В большинстве случаев это верно. Однако, поскольку 118
процесс копирования осуществляет эффективную маскировку ошибок, он не использует никаких методов их исправления. Следовательно, есть вероятность возникновения провалов (дефектов) для видео и звуковых данных приблизительно после полдюжины поколений копирования. Поэтому предпочтительная практика состоит в том, чтобы везде, где это возможно, избегать делать копии с копий. К концу 1998 г. системы редактирования, основанные на IEEE 1394, оставались дорогими и ориентировались в основном на профессиональный сектор рынка. Однако с увеличением масштаба работ с аудио, видео и другими, более общими типами данных, производители ПЭВМ в сотрудничестве с такими потребителями, как Sony, стали включать интерфейсы IEEE 1394 в системы ПЭВМ, чтобы обеспечить связь, управление и обмен цифровыми, звуковыми и видеоданными. Пока еще не вездесущий, интерфейс стал намного более обычным к началу 2000-х гг., не в последнюю очередь благодаря усилиям специалистов Creative, которые фактически обеспечили «свободный» адаптер FireWire для линейки звуковых карт Audigy, введенных в конце 2001 г. 3.6. Элементы технологии алгоритмов MPEG Стандарт MPEG-2 Рассмотрим в качестве примера стандарт MPEG-2, который состоит из трех основных частей: системной, видео и звуковой. Системная часть описывает форматы кодирования для мультиплексирования звуковой, видео- и другой информации, рассматривает вопросы комбинирования одного или более потоков данных в один или множество потоков, пригодных для хранения или передачи. Системное кодирование в соответствии с синтаксическими и семантическими налагаемыми данным стандартом, обеспечивает необходимую и достаточную информацию, чтобы синхронизировать декодирование без переполнения или «недополнения» буферов декодера при различных условиях приема восстановления потоков. Таким образом, системный уровень выполняет пять основных функций: • синхронизацию нескольких сжатых потоков при воспроизведении; • объединение нескольких сжатых потоков в единый поток; • инициализацию для начала воспроизведения; • обслуживание буфера; • определение временной шкалы. Видеочасть стандарта описывает кодированный битовый поток для высококачественного цифрового видео. MPEG-2 является совместимым расширением MPEG-1, он поддерживает чересстрочный видеоформат и содержит средства для поддержки ТВЧ (телевидение высокой четкости). Стандарт MPEG-2 определяется в терминах расширяемых профилей, каждый из которых, являясь частным случаем стандарта, имеет черты, необходимые всем классам приложений. Иерархические масштабируемые профили могут поддерживать такие приложения, как совместимое наземное многопрограммное ТВ (ТВЧ), пакетные сетевые видеосистемы, обратную совместимость с другими стандартами (MPEG-1 и Н.261) и приложениями, использующими многоуровневое кодирование. Звуковая часть стандарта MPEG-2 определяет кодирование многоканального звука. MPEG-2 поддерживает до пяти полных широкополосных каналов плюс дополнительный низкочастотный канал и (или) до семи многоязычных комментаторских каналов. Он также расширяет возможности кодирования моно-и стереозвуковых сигналов в MPEG-1 за счет использования половинных частот дискретизации (16; 22,05 и 24 кГц) для улучшения качества при скоростях передачи 64 кбит/с и ниже. 119
JPEG-форматы (M-JPEG Cine Pack) основаны на сжатии каждого кадра из видеопоследовательности. Этот подход получил название intraframe compression (внутрикадровое сжатие). Стандарт MPEG использует как intraframe, так и interframe compression (межкадровое сжатие). При межкадровом сжатии задаются опорные кадры, а последующие и предыдущие вычисляются на их основе. Поэтому межкадровая схема позволяет достичь большего сжатия — не надо хранить каждый кадр, запоминаются только различия между кадрами. Стандарт MPEG-2 не регламентирует методы сжатия видео сигнала, а только определяет, как должен выглядеть битовый поток кодированного видеосигнала, поэтому конкретные алгоритмы являются коммерческой тайной фирм—производителей оборудования. Однако существуют общие принципы, и процесс сжатия цифрового видеосигнала может быть разбит на ряд последовательных операций (рис. 3.20): • преобразование аналогового сигнала в цифровую форму; • предварительная обработка; • дискретное косинусное преобразование; • квантование; • кодирование. После аналого-цифрового преобразователя (АЦП) производится предварительная обработка сигнала, которая включает в себя следующие преобразования. 1. Удаление избыточной информации. Например, если фон изображения состоит из идентичных символов (пикселей), то совершенно не обязательно их все передавать. Достаточно описать один пиксель и послать его с сообщением о том, как часто и где он повторяется в изображении. 2. Если исходное изображение передается в виде чересстрочных полей, то они преобразуются в кадры с прогрессивной разверткой. 3. Сигналы цветности (RGB) преобразуются в цветоразностные сигналы U и V и сигнал яркости Y. 4. Изображение достраивается до кратного 16 количества пикселей по строкам и столбцам, чтобы обеспечить разбиение изображения на целое число макроблоков. 5. Производится преобразование из формата цветности 4 : 4 : 4 в формат 4:2:2 (горизонтальная передискретизация цветоразностных компонентов) или 4:2:0 (горизонтальная и вертикальная передискретизация цветоразностных компонентов). Квантование. Изображение разбивается на последовательность макроблоков, каждый из которых состоит из шести блоков по 8 х 8 пикселей: • четыре образуют матрицу 16 х 16 и несут информацию о яркости; • по одному — определяют цветоразностные компоненты U и V, которые соответствуют области изображения, покрываемой матрицей 16 х 16 пикселей. 120
Стандарт предусматривает два формата цветности, каждому из которых соответствует свой порядок блоков в макроблоке (рис. 3.21): • 4:2:0 — макроблок состоит из шести блоков — четыре блока яркости YD и два блока цветности CR И Св; • 4:4:4 — макроблок состоит из двенадцати блоков. Он содержит четыре блока YD, четыре CR и четыре Св. Производится разбиение потока кадров изображения по типам, для них находятся векторы движения, которые необходимы для повышения предсказуемости величин элементов изображения. Векторы движения обеспечивают компенсацию перемещений в прошедших и последующих кадрах. Компенсация движения применяется при предсказании текущего кадра на основе предыдущих и интерполяционного предсказания на основе прошедших и последующих изображений. Векторы движения определяются для каждой зоны изображения с размерами 16 х 16 пикселей, т. е. для макроблоков. В большинстве случаев видиеопоследовательности содержат избыточность в двух направлениях — временном и пространственном. Главное статистическое свойство, на котором основана аппаратура сжатия, — межэлементная корреляция, включающая предположение о коррелированности последовательных кадров видеоданных. Таким образом, значения отдельных пикселей изображения могут быть предсказаны либо по значениям ближайших пикселей внутри одного кадра (внутрикадровое кодирование), либо по значениям пикселей, расположенных в ближайших кадрах (межкадровое кодирование и компенсация перемещения). Кодирование. В некоторых случаях, например, при смене видеосцены в видеопоследовательности, временная корреляция между ближайшими кадрами очень низка. В таких случаях решающую роль в достижении эффективного сжатия видеоинформации играет внутрикадровая корреляция, т. е. пространственная корреляция пикселей изображения. Однако, если корреляция между последовательными кадрами видеоданных высока, то в случае, когда два последовательных кадра имеют схожее или одинаковое содержание, желательно применение межкадровой корреляции пикселей с временным предсказанием. На практике для достижения высокого коэффициента сжатия видеоинформации используется комбинация из двух подходов. Стандарт MPEG-2 определяет три типа кадров, для каждого из которых предусмотрен свой вид кодирования: 121
• опорные кадры, так называемые I-кадры (Intra Frames), которые являются основными и кодируются без обращения к другим кадрам, т. е. с использованием информации только этого кадра. Вид кодирования — внутрикадровый, обеспечивающий умеренное сжатие. Все остальные кадры анализируются процессором, который сравнивает их с опорными, а также между собой; • Р – кадры (Predicted) — закодированные относительно предыдущих I- или Р- кадров. Кодирование Р- кадров выполняют с использованием алгоритмов компенсации движения и предсказанием «вперед» по предшествующим I- и Р- кадрам. Они сжаты в 3 раза сильнее, чем I-кадры, и служат опорными для последующих Р- и В-кадров. Компенсация движения, применяемая к макроблокам Р- кадров, вырабатывает два вида информации: векторы движения (разница между базовыми и кодированными макроблоками) и значения ошибок (разница между предсказанными величинами и действительными результатами). Если макроблок в Р- кадре не может быть описан с использованием компенсации движения, что случается при появлении некоторого неизвестного объекта, то он кодируется тем же способом что и макроблок в I -кадре; • В-кадры (Bidirectionally Predicted) — закодированные относительно предыдущих и последующих кадров, т. е. с двунаправленным предсказанием и компенсацией движения. В-кадры имеют наибольшее сжатие. Таким образом, в стандарте MPEG-2 используются три вида кодирования: внутрикадровое, межкадровое «вперед» с компенсацией движения, межкадровое двунаправленное, также с компенсацией движения. Полученные кадры объединяются в группы последовательных кадров (GOP — group of pictures). Каждая последовательность начинается с I-кадра и состоит из переменного числа Р- и В-кадров. В описаниях алгоритмов кодирования MPEG и его реализаций не содержится никакой информации относительно методов выделения I-, Р- и В-кадров в видеопоследовательности. В начале сцены должен стоять I-кадр, в конце — Р-кадр. Увеличивать долю В-кадров можно только в рамках одной сцены, иначе возникнут большие ошибки предсказания и компенсации движения. Поскольку типичная длительность группы кадров (во временном представлении — примерно 0,5 с) значительно меньше характерного расстояния между границами сцен, то в большинстве случаев жесткое задание структуры группы кадров не приводит к существенным визуальным ошибкам из-за того, что смена сцен попадает внутрь группы кадров. На рис. 3.17 изображен порядок кодирования I-, Р- и В-кадров. Верхний ряд кадров демонстрирует исходную последовательность на входе кодера, нижний — после кодирования. Основными параметрами GOP являются длина последовательности N и порядок чередования Р- кадров. Например, в последовательности кадров, представленной на рис. 3.22, N= 7, М- 3, т. е. каждый третий кадр в последовательности — типа Р. 122
Из применявшихся до сих пор форматов групп для частоты полей 30 Гц типичной была последовательность IBBPBBPBBPBBP/BBIBBP... с N=13 (для первой группы) и M=3, в которой группу составляют 15 кадров, начинающихся с двух В-кадров и одного I-кадра, и каждые два В-кадра перемежаются с Р- кадром. Для частоты 25 Гц типичной является такая же последовательность, нос с N=12 и М=3. Такой выбор сделан для того, чтобы обеспечить одновременное выполнение требовании максимального сжатия и произвольного доступа к любому из кадров последовательности. Между тем именно Вкадры обеспечивают максимальное сжатие, и если бы удалось поднять долю В- кадров в группе, а I-кадрами обозначить границы сцен, то эффективность сжатия была бы увеличена. Для блоков с использованием компенсации движения находятся разностные ошибки предсказания движения. Следует упомянуть еще две возможности MPEG-алгоритмов. Это Motion Estimation (ME, в свободном переводе — оценка перемещений) и Spatial Redundancy (SR — пространственная избыточность). ME — метод, по которому реализуется вычисление Р- и В- кадров по опорным кадрам. Первым шагом в ME является разбиение кадров на блоки 16x16 пикселей. Далее блоки одного кадра сравниваются с соответствующими блоками другого кадра и, если они изменяют положение от кадра к кадру, их перемещение описывается векторами движения, которые и записываются в MPEG-поток. На следующем этапе кодирования применяется метод пространственной избыточности, позволяющий еще более сократить объем данных, описывая разность между соответствующими блоками. Используя дискретное косинус-преобразование, блоки подразделяются на подблоки 8x8 для отслеживания изменения цвета и яркости. Очевидно, что чем больше коэффициент сжатия, тем хуже качество. Коэффициент сжатия — это численное выражение соотношения между объемом сжатого и исходного видеоматериала. Для MPEG сейчас стандартом считается соотношение 200:1, при этом сохраняется неплохое качество видео. Различные варианты Motion-JPEG работают с коэффициентами от 5:1 до 100 : 1, хотя даже при уровне в 20 : 1 уже трудно добиться нормального качества изображения. Кроме того, качество видео зависит не только от алгоритма сжатия (MPEG или Motion-JPEG), но и от параметров цифровой видеоплаты, конфигурации компьютера, а также от программного обеспечения. Профили MPEG. Как уже отмечалось выше, в стандарте применяется концепция профилей и уровней (табл. 3.8). 123
Стандарт предусматривает пять профилей: • простой (simple) — для реализации видеопотока без В-кадров; • главный (main) — для реализации всех уровней, но без масштабируемости; • масштабируемый по отношению сигнал/шум (SNR scalable); • пространственно масштабируемый (spatiallyscalable); • профессиональный (professional 4:2:2), пространственно масштабируемый и масштабируемый по отношению сигнал/шум. Каждый из этих профилей можно подразделить на четыре уровня: • низкий (LL); • главный (ML); • высокий 1440 (Н1440); • высокий (HL). Каждому профилю соответствуют определенные наборы on раций по сжатию данных. В профиле простой используется наименьшее число операций: компенсация движения и гибридное дискретное косинусное преобразование (ДКП, DCT). Профиль главный содержит дополнительную операцию — предсказание по двум направлениям, что улучшает качество изображения. Профиль масштабируемый по отношению сигнал/шум предусматривает повышение устойчивости системы при снижении отношения сигнал/шум. Поток видеоданных разделяют на две части: базовый поток и расширенный поток. Первый несет наиболее значимую информацию, второй — дополнительную. Профиль пространственно масштабируемый содержит все операции предыдущего профиля и новую — разделение потока видеоданных по критерию четкости телевизионного изображения. Этот профиль обеспечивает переходы между ныне действующим стандартом и ТВЧ. В рассмотренных четырех профилях при кодировании сигналов яркости и цветности используют формат представления видеоданных 4:2:0, где число отсчетов сигналов цветности по сравнению с сигналом яркости снижено в 2 раза по горизонтальному и вертикальному направлениям. 124
В профиле профессиональный используют формат 4 : 2 : 2, т. е. число отсчетов сигналов цветности в вертикальном направлении такое же, как и в яркостном сигнале. Кроме этого, предусматривается возможность масштабирования — пространственного и по отношению сигнал/шум. Уровню низкий соответствует недавно введенный класс качества телевизионного изображения — ТВ ограниченной четкости. Уровню главный соответствует ТВ обычной четкости. Уровни высокий 1440 и высокий предусмотрены для ТВЧ, где использовано разложение на 1152 активные строки. Каждый из этих профилей и уровней определяет предельные значения основных параметров битового потока, как это показано в табл. 3.8. Сочетание профиля и уровня образует некоторое подмножество общего стандарта MPEG2 применительно к различным задачам, для решения которых он предназначен. Такое сочетание принято обозначать аббревиатурой. Например, MP@ML означает главный профиль и главный уровень. Профессиональный профиль в сочетании с главным уровнем (422P@ML) послужил основой принятого в 1996 г. подмножества стандарта MPEG-2 для цифрового телевещания. Описательный мультимедиа-стандарт MPEG-7 Спецификация разработана на пути использования методов и достижений интеллектуальных информационных систем в мультимедийных приложениях. Попытки решения данной задачи известны уже давно — ситуационное моделирование (Ю. И. Клыков, 1974 г.), RX-коды (1969 г.), проект PIPS (Pattern information processing system), программная среда и язык распознавания и генерации сцен NAL1G — Native language interprator of graphics (Япония, 1980 г.) и др. MPEG-7 формально называется «Мультимедиа-интерфейс для описания содержимого» (Multimedia Content Description Interface), он имеет целью стандартизовать описание мультимедийного материала, поддерживающего некоторый уровень интерпретации смысла информации, которая может быть передана для обработки ЭВМ. Стандарт MPEG7 не ориентирован на какое-то конкретное приложение, он стандартизует некоторые элементы, которые рассчитаны на поддержку как можно более широкого круга приложений. Следовательно, средства MPEG-7 позволят формировать описания (т. е. наборы схем описания и соответствующих дескрипторов по желанию пользователя) материала, который может содержать: • информацию, описывающую процессы создания и производства материала (указатель, заголовок, короткометражный игровой фильм); • информацию, относящуюся к использованию материала (указатели авторского права, история использования, расписание вещания); • информацию о характеристиках записи материала (формат записи, кодирование); • структурную информацию о пространственных, временных или пространственновременных компонентах материала (разрезы сцены, сегментация областей, отслеживание перемещения областей); • информацию о характеристиках материала нижнего уровня (цвета, текстуры, тембры звука, описание мелодии); • концептуальную информацию о реальном содержании материала (объекты и события, взаимодействие объектов); • информацию о том, как эффективно просматривать материал (конспекты, вариации, пространственные и частотные субдиапазоны и пр.); • информацию о собрании объектов; • информацию о взаимодействии пользователя с материалом (предпочтения пользователя, история использования). 125
MPEG-7 сконструирован так, чтобы учесть все подходы учитывающие требования основных стандартов, таких, как SMPTE Metadata Dictionary, Dublin Силие, EBU P/Meta и TV Anytime. Эти стандарты ориентированы на специфические приложения и области применения, в то время как MPEG-7 пытается быть как можно более универсальным. MPEG-7 использует также схему XML в качестве языка выбора текстуального представления описания материала. Главными элементами стандарта MPEG-7 являются (рис. 3.23): • дескрипторы (D) — представление характеристик, которые определяют синтаксис и семантику представления каждой из характеристик; • схемы описания DS (description scheme), которые специфицируют структуру и семантику взаимодействия между компонентами. Эти компоненты могут быть дескрипторами и схемами описания; • язык описания определений DDL (description definition language), позволяющий создавать новые схемы описания и, возможно, дескрипторы, и обеспечивающий расширение и модификацию существующих схем описания; • системные средства служат для поддержки мультиплексирования описаний, синхронизации описаний и материала, механизмов передачи, кодовых представлений (как текстуальных, так и двоичных форматов) для эффективной записи и передачи, управления и защиты интеллектуальной собственности в описаниях MPEG-7. В принципе, любой тип аудиовизуального материала может быть получен с помощью любой разновидности материала в запросе. Это означает, например, что видеоматериал может быть запрошен с помощью видео, музыки, голоса и т. д. Ниже приведены примеры запросов: • проиграйте несколько нот на клавиатуре, и вы получите список музыкальных отрывков, сходных с проигранной мелодией, или изображений, соответствующих некоторым образом нотам, например, в эмоциональном плане; • нарисуйте несколько линий на экране, и вы найдете набор изображений, содержащих похожие графические образы, логотипы, идеограммы; • определите объекты, включая цветовые пятна или текстуры, и вы получите образцы, среди которых сможете выбрать интересующие вас объекты; • опишите действия и получите список сценариев, содержащих эти действия; • используя фрагмент голоса Паваротти, получите список его записей, видеоклипов, где Паваротти поет, и графический материал, имеющий отношение к этому певцу. Рассмотрим пример описания визуального материала (рис.3.24,а) графовыми представлениями (рис. 3.24, б). 126
Этот пример демонстрирует момент футбольного матча. Определены два видеосегмента, одна стационарная область и три движущиеся области. Граф, описывающий структуру материала, показан на рис. 3.24, б. Видсосегмент Dribble&Kick (Обводка и удар) включает в себя вратаря и игрока. Мяч остается рядом с игроком, движущимся к вратарю. Игрок появляется справа от вратаря. Видеосегмент гол включает в себя те же подвижные области юс стационарную область ворота. В этой части последовательности игрок находится слева от вратаря, а мяч движется к воротам. Этот простой пример иллюстрирует гибкость данного вида педставления. Заметим, что это описание в основном представляется структурным, так как отношения, специфицированные ребрами графа, являются чисто физическими, а узлы представляют объекты, которые описываются данными о создании, информацией об использовании и 127
медиаданными, а также дескрипторами низкого уровня, такими, как цвет, форма, движение. В семантически явном виде доступна только информация из текстовой аннотации (где могут быть специфицированы ключевые слова мяч, игрок или вратарь). 3.7. Трехмерная компьютерная графика Трехмерная компьютерная графика (3D computer graphics) — разновидность графического искусства, использующего для создания своих произведений компьютеры и соответствующее программное обеспечение (рис. 3.25). Термин может относиться как к процессу создания таких графических образов, так и к научным исследованиям в области компьютерных графических методов и соответствующих технологий. Трехмерная компьютерная графика отличается от двумерной тем, что трехмерное представление геометрических данных сохраняется в компьютере с целью их обработки для построения и выдачи двумерных изображений, которые могут либо просматриваться в реальном масштабе времени, либо запоминаться для последующего использования. Трехмерное моделирование — процесс подготовки геометрических данных для трехмерной компьютерной графики — сходно искусством скульптуры, тогда как искусство двумерной графики походит на рисование. Несмотря на эти различия трехмерная компьютерная графика использует многие из тех же самых алгоритмов, что и двумерная. В программном обеспечении машинной графики часто исчезает грань между двух- и трехмерным, поскольку двумерные приложения могут использовать трехмерные алгоритмы, чтобы, например, описать эффекты освещения, и наоборот. Как правило, процесс построения трехмерной компьютерной графики может быть представлен в виде последовательности трех элементарных фаз: • создание содержания (трехмерное моделирование, текстурирование, анимация); • конфигурирование сцены; • рендеринг (представление) Во многих случаях между этими фазами нет строгого различия, моделирование может оказаться частью процесса создания сцены (например, в таких программах, как Caligari trueSpace и Rcalsoft 3D) и т. д. Моделирование Стадия моделирования состоит в формировании индивидуальных объектов, которые затем размещаются на сцене. Известен ряд методов моделирования, в том числе: • стереометрия твердых тел; • использование В-сплайнов; • аппроксимация многоугольниками. Моделирование процессов может также включать редактирование поверхности объекта или его материальных свойств (например, цвет яркость, шероховатость или блеск, 128
характер отражения света, прозрачность или непрозрачность, коэффициент преломления и пр.), добавляя текстуры поверхности, карты рельефа или другие особенности. При моделировании могут также применяться операции, связанные с подготовкой трехмерной модели для анимации (хотя в моделировании сложных процессов это может быть отдельной стадией, известной как оснащение). Объекты могут быть оснащены основой, или «костяком» — центральной структурой объекта, которая определяет форму и допустимые движения этого объекта. Это помогает в процессе анимации, поскольку движение основы автоматически определяет состояние соответствующих частей модели. В стадии оснащения в модель могут быть встроены определенные алгоритмы управления, чтобы упростить анимацию, например, управление выражением лица персонажа или формой губ в соответствии с произносимыми фразами. Моделирование может быть выполнено как посредством специализированных программ (например, Lightwave Modeler, Moray, Cinema 4D, Rhinoceros 3D, см. рис. 3.20,) или прикладных компонент (Shaper, Loftеr in 3D Studio), так и с использованием некоторого языка описания сцен (типа POV-Ray). Формирование сцены Установка сцены. Формирование сцены предполагает размещение в пространстве виртуальных объектов, средств освещения, съемочных камер и других объектов, которые будут в последующем использоваться для создания неподвижных или анимированных изображений. Если речь идет об анимации, на фазе часто используется метод ключевых кадров (keyframing), который облегчает моделирование сложного движения в сцене. Ключевые кадры задают при анимации некоторые обязательные промежуточные положения объектов в сцене, перемещения/изменения между которыми (смещение, вращение, масштабирование) реализуются путем интерполяционных вычислений. Важным аспектом установки сцены является освещение (подсветка). Так же как и в реальных съемках сцен, освещение — существенный фактор эстетического и визуального качества результата. Это достаточно сложное искусство и эффекты освещения могут существенно повлиять на настроение и эмоциональную окраску сцены — факт, хорошо известный фотографам и театральным режиссерам. Конечно, важнейшую роль играет размещение точек наблюдения (виртуальных фото- и видеокамер) при «съемке» сцены (своего рода операторское искусство). Каркасное моделирование и создание сеток. Процесс преобразования математических описаний объектов (например, сфера может быть задана ее центром и радиусом) в представлении поверхности сферы как многогранника, называется каркасным моделированием (tessellation, «составление мозаики», «мощение»). Этот шаг используется при представлении на основе многоугольников, когда объекты преобразуются из представлений абстрактными «примитивами» (сферы, конусы и т. д.) в так называемые «сетки» (meshes), являющиеся сетями связанных треугольников. Сетки треугольников (вместо, например, квадратов) более популярны, поскольку они оказываются гораздо удобнее при преобразовании изображения в растровую форму. Рендеринг Rendering — окончательная компиляция изображения. На этапе рендеринга, выполняемого 3D-акселератором, осуществляется построение растрового изображения (пикселей). Узкое место — доступ к памяти (необходимо быстро считывать пиксели и передавать в буфер кадра/экрана). Изображение каждого кадра (сцены) составляют тысячи многоугольников и они должны быть обновлены и переданы через память, по крайней мере 30 раз в секунду, чтобы создать иллюзию движения. Из буфера кадры передаются в RAMDAC (ЦАП) и преобразуются в аналоговый сигнал для монитора. Процесс рендеринга предполагает использование различных 3D-методов: 129
• текстурирование, отображение текстур (texture mapping) – технология детализации 3D-изображения, которая лучше всего может быть представлена как обтягивание некоего трехмерного каркаса окрашенной бумагой (конечно, двумерной). Это трудоемкий процесс, который должен быть выполнен не только для каждого пикселя изображения, но и для каждого элемента текстуры (текселя, texel). Могут использоваться разные текстуры (мультитекстурирование, multitexturing); • сжатое текстурирование (mip mapping, mip-отображение) — форма сокращения объема данных, при которой создается большее количество текселей, без выполнения эквивалентного необходимого числа вычислений. Если сжатие составляет 1 : 4, то считывание одного текселя эквивалентно передаче четырех текселей первоначальной структуры. Если использованы надлежащие фильтры, качество изображения может даже повыситься, поскольку при этом сглаживаются зубчатые грани; • билинейная фильтрация (bi-linear filtering) — считывание четверок текселей, усреднение их характеристик и использование представленного результата как единственного текселя. В результате выравнивается фактура близлежащих участков, изображение сглаживается и уменьшается пикселизация (blocky, pixelated appearance). Билинейная фильтрация является в настоящее время стандартом для большинства графических карт; • Z-буферизация (Z-buffering) — метод вычисления пикселей, которые следует загрузить в буфер экрана (память, хранящая данные, которые должны быть немедленно выведены). Обычные 3D-акселераторы берут один пиксель, рассчитывают его и переходят к следующему. Проблема состоит в том, что акселератор не имеет возможностей «узнать», Должен ли рассчитываемый пиксель быть показан немедленно или же позже. Z-буферизация вычисляет и приписывает каждому пикселю некоторый вес «Z». Чем меньше значение Z, тем раньше данный пиксель должен быть выведен на экран; • сглаживание (anti-aliasing) — технология снижения «шумов», присутствующих в изображении. Например, если объект находится в движении, необходим большой информационный поток, отражающий изменение положения, Цвета, размера и т. д. Иногда процессор не успевает обработать всю информацию и тогда некоторые места заполня-ются бессмысленным шумом. Сглаживание наряду mip-отображением удаляет этот шум; • закраска/штриховка Гуро (Gouraud shading) применяет тени к поверхности объектов, заставляет их выглядеть более объемно. Алгоритм определяет цвета смежных многоугольников и вычисляет гладкий переход между ними, что гарантирует отсутствие резких цветовых переходов в окраске объекта; • отображение выпуклостей/неровностей (bump mapping) создает иллюзию объемных углублений на плоской поверхности (шершавые стены, бурное море и пр.). Моделирование эффектов в рендеринге. Рендеринг является одной из важнейших дисциплин трехмерной компьютерной графики. В графическом конвейере — последний важный шаг, дающий окончательное представление модели или анимации. Используется в компьютерных и видеоиграх, тренажерах, спецэффектах кино и телевидения, системах автоматизации проектирования (САПР), в каждом случае — на основе специфических технологий и методик. Доступен широкий спектр программных продуктов-рендеров (renderers) — либо встроенных в большие программы моделирования/анимации, либо отдельные проекты. По своей внутренней структуре, рендерер — тщательно проработанная программа, основанная на широком спектре научных дисциплин, которые связаны с физикой, оптикой, теорией визуального восприятия, математикой и программированием. 130
Построенное изображение может иметь множество видимых особенностей и эффектов. Исследования и разработки в области рендеринга в основном мотивировались необходимостью их моделирования — некоторых отдельными алгоритмами и методами, а других — в комплексе. В табл. 3.9 приведены основные эффекты и особенности, моделируемые в процессе рендеринга. Были исследованы многие алгоритмы рендеринга, и разработанное программное обеспечение может использовать множество различных методов, чтобы получить заключительное изображение. Прослеживание каждого луча света в сцене — непрактично и слишком трудоемко. Даже рассмотрение части, достаточно большой, чтобы производить изображение, потребует чрезмерного времени, если выборка разумно не ограничена. В итоге были выделены четыре группы методов эффективного моделирования процессов прохождения света (табл. 3.10). Большинство средств расширенного программного обеспечения комбинирует два или больше методов, чтобы получить достаточно хорошие результаты при разумных затратах. 131
Программные средства трехмерной графики API u GDI. Мультимедийные технические средства (а особенно компьютерная графика) — наиболее быстро развивающаяся область промышленности ПК, где с высокими темпами постоянно возникают новые чипсеты, версии интерфейсных карт, устройства и принципы технологий. Для прикладного программиста, занимающегося разработками мультимедийных приложений или компьютерных игр, становится совершенно нереальным заново переписывать все программы с появлением на рынке карт с новыми графическими процессорами, поддерживающими высокопроизводительные технологии мультимедиа с аппаратным ускорением (графические/видеоакселераторы). Программный интерфейс приложения. В качестве решения появились программные интерфейсы приложений (API, application programming interface), которые играют роль посредника между прикладной программой и аппаратными средствами ЭВМ (интерфейсная карта и внешнее устройство), на которых она выполняется. Разработчик программного обеспечения пишет обращение к устройству на некотором стандартизированном языке, а не в кодах аппаратных средств ЭВМ. Затем драйвер, написанный изготовителем периферийного устройства или его карты, переводит этот стандартный код к формату, понятному специфической модели периферийных устройств (рис. 3.26). API-интерфейсы обеспечивают доступ к новейшим возможностям высокопроизводительных устройств, таких как микросхемы ускорения трехмерной графики и звуковые платы. Эти интерфейсы управляют функциями нижнего уровня, в том 132
числе ускорением двумерной графики, поддержкой устройств ввода, таких, как джойстик, клавиатура и мышь, а также микшированием и выводом звука. Графический интерфейс устройства (Graphics Device Interface — GDI) является стандартом Microsoft Windows, который описывает, как следует представлять графические объекты для передачи их на устройства вывода типа мониторов или принтеров. GDI поддерживает такие задачи, как рисование линий, представление шрифтов и обработка палитр. Он не занимается непосредственно формированием окон, меню и т. д., эти задачи оставлены для подсистемы пользователя (user32.dll), которая является надстройкой над GDI. Существенная способность GDI (кроме более прямых методов обращения к аппаратным средствам) — масштабирование и абстрагирование от оконечных устройств. Используя GDI, можно достаточно просто осуществлять вывод изображений на различные устройства (мониторы, принтера) и ожидать надлежащего результата в каждом случае. Эта способность обеспечивает все приложения WYSIWYG для Microsoft Windows. Простые игровые программы, которые не требуют быстрой Работки графики, могут обходиться возможностями GDI. Однако более современные игры должны использовать API DirectX или OpenGL, которые дают возможность программистам более интенсивно использовать аппаратные средства. С появлением Windows XP GDI заменяется преемником — подсистемой GDI+, базирующейся на C++. GDI+ — следующее поколение двумерной графической среды, включающее такие расширенные особенности, как двумерная графика со сглаживанием, координаты с плавающей запятой, альфа-смешивание, градиентное затушевывание, поддержка современных форматов графических файлов наподобие JPEG и PNG (которые заметно отсутствовали в GDI), и общая поддержка перечня аффинных преобразований в конвейере двумерного рендеринга. Использование этих особенностей очевидно в интерфейсе пользователя Windows XP, и их присутствие в основном графическом уровне очень упрощает выполнение векторных графических преобразований. Динамическая библиотека GDI+ может вместе с приложением использоваться под более ранними версиями Windows. Библиотека классов Microsoft.NET обеспечивает управляемый интерфейс для GDI+. API для трехмерной графики Господствующими направлениями в обработке трехмерной графики в последние годы являются два 3D-API — OpenGL и Direct3D. Прежде чем давать их описания вкратце охарактеризуем процедуры, входящие в понятие представления изображения или рендеринга. OpenGL (Open Graphics Library — открытая графическая библиотека) — межъязыковая и межплатформенная спецификация API для трех- и двумерных приложений компьютерной графики. Включает более чем 250 функций, которые предназначены для формирования трехмерных объектов и сцен из простых примитивов. OpenGL был разработан Silicon Graphics Inc. (SGI) в 1992 г. и широко распространен в индустрии разработчиков видеоигр, где конкурирует с Direct3D на платформах Microsoft Windows. OpenGL широко используется в САПР, визуализации данных, системах моделирования и видеоиграх. В своей основе OpenGL — это спецификация, т. е. некоторый документ, который определяет набор функций и содержит точное описание действий, которые они должны выполнять. На основе этой спецификации производители аппаратных средств ЭВМ создают конкретные программные реализации — библиотеки соответствующие функциям, объявленным в OpenGL – спецификации, используя видеоакселераторы там, где возможно. Оборудование подвергается сертификационным тестам, чтобы квалифицировать его соответствие OpenGL. 133
Применение OpenGL преследует следующие основные цели: • предоставляя программисту однородный программный интерфейс приложения, скрывать подробности взаимодействия с различными 3D-акселераторами; • скрывать различие платформ аппаратных средств ЭВМ, требуя только, чтобы все программные реализации поддерживали полный набор функций OpenGL (используя программную эмуляцию, если необходимо). Основная функция OpenGL заключается в считывании графических примитивов (точек, линий и многоугольников) и преобразовании их в пиксели. Это происходит в графическом конвейере, известном как «машина OpenGL» (OpenGL state machine). Большинство команд OpenGL или направляет примитивы на конвейер, или задает, как конвейер должен их обрабатывать. До появления OpenGL 2.0 каждая стадия конвейера выполняла установленную функцию и конфигурировалась только в узких пределах, но в OpenGL 2.0 несколько стадий могут полностью программироваться с использованием языка GLSL. OpenGL — процедурный программный интерфейс приложения низкого уровня, который требует от программиста точного описания шагов рендеринга сцен, а также хорошего знания графического конвейера. Краткое описание процесса в графическом конвейере (рис. 3.27): • построение (evaluation) коэффициентов полиномиальных Функций (наподобие сплайновых кривых NURBS), которые аппроксимируют пространственные поверхности объектов; • обработка вершин многогранников (vertex operations), их преобразование или подсветка в зависимости от материала, Удаление невидимых частей объектов; • растеризация (rasterisation) или преобразование предыдущей информации в пиксели, окраска многоугольников осуществляется на основе алгоритмов интерполяции; • операции над фрагментами (пиксели или их группы — per-fragment operations) типа обновления ранее поступившей и сохраненной информации (цветовая глубина, оттенок и пр.); • передача пикселей в буфер кадра/сцены (frame buffer). DirectX. Впервые предложенный в 1995 г., DirectX представлял собой объединенный набор инструментов программирования, предназначенных для того, чтобы помочь разработчикам создавать широкий спектр мультимедийных приложений для платформы Windows. Охватывая почти все аспекты мультимедийных технологий, выпуск DirectX 8.0 включает следующие компоненты: • DirectX Graphics, который в свою очередь состоит из двух API: — DirectDraw — для обработки двумерных растровых изображений; — Direct3D (D3D) — обработчик 3D-графики; • DirectInput, обрабатывает данные, поступающие от клавиатуры, мыши, джойстиков или других игровых контроллеров; • DirectPlay — для поддержки сетевых игр; 134
• DirectSound — проигрывание и запись звука; • DirectSound3D (DS3D) — для воспроизведения 3D-звучания; • DirectMusic — проигрывание звукозаписей, подготовленных в DirectMusic Producer; • DirectSetup — установка и настройка компонент DirectX; • DirectX Media, включает DirectAnimation, DirectShow, DirectX Video Acceleration, Direct3D Retained Mode и DirectX Transform для анимации, воспроизведения мультимедиа, 3D -интерактивных приложений; • DirectX Media Objects — поддержка кодирования/декодирования в реальном масштабе времени и создание спецэффектов. Direct3D. Direct3D включает две компоненты API — Immediate Mode (немедленная обработка) и Retained Mode (отложенная обработка). Первая обеспечивает использование всех 3D-функций видеокарт (подсветка, текстурирование, трансформация объектов и пр.), в то время как вторая — более сложные графические технологии, такие как иерархия сцен или анимация. Функции Immediate Mode предпочитают использовать разработчики видеоигр, поскольку здесь они могут осуществлять программирование на низком уровне, более свободно и эффективно используя возможности графического оборудования. Несмотря на Intermediate Mode считается, что Direct3D является менее гибким, чем OpenGL. Компоненты 6-й версии Direct3D поддерживают возможности более новых графических карт выполнять множественное текстурирование (покрытия «каркаса» изображения текстурами) за один проход. Здесь также используются более новые методы для того, чтобы улучшить реализм 3D-сцен, типа анизотропной фильтрации (anistropic filtering), которая добавляет элемент глубины к трилинейной фильтрации (trilinear filtering) и отображение неровностей (bump mapping), которое создает иллюзию реальности структуры и освещенности плоских поверхностей. Следующая версия — DirectX V7.0 (1999 г.), кроме оптимизации кода, которая позволила на 20 % увеличить быстродействие, включала ряд новых особенностей. Наиболее важная из них — сопровождение операций трансформации и подсветки (transformation and lighting — T&L), поскольку они поддерживаются большинством 3D-акселераторов текущего поколения, и особенно в графических картах чипсетов GeForce 256 (nVidia ) и bavage 2000 (S3). Поскольку операции T&L являлись одной из самых трудоемких для центральных процессоров задач в современных игровых приложениях, перенос этой нагрузки на выделенный 3D-акселератор позволяет освободить ЦП для более существенных задач (например, внесение в игры элементов искусственного интеллекта или выработка специальных эффектов). Самым важным аспектом DirectX 9.0 (январь 2003 г.) было введение HLSL (High Level Shader Language, высокоуровневый язык раскрашивания изображений). Ранее разработчики игр должны были программировать алгоритмы раскраски, используя ассемблер низкого уровня. HDSL вводит дружественную среду программирования, которая облегчает каждый шаг разработки, — от создания ярких образов в мультипликации до программирования эффектов. Базирующийся на языке программирования С, HLSL совместим со всеми графическими средствами DirectX. Структура графического конвейера Direct3D (рис. 3.28): • входная сборка (input assembler) поставляет данные на конвейер; • раскраска вершин многогранников (vertex shader) выполняет операции над вершинами, такими, как трансформация, покрытие текстурой, подсветка; • раскраска геометрических примитивов (geometry shader) — операции над примитивами (треугольники, вершины, линии), иногда — над связанными с ними примитивами. На этой стадии каждый примитив передается дальше или уничтожается, или на его основе создается один или несколько новых примитивов; 135
• выходной поток (stream output) — запись в память результатов предыдущих стадий. На основе этих данных могут быть организованы итерационные циклы обработки данных на конвейере; • растеризация (rasterizer) — трансформация примитивов в пиксели, удаление невидимых; • раскраска пикселей (pixel shader) и другие операции над ними; • окончательная сборка (output merger), объединение различных типов выходных данных и построение кадра-результата. Контрольные вопросы 1. Каковы характеристики аналогово-цифрового и цифро-аналогового преобразований аудиоданных? 2. Перечислите методы синтеза звука. 3. Какие характеристики имеют аудиоадаптеры? 4. Что такое ЧМ и WaveTable? 5. Перечислите возможности карты SoundBlaster. 6. Что такое Live!Drive? 7. Охарактеризуйте MIDI-интерфейс. 8. Перечислите основные характеристики форматов аудиосигнала. 9. Какие основные функции реализует программное обеспечение обработки аудиосигналов? 10. Охарактеризуйте методы оптической интерполяции. 11. Перечислите основные характеристики цифровых видеокамер (ЦВК). 12. Что такое схемы цветообразования? 13. Охарактеризуйте форматы графических файлов. 14. Что такое видеозахват? 15. Что такое цветоразностные компоненты? 16. Перечислите форматы записи цифрового видео. 17. В чем заключается сущность M-JPEG сжатия видеоданных? 18. Перечислите основные особенности алгоритмов MPEG-1—4. 19. Что такое GOP? 20. Что такое профили MPEG? 21. В чем сущность стандарта MPEG-7? 22. Перечислите основные фазы работы с 3-мерной графикой. 23. Что такое рендеринг? 24. Охарактеризуйте API OpenGL. 25. Что такое DirectX и Direct3D? 136
Глава 4 ИНФОРМАЦИОННЫЕ КРОСС-ТЕХНОЛОГИИ К данному классу отнесены технологии пользователя, ориентированные на следующие (или аналогичные) виды преобразования информации: • распознавания символов; • звук—текст; • текст—звук; • автоматический перевод. 4.1. Оптическое распознавание символов (OCR) Когда страница текста отсканирована в ПК, она представлена в виде состоящего из пикселей растрового изображения. Такой формат не воспринимается компьютером как текст, а как изображение текста и текстовые редакторы не способны к обработке подобных изображений. Чтобы превратить группы пикселей в доступные для редактирования символы и слова, изображение должно пройти сложный процесс, известный как оптическое распознавание символов (optical character recognition — OCR). В то время как переход от символьной информации к графической (растровой) достаточно элементарен и без труда осуществляется, например при выводе текста на экран или печать, обратный переход (от печатного текста к текстовому файлу в машинном коде) весьма затруднителен. Именно в связи с этим для ввода информации в ЭВМ исстари использовались перфоленты, перфокарты и др. промежуточные носители, а не исходные «бумажные» документы, что было бы гораздо удобнее. «В защиту» перфокарт скажем здесь, что наиболее «продвинутые» устройства перфорации делали надпечатку на карте для проверки ее содержания. Первые шаги в области оптического распознавания символов были предприняты в конце 50-х гг. XX в. Принципы распознавания, заложенные в то время, используются в большинстве систем OCR: сравнить изображение с имеющимися эталонами и выбрать наиболее подходящий. В середине 70-х гг. была предложена технология для ввода информации в ЭВМ, заключающаяся в следующем: • исходный документ печатается на бланке с помощью пишущей машинки, оборудованной стилизованным шрифтом (каждый символ комбинируется из ограниченного числа вертикальных, горизонтальных, наклонных черточек, подобно тому, как это делаем мы и сейчас, нанося на почтовый конверт цифры индекса); • полученный «машинный документ» считывается оптоэлектрическим устройством (собственно OCR), которое кодирует каждый символ и определяет его позицию на листе; • информация переносится в память ЭВМ, образуя электронный образ документа или документ во внутреннем представлении. Очевидно, что по сравнению с перфолентами (перфокартами) OCR-документ лучше хотя бы тем, что он без особого труда может быть прочитан и проверен человеком и, вообще, представляет собой «твердую копию» соответствующего введенного документа. Было разработано несколько модификаций подобных шрифтов, разной степени «удобочитаемости» (OCR A, OCR В и пр., рис. 4.1). 137
Очевидно также, что считывающее устройство представляет собой сканер, хотя и специализированный (считывание стилизованных символов), но интеллектуальный (распознавание их). OCR-технология в данном виде просуществовала недолго и в настоящее время приобрела следующий вид: • считывание исходного документа осуществляется универсальным сканером, осуществляющим создание растрового образа и запись его в оперативную память и/или в файл; • функции распознавания полностью возлагаются на программные продукты, которые, естественно, получили название OCR-software. Исследования в этом направлении начались в конце 1950-х гг., и с тех пор технологии непрерывно совершенствовались. В 1970-х гг. и в начале 1980-х гг. программное обеспечение оптического распознавания символов все еще обладало очень ограниченными возможностями и могло работать только с некоторыми типами и размерами шрифтов. В настоящее время программное обеспечение оптического распознавания символов намного более интеллектуально и может распознать фактически все шрифты, даже при невысоком качестве изображения документа. Основные методы оптического распознавания Один из самых ранних методов оптического распознавания символов базировался на сопоставлении матриц или сравнении с образцом букв. Большинство шрифтов имеют формат Times, Courier или Helvetica и размер от 10 до 14 пунктов (точек). Программы оптического распознавания символов, которые используют метод сопоставления с образцом, имеют точечные рисунки для каждого символа каждого размера и шрифта (рис. 4.2, а). Сравнивая базу данных точечных рисунков с рисунками отсканированных символов, программа пытается их распознавать. Эта ранняя система успешно работала только с непропорциональными шрифтами (подобно Courier), где символы в тексте хорошо отделены друг от друга. Сложные документы с различными шрифтами оказываются уже вне возможностей таких программ. Выделение признаков было следующим шагом в развитии оптического распознавания символов. При этом распознавание символов основывается на идентификации их универсальных особенностей, чтобы сделать распознавание символов независимым от шрифтов. Если бы все символы могли быть идентифицированы, используя правила, по которым элементы букв (например, окружности и линии) присоединяются друг к другу, то индивидуальные символы могли быть описаны независимо от их шрифта. Например: символ «а» может быть представлен как состоящий из окружности в центре снизу, прямой линии справа и дуги окружности сверху в центре (рис. 4.2, б). Если отсканированный символ имеет эти особенности, он может быть правильно идентифицирован как символ «а» программой оптического распознавания. 138
Выделение признаков было шагом вперед сравнительно с соответствием матриц, но практические результаты оказались весьма чувствительными к качеству печати. Дополнительные пометки на странице или пятна на бумаге существенно снижали точность обработки. Устранение такого «шума» само по себе стало целой областью исследований, пытающейся определить, какие биты печати не являются частью индивидуальных символов. Если шум идентифицирован, достоверные символьные фрагменты могут тогда быть объединены в наиболее вероятные формы символа. Некоторые программы сначала используют сопоставление с образцом и/или метод выделения признаков для того, чтобы распознать столько символов, сколько возможно, а затем уточняют результат, используя грамматическую проверку правильности написания для восстановления нераспознанных символов. Например, если программа оптического распознавания символов неспособна распознать символ «е» в слове «th~ir», программа проверки грамматики может решить, что отсутствующий символ — «е». Современные технологии оптического распознавания намного совершеннее, чем более ранние методы. Вместо того чтобы только идентифицировать индивидуальные символы, современные методы способны идентифицировать целые слова. Эту технологию, предложенную Caere, называют прогнозирующим оптическим распознаванием слов (Predictive Optical Word Recognition — POWR). Используя более высокие уровни контекстного анализа, метод POWR способен устранить проблемы, вызванные шумом. Компьютер анализирует тысячи или миллионы различных способов, которыми точки изображения могут быть собраны в символы слова. Каждой возможной интерпретации приписывается некоторая вероятность, после чего используются нейронные сети и прогнозирующие методы моделирования, заимствованные от исследований в области искусственного интеллекта. Они предполагают использование «экспертов» — алгоритмов, разработанных специалистами в различных областях распознавания символов. Один «эксперт» может знать многое о начертаниях шрифта, другой — о словарной информации, третий — об ухудшении качества от «зашумленности» и пр. На каждой стадии исследования привлекается новый набор «экспертов» с учетом близости их «областей знаний» к специфической ситуации и статистики успеха в подобных ситуациях. Окончательный итог — то, что система POWR способна идентифицировать слова способом, который близко напоминает человеческое визуальное распознавание. Практически, методика значительно улучшает точность распознавания слов во всех типах документа. Все возможные интерпретации слова оцениваются, комбинируя все источники доказательства, от информации пикселя нижнего уровня до контекстных особенностей высокого уровня, в результате чего выбирается самая вероятная интерпретация. Технологии Finereader Хотя системы оптического распознавания символов существовали в течение долгого времени, их выгоды только сейчас начали по достоинству оценивать. Первые разработки были чрезвычайно дорогостоящими (в терминах программного обеспечения и оборудования), неточны и трудны для использования. За несколько последних лет системы оптического распознавания полностью преобразились. Современное программное обеспечение распознавания символов очень удобно в использовании, обладает высокой точностью и находится на пути к распространению на все виды рабочих сред в массовом масштабе. Типичным представителем данного семейства программ является ABBYY FineReader, технологический процесс которого включает следующие шаги (рис. 4.3): • сканирование исходного документа (страницы); • разметку областей (ручную или автоматическую), требующих различные виды обработки (страницы разворота книги, таблицы, рисунки, колонки текста и пр.); 139
• распознавание — создание и вывод на экран текстового файла (с вставленными рисунками и таблицами, если это необходимо); • контроль правильности (ручной, автоматический, полуавтоматический); • вывод информации в выходной файл в заданном формате (.DOC или .RTF для Word, .XSL для Excel и пр.). Данные, полученные на каждом этапе (изображение, текстовый файл), сохраняются под «общей вывеской» пакета (страницы с номером), что позволяет в любой момент вернуться и повторить разметку, распознавание и пр. Если нет необходимости сохранять цветовую информацию оригинала документа (например, для последующей обработки системами оптического распознавания символов), изображение лучше всего сканировать в режиме grayscale (полутоновое изображение). При этом файл будет занимать одну треть объема сравнительно со сканированием в цвете RGB. Можно использовать также режим штриховой графики (line art), однако при этом часто теряются подробности, существенные для точности последующего процесса распознавания символов. Рассмотрим основные принципы функционирования программного продукта. Принципы IPA (целостности, целенаправленности, адаптивности). Пользователь помещает документ в сканер, нажимает кнопку, и через небольшое время в компьютер поступает электронное изображение, «фотография» страницы. На ней присутствуют все особенности оригинала, вплоть до мельчайших подробностей. Это изображение содержит всю необходимую для OCR-системы информацию об исходном документе. Принцип целостности (integrity), согласно которому объект рассматривается как целое, состоящее из связанных частей. Связь частей выражается в пространственных отношениях между ними, и сами части получают толкование только в составе предполагаемого целого, т. е. в рамках гипотезы об объекте. Принцип целенаправленности (purposefulness): любая интерпретация данных преследует определенную цель. Согласно этому принципу, распознавание представляет собой процесс выдвижения гипотез о целом объекте и целенаправленной их проверки. Принцип адаптивности (adaptability) подразумевает способность системы к самообучению. Полученная при распознавании информация упорядочивается, сохраняется и используется впоследствии при решении аналогичных задач. Пре140
имущество самообучающихся систем заключается в способности «спрямлять» путь логических рассуждений, опираясь на ранее накопленные знания. Вместо полных названий этих принципов часто употребляют аббревиатуру IPA, составленную из первых букв соответствующих английских слов. Преимущества системы распознавания, работающей в соответствии с принципами IРА, очевидны — именно они способны обеспечить максимально гибкое и осмысленное поведение системы. Например, на этапе распознавания символов изображение, согласно принципу целостности, будет интерпретировано как некий объект, только если на нем присутствуют все структурные части этого объекта, и эти части находятся в соответствующих отношениях. Иначе говоря, FineReader не пытается принимать решение, перебирая тысячи эталонов в поисках наиболее подходящего. Вместо этого выдвигается ряд гипотез относительно того, на что похоже обнаруженное изображение, затем каждая гипотеза целенаправленно проверяется. Допуская, что найденный объект может быть буквой «A», FineReader будет искать именно те особенности, которые должны быть у изображения этой буквы. Как и следует поступать, исходя из принципа целенаправленности. Причем проверять, верна ли выдвинутая гипотеза, система будет, опираясь на накопленные ранее сведения о возможных начертаниях символа в распознаваемом документе. Многоуровневый анализ документа (MDA) Подлежащий распознаванию документ часто выглядит заметно сложнее, чем белая страница с черным текстом. Иллюстрации, таблицы, колонтитулы, фоновые изображения — эти элементы, все чаще применяемые для оформления, усложняют структуру страницы. Для того чтобы корректно воспроизводить в электронном виде такие документы, все современные OCR-программы начинают распознавание именно с анализа структуры. Как правило, при этом выделяют несколько иерархически организованных логических уровней. Объект наивысшего Уровня только один — собственно страница, на следующей ступени иерархии располагаются таблица и текстовый блок, и так далее (рис. 4.4). Любой высокоуровневый объект может быть представлен как объектов более низкого уровня: буквы образуют слово, слова — строки и т. д. Поэтому анализ всегда начинается в направлении сверху вниз. Программа делит страницу на объекты, их, в свою очередь, — на объекты низших уровней, и так далее, вплоть до символов. Когда символы выделены и распознаны, начинается обратный процесс — «сборка» объектов высших уровней, который завершается формированием целой страницы. Такая процедура называется многоуровневым анализом документа, или MDA (multilevel document analysis). 141
Очевидно, что программа, допустившая ошибку при распознавании объекта высокого уровня (например, перепутавшая абзац текста с иллюстрацией), почти не имеет шансов корректно завершить процедуру — итоговый электронный документ будет искажен. Риск столкнуться с подобной ситуацией существовал бы и для FineReader, однако он ведет анализ документа несколько иначе. Во-первых, объекты любого уровня FineReader распознает в соответствии с принципами IPА. В первую очередь выдвигаются гипотезы относительно типов обнаруженных объектов, затем они целенаправленно проверяются. При этом система учитывает найденные ранее особенности данного документа, а также сохраняет вновь поступающую информацию (обучается). Допустим, все объекты текущего уровня распознаны. FineReader переходит к детальному анализу одного из них, определенного, к примеру, как текстовый блок. Предположим, вдруг оказывается, что результаты анализа этого блока крайне неубедительны; не удается выделить ни абзацы, ни строки. Повторный анализ позволяет внести коррективы: да, это текст, но наложенный на фоновое изображение. После дополнительной обработки распознавание будет продолжено — и уже без ошибок. Описанная ситуация наглядно иллюстрирует вторую важную особенность используемого в системе FineReader алгоритма MDA: на всех этапах многоуровневого анализа существует возможность обратной связи — результаты анализа на одном из нижних уровней всегда могут повлиять на действия с объектами более высоких уровней. Наличие обратной связи в процедуре MDA дает возможность резко понизить вероятность грубых ошибок, связанных с неверным распознаванием объектов более высоких уровней. Распознавание любого документа производится поэтапно, с помощью процедуры многоуровневого анализа документа (MDA). Деление страницы на объекты низших уровней, вплоть до отдельных символов, распознавание этих символов и «сборку» электронного документа FineReader проводит, опираясь на принципы целостности, целенаправленности и адаптивности (IPA) (рис. 4.5). Распознавание от уровня «страница» до уровня «слово» На первом этапе распознавания система структурирует страницу, выделяет на ней текстовые блоки. Как мы знаем, современные документы часто содержат всевозможные элементы дизайна: иллюстрации, колонтитулы, цветной фон или фоновые изображения, и т. д. Основная задача на данном этапе состоит в том, чтобы отделить текст от иллюстраций и «подложенных» текстур. Все современные системы распознавания начинают процесс «знакомства» с создания черно-белого изображения документа. При этом подлежащее анализу изображение чаше всего цветное или полутоновое (т. е. состоящее из разных оттенков серого цвета, подобно картинке на экране черно-белого телевизора). Любая OCR-система прежде всего 142
преобразует такое изображение в монохромное, состоящее только из черных и белых точек. Процесс преобразования называется бинаризацией, он всегда предшествует детальной обработке распознаваемой страницы. Блок текста, состоящий из строк, должен иметь характерную линейчатую структуру. Разделив этот блок на строки, можем приступать к выделению слов. Однако на практике столь простые варианты встречаются нечасто. Возьмите любой документ, где строки текста наложены на цветной фон, и представьте, как будет выглядеть эта страница в черно-белом варианте. Вокруг каждого символа обнаружатся десятки и сотни «лишних» точек, оставшихся от фона. Работая с таким «загрязненным» текстом, большинство OCRпрограмм не сможет уверенно распознавать символы, поскольку лишние точки будут искажать очертания букв и даже границы строк, приводя к ошибкам. FineReader не пытается решать задачу бинаризации «в лоб». Принцип целенаправленности диктует иной подход к обнаружению строк в текстовом блоке или слов в строке: они должны быть где-то здесь, надо только суметь их узнать. Для повышения качества поиска FineReader использует процедуры интеллектуальной фильтрации фоновых текстур (рис. 4.6, о) и адаптивной бинаризации (рис. 4.6, б). Первая позволяет уверенно отделять строки текста от сколь угодно сложного фона, вторая — гибко выбирать оптимальные для данного участка параметры бинаризации. Естественно, к этим процедурам система прибегает не всегда, а лишь в тех случаях, когда предварительный анализ указывает на подобную необходимость. В каждом конкретном случае FineReader выбирает подходящий «инструмент», опираясь на информацию, накопленную в процессе анализа документа. Например, идет анализ строки. Система занята поиском объектов уровня «слово». На первый взгляд, проще всего разделить строку на слова по найденным пробелам. Однако первичный анализ показывает, что в конце строки пробелы попадаются заметно чаще, чем в начале. Процедура адаптивной бинаризации исследует яркость фона и насыщенность черного цвета на протяжении всей строки и подбирает оптимальные параметры бинаризации для каждого фрагмента по отдельности. В результате оказывается, что часть символов в конце строки получилась слишком светлой и могла бы быть «потеряна» при обработке обычной OCR-программой, но в результате применения адаптивной бинаризации все слова будут выделены точно. При неправильном выборе параметров бинаризации слово окажется «нечитаемым». Уровни «слово» и «символ». Распознаватели символов (классификаторы) Разделив строку на отдельные слова, FineReader приступает к обработке символов. Разделение слов на символы и собственно распознавание букв, как и все остальные механизмы многоуровневого анализа документа, реализованы в виде составных частей единой процедуры. Это позволяет в полной мере использовать преимущества принципов IPA. Выделенные изображения символов поступают на рассмотрение механизмов распознавания букв, называемых классификаторами. 143
В системе ABBYY FineReader применяются следующие типы классификаторов: растровый, контурный, признаковый, структурный, признаково – дифференциальный и структурно-дифференциальный. Растровый классификатор. Классификатор сравнивает символ с набором эталонов, поочередно накладывая изображения друг на друга. Эталонами в данном случае выступают специально подготовленные изображения; каждое из них объединяет в себе очертания множества вариантов написания того или иного символа. Гипотезы выдвигаются в зависимости от того, с какими эталонами точнее совпало изображение буквы. Сами эталоны строятся методом наложения друг на друга большого количества одних и тех же букв в разных вариантах начертания (рис. 4.7, а). Контурный классификатор. Представляет собой разновидность признакового классификатора. От вышеописанного отличается тем, что признаки вычисляются не по полному изображению символа, а по его контуру (рис. 4.7, б). Этот быстродействующий классификатор предназначен для распознавания текста, набранного декоративными шрифтами (например, стилизованного под готический, старорусский стиль и т. п.). Признаковый классификатор. Аналогичен растровому (выдвигает гипотезы, исходя из степени совпадения параметров символа с эталонными значениями). Оперирует определенными числовыми признаками, такими, например, как длина периметра, количество черных точек в разных областях или вдоль различных направлений и т. п. (рис. 4.7, в). Весьма популярен у разработчиков OCR-систем. В определенных условиях способен работать почти так же быстро, как растровый. Точность работы признакового классификатора во многом зависит от качества признаков, выбранных для каждого символа. Под качеством признаков в данном случае понимается их способность максимально точно, но без избыточной информации охарактеризовать начертание буквы. Структурный классификатор. Первоначально был создан и использовался для распознавания рукописного текста, однако в последнее время применяется и для обработки печатных документов. Этот классификатор проводит структурный анализ символа, раскладывая последний на элементарные составляющие (отрезки, дуги, окружности, точки) и формируя точную схему анализируемого знака (рис. 4.7, г). Затем полученная схема (структурное описание буквы) сравнивается с эталоном. Этот классификатор работает медленнее растрового и признакового, но отличается высокой точностью Более того, он способен «мысленно» восстанавливать не пропечатанные или залитые символы. 144
Признаково-дифференциальный классификатор. Предназначен для различения похожих друг на друга объектов, таких, например, как буква «m» и сочетание «rn». Принципиальное отличие этого классификатора от описанных выше заключается в том что он не анализирует все изображение. Дифференциальный классификатор обращается только к тем частям объекта, где может находиться ключ к правильному ответу. В случае с «m» и «rn» ключом служит наличие и ширина разрыва в месте касания предполагаемых букв. Признаково-дифференциальный классификатор используется во многих системах распознавания символов (рис. 4.7, д). Структурно-дифференциальный классификатор. Аналогичен структурному; был разработан и первоначально применялся для обработки рукописных текстов. Как и признаково-дифференциальный, этот классификатор решает задачи различения похожих объектов, но работает на порядок точнее (за счет анализа структуры) и способен «узнавать» искаженные знаки (рис. 4.7, е). 145
В самых общих чертах процесс обработки символа выглядит так: растровый и признаковый классификаторы анализируют изображение и выдвигают несколько гипотез относительно того, какая буква им представлена. Следует заметить, что при выдвижении каждой гипотезе присваивается определенная оценка (так называемый вес гипотезы). В результате работы растрового и признакового классификаторов система получает список гипотез, отсортированный по весу (т. е. по степени уверенности). Затем, в соответствии с принципами IРА, FineReader приступает к целенаправленной проверке имеющихся гипотез с помощью дифференциального признакового классификатора. В тех случаях, когда требуется различить дна похожих символа (например, «I» и «l»), к анализу подключается дифференциальный структурный классификатор. В самых трудных ситуациях задействуют структурный классификатор. Построив полную схему распознаваемого знака и проанализировав ее на предмет наличия ключевых элементов структуры, этот классификатор изменяет веса гипотез в соответствии с результатами своей работы. C уровня «символ» до уровня «слово». Структурирование гипотез На каждом логическом уровне документа выдвигается ряд гипотез. Каждая из них на следующем уровне порождает еще несколько предположений. Поэтому при распознавании букв FineReader оперирует множеством гипотез, учитывающих возможные варианты деления строки на слова, слова на буквы, и т. д. Для быстрого и точного принятия решений система объединяет гипотезы в многоуровневые структуры — модели. Существуют следующие типы моделей слова: словарное слово, несловарное слово (для каждого из поддерживаемых языков распознавания построены соответствующие разновидности), e-mail или URL, цифры с префиксом или суффиксом, регулярное выражение и т. д. В результате структурирования количество подлежащих проверке гипотез сильно сокращается, так что последующая проверка происходит максимально быстро и эффективно. Рассмотрим процесс структурирования на примере слова «turn» (рис. 4.8). Предположим, при разделении слова на символы было выдвинуто две гипотезы: первая соответствует прочтению «turn», вторая — «turn». Классификаторы, обработав символы, в свою очередь предложили для каждой буквы обоих слов некоторый ряд гипотез. Последние, как мы помним, обычно сортируются по весу. Следующий шаг кажется очевидным — теперь надо выбрать гипотезы с максимальным весом. Однако далеко не всегда наиболее вероятная гипотеза в итоге оказывается истинной. Лучший способ принять правильное решение — перейти на уровень «слово» и путем нескольких проверочных one раций выяснить, какой из вариантов больше остальных похож на правильный. В рассматриваемом примере произойдет следующее: контекстная проверка покажет, что весь текст состоит из английских слов, и вес моделей «слово — английский язык» значительно увеличится, а моделей «слово — кириллица» соответственно уменьшится. 146
Модель «цифры» также останется позади в силу крайне малого суммарного веса составляющих гипотез. Затем словарная проверка подтвердит, что в словаре английского языка слова «turn» нет, a «turn» — есть. Следовательно, гипотеза относительно слова «turn» приобретет еще больший вес, что позволит ей в дальнейшем оказаться «победителем». Заметим, что «авторитет» словаря значительно выше, нежели у любого классификатора, поэтому в данном примере даже при полностью слившихся буквах г и п итоговое решение будет принято правильно. С уровня «строка» до уровня «страница». Формирование электронного документа Итак, все слова текстового блока распознаны. Пользуясь информацией, полученной при анализе структуры документа, ABBYY FineReader расставляет слова по местам. Из образующихся при этом строк формируются текстовые блоки, размещаемые на странице в точном соответствии с оригиналом. Когда формирование документа завершено, система обращается к пользователю за подтверждением — правильно ли распознана страница (рис. 4.9)? Никакое программное обеспечение оптического распознавания символов никогда не распознает 100 % сканированных символов. В большинстве случаев количество допускаемых FineReader ошибок не превышает 1—3 на страницу при среднем качестве оригинального документа. Исправить пару специально подсвеченных ошибок, конечно, существенно проще и быстрее, чем перепечатывать и форматировать весь документ целиком. В результате пользователь получает точную электронную копию страницы; при необходимости ее можно отредактировать либо сохранить «как есть». Специальный модуль программы может экспортировать результат практически в любой из современных форматов электронных документов. Для сохранения текста удобен формат Microsoft Word, а если исходный документ представлял собой таблицу, то вполне резонно сохранить электронную копию в формате Microsoft Excel. Если же статью предполагается опубликовать в сети Интернет, можно использовать формат HTML или PDF. 4.2. Системы распознавания речи Теоретически машинное распознавание речи, т. е. ее автоматическое представление в виде текста, является крайней степенью сжатия речевого сигнала, 147
Процесс распознавания речи (STT — speech-to-text) в последние годы сделал гигантский скачок вперед. В наибольшей мере его стимулирует отнюдь не желание разработчиков создать пользовательские суперудобства, а существование специфических областей компьютеризации, где голосовые команды являются более приемлемым или даже единственно возможным решением. К ним относятся телефонный доступ к автоматическим справочным системам, управление удаленным компьютером или мобильным портативным устройством, осуществляемое во время движения. Принципы распознавания речи Системы распознавания речи обычно состоят из двух компонент, которые могут быть выделены в блоки или в подпрограммы — акустической и лингвистической. Лингвистическая часть может включать в себя фонетическую, фонологическую, морфологическую, синтаксическую и семантическую модели языка. Акустическая модель отвечает за представление речевого сигнала. Лингвистическая модель интерпретирует информацию, получаемую от акустической модели, и отвечает за представление результата распознавания потребителю. Акустическая модель. Существуют два подхода к построению акустической модели: изобретательский и бионический. Оба подхода имеют свои достоинства и недостатки. Первый базируется на результатах поиска механизма функционирования акустической модели. При втором подходе разработчик пытается понять и смоделировать работу естественных систем. Лингвистическая модель. Лингвистический блок подразделяется на следующие слои (уровни); фонетический, фонологический, морфологический, лексический, синтаксический, семантический. Все уровни содержат априорную информацию о структуре естественного языка, а, как известно, любая априорная информация об интересующем предмете увеличивает шансы принятия верного решения. Поскольку естественный язык несет весьма сильно структурированную информацию, для каждого естественного языка может потребоваться своя уникальная лингвистическая модель (отсюда трудности русификации сложных систем распознавания речи зарубежной разработки). В соответствии с данной моделью на первом (фонетическом) уровне производится преобразование входного (для лингвистического блока) представления речи в последовательность фонем, как наименьших единиц языка. Считается, что в реальном речевом сигнале можно обнаружить лишь аллофоны — варианты фонем, зависящие от звукового окружения. На следующем (фонологическом) уровне накладываются ограничения на комбинаторику фонем (аллофонов) — не все сочетания фонем (аллофонов) встречаются, а те, что встречаются, имеют различную вероятность появления, зависящую еще и от окружения. Для описания этой ситуации используется математический аппарат цепей Маркова. Далее, на морфологическом уровне оперируют со слогопо-добными единицами речи более высокого уровня, чем фонема. Иногда они называются морфемами. Они накладывают ограничение уже на структуру слова, подчиняясь закономерностям моделируемого естественного языка. Лексический уровень охватывает слова и словоформы того или иного естественного языка, т. е. словарь языка, также внося важную априорную информацию о том, какие слова возможны для данного естественного языка. Семантика устанавливает соотношения между объектами действительности и словами, их обозначающими. Она является высшим уровнем языка. При помощи семантических отношений интеллект человека производит как бы сжатие речевого сообщения в систему образов, понятий, представляющих суть речевого сообщения. 148
Российская компания «ИстраСофт» известна пакетом для обучения английскому языку с визуальным контролем произношения «Профессор Хиггинс». Развивая «Хиггинса», сотрудники «ИстраСофт» совершили технологический прорыв, значение которого трудно переоценить: они научились членить слова на элементарные сегменты, соответствующие звукам речи, независимо от диктора и от языка (Существующие системы распознавания Речи не производят сегментации, наименьшей единицей для них является слово.) Демонстрация новой технологии выглядит пока не очень эффектно: это всего-навсего упаковка и распаковка звуковых файлов с записью речи — правда, с высокими коэффициентами сжатия. Если файл был сжат сильно, то после распаковки в нем появляются отчетливо слышные границы между сегментами; использованию программы по прямому назначению они, конечно, мешают, но специалисту позволяют убедиться в правильности членения. В соответствии с этим решение задачи речевых технологий можно представить в виде схемы рис. 4.10. В основе алгоритма лежит выделение фонем из потока слитной речи в режиме реального времени, их кодирование и последующее восстановление, однако у разработчиков нет единого мнения о том, что считать фонемой при машинной обработке речи. Способ, предложенный фирмой «ИстраСофт», допускает сжатие речи в 200 раз, причем при сжатии менее чем в 40 раз качество сигнала практически не падает. Чтобы создать основанную на новой технологии систему распознавания, необходимо «привязать» сегментацию к конкретному языку с помощью двух словарей — «звукового», сопоставляющего реальным звукам речи определенные фонемы, т. е. смыслоразличительные единицы (на слух мы, как правило, воспринимаем именно фонемы родного языка, не замечая различий между их вариантами, обусловленными, например, позицией), и «фонетико-орфографического», который будет переводить фонемную запись в письменную. Принципиально ничего сложного здесь нет: это вполне рутинная, умеренно трудоемкая техническая задача. Интеллектуальная обработка речи на уровне фонем перспективна не только как способ сжатия, но и как шаг на пути к созданию нового поколения систем распознавания речи. Практическая реализация. Многие научные центры, в том числе и в нашей стране, брались за решение этой проблемы (фундаментальные исследования теории языка, которые велись в 1970-х гг. в СССР, легли в основу многих современных продуктов), но первый серьезный прорыв в области речевых технологий удалось сделать только в 1986 г. в Defense Advanced Research Project Agency (DARPA) — Агентстве перспективных исследований Министерства обороны США. Успех связан с тем, что ученые решили уменьшить число фонетических структур, предлагаемых распознающему устройству. Для реализации этой задачи они применили так называемую крытую марковскую модель» (Hidden Markov Model — НММ), 149
основанную на свойстве марковской цепи генерировать последовательность определенных детерминированных символов при переходах между некоторыми состояниями вероятностного характера (в марковском процессе параметры системы зависят только от предыдущего состояния и «не помнят» более глубокой предыстории) Имея последовательность символов, сгенерированную марковской моделью, можно однозначно восстановить породившую ее последовательность состояний, но лишь только при том условии что каждый символ соответствует одному состоянию. В процессе цифровой обработки речевой сигнал подвергается сначала логарифмическому, а затем обратному преобразованию Фурье, в результате чего отыскивается с десяток первых коэффициентов, несущих наиболее существенную информацию об огибающей спектральной характеристики сигнала. Собственно, современные развитые коммерческие программы распознавания речи и отличаются именно способом реализации механизма выбора из встроенной (или созданной пользователем) базы данных наиболее вероятного набора фонем (минимально значимых элементов, из которых состоит слово). На первом этапе компьютер записывает звук речи в виде цифровой аудиопоследовательности и делит ее на фрагменты длительностью несколько миллисекунд. Программа сравнивает эти аудиофрагменты с записанными в память речевыми образцами. Качество базы данных образцов является наиболее важным условием для безошибочного распознавания речи. Она содержит фрагменты речи различных людей с разными особенностями произношения, такими, как снижение звука, диалект, выделение слогов и произношение. Эта часть системы распознавания речи называется системой, не зависящей от говорящего. Систему, не зависящую от говорящего, дополняет систем распознавания говорящего. В основе последней лежит понятие фонемы — наименьшей акустической единицы языка. В процессе тренировки программное обеспечение распознает наиболее важные признаки произношения пользователем фонем и записывает полученные данные в виде профиля говорящего. Очень важно, чтобы в дальнейшем во время диктовки пользователь по возможности точно выдерживал мелодию реи и произношение. В системе распознавания говорящего при определении «сомнительных слов» используется тот факт, что после определенного слова могут следовать (и имеют при этом смысл) лишь не многие конкретные слова. Владельцам мобильных телефонов этот способ знаком по SMS-сообщениям, при наборе которых нужное слово предлагается автоматически. Классификация систем распознавания речи. Классификация по назначению: • командные системы; • системы диктовки текста. По потребительским качествам: • диктороориентированные (тренируемые на конкретного диктора); • дикторонезависимые; • распознающие отдельные слова; • распознающие слитную речь. По механизмам функционирования: • простейшие (корреляционные) детекторы; • экспертные системы с различным способом формирования и обработки базы знаний; • вероятностно-сетевые модели принятия решения, в том числе нейронные сети. Разумеется, относительно проще реализовать программу, способную распознавать только ограниченный, совсем небольшой набор управляющих команд и символов. Это, например, могут быть цифры от 0 до 9, слова «да», «нет», односложные команды типа «открыть», «закрыть», «выйти» и т. п. Такие программы появились первыми и уже давно 150
применяются в компьютерной телефонии для голосового набора телефонного номера или выбора пункта меню. Если в словарь добавить названия букв алфавита, то, в принципе, по буквам можно продиктовать и любое слово или название — например, при заказе билета таким путем можно ввести станцию назначения. Подобные системы могут похвастаться тем, что распознавание происходит без предварительной настройки под конкретного пользователя, т. е. они независимы от диктора (speaker-independent). Применение их для получения автоматической справки и генерации запросов к базам данных позволяет компаниям высвободить большое количество сотрудников, обеспечить круглосуточный доступ к информации, причем зачастую появляется возможность дополнительно расширить сферу предоставляемых услуг. Помимо этого, системы с распознаванием ограниченного набора слов могут применяться и для голосового управления компьютером, а через него и другой техникой. Можно предусмотреть и добавление в базу данных индивидуальных макросов пользователя. При ограниченном словаре также легче реализовать систему распознавания слитной речи, характеризующейся отсутствием специальных пауз между словами. Точность распознавания, как правило, повышается при предварительной настройке на голос конкретного пользователя, причем этим способом можно добиться распознавания даже тогда когда говорящий имеет дефект речи или акцент. Все бы хорошо, но длительное только в том случае, если предполагается индивидуальное применение ПО одним пользователем, в крайнем случае — небольшой группой пользователей, для каждого из которых создается свой индивидуальный «профиль». Программы для диктовки текстов (еще одно очевидное применение функции распознавания речи) первоначально могли понимать только так называемую «раздельную» речь, в которой после каждого произнесенного слова требовалось сделать небольшую паузу. Такая манера говорить неестественна — в процессе обычного человеческого разговора интенсивность звука практически никогда не падает до нуля (в этом можно убедиться, разглядывая спектрограммы). Распознавать диктовку текстов общей тематики, выполняемую в манере слитной речи, коммерческие программы научились только в 1997 г. Разумеется, что словарь подобных пакетов обслуживает так называемую общую тематику и охватывает лишь небольшую часть всей лексики. Значительная часть пользователей этим словарем не ограничивается и подключает еще специализированные (технические, медицинские, юридические и другие) словари. Впрочем, на качество распознавания влияет даже манера ведения разговора — непринужденную беседу с относительно небольшим количеством используемых лексических единиц запротоколировать гораздо сложнее, чем размеренный диктант. Проблема заключается, в основном, в вариативности и наличии большого количества различных смысловых оттенков у самых простых конструкций. Тяжелее всего распознаются короткие слова, в результате по сравнению с многосложными частот ошибок при их обработке несравненно больше. Серьезнейшая проблема — одно – двухбуквенные слова. Заставить компьютер различать английские «а» и «an» можно только обращаясь к контексту всей фразы. Расшифровка диктофонных записей, компьютерное стенографирование конференций и обсуждений — задача, к решению которой создатели ПО для распознавания речи только приблизились. По заявлениям разработчиков компаний Dragon Systems, IBM и Lernout&Hauspie, компьютер (при непрерывной диктовке) способен правильно распознавать до 95 % текста, а меж тем известно, что для комфортной работы точность распознавания требуется довести до 99 %. 151
Требования к оборудованию. Вначале системы для распознавания речи реализовывались, как правило, на специализированном оборудовании и соответствующих платформах. В силу того, что требования, предъявляемые к обработке речи в реальном времени, высоки, слабые центральные процессоры были не в силах взять на себя подобную задачу. Основой компьютерного распознавания речи являлось применение предварительной цифровой обработки сигналов на внешних платах. Производители ПО для распознавания речи, даже перейдя на однопроцессорные компьютеры, некоторое время продолжали применять специальные звуковые карты и микрофоны. Например, популярная программа KurzWeil Voice недавно требовала в обязательном порядке «свою» звуковую карту. Модульные системы компьютерно-телефонных средств распознавания голоса, выполненные в виде плат расширения для компьютера, включают специализированные процессоры цифровой обработки звуковых сигналов (Digital Signal Processor или DSP), берущие на себя ряд операций нижнего уровня и позволяющие снизить требования к быстродействию основного процессора. Например, плата распознавания речи VR/160, поставляемая фирмой Dialogic, поддерживает до 16 каналов одновременно, причем она прекрасно работает совместно с процессором DX-486. Dialogic выпускает и более мощные четырехпроцессорные платы Antares с большим объемом оперативной памяти. Работа в зашумленных помещениях также, разумеется, оказывает самое негативное влияние на качество распознавания. Каждый микрофон имеет свой особый «профиль», поэтому программу требуется «обучить» не только работе с конкретным пользователем, но и с конкретным оборудованием. Подключенному к компьютеру диктофону тоже потребуется свой «профиль». Специальные микротелефонные гарнитуры поставляются вместе с известными программами распознавания речи — Via Voice Gold корпорации IBM Research, Naturally Speaking Preferred фирмы Dragon Systems и Voice Xpress (Lernout&Hauspie Speech Products). На работу с диктовочными программами накладываются и дополнительные ограничения. В большинстве случаев трудно обойтись без гарнитуры с микрофоном. Правда, радиомикрофоны допускают больший радиус действия, однако для контроля результатов пользователь должен видеть экран ПК. Программное обеспечение, применяемое за рубежом Функцию распознавания речи IBM не только встроила в свою операционную систему OS/2 Warp 4, известную под кодовым названием Merlin (конец 1996 г.), но и выпускает в качестве отдельного продукта. Пакет IBM для распознавания слитной речи Via Voice (www.ibm.com/viavoice) отличается своей способностью с самого начала, без обучения, распознавать до 80 % слов. При обучении вероятность правильного распознавания повышается до 95 %, причем параллельно с настройкой программы на конкретного пользователя происходит освоение будущим оператором навыков работы с системой. Небезынтересно, что, рекламируя этот пакет, IBM утверждает, будто средняя машинистка набивает примерно 80 слов в минуту, a Via Voice достигает скорости 150 слов в минуту. Dragon Dictate Naturally Speaking (Ньютон, шт. Массачусетс, www.drag-onsys.com) — первый коммерческий продукт для Распознавания слитной речи, вышедший в начале 1997 г. Позволяет непосредственно диктовать в программы Word, WordPerfect, Netscape Navigator, Internet Explorer и приложения, причем ему Доступен богатый набор управляющих команд. Пользуясь только голосом, можно исправлять и переставлять слова, выделять текст даже менять размер шрифта и позиционировать курсор с абсолютной точностью. Первоначальная настройка на конкретный голос пользователя является обязательной, но программа способна обучаться и в процессе дальнейшего диктанта; 152
рабочее качество распознавания может быть достигнуто спустя примерно пару недель пользования системой. L&H Speech Products (Берлингтон, шт. Массачусетс www.lhs.com) в 1997 г. приобрела KurzWeil Applied Intelligence основатель которой (Рей Курцвайль) стал в L&H главным техническим руководителем. После этого фирма получила инвестиции от Microsoft, а затем выпустила Voice Commands — программу для голосового управления с развитыми возможностями. Несколько позже эта компания создала и свою систему распознавания речи Voice Xpress Plus, которая по качеству распознавания незначительно уступает Dragon Dictate Naturally Speaking, Ho зато при работе с офисными программами (например, с Word) реализует более «естественный» интерфейс (можно подавать команды вроде «изменить шрифт последнего предложения на Arial» или «сложить эту колонку цифр»). Программное обеспечение для распознавания речи фирмы Nuance Communications использует крупнейшая в Канаде дисконтная брокерская контора Toronto Dominion, запустив в эксплуатацию службу Green Line Investors, позволяющую абонентам получать по телефону информацию о биржевых котировках. Вводятся особые пользовательские «профили», на основе которых система определяет, например, следует ли зачитывать данному абоненту краткую или подробную информацию. Программу распознавания речи Natural Dialogue System фирмы Philips Speech Processing (Вена, Австрия, www.speech.be. philips.com) использует первая канадская система автоматических «желтых страниц» (Торонто), предоставляющая информацию о местных ресторанах и способная по желанию абонента соединить его с выбранным заведением. Она же используется швейцарской железнодорожной компанией Swiss Railways. Предусмотрена возможность самообучения системы во время эксплуатации. Из запросов, требующих сложного «восприятия речи» (вроде «Я бы хотел попасть из Женевы в Цюрих через Берн»), выделяются ключевые слова — названия станций, предлоги «из», «в», «через» — и на основании наиболее правдоподобного варианта строится обращение к базе данных. Авиакомпания Lufthansa своим потенциальным пассажирам предлагает автоматическое расписание своих рейсов, а радиостанция Radio Luxembourg — прогноз погоды по туристическим маршрутам всего мира. Немецкая служба сотовой телефонной GSM-связи Dutch РТТ внедрила систему обработки речи Voice Dialing, разработанную американской компанией Glenayre, что обеспечивает не только голосовой набор телефонного номера, но и выполнение необходимых команд и возможность программирования до 40 наиболее часто набираемых телефонных номеров. В результате на возможным звонить прямо во время движения автомобиля не отвлекаясь от управления. Программы от IBM и Dragon Dictate используются в надеваемых компьютерах (wearable PC) компании Xybernaut (www.xybernaut.com). Эти устройства весом всего 795 г используются, например, американскими таможенниками, несущими службу на границе с Мексикой. Стражи порядка проверяют номера проезжающих автомобилей, сверяясь с удаленными центральными правоохранительными базами. Правда, служащие таможни жалуются на проблемы с распознаванием, возникающие при сильном ветре. IBM уже давно использует технологию распознавания речи для своих внутренних задач, а сейчас выпускает средства создания автоматизированных речевых агентов, способных распознавать называемые телефонными абонентами имена людей и названия организаций и соединять их с соответствующими номерами. Объем каталога имен может достигать 200 тыс. записей. Фирма Language Force (www.lan-guageforce.com) на основе технологии распознавания речи Via Voice разработала автоматический переводчик Universal Translator 153
Deluxe, позволяющий устную английскую речь переводить на 33 различных языка, в число которых входят арабский, китайский, японский, корейский, испанский, немецкий и иврит. Достижения компьютерной обработки речевых сигналов могут применяться не только для того, чтобы вести беседы по мобильному телефону, — ряд парламентариев стран Западной Европы добиваются контроля над центром прослушивания Менвич-Хилл Агентства национальной безопасности (АНБ) США, Расположенным в Англии, недалеко от Йоркшира. Первоначально центр, созданный при поддержке британской разведки MI 5, предназначался для анализа информационного трафика из СССР, но ныне, как следует из отчета технической службы Европарламента, осуществляет перехват всех европейских телефонных разговоров, факсов и электронной почты. Система распознавания речи используется для выделения ключевых слов, при наличии которых автоматически включается запись разговора с последующим ее перенаправлением для проверки в американское отделение АНБ. На текущий момент ПО для распознавания речи работает только с английским языком, качественная поддержка русского пока что не достигнута. Однако командовать компьютером можно хоть сейчас, а для того, кто имеет дело с англоязычными текстами каждый день, подобное ПО окажется полезным. 154
155
156
В дополнение к программам диктования Dragon Systems и IBM предлагают инструменты для разработчиков, желающих усилить мощность своих программ. Dragon предлагает DragonDictate, дискретный механизм распознавания языка, а IBM — набор инструментов Via Voice Developer Tools. Dragon предлагает ряд опций для разработчиков, желающих использовать DragonDictate. Во-первых, вы можете добавить к DragonDictate специальный словарь, используя любое приложение, включая Microsoft Excel или Word. Семейство программ, именуемое DragonPro, содержит DragonBusiness, DragonExtra (журналистика), DragonLaw (юриспруденция), DragonMed (медицина) и DragonTech. Если вам нужно что-то еще более специфическое, вы можете использовать Dragon SpeechTool, чтобы разработать специальный словарь и эталоны произношения. Вы можете использовать таблицу фонем и средства редактирования для создания, добавления, изменения слов и их произношения, а также их удаления. DragonXTools поддерживает режимы 16-bit VBX и 32-bit OCX для добавления голосовых параметров к существующим приложениям. DragonXTools также поддерживает режим текст-речь DgnTTS, что позволит придать голос вашим программам. Руководство DragonXTools начинается с простого примера на языке VB и показывает, как создавать программы на С, C++, Delphi Visual Basic и т. п. Руководство содержит большой объем документации по событиям, свойствам и процедурам, необходимым, чтобы разговаривать с DragonDictate. Вместе с DragonXTools пользователь получает также документацию по DragonDictate Macro Language Guide & Reference, зыку, основанному на BASIC, который разработчики могут использовать, чтобы добавлять команды к DragonDictate, DDE и DLL для контроля за работой мыши, звуковых эффектов и т. п. Отечественные разработки К сожалению, распространенные зарубежные системы распознавания речи русский язык не поддерживают. Правда, уже упоминавшиеся платы Dialogic в число используемых европейских и некоторых азиатских языков включают и русский, но их возможностей хватает только на речевой ввод телефонных номеров и построение простейших голосовых меню. Намерение включить поддержку русского языка в свои продукты неоднократно выражали многие производители, в том числе и Dragon Systems, но дальше этих заявлений дело так и не пошло. 157
В этих условиях своеобразной сенсацией стал выход в 1997 г. на коммерческий рынок знаменитого «Горыныча» — адаптации Dragon Dictate Naturally Speaking, проведенной силами малоизвестной до того российской компании White Group — официального дистрибьютора Dragon Systems. Программа оказалась вполне работоспособной, а ее стоимость — весьма умеренной. К сожалению, основой послужила уже устаревшая вторая версия Dragon Dictate, не поддерживающая распознавание слитной речи. Кроме того, программа требует длительной «тренировки» и настройки на конкретного пользователя, очень капризна к оборудованию, более чем чувствительна к интонации и скорости произнесения фраз, возможности ее «обучения» весьма разнятся для различных голосов. Созданная для распознавания английской речи, программа не может учитывать всей специфики русского произношения. По всей видимости, положение на отечественном рынке ПО для распознавания речи (если вообще можно говорить о таком) напоминает недавнюю ситуацию с оптическим распознаваем текста. Только специализированные отечественные продукты, изначально ориентированные именно на русский язык, смогут по-настоящему решить ту задачу, что не по силам ни «Горынычу», ни «Комбату» (еще один продукт той же фирмы White Group). Не случайно лидеры отечественного рынка программ OCR которыми являются ABBYY (BIT Software) и Cognitive Technologies, заявили о ведущихся ими в области распознавания русской речи разработках. ABBYY работает над проектом NLC связанным с естественно-языковой обработкой распознаваемых текстов. Пока же технология распознавания речи российскими разработчиками применяется в основном в интерактивных обучающих системах и играх вроде «Мой говорящий словарь», «Talk to Me» или «Профессор Хиггинс», а целью их использования являются контроль произношения у изучающих английский язык и аутентификация пользователя. Еще одно остроумное применение технологии — распознавания речи — позволяет весьма ощутимо сжимать файлы с диктофонными записями или посланиями звуковой почты. Перспективы систем распознавания речи Важная задача, которая стоит перед создателями речевых технологий, — выработка единого стандарта на API-интерфейс (Applications Programming Interface), который должен связывать приложения и обеспечивать своевременную передачу управляющих функций. Такой стандарт должен не только позволять строить приложения на базе какой-либо распространенной операционной системы, имеющей соответствующие встроенные функции (первой такой ОС стала OS/2 Warp), но и обеспечивать переносимость систем распознавания речи на другие ОС. ПО для распознавания слитной речи, как правило, не только снабжается собственными текстовыми редакторами, но и способно встраиваться в популярные программы, среди которых MS Word, Excel, Lotus Smart Suite Millennium Edition (Lotus Development) и Word Perfect Suite (Corel). С другой стороны, производители офисных программ стали включать в состав своего ПО системы распознавания речи, как правило, от IBM (Smart Suite), Dragon Dictate (Word Perfect Suite) или Lernout&Hauspie. Современные программы распознавания речи для ПК позволяют диктовать в обычной разговорной манере. Так называемая дискретная надиктовка с частыми остановками и паузами между словами осталась в прошлом. Однако непрерывный процесс расставания речи, дающий точность до 95 % в оптимальных условиях все-таки дает пять неправильных букв на 100 знаков. Около 200 ошибок на странице формата А4 — слишком много для профессиональной работы. 158
Несмотря на все достижения последних лет, средства для распознавания слитной речи все же допускают большое количество ошибок, нуждаются в длительной настройке, требовательны к аппаратной части и к квалификации пользователя и отказываются работать в зашумленных помещениях (а это важно как для шумных офисов, так и для мобильных систем и эксплуатации в условиях телефонной связи). Известно, что спонтанная речь произносится со средней скоростью 2,5 слов в секунду, профессиональная машинопись — 2 слова в секунду, непрофессиональная — 0,4. Таким образом, на первый взгляд, речевой ввод имеет значительное превосходство по производительности. Однако оценка средней скорости диктовки в реальных условиях снижается до 0,5 слова в секунду в связи с необходимостью четкого произнесения слов при речевом вводе и достаточно высоким процентом ошибок распознавания, нуждающихся в корректировке. Речевой интерфейс естественен для человека и обеспечивает дополнительное удобство при наборе текстов. Однако даже профессионального диктора может не обрадовать перспектива в течение нескольких часов диктовать малопонятливому и немому компьютеру. Кроме того, имеющийся опыт эксплуатации подобных систем свидетельствует о высокой вероятности заболевания голосовых связок операторов, что связано с неизбежной при диктовке компьютеру монотонностью речи. Часто к достоинствам речевого ввода текста относят отсутствие необходимости в предварительном обучении. Однако одно из самых слабых мест современных систем распознавания речи, — чувствительность к четкости произношения, — приводит к потере этого, казалось бы, очевидного преимущества. Печатать на клавиатуре оператор учится в среднем 1—2 месяца. Постановка правильного произношения может занять несколько лет. Кроме того, дополнительное напряжение, следствие сознательных и подсознательных усилий по достижению более высокой распознаваемости, совсем не способствует сохранению нормального режима работы речевого аппарата оператора и значительно увеличивает риск появления специфических заболеваний. Существует и еще одно неприятное ограничение применимости — оператор, взаимодействующий с компьютером через речевой интерфейс, вынужден работать в звукоизолированном отдельном помещении либо пользоваться звукоизолирующим шлемом. Иначе он будет мешать работе своих соседей по офису, которые, в свою очередь, создавая дополнительный шумовой фон, будут значительно затруднять работу речевого распознавателя. Таким образом, речевой интерфейс вступает в явное противоречие с современной организационной структурой предприятий, ориентированных на коллективный труд. Ситуация несколько смягчается с развитием удаленных форм трудовой деятельности, однако еще достаточно долго самая естественная для человека производительная и потенциально массовая форма пользовательского интерфейса обречена на узкий круг применения. Ограничения применимости систем распознавания речи в рамках наиболее популярных традиционных приложений заставляют сделать вывод о необходимости поиска потенциально перспективных для внедрения речевого интерфейса приложений за пределами традиционной офисной сферы, что подтверждается коммерческими успехами узкоспециализированных речевых систем. Парадоксально, но самый успешный на сегодня проект коммерческого применения распознавания речи — телефонная сеть фирмы АТТ. Клиент может запросить одну из пяти категорий услуг, используя любые слова. Он говорит до тех пор, пока в его высказывании встретится одно из пяти ключевых слов. Эта система в настоящее время обслуживает около миллиарда звонков в год. 4.3. Системы генерации речи 159
Говоря о речевом интерфейсе, часто делают упор на распознавание речи, забывая о другой его стороне — речевом синтезе. Заглавную роль в этом перекосе сыграло быстрое развитие систем, ориентированных на события в значительной степени подавляющих отношение к компьютеру как активной стороне диалога. Еще относительно недавно подсистемы распознавания и синтеза речи рассматривались как части единого комплекса речевого интерфейса. Обратная распознаванию задача — синтез речи, или Text-to-Speech (TTS), — столь же проста в первом приближении и по-своему не менее сложна по мере достижения вершин. Известно, что синтезированная речь воспринимается человеком хуже, чем живая, причем это особенно заметно при передаче по каналу телефонной связи, т. е. как раз в тех условиях, в которых было бы наиболее заманчиво ее использовать. Тем не менее эксперты отмечают улучшение звучания синтезированной английской речи. В интеллектуальных телефонных системах, таких, как IVR (interactive voice responce) и центры телефонного обслуживания, технологии TTS начинают теснить традиционные наборы записываемых заранее слов и реплик — прежде всего благодаря своей гибкости, простоте переналадки и сокращению требований к объему памяти. Качество речи прямо пропорционально размеру синтезатора и объему потребляемых им ресурсов системы (загрузка процессора, выделение памяти и т. п.) Для характеристики качества речи обычно используют такие понятия, как естественность звучания, фонетическая разборчивость, комфортность восприятия и время привыкания. Естественность звучания характеризует то, насколько близок синтезированный звук к человеческой речи. Пока еще не существует синтезатора, прослушав который, человек не мог бы указать, что это неестественный звук. Однако уровень синтезаторов растет год от года, и неестественность их звучания уже не является сильной помехой восприятию информации. Первые же синтезаторы отличались такими нежелательными эффектами, как металлический призвук, отсутствие интонационного деления Фрагмента речи, резкость звучания или наоборот — слишком затянутые гласные звуки. Фонетическая разборчивость характеризует, насколько слушателю легко или трудно разобрать фонемы, произносимые синтезатором. Здесь надо понимать, что неестественная с металлическим призвуком «речь робота», может обладать высокой фонической разборчивостью, т. е. слушатель с легкостью может фонемы (слоги) произносимых слов. В то же время в с естественной речи разборчивость может быть невысокой (представьте себе бубнящего человека — речь на сто процентов естественная, а ничего не понять). Так происходит потому, что для придания естественности звучания синтезируемая речь проходит дополнительную фильтрацию, в результате чего получает дополнительные обертона (их богатство во многом и определяет близость синтезированной речи к человеческой). Степень фильтрации не всегда адекватно подбирается синтезатором и это ухудшает фонетическую разборчивость. Комфортность восприятия и время привыкания показывают субъективную оценку слушателем качества синтезируемой речи Несмотря на свою субъективность, с точки зрения пользователя это самые главные критерии, по которым оценивается работа синтезатора. Долгое прослушивание синтезированной речи не должно вызывать чрезмерного утомления, а время привыкания должно быть достаточно коротким, чтобы обеспечить легкий переход от одного синтезатора к другому. История проблемы В 1779 г. русский профессор Кристиан Краценштейн (иногда упоминается в источниках как Кристиан Готтлиб) построил акустическую модель, позволяющую создавать гласные звуки, используя различные геометрические формы резонаторов, как это показано на рис. 4.11. 160
При этом использовался аддитивный синтез (см. гл. 3), как в обычных органах (напомним, что один из регистров органа так и называется — vox humanum — голос человеческий) -В 1791 г. Вольфганг фон Кемпелен (Volfgang von Kempelen) представил акустикомеханическую говорящую машину, которая воспроизводила определенные звуки и их комбинации. Шипящие и свистящие выдувались с помощью специального меха с ручным правлением. Затем это изобретение было улучшено ученым Чарльзом Уитстоуном (Charles Wheatstone), и уже могло воспроизводить гласные и большинство согласных звуков. В 1846 г. Джезеф Фабер представил свой говорящий орган, в котором была реализована попытка синтезирования не только речи, но и пения. В конце XVIII в. знаменитый ученый Александр Белл (Alexander Graham Bell) создал собственную «говорящую» механическую модель, очень схожую с конструкцией Уитстоуна. Начиная с 1920 г. наступила эра электрических инструментов, при этом основным видом синтеза оставался аддитивный. Ключевой датой в развитии вокодеров является 1939 г. Именно в этом году ученыйизобретатель Хомер Дадли (Homer. W. Dudley) из Bell Laboratories представил устройство Parallel Bandpass Vocoder, над разработкой которого он трудился три года (рис. 4.12, 4.13). Voder, представленный в 1939 г., управлялся человеком-оператором. Вот как описывает свои впечатления Ванневар Буш Vannevar Bush) в работе «As We May Think», 1945 г. (см. также [14], с. 171): «На мировой выставке 1939 г. было показано устройство, называемое Voder. 161
Девушка-оператор нажимала на его клавиши, и Voder воспроизводил звук, похожий на речь. Это происходило без использования человеческих голосов, нажатие на клавиши просто вызывало комбинации нескольких вибраций, созданных электронным способом, которые воспроизводились с помощью громкоговорителя». В 1940 г. Хомер Дадли представил свою новую модель голосового синтезатора, именуемую The Vocoder (аббревиатура от Voice Operated reCorDER). В 1948 г. на выставке «Electronische Musik» (Германия) VODER был представлен как электронный инструмент будущего. Алгоритмические модели синтезаторов речи с того времени практически не изменились. При этом эти системы развивались параллельно с аналоговыми синтезаторами. Методы озвучивания речи Рассмотрим какой-нибудь хотя бы минимально осмысленный текст. Текст состоит из слов, разделенных пробелами и знаками препинания. Произнесение слов зависит от их расположения в предложении, а интонация фразы — от знаков препинания и довольно часто от типа применяемой грамматической конструкции — в ряде случаев при произнесении текста слышится явная пауза, хотя какие-либо знаки препинания отсутствуют. Произнесение зависит и от смысла слова — сравните, например, выбор одного из вариантов «замок» или «замок» для одного и того же слова «замок». Основная классификация стратегий, применяемых при озвучивании речи — это разделение на две группы подходов: • построение действующей модели речепроизводящей системы человека; • моделирование акустического сигнала как таковой. Первый подход известен под названием артикуляторного синтеза. Второй подход представляется на сегодняшний день более простым, поэтому он гораздо лучше изучен и практически более успешен. Внутри него выделяется два основных направления — формантный синтез по правилам и компилятивный синтез. Формантные синтезаторы используют возбуждающий сигнал, который проходит через цифровой фильтр, построенный на нескольких резонаторах, похожих на резонансы голосового тракта. Разделение возбуждающего сигнала и передаточной функции голосового тракта составляет основу классической акустической теории речеобразования. Компилятивный синтез осуществляется путем склейки нужных единиц компиляции из имеющегося инвентаря. На этом принципе построен ряд систем, использующих разные типы единиц и различные методы составления инвентаря. В таких системах необходимо применять обработку 162
сигнала для приведения частоты основного тона, энергии и длительности единиц к тем, которыми должна характеризоваться синтезируемая речь. Кроме того, требуется, чтобы алгоритм обработки сигнала сглаживал разрывы в формантной (и спектральной в целом) структуре на границах сегментов. И системах компилятивного синтеза применяются два разные типа алгоритмов обработки сигнала: LP (Linear Prediction — линейноe предсказание) и PSOLA (Pitch Synchronous Overlap and Add ). LP-синтез основан в значительной степени на акустической теории речеобразования, в отличие от PSOLA-синтеза, который действует путем простого разбиения звуковой волны, составляющей единицу компиляции, на временные окна и их преобразования. Алгоритмы PSOLA позволяют добиваться хорошего сохранения естественности звучания при модификации ИСХОДНОЙ звуковой волны. Обобщенная функциональная структура синтезатора Структура идеализированной системы автоматического синтеза речи состоит из нескольких блоков: • определение языка текста; • нормализация текста; • лингвистический анализ (синтаксический, морфемный и т. д.); • формирование просодических характеристик; • фонемный транскриптор; • формирование управляющей информации; • получение звукового сигнала. Такая схема содержит компоненты, которые можно обнаружить во многих системах. Разработчики конкретных систем уделяют различное внимание отдельным блокам и реализуют их очень по-разному, в соответствии с практическими требованиями. Модуль лингвистической обработки. Прежде всего, текст, подлежащий прочтению, поступает в модуль лингвистической обработки. В нем производится определение языка (в многоязычной системе синтеза), а также отфильтровываются не подлежащие произнесению символы. В некоторых случаях используются спелчекеры (модули исправления орфографических и пунктуационных ошибок). Затем происходит нормализация текста, т. е. осуществляется разделение введенного текста на слова и остальные последовательности символов. К символам относятся, в частности, знаки препинания и символы начала абзаца. Все знаки пунктуации очень информативны. Для озвучивания цифр разрабатываются специальные подблоки. Преобразование цифр в последовательности слов является относительно легкой задачей (если читать цифры как цифры, а не как числа, которые должны быть правильно оформлены грамматически), но цифры, имеющие разное значение и функцию, произносятся по-разному. Для многих языков можно говорить, например, о существовании отдельной произносительной подсистемы телефонных номеров. Пристальное внимание уделяется правильной идентификации и озвучиванию цифр, обозначающих числа месяца, годы, время, телефонные номера, денежные суммы и т. д. (список для различных языков может быть разным). Лингвистический анализ. После процедуры нормализации каждому слову текста (каждой словоформе) необходимо приписать сведения о его произношении, т. е. превратить в цепочку фонем или, иначе говоря, создать его фонемную транскрипцию. Во многих языках, в том числе и в русском, существуют достаточно регулярные правила чтения — правила соответствия между буквами и фонемами (звуками), которые, однако, могут требовать предварительной расстановки словесных ударений. В английском языке правила чтения очень нерегулярны, и задача данного блока для английского синтеза тем 163
самым усложняется. В любом случае при определении произношения имен собственных, заимствований, новых слов, сокращений и аббревиатур возникают серьезные проблемы. Просто хранить транскрипцию для всех слов языка не представляется возможным из-за большого объема словаря и контекстных изменений произношения одного и того же слова во фразе. Кроме того, следует корректно рассматривать случаи графической омонимии: одна и та же последовательность буквенных символов в различных контекстах порой представляет два различных слова/словоформы и читается по-разному (например, ранее приведенный пример слова «замок»). Для языков с достаточно регулярными правилами чтения одним из продуктивных подходов к переводу слов в фонемы является система контекстных правил, переводящих каждую букву/буквосочетание в ту или иную фонему, т. е. автоматический фонемный транскриптор. Однако чем больше в языке исключений из правил чтения, тем хуже работает этот метод. Стандартный способ улучшения произношения системы состоит в занесении нескольких тысяч наиболее употребительных исключений в словарь. Альтернативное подходу «слово—буква—фонема» решение предполагает морфемный анализ слова и перевод в фонемы морфов (т. е. значимых частей слова: приставок, корней, суффиксов и окончаний). Однако в связи с разными пограничными явлениями на стыках морфов разложение на эти элементы представляет собой значительные трудности. В то же время для языков с богатой морфологией, например, для русского, словарь морфов был бы компактнее. Морфемный анализ удобен еще и потому, что с его помощью можно определять принадлежность слов к частям речи, что очень важно для грамматического анализа текста и задания его просодических характеристик. В английских системах синтеза морфемный анализ был реализован в системе МIТа1к, для которой процент ошибок транскриптора составляет 5 %. Особую проблему для данного этапа обработки текста образуют имена собственные. Формирование просодических характеристик. К просодическим характеристикам высказывания относятся его тональные, акцентные и ритмические характеристики. Их физическими аналогами являются частота основного тона, энергия и длительность. В речи просодические характеристики высказывания определяются не только составляющими его словами, но также тем, какое значение оно несет и для какого слушателя предназначено, эмоциональным и физическим состоянием говорящего и многими другими факторами. Многие из этих факторов сохраняют свою значимость и при чтении вслух, поскольку человек обычно интерпретирует и воспринимает текст в процессе чтения. Таким образом, от системы синтеза следует ожидать примерно того же, т. е. она сможет понимать имеющийся у нее на входе текст, используя методы искусственного интеллекта. Однако этот уровень развития компьютерной технологии еще не достигнут, и большинство современных систем автоматического синтеза стараются корректно синтезировать речь с эмоционально нейтральной интонацией. Между тем, даже эта задача на сегодняшний день представляется очень сложной. Формирование просодических характеристик, необходимых для озвучивания текста, осуществляется тремя основными блоками, а именно: • расстановки синтагматических границ (паузы); • приписывания ритмических и акцентных характеристик (длительности и энергия); • приписывания тональных характеристик (частота основного тона). При расстановке синтагматических границ определяются части высказывания (синтагмы), внутри которых энергетические и тональные характеристики ведут себя единообразно и которые человек может произнести на одном дыхании. Если система не делает пауз на границах таких единиц, то возникает отрицательный эффект: слушающему кажется, что говорящий (в ном случае — система) задыхается. Помимо этого, расстановка 164
синтагматических границ существенна и для фонемной транскрипции текста. Самое простое решение состоит в том, чтобы ставить границы там, где их диктует пунктуация. Для наиболее простых случаев, когда пунктуационные знаки отсутствуют можно применить метод, основанный на использовании служебных слов. Именно эти методы используются в системах синтеза Pro-Se-2000, Infovox-5A-101 и DECTalk, причем в последней просодически ориентированный словарь, помимо служебных слов, включает еще и глагольные формы. Задача приписывания тональных характеристик обычно ставится достаточно узко. В системах синтеза речи предложению, как правило, приписывается нейтральная интонация. Не предпринималось попыток моделировать эффекты более высокого уровня, такие, как эмоциональная окраска речи, поскольку эту информацию извлечь из текста трудно, а часто и просто невозможно. Некоторые другие реализации Наиболее распространенными системами синтеза речи на сегодня являются те, которые поставляются в комплекте со звуковыми платами. Если компьютер пользователя оснащен какой-либо из них, существует значительная вероятность того, что на нем установлена система синтеза речи (не русской, а английской речи, точнее, ее американского варианта). К большинству оригинальных звуковых плат Sound Blaster прилагается система Сreative Text-Assist, а вместе со звуковыми картами других производителей часто поставляется программа Monologue компании First Byte. TextAssist представляет собой реализацию формантного синтезатора по правилам и базируется на системе DECTalk, разработанной корпорацией Digital Eguipment, который до сих пор остается своего рода стандартом качества для синтеза речи американского варианта английского. Компания Creative Technologies предлагает разработчикам использовать TextAssist в своих программах с помощью специального TextAssistApi (AAPI). Поддерживаемые операционные системы - MS Windows и Windows 95; для Windоws NT также существует версия системы DECTalk, изначально создававшейся для Digital Units. Новая версия TextAssist объявленная фирмой Assotiative Computing Inc, разработанная ё использованием технологий DECTalk и Creative, является в то же время многоязычной системой синтеза, поддерживая английский, немецкий, испанский и французский языки. Это обеспечивается прежде всего использованием соответствующих лингвистических модулей, разработчик которых — фирма Lernout& Hauspie Speech Products, признанный лидер в поддержке многоязычных речевых технологий. Monologue — программа, предназначенная для озвучивания текста, находящегося в буфере обмена MS Windows, использует систему ProVoice. ProVoice — компилятивный синтезатор с использованием оптимального выбора режима компрессии речи и сохранения пограничных участков между звуками, разновидность TD-PSOLA. Рассчитан на американский и британский английский, немецкий, французский, латиноамериканскую разновидность испанского и итальянский языки. Инвентарь сегментов компиляции — смешанной размерности: сегменты — фонемы или аллофоны. Компания First Byte позиционирует систему ProVoice и программные продукты, основанные на ней, как приложения с низким потреблением процессорного времени. FirstByte также предлагает рассчитанную на мощные компьютеры систему артикуляторного синтеза PrimoVox для использования в приложениях телефонии. Для разработчиков: Monologue Win32 поддерживает спецификацию Microsoft SAPI. MBROLA — так называется система многоязычного синтеза, реализующая особый гибридный алгоритм компилятивного синтеза и работающая как под Windows, так и на платформах Sun4. Впрочем, система принимает на входе цепочку фонем, а не текст, и потому не является, строго говоря, системой синтеза речи по тексту. Формантный синтезатор Tru-Voice фирмы Centigram Communication Corporation(CUIA) близок к 165
описанным выше системам по архитектуре и предоставляемым возможностям, однако он поддерживает больше языков: американский английский, латино-американский, испанский, немецкий, французский, итальянский. Кроме того, в этот синтезатор включен специальный препроцессор, который обеспечивает быструю подготовку для чтения сообщений, получаемых по электронной почте, факсов и баз данных. Engine – «машины» синтеза и распознавания речи «Машина» (в просторечии — «движок») — это пакет программных средств, выполняющих строго определенную задачу и поставляющий интерфейс для использования его возможностей В настоящее время существует целый ряд машин синтеза и Опознавания речи, которые разработаны для использования совместно с MS Speech API. smARTspeak CS — настраиваемая независимая от языка «машина» распознавания речи для набора цифр, указания имен и речевой навигации, т. е. для приложений, используемых в сотовых телефонах и беспроводных устройствах. Созданный для использования в указанных устройствах, smARTspeak CS удовлетворяет потребностям как пользователей, так и разработчиков: иммунитет к фоновому шуму, малые требования к процессору и памяти, совместимость с MS SAPI 5.0, оптимизация для средств быстрой разработки приложений и для интеграции в сертифицированные устройства. Conversay предоставляет решение для речевого взаимодействия с информацией, поставляемой через сеть, включая Internet в случае, когда другие интерфейсы слишком сложны или отсутствуют. Conversay разрабатывает речевую технологию, которая позволяет пользователям взаимодействовать через мобильные устройства привычным для себя способом. Lernout&Hauspie. Система компании L&H позволяет настраивать чтение аббревиатур и слов (ударения). Продукт, активно продвигаемый Microsoft. Digalo. Голосовой «движок» для русского языка Digalo — продукт французской фирмы Elan Informatique. Digalo различает буквы «Е» и «Ё» и виртуозно владеет русской ненормативной лексикой. В основном ошибки в ударениях приходятся на некоторые фамилии и имена, малоупотребительные слова и термины, замечено не всегда корректное озвучивание чисел и очень акцентированное произнесение слов «нет» и «не». Разработчики обещают в дальнейшем сделать возможной корректировку произнесения отдельных слов и слогов. Аctor 5. Новый «движок» фирмы Loquendo «Actor 5» предназначен для использования в областях голосовых технологий и сервиса. Синтезирует речь на итальянском, испанском, английском, немецком, мексиканском, бразильском и американском иском диалекте (русского, к сожалению, нет). PC Voice Club. Движок синтеза речи Клуба голосовых технологий при Научном Парке МГУ. При его создании использована базовая технология синтеза речи, разработанная на филологическом факультете МГУ. Синтезатор характеризуется высоким качеством синтеза речи, что позволяет прослушивать тексты без их специальной подготовки. Позволяет синтезировать речь на английском и русском языках. Кроме того, имеет около десятка голосовых типажей (робот, эльф, мышь и пр.) Имеются возможности редактирования голосов. Помимо стандартных функций синтеза речи имеется дополнительная функция встраивания в текст управляющих символов, которые позволяют устанавливать паузы, изменять тембр, тон и длительность звучания. К примеру, можно, отредактировав текст, заставить синтезатор петь. Творческий коллектив радиофизиков и программистов разработал серию программных продуктов под общим названием «Говорящая мышь» Синтезатор русской речи 166
Рассмотрим разработку «Говорящая мышь» упоминавшегося Клуба голосовых технологий. В основе речевого синтеза лежит идея совмещения методов конкатенации и синтеза по правилам. Метод конкатенации при адекватном наборе базовых элементов компиляции обеспечивает качественное воспроизведение спектральных характеристик речевого сигнала, а набор правил — возможность формирования естественного интонационно-просодического оформления высказываний. Существуют и другие методы синтеза, может быть, в перспективе более гибкие, но дающие пока менее естественное озвучивание текста. Это, прежде всего, параметрический (формантный) синтез речи по правилам или на основе компиляции, развиваемый для ряда языков зарубежными исследователями. Однако для реализации этого метода необходимы статистически представительные акустико-фонетические базы данных и соответствующая компьютерная технология, которые пока доступны не всем. Язык формальной записи правил синтеза. Для создания удобного и быстрого режима изменения и верификации правил, включенных в разные блоки синтезирующей системы, был разработан формализованный и в то же время содержательно прозрачный и понятный язык записи правил, который легко компилируется в исходные тексты программ. В настоящее время блок автоматического транскриптора насчитывает около 1000 строк, записанных на формализованном языке представления правил. Интонационное обеспечение. Функция разработанных правил состоит в том, чтобы определить временные и тональные характеристики базовых элементов компиляции, которые при обработке синтагмы выбираются из библиотеки в нужной последовательности специальным процессором (блоком кодировки). Необходимые для этого предварительные операции над синтезируемым текстом: выделение синтагм, выбор типа интонации, определение степени выделенности (ударности-безударности) гласных и символьного звукового наполнения слоговых комплексов осуществляются блоком автоматического транскриптора. Во временной процессор входят также правила, задающие длительность паузы после окончания синтагмы (конечной/неконечной), которые необходимы для синтеза связного текста. Предусмотрена также модификация общего темпа произнесения синтагмы и текста в целом, причем в двух вариантах: в стандартном — при равномерном изменении всех единиц компиляции — ив специальном, дающем возможность изменения длительности только гласных или только согласных. Тональный процессор содержит правила формирования для одиннадцати интонационных моделей: нейтральная повествовательная интонация (точка), точковая интонация, типичная для фокусируемых ответов на вопросы; интонация предложений с контрастивным выделением отдельных слов; интонация специального и общего вопроса; интонация особых противопоставительных или сопоставительных вопросов; интонация обращений, некоторых типов восклицаний и команд; два вида незавершенности, перечислительная интонация; интонация вставочных конструкций. Аллофонная база данных. Необходимый речевой материал записан в режиме оцифровки с частотой дискретизации 22 кГц с разрядностью 16 бит. В качестве базовых элементов компиляции выбраны аллофоны, оптимальный набор которых и представляет собой акустико-фонетическую базу синтеза. Инвентарь базовых единиц компиляции включает в себя 1200 элементов, который занимает около 7 Мбайт памяти. В большинстве случаев элементы компиляции представляют собой сегменты речевой волны фонемной размерности. Для получения необходимой исходной базы единиц компиляции был составлен специальный словарь, который содержит слова и словосочетания с аллофонами во всех учитываемых контекстах. В нем содержится 1130 словоупотреблений. Лингвистический анализ. На основе данных, полученных от остальных модулей синтеза речи и от аллофонной базы, программа формирования акустического сигнала позволяет 167
осуществлять модификацию длительности согласных и гласных. Она дает возможность модифицировать длительность отдельных периодов на вокальных звуках, используя две или три точки тонирования на аллофонном сегменте, осуществляет модификацию энергетических характеристик сегмента и соединяет модифицированные аллофоны в единую слитную речь. На этапе синтеза акустического сигнала программа позволяет получать разнообразные акустические эффекты — такие, как реверберация, эхо, изменение частотной окраски. Готовый акустический сигнал преобразуется в формат данных, принятый для вывода звуковой информации. Используются два формата: WAV (Waveform Audio File Format), являющийся одним из основных, или VOX (Voice File Format), широко используемый в компьютерной телефонии. Вывод также может осуществляться непосредственно на звуковую карту. Инструментарий синтеза русской речи. Упоминавшийся выше инструментарий синтеза русской речи по тексту позволяет читать вслух смешанные русско-английские тексты. Инструментарий представляет собой набор динамических библиотек (DLL), в который входят модули русского и английского синтеза, словарь ударений русского языка, модуль правил произнесения английских слов. На вход инструментария подается слово или предложение, подлежащее произнесению, с выхода поступает звуковой файл в формате WAV или VOX, записываемый в память или на жесткий диск. В табл. 4.2 приводятся характеристики ряда систем синтеза речи. 168
SSML Speech Synthesis Markup Language (Язык разметки для синтеза речи) представляет собой основанный на XML язык разметки для приложений, связанных с синтезом речи. Он рекомендован рабочей группой Консорциума WWW по голосовым браузерам (W3C's voice browser working group). SSML часто встраивается в сценарии VoiceXML, чтобы управлять интерактивными системами телефонной связи. Однако он также может использоваться самостоятельно, например, для того, чтобы создавать звучащие документы. Известны также и другие аналогичные изделия включая встроенные речевые команды Apple, или SAPI TTS (разработка Microsoft также на базе языка XML). 169
SSML разработан на базе языка JSML (Sun Microsystems), хотя основные рекомендация были сделаны главным образом производителями синтезаторов речи. SSML охватывает фактически все аспекты синтеза, хотя некоторые области оставлены неопределенными, и таким образом каждый синтезатор может здесь давать собственную интерпретацию текста (SSML не является таким строгим стандартом как С или хотя бы HTML). Пример документа SSML: 4.4 Системы автоматизированного и автоматического перевода текстов Перевод с одного языка на другой человеком происходит путем восприятия и понимания исходного текста и последующей передачи его смысла средствами выходного языка. При этом переводятся не слова и словосочетания, а понятийные образы, порождаемые в сознании переводчика под их воздействием. Однако если в настоящее время пока еще нет возможности моделировать работу человека-переводчика, то, по крайней мере, нужно стремиться оперировать теми единицами языка и речи, которые позволяют наиболее точно передавать содержание текста, написанного на одном языке, средствами другого языка. Такими единицами являются, прежде всего, фразеологические обороты и терминологические словосочетания и, во вторую очередь, отдельные слова. Если в настоящее время полностью автоматический высококачественный научно-технический перевод практически невозможен, то автоматизированный человеко-машинный перевод вполне реален. Обобщенная технология работы системы машинного перевода Процесс машинного перевода текстов с одного естественного языка на другой может быть в крупном плане разделен на три этапа (рис. 4.14). Текст на входном языке поступает в систему перевода, на этапе семантикосинтаксического анализа выявляется его грамматическая структура, распознаются наименования понятий и устанавливаются отношения между понятиями. На этапе трансфера производится переход от наименований понятий и структуры текста на входном языке к наименованиям и структуре текста на выходном языке. В результате семантико-синтаксического синтеза на основании полученных эквивалентов получается текст на выходном языке (его грамматическое оформление), который выдается в качестве 170
Действующие системы машинного перевода ориентированы на конкретные пары языков (например, французский и русский или японский и английский) и используют, как правило, переводные соответствия либо на поверхностном уровне, либо на некотором промежуточном уровне между входным и выходным языком. Качество машинного перевода зависит от объема словаря, объема информации, приписываемой лексическим единицам, от тщательности составления и проверки работы алгоритмов анализа и синтеза, от эффективности программного обеспечения. Информация может быть представлена как в декларативной (описательной), так и в процедурной (учитывающей потребности алгоритма) форме. Машинный перевод следует отличать от использования компьютеров в помощь человекупереводчику. В последнем случае имеется в виду автоматический словарь, помогающий человеку быстрее подбирать нужный переводной эквивалент. Хотя и в том, и в другом случае компьютер работает вместе с человеком (переводчиком или редактором), в содержание термина «машинный перевод» входит представление о том, что главную, большую часть работы по переводу и отысканию переводных эквивалентов и переводных соответствий машина берет на себя, оставляя человеку лишь контроль и исправление ошибок, в то время как компьютерный словарь в помощь человеку — это чисто вспомогательное средство. Основные проблемы машинного перевода Для создания систем, работающих со всем естественным языком без потери глубины анализа, в настоящий момент не хватает либо технических возможностей (быстродействия, памяти), либо теоретической базы. Однако в коммерческих системах, ввиду того, что предназначаются они для большого количества пользователей, разных предметных областей, принята концепция поверхностного анализа, к тому же и производится такой анализ значительно быстрее. Исторически машинный перевод является первой попыткой использования компьютеров для решения невычислительных задач (Джорджтаунский эксперимент в США в 1954 г.; работы по машинному переводу в СССР, начавшиеся в 1954 г.). Развитие электронной техники, рост объема памяти и производительности компьютеров создавали иллюзию быстрого решения этой задачи. Практическая цель была простой: загрузить в память компьютера максимально возможный словарь и с его помощью из иноязычных текстов получать текст на родном языке в удобочитаемом виде. Однако первоначальная эйфория по поводу того, что столь трудоемкую работу можно поручить ЭВМ, сменилась разочарованием в связи с абсолютной непригодностью получаемых текстов. 171
Конечно, системы, настроенные на определенную предметную область, дают гораздо более приемлемые результаты. Однако в этом случае системы перевода получаются очень узко ориентированными, и попытка использовать их даже в смежных предметных областях дает совершенно непредсказуемые результаты. Возникают эти проблемы из-за принципиально разных подходов к переводу человека и машины. Квалифицированный переводчик понимает смысл текста и пересказывает его на другом зыке словами и стилем, максимально близкими к оригиналу. компьютера этот путь выливается в решение двух задач: • перевод текста в некоторое внутреннее семантическое представление; • генерация по этому представлению текста на другом языке. Поскольку не только не решена сама по себе ни одна из этих задач, и даже нет общепринятой концепции семантического представления текстов, при автоматическом переводе приходится фактически делать «подстрочник», заменяя по отдельности слова одного языка на слова другого и пытаясь после этого придать получившемуся предложению некоторую синтаксическую согласованность. Смысл при этом может быть искажен или безвозвратно утерян. Фразеологический машинный перевод Концепция фразеологического перевода базируется на понимании того факта, что в естественных языках смысл лексических единиц более высокого уровня (например, фразеологических единиц, являющихся наименованиями понятий или ситуаций), как правило, не сводим к смыслу составляющих их лексических единиц более низкого уровня (например, слов). При решении проблемы перевода ранее делалась ставка прежде всего на грамматически правильный пословный перевод, а полисемия слов разрешалась в основном процедурными средствами на основе учета их синтаксических и семантических признаков. Поэтому системы МП первых трех десятилетий их развития можно охарактеризовать как системы семантико-синтаксического преимущественно пословного перевода. Словосочетания здесь также использовались, но в меньшей степени. Семантико-синтаксический пословный машинный перевод текстов не имеет особой перспективы, так как в естественных языках смысл словосочетаний, как правило, не сводим или не полностью сводим к смыслу составляющих их слов, и при переводе он не обязательно может быть «вычислен» на основе синтаксических и семантических признаков этих слов. Принципы построения систем фразеологического машинного перевода текстов были впервые сформулированы Г. Г. Белоноговым в 1975 г. и изложены в 1983 г. в книге Г. Г. Белоногова и Б. А. Кузнецова «Языковые средства автоматизированных информационных систем». В 1984 г. аналогичная идея была высказана японским ученым профессором Нагао из университета Киото. Он предложил в качестве альтернативы подход, основанный на использовании ранее переведенных текстов, представленных одновременно на двух языках (билингв). Важнейшими среди этих принципов являются следующие: • основными единицами языка и речи, которые прежде всего следует включать в машинный словарь, должны быть фразеологические единицы (словосочетания, фразы). Отдельные слова также могут включаться в словарь, но они должны использоваться только в тех случаях, когда не удается осуществить перевод, опираясь только на фразеологические единицы; • наряду с фразеологическими единицами, состоящими из непрерывных последовательностей слов, в системах машинного перевода следует использовать и так называемые речевые модели — фразеологические единицы-шаблоны с «пустыми 172
местами», которые могут заполняться различными словами и словосочетаниями, порождая осмысленные отрезки речи; • реальные тексты, независимо от их принадлежности к той или иной тематической области, обычно бывают политематическими, если они имеют достаточно большой объем. И отличаются они друг от друга не столько словарным составом, сколько распределениями вероятностей появления в них различных слов из общенационального словарного фонда. Поэтому машинный словарь, предназначенный для перевода текстов даже только из одной тематической области, должен быть политематическим, а для перевода текстов из различных предметных областей — тем более; • для систем фразеологического перевода необходимы машинные словари большого объема. Такие словари могут создаваться на основе автоматизированной обработки двуязычных текстов, являющихся переводами друг друга, и в процессе функционирования систем перевода; • наряду с основным (политематическим) словарем большого объема в системах фразеологического машинного перевода целесообразно использовать также набор небольших по объему дополнительных тематических словарей. Дополнительные словари должны содержать только ту информацию, которая отсутствует в основном словаре (например, информацию о приоритетных переводных эквивалентах словосочетаний и слов для различных предметных областей, если эти эквиваленты не совпадают с приоритетными переводными эквивалентами основного словаря); • основным средством разрешения полисемии (многозначности) слов в системах фразеологического перевода является их использование в составе фразеологических словосочетаний. Дополнительным — аппарат дополнительных тематических словарей, где для каждого многозначного слова или словосочетания указывается его приоритетный переводной эквивалент, специфичный для рассматриваемой предметной области; • большую роль в системах фразеологического машинного перевода текстов могут играть процедуры морфологического и синтаксического анализа и синтеза русских и английских текстов, построенные на основе принципа аналогии. Эти процедуры позволяют отказаться от хранения в словарях большого объема грамматической информации и порождать ее по мере необходимости автоматически, в процессе перевода. Они делают систему перевода открытой — способной обрабатывать тексты с «новой» лексикой; • наряду с переводом текстов в автоматическом режиме в системах фразеологического машинного перевода целесообразно предусмотреть интерактивный режим работы. В этом режиме пользователь должен иметь возможность вмешиваться в процесс перевода и настраивать дополнительные машинные словари на тематику переводимых текстов. В соответствии с главным тезисом концепции фразеологического перевода, система фразеологического машинного перевода должна включать в свой состав базу знаний, содержащую переводные эквиваленты для наиболее часто встречающихся фраз, фразеологических сочетаний и отдельных слов (рис. 4.15) и программные средства для морфологического и синтаксического анализа и синтеза текстов и для их редактирования человеком. В процессе перевода текстов система должна использовать хранящиеся в ее базе знаний переводные эквиваленты в следующем порядке: сначала для очередного предложения исходного текста делается попытка перевести его как целостную фразеологическую единицу; затем, в случае неудачи, — входящие в его состав словосочетания; и, наконец, осуществляется пословный перевод тех фрагментов текста, которые не удалось перевести первыми двумя способами. Фрагменты выходного текста, полученные всеми тремя способами, должны грамматически согласовываться друг с другом (с помощью процедур морфологического и синтаксического синтеза). 173
Словари систем фразеологического перевода Словари являются наиболее важной компонентой систем Фразеологического машинного перевода. Они должны быть достаточно большого объема, чтобы хорошо покрывать тексты, и должны содержать преимущественно словосочетания. Опыт создания больших русско-английских и англо-русских машинных словарей показал, что наиболее надежным источником для их составления могут служить русские и английские тексты, являющиеся переводами друг друга, в частности двуязычные заголовки Документов. Составление машинных словарей по двуязычным текстам проводится как вручную, так и с помощью ЭВМ. Ручное составление словарей связано с большими трудозатратами. Поэтому была разработана процедура автоматизированного составления словарей. Эта процедура основана на использовании того факта, что во множестве двуязычных пар предложений, являющихся переводами друг друга и содержащих одно и то же слово или словосочетание одного из языков, максимальную частоту встречаемости имеет слово или словосочетание другого языка, являющееся переводом этого слова или словосочетания. Машинные словари системы могут корректироваться и пополняться в процессе перевода текстов в интерактивном режиме В этом режиме есть возможность обнаруживать слова и словосочетания, для которых в словаре не указаны переводные эквиваленты или эти эквиваленты не соответствуют контексту, или указано несколько эквивалентов, но на первом месте стоит эквивалент, не соответствующий контексту. В случае отсутствия переводных эквивалентов у некоторых слов они могут быть указаны человеком; если эквиваленты не соответствуют контексту они могут быть заменены; если их несколько, то есть возможность выбрать только те из них, которые соответствовали контексту. В системе фразеологического перевода используются следующие типы словарей: • тематический; • политематический; • словарь пользователя. Технология использования различных типов словарей в процессе перевода следующая: после семантико-синтаксического анализа входного текста на этапе трансфера идет обращение к двуязычным словарям. Если подключены все три типа словарей, то порядок обращения будет следующим: наивысший приоритет у словаря пользователя, проводится поиск всех фразеологических единиц переводимого текста, для найденных дается перевод; затем идет обращение к тематическому словарю (тематика словаря выбирается пользователем в системе перед началом перевода), в нем проводится поиск для всех еще непереведенных единиц; если после работы двух словарей еще остались непереведенные фрагменты, то система обращается к политематическому словарю, который содержит 174
переводные эквиваленты для самых различных понятий, принадлежащих разным тематикам. Все словари имеют линейную структуру: [понятие на входном языке] [переводной эквивалент 1] / [перев. эквив. 2] /......../ [перев. эквив. п] Словарная статья состоит из двух частей: из исходного наименования понятия и его переводного эквивалента. Разделителем между этими частями служит косая черта. Записи в словаре пользователя располагаются в порядке их ввода. Исходное наименование понятия и его перевод хранятся в словаре в том виде, в котором они были в него первоначально введены, но в процессе его подключения к системе перевода производится пословная нормализация исходных наименований понятий, что позволяет отождествлять их различные формы. При этом если перевод осуществляется в автоматическом режиме (без участия пользователя), берется первый слева переводной эквивалент. Фрагмент словаря пользователя представлен в табл. 4.3. По структуре словарных статей словарь пользователя аналогичен основному политематическому и дополнительным тематическим словарям, но он отличается от них количеством возможных вариантов перевода, указываемых для входных наименований понятий. Здесь для каждого входного наименования понятия может указываться только один вариант перевода. Отличается пользователя также и способом его хранения в файле. Это связано с необходимостью оперативного изменения содержимого словаря и тем, что его объем значительно меньше, чем объем словарей других типов. В системе фразеологического перевода используются также словари словообразовательных эквивалентов и словарей синонимов, гипонимов (термины, находящиеся в видовых отношениях с исходным) и гиперонимов (термины, находящиеся в родовых отношениях с исходным). Эти словари являются вспомогательными, они позволяют дополнять словарные статьи основного словаря: имеющемуся понятию на английском языке ставится в соответствие не единственный эквивалент русского языка, а несколько вариантов переводных эквивалентов этого понятия. 175
Системы автоматического перевода Рассмотрим вкратце характеристики некоторых из таких систем, предназначенных для достижения максимальной скорости обработки больших потоков информации. Скорость перевода страницы текста у разных систем составляет от 0,5 до 2 с в автоматическом режиме. Полученный в результате текст в большинстве случаев понятен сразу. Поэтому, потратив какие-то минуты на осознание информации, пользователь может сразу сохранить документ для более тщательного изучения. Основными поставщиками подобных систем в настоящий момент являются московская компания «Арсеналъ» и санкт-петербурская «ПРОМТ». Одним из продуктов «Арсеналъ» является переводчик «СОКРАТ». Данная система поставляется в комплекте с общелексическим, коммерческим и компьютерным словарями. Данная база составляет 95 % требуемого словарного запаса для текстов, которые существуют в электронном виде. Отдельно существует 9 дополнительных подключаемых к системе «СОКРАТ» словарей специализированного назначения, среди которых словари по медицине, машиностроению, юриспруденции и др. Интерфейс представляет собой два окна, одно из которых содержит текст оригинала, а в другом появляется перевод. Известны версии «СОКРАТа», понимающие соответственно английский, немецкий и французский языки. Перевод в любом случае является двухсторонним, т. е. можно переводить не только с иностранного языка на русский, но и наоборот. Компания «ПРОМТ» давно специализируется на производстве языковых систем. Системы перевода STYLUS 2.xx и 3.хх известны пользователям Windows. «PROMT» также комплектуется общелексическим и компьютерным словарями. Однако основной особенностью данной программы является наличие гораздо большего количества подключаемых словарей. Их число составляет на данный момент несколько десятков. Существуют четыре коллекции или подборки словарей — наука, коммерция, техника и промышленность. Каждая из коллекций содержит от 5 до 10 словарей определенной направленности. Например, коллекция «Коммерция» содержит словари «Коммерческий», «Информатика» и «Юридический», причем для всех возможных языковых пар. Системы автоматического перевода Promt и XT-Diamond. Данные системы являются довольно типичными для рынка программных продуктов РФ и обеспечивают следующие возможности: • ручной выбор и настройку словарей предметной области; • пополнение словарей пользователем; • автоматическое определение предметной области, при необходимости; • выборочный или полный перевод текстового файла; • редактирование оригинала и результата перевода. На рис. 4.16—4.19 приведены примеры некоторых экранов данных систем, иллюстрирующие их возможности. В табл. 4.4 приведен пример исходного и результирующего технического текста при автоматизированном переводе различными системами, из которого видно, что несмотря на несомненные успехи в данной области, технология все еще имеет определенные резервы для своего совершенствования. Еще одна тенденция последних лет — слияние речевых технологий с лингвистическими. Показателен пример L&H, ставший действующим лицом в области машинного перевода с момента приобретения фирмы Mendez в 1996 г. После этого к L&H присоединились AILogic Corp. и NeocorTech (специализировавшиеся на машинном переводе с английского на японский и с японского на китайский и обратно), германская фирма Heitmann Group и, наконец Globalink. Новая версия известной программыпереводчика Power Translator Pro фирмы Globalink вышла уже под маркой L&H. 176
177
178
Продукция L&H поддерживает в общей сложности 25 языков. Однако еще эффектнее выглядит программа Universal Translator фирмы LanguageForce (США). Серия Universal Translator включает четыре системы машинного перевода, работающие с MS Office, имеющие функции распознавания/синтеза речи и проверки орфографии; при этом Universal Translator 2000 Professional переводит с 40 языков: арабский, китайский (упрошенный и традиционный варианты), чешский, датский, нидерландский, английский британский и американский, эсперанто, фарси, финский, французский (канадский и европейский варианты), немецкий, греческий, иврит, венгерский, итальянский, индонезийский, латинский, японский, корейский, норвежский, польский, португальский (бразильский и европейский варианты) румынский, русский, словацкий, испанский (латиноамериканский и европейский варианты), суахили, шведский, тагальский, тайский, турецкий, украинский, вьетнамский, зулусский. Для Universal Translator 2000 Professional 179
объявлена возможность перевода в любом направлении для любой языковой пары. Нетрудно подсчитать, что число таких пар составляет 1560. Кроме того, программа записывает текст под диктовку, читает вслух и проверяет грамотность написанного. Вместе с переводчиком поставляются две обучающие игры Space Attack и WortTris, которые должны, по-видимому, окончательно сразить потребителя и конкурентов. Лингвистический анализ текста — обязательная стадия процесса автоматического ввода текста под диктовку. Без этой стадии современное качество распознавания не могло бы быть достигнуто, и многие эксперты связывают перспективы речевых систем именно с дальнейшим развитием содержащихся в них лингвистических механизмов. Как следствие, речевые технологии делаются все более зависимыми от языка, с которым работают. В сфере распознавания слитной речи зависимость стала абсолютной, что подтверждается, в частности, отрицательным опытом локализации программного пакета фирмы Dragon Systems для русского языка (имеется в виду система «Горыныч», показавшая объявленного качества распознавания). Однако и других областях работы с речью, включая TTS и даже механизмы редактирования и сжатия, специфика языка все более дает себя знать. Следовательно распознавание, синтез и обработка русской речи являются той нишей, занять которую должны именно российские разработчики. Контрольные вопросы 1. Перечислите основные принципы распознавания символов (OCR) 2. Что такое OCR А и OCR В? 3. В чем заключается содержание метода сопоставления с образцом? 4. Перечислите основные особенности метода POWR. 5. Каковы возможности программного продукта Finereader? 6. Что такое принципы IPA? 7. В чем заключается MDA? 8. Что такое бинаризация изображения? 9. Какие типы классификаторов-распознавателей вам известны? 10. Перечислите основные принципы систем распознавания речи (STT). 11. Охарактеризуйте программные продукты STT. 12. Перечислите основные принципы систем генерации речи (TTS). 13. Охарактеризуйте программные продукты TTS. 14. Назовите основные принципы систем автоматизированного перевода. 15. Что такое фразеологический машинный перевод? 16. Какова структура машинного словаря? 17. Назовите возможности системы машинного перевода Promt. 18. В чем заключается интеграция систем перевода и обработки речи? 180
Глава 5 ТЕХНОЛОГИИ ДОСТУПА К ДАННЫМ. ФАЙЛОВЫЕ СИСТЕМЫ И БАЗЫ ДАННЫХ В истории вычислительной техники можно проследить две основные области ее применения: • первая — выполнение численных расчетов, которые слишком трудоемки или которые вообще невозможно производить вручную. Развитие этой области способствовало интенсификации методов численного решения сложных математических задач, развитию языков программирования, становлению обратной связи с разработчиками новых архитектур ЭВМ; • вторая область использования вычислительной техники — в автоматических или автоматизированных информационных системах возникла несколько позже первой. Это связано с тем, что вначале возможности компьютеров по хранению информации были очень ограниченными. В самом широком смысле информационная система представляет собой программноаппаратный комплекс, функции которого состоят в надежном хранении информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. Классическими примерами информационных систем являются банковские системы, системы резервирования авиационных или железнодорожных билетов, мест в гостиницах и т. д. 5.1 Файловые системы С появлением магнитных дисков началась история систем управления данными во внешней памяти [31]. До этого разработчик каждой прикладной программы, которой требовалось хранить данные во внешней памяти, сам определял расположение каждой порции данных на магнитной ленте или барабане и планировал обмены между оперативной памятью и устройствами внешней памяти. Историческим шагом явился переход к использованию централизованных систем управления файлами. С точки зрения прикладной программы, файл — это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Правила именования файлов, способ доступа к данным, хранящимся в файле, и структура этих данных зависят от конкретной системы управления файлами и, возможно, от типа файла. Система управления файлами берет на себя распределение внешней памяти, отображение имен файлов в соответствующие адреса во внешней памяти и обеспечение доступа к данным (рис. 5.1). Первая получившая широкое распространение файловая система была разработана фирмой IBM для серии компьютеров 360. В этой системе поддерживались как чисто последовательные, так и индексно-последовательные файлы, а реализация во многом опиралась на возможности только появившихся к этому времени контроллеров управления дисковыми устройствами. Структуры файлов Прежде всего, практически во всех современных компьютерах основными устройствами внешней памяти являются магнитные диски с подвижными головками, и именно они служат для хранения файлов [24, 25, 31]. Магнитные диски представляют собой пакеты 181
магнитных пластин (платтеров), между которыми на одном рычаге двигается пакет магнитных головок. Шаг движения пакета головок является дискретным, и каждому положению пакета головок логически соответствует цилиндр магнитного диска. На каждой поверхности цилиндр «высекает» дорожку, так что каждая поверхность содержит число дорожек, равное числу цилиндров. При разметке магнитного диска (специальном действии, предшествующем использованию диска) каждая дорожка размечается на одно и то же количество блоков таким образом, что в каждый блок можно записать по максимуму одно и то же число байтов. Таким образом, для выполнения обмена с магнитным диском на уровне аппаратуры нужно указать номер цилиндра, номер поверхности, номер блока на соответствующей дорожке и число байтов, которое нужно записать или прочитать от начала этого блока. Однако эта возможность обмениваться с магнитными дисками порциями меньше объема блока в настоящее время не используется в файловых системах. Это связано с двумя обстоятельствами: • аппаратура управления дисками является электронно-механической, и при выполнении обмена с диском выполняются три основных действия: подвод головок к нужному цилиндру, поиск на дорожке нужного блока и собственно обмен с этим блоком. Из всех этих действий в среднем наибольшее время занимает первое, механическое действие; • для того чтобы работать с частями блоков, файловая система должна обеспечить соответствующий размер буфера оперативной памяти, что существенно усложняет распределение оперативной памяти. Поэтому во всех современных файловых системах явно или неявно выделяется некоторый базовый уровень. На этом уровне обеспечивается работа с файлами, состоящими из блоков, прямо адресуемых в адресном пространстве файла. Размер этих логических блоков файла совпадает или кратен размеру физического блока диска и обычно выбирается равным размеру страницы виртуальной памяти, поддерживаемой аппаратурой компьютера совместно с операционной системой. В некоторых файловых системах базовый уровень доступен пользователю, но более часто прикрывается некоторым более высоким уровнем, стандартным для пользователей. Идентификация файлов Все современные файловые системы поддерживают многоуровневое именование файлов за счет поддержания во внешней памяти дополнительных файлов со специальной структурой —каталогов. Каждый каталог содержит имена каталогов и/или файлов, содержащихся в данном каталоге. Таким образом, полное имя файла состоит из списка имен каталогов плюс имя файла в каталоге, непосредственно указывающем на данный файл. Разница между способами именования файлов в разных файловых системах состоит в том, с чего начинается эта цепочка имен Известны два базовых варианта: • поддержание изолированных файловых систем. Во многих системах управления файлами требуется, чтобы каждый архив файлов (полное дерево справочников) целиком располагался на одном дисковом пакете (или логическом диске разделе физического дискового пакета, представляемом с помощью средств операционной системы как отдельный диск). В этом случае полное имя файла начинается с имени дискового устройства, на котором установлен соответствующий диск. Такой способ именования используется в файловых системах фирмы DEC, очень близко к этому находятся и файловые системы персональных компьютеров; • полностью централизованная файловая система. Впервые была реализована в операционной системе Multics. В файловой системе Miltics пользователи представляли всю совокупность каталогов и файлов как единое дерево. Полное имя 182
файла начиналось с имени корневого каталога, и пользователь не обязан был заботиться об установке на дисковое устройство каких-либо конкретных дисков. Сама система, выполняя поиск файла по его имени, запрашивала оператора об установке необходимых дисков. Централизованные файловые системы во многом удобнее изолированных: система управления файлами принимает на себя больше рутинной работы. Но в таких системах возникают существенные проблемы, если кому-то требуется перенести поддерево файловой системы на другую вычислительную установку. Компромиссное решение применено в файловых системах ОС UNIX. На базовом уровне в этих файловых системах поддерживаются изолированные архивы файлов. Один из этих архивов объявляется корневой файловой системой. После запуска системы можно смонтировать корневую файловую систему и ряд изолированных файловых систем в одну общую файловую систему-Технически это производится с помощью создания в корневой файловой системе специальных пустых каталогов. Специальная команда (системный вызов) mount ОС UNIX позволяет подключить к одному из этих пустых каталогов корневой каталог указанного архива файлов. После монтирования общей файловой системы именование файлов производится так же, как если бы она с самого начала была централизованной. Защита файлов Поскольку файловые системы являются общим хранилищем файлов, принадлежащих, вообще говоря, разным пользователям, системы управления файлами должны обеспечивать авторизацию доступа к файлам. В общем виде подход состоит в том, что по отношению к каждому зарегистрированному пользователю данной вычислительной системы для каждого существующего файла указываются действия, которые разрешены или запрещены данному пользователю. В большинстве современных систем управления файлами применяется подход к защите файлов, впервые реализованный в ОС UNIX. В этой ОС каждому зарегистрированному пользователю соответствует пара целочисленных идентификаторов: идентификатор группы, к которой относится этот пользователь, и его собственный идентификатор в группе. При каждом файле хранится полный идентификатор пользователя, который создал этот файл, и фиксируется, какие действия с файлом может производить его создатель, какие действия с файлом доступны для других пользователей той же группы и что могут делать с файлом пользователи других групп. Эта информация очень компактна, требующиеся при проверке действия невелики, а такой способ контроля доступа удовлетворителен в большинстве случаев. Режим многопользовательского доступа Если операционная система поддерживает многопользовательский режим, вполне реальна ситуация, когда два или более ользователя одновременно пытаются работать с одним и тем же Файлом. Если все пользователи собираются только читать файл, чего страшного не произойдет. Но если хотя бы один из них будет изменять файл, для корректной работы этих пользователей требуется взаимная синхронизация. В системах управления файлами обычно применялся следующий подход. В операции открытия файла (первой и обязательной операции, с которой должен начинаться сеанс работы файлом) среди прочих параметров указывался режим работы (чтение или изменение). Если к моменту выполнения этой операции от имени некоторого пользовательского процесса А файл уже находился в открытом состоянии от имени некоторого другого процесса В, причем файл был открыт в режиме, который несовместим с желаемым режимом открытия (совместимы только режимы чтения), то в зависимости от особенностей системы процессу А либо сообщалось о невозможности открытия файла в 183
желаемом режиме, либо он блокировался до тех пор, пока в процессе В не выполнялась операция закрытия файла. В ранних версиях файловой системы ОС UNIX вообще не были предусмотрены какие бы то ни было средства синхронизации параллельного доступа к файлам. Операция открытия файла выполнялась всегда для любого существующего файла, если пользователь, от имени которого выполнялся процесс, имел соответствующие права доступа. При совместной работе синхронизацию приходилось производить вне файловой системы (и специальных средств для этого ОС UNIX не предоставляла). В современных реализациях файловых систем ОС UNIX по выбору поддерживается синхронизация при открытии файлов. Кроме того, существует возможность синхронизации нескольких процессов, параллельно модифицирующих один и тот же файл. Для этого введен специальный механизм синхронизационных блокировок диапазонов адресов открытого файла. Области использования файлов Прежде всего, файлы применяются для хранения текстовых данных: документов, текстов программ и т. д. Такие файлы обычно образуются и модифицируются с помощью различных текстовых редакторов. Структура текстовых файлов обычно очень проста: это либо последовательность записей, содержащих строки текста, либо последовательность байтов, среди которых встречаются специальные символы разметки (например, символы конца строки). Файлы с текстами программ являются входными параметрами компиляторов, которые, в свою очередь, формируют файлы, содержащие объектные модули [9]. С точки зрения файловой системы, объектные файлы также обладают абсолютно стандартной структурой — это последовательности записей или байтов. Система программирования накладывает на эту структуру более сложную и специфичную для этой системы структуру объектного модуля. Подчеркнем, что логическая структура объектного модуля неизвестна файловой системе, а поддерживается программами системы программирования. Заметим, что в отмеченных выше случаях вполне достаточно тех средств защиты файлов и синхронизации параллельного доступа, которые обеспечивают системы управления файлами. Очень редко возникает потребность параллельной модификации файлов, и, как правило, каждый пользователь может обойтись своей частной копией. Другими словами, файловые системы обычно обеспечивают хранение слабо структурированной информации, оставляя дальнейшую структуризацию прикладным программам. В перечисленных выше случаях использования файлов это даже хорошо, потому что при разработке любой новой прикладной системы, опираясь на простые, стандартные и сравнительно дешевые средства файловой системы, можно реализовать те структуры хранения, которые наиболее естественно соответствуют специфике данной прикладной области. В табл. 5.1 приведены типичные команды обращения к файловым системам, характерные для различных ОС. 184
Файловая система NTFS Структура файловой системы. Как и любая другая система, NTFS делит все полезное пространство диска на кластеры — блоки данных, используемые единовременно. NTFS поддерживает различные размеры кластеров — от 512 байт до 64 Кбайт, стандартом считается кластер размером 4 Кбайт. Диск NTFS условно делится на две части (рис. 5.2). Первые 12 % диска отводятся под так называемую MFT-зону — пространство, в котором размещен метафайл MFT (Master File Table). Запись каких-либо данных в эту область невозможна-MFT-зона всегда держится 185
пустой — это делается для того, что бы главный служебный файл (MFT) не фрагментировался при своем расширении. Остальные 88 % диска представляют собой пространство для размещения файлов. Свободное место диска, однако, включает в себя все физически свободное место – незаполненные участки MFT-зоны туда тоже включаются. Механизм использования MFTзоны таков: когда файлы уже нельзя записывать в обычное пространство, MFT-зона сокращается, освобождая место для записи файлов. При освобождении участка обычной области MFT-зона может снова расшириться. Структура MFT. Каждый элемент файловой системы NTFS представляет собой файл, даже служебная информация. Как уже говорилось, главный файл NTFS называется MFT, или Master File Table — общая таблица файлов, которая размещается в MFT-зоне и представляет собой централизованный каталог всех остальных файлов диска. MFT поделен на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому-либо файлу. Первые 16 файлов носят служебный характер и недоступны операционной системе — они называются метафайлами, причем самый первый из них — сам MFT. Эти первые 16 элементов MFT — единственная часть диска, имеющая фиксированное положение. Остальная часть MFT-файла может сполагаться, как и любой другой файл, в произвольных местах иска — восстановить его положение можно с помощью его самого, используя за основу первый элемент MFT. Все пространство тома NTFS представляет собой либо файл, либо часть файла. Главная таблица файлов содержит по крайней мере одну запись для каждого файла тома, включая одну запись адя самой себя. Все файлы на томе NTFS идентифицируются номером файла, который определяется позицией файла в MFT. Каждый фай и каталог на томе NTFS определяется набором атрибутов. Базовая единица распределения дискового пространства для файловой системы NTFS — кластер. Размер кластера выражается в байтах и всегда равен целому количеству физических секторов. В качестве адреса файла NTFS использует номер кластера не физическое смещение в секторах или байтах. Загрузочный сектор тома NTFS располагается в начале тома а его копия — в середине тома. Загрузочный сектор состоит из стандартного блока параметров BIOS, количества секторов в томе, а также начального логического номера кластера основной копии MFT и зеркальной копии MFT. Каждый атрибут файла NTFS состоит из полей: тип атрибута, длина атрибута, значение атрибута и, возможно, имя атрибута. Имеется системный набор атрибутов, определяемых структурой тома NTFS. Системные атрибуты имеют фиксированные имена и коды их типа, а также определенный формат. Могут применяться также атрибуты, определяемые пользователями. Их имена, типы и форматы задаются исключительно пользователем. Атрибуты файлов упорядочены по убыванию кода атрибута, причем атрибут одного и того же типа может повторяться 186
несколько раз. Существует два способа хранения атрибутов файла — резидентное хранение в записях таблицы MFT и нерезидентное хранение вне ее. Сортировка может осуществляться только по резидентным атрибутам. Файлы NTFS состоят, по крайней мере, из атрибутов, приведенных в табл. 5.2. Размещение файлов. Небольшие файлы (small). Если файл имеет небольшой размер, то он может целиком располагаться внутри одной записи MFT размером 2 Кбайт (рис. 5.3,а) Из-за того, что файл может иметь переменное количество атрибутов, а также из-за переменного размера атрибутов нельзя наверняка утверждать, что файл уместится внутри записи. Однако, обычно файлы размером менее 1500 байт помещаются внутри записи MFT. Большие файлы (Large). Если файл не вмещается в одну запись MFT, то этот факт отображается в значении атриоу та «данные», который содержит признак того, что файл являете нерезидентным и находится вне таблицы M FT. В этом случае а рибут «данные» содержит номер кластера для первого кластер каждого фрагмента данных (data run), а также количество непрерывных кластеров в каждом фрагменте (рис. 5.3, б). Очень большие файлы (huge). Если файл настолько велик, что его атрибут данных не помещается в одной записи, то этот атРибут становится нерезидентным, т. е. он размещается в другой записи таблицы MFT, ссылка на которую помещена в исходной записи о файле (рис. 5.3, в). Эта ссылка называется внешним атрибутом (external attribute). Нерезидентный атрибут содержит указатели на фрагменты данных. 187
Сверхбольшие файлы (extremely huge). Для сверхбольших файлов внешний атрибут может указывать на несколько нерезидентных атрибутов (рис. 5.3, г). Кроме того, внешний атрибут, как и любой другой атрибут, может храниться в нерезиной форме, поэтому в NTFS не может быть атрибутов слишком большой длины, которые система не может обработать. Каталоги. Каждый каталог NTFS представляет собой один вход в таблицу MFT, который содержит список файлов специальной формы, называемый индексом (index). Индексы позволяют сортировать файлы для ускорения поиска, основанного на рачении определенного атрибута. В файловых системах FAT и HPFS используется сортировка файлов по имени. NTFS позволяет использовать для сортировки любой атрибут, если он хранится в резидентной форме. Имеется две формы списка файлов. Небольшие списки файлов (small indexes). Если количество файлов в каталоге невелико, то список файлов может быть резидентным в записи в MFT, являющейся каталогом. В этом случае он называется небольшим каталогом (рис. 5.4, а). Небольшой список файлов содержит значения атрибутов файла. По умолчанию — это имя файла, а также номер записи MTF, содержащей начальную запись файла. 188
Большие списки файлов (large index). По мере того, как каталог растет, список файлов может потребовать нерезидентной формы хранения. Однако начальная часть списка всегда остается резидентной в корневой записи каталога в табл це MFT (рис. 5.4, б). Имена файлов резидентной части списка файлов являются узлами В-дерева. Остальные части списка файлов размещаются вне MFT. Для их поиска используется специальный атрибут «размещение списка» (Index Allocation — IA), представляющий собой набор номеров кластеров, которые указывают на остальные части списка. Одни части списков являются листьями дерева, а другие — промежуточными узлами, т. е. содержат наряду с именами файлов атрибут Index Allocation, указывающий на списки файлов более низких уровней. Имена файлов NTFS поддерживает имена файлов длиной до 255 символов. Имена файлов NTFS используют набор символов UNICODE с 16-битовыми символами. NTFS автоматически генерирует поддерживаемое MS-DOS имя для каждого файла. Таким образом, файлы NTFS могут использоваться в сети операционными системами MS-DOS и OS/2. Поскольку NTFS использует набор символов UNICODE для имен файлов, существует возможность использования некоторых запрещенных в MS-DOS символов. Для генерации короткого имени файла в стиле MS-DOS NTFS удаляет все запрещенные символы, точки (кроме одной), а также любые пробелы из длинного имени файла. Далее имя файла усекается до 6 символов, добаштяется тильда (~) и номер. Расширение имени файла усекается до 3 символов. Короткие имена файлов с длинными русскими именами образуются по особой схеме, в зависимости от типа используемой файловой системы. Другие особенности ФС Надежность NTFS. NTFS является восстанавливаемой (recoverable) файловой системой, которая может привести себя в корректное состояние при практически любых реальных сбоях. Любая современная файловая система основана на таком понятии, как транзакция — действие, совершаемое целиком и корректно или не совершаемое вообще. Журналирование — средство, позволяющее существенно сократить число ошибок и сбоев системы. Опыт показывает, что NTFS восстанавливается в полностью корректное состояние даже при сбоях в очень загруженные дисковой активностью моменты. Она 189
гарантирует согласованность данных тома, используя стандартную процедуру регистрации транзакций. Каждая операция ввода-вывода, которая изменяет файл на томе NTFS, рассматривается файловой системой как транзакция. При модификации файла специальная компонента файловой системы — сервис регистрации файлов (Log File Service) — фиксирует всю информацию, необходимую для по-торения (redo) или отката (undo) транзакции в специальном файле с именем $LogFile. Если транзакция не завершается нормально, то NTFS пытается закончить транзакцию (повторить) или производит ее откат. Для обеспечения сохранности пользовательских данных используется программная поддержка массивов RAID (Redundant Array of Inexpensive/Independent Disks — см. рис. 5.16) [24, 25]. В сочетании с поддержкой зеркализации дисков или расщепления с контролем четности (RAID 5) NTFS может выдержать любой одиночный сбой. В Windows NT поддерживаются уровни 0, 1 и 5. В RAID 0 данные расщепляются на блоки по 64 Кбайт, поддерживается от 2 до 32 дисков. RAID 1 осуществляется на уровне разделов, т. е. зеркализируются именно разделы. При отказе зеркализованного раздела администратор должен отменить отношения зеркализации, чтобы использовать оставшийся раздел как отдельный том. Затем можно использовать свободный раздел на другом диске, чтобы вновь установить зеркальные отношения. Зеркализации может быть подвергнут любой раздел, включая загрузочный (Boot Partition). В принципе зеркализация является более дорогим способом, чем Другие, так как коэффициент использования дискового пространства составляет только 50 %, с другой стороны, для небольших сетей это весьма приемлемый вариант, так как для его реализации достаточно только двух дисков. RAID 5 требует минимум трех дисков (максимум 32 диска), поддерживает файловые системы FAT, NTFS, причем загрузочный раздел не может быть расщеплен. Если отказывает диск, входящий в состав массива RAID 5, то компьютер может продолжать работу и получать доступ к данным. Однако данные отказавшего диска будут в течение всего времени регенерироваться на основании данных других дисков, и производительность си темы может упасть. Можно воссоздать данные отказавшего диска на новом диске. Для этого нужно иметь свободный раздел на каком-либо работоспособном диске равного или большего раз мера, чем отказавший. Затем запускается процедура восстанет ления данных из пункта Regenerate меню Fault Tolerance утилиты Disk Manager. NTFS поддерживает также «горячее» переназначение секторов, когда при возникновении ошибки из-за наличия плохого сектора данные переписываются в новый хороший сектор, а сбойный исключается из работы. Администратор уведомляется с помощью утилиты просмотра событий Event Viewer о всех событиях, связанных с обработкой сбойных секторов, а также о потенциальной угрозе потери данных, если избыточная копия также отказывает. Сжатие. NTFS имеет встроенную поддержку сжатия дисков — то, для чего раньше приходилось использовать Stacker или DoubleSpace. Любой файл или каталог в индивидуальном порядке может храниться на диске в сжатом виде — этот процесс прозрачен для приложений. Сжатие файлов осуществляется с высокой скоростью, однако при этом часто возникает отрицательный эффект — фрагментация сжатых файлов. Сжатие осуществляется блоками по 16 кластеров и использует так называемые виртуальные кластеры — гибкое решение, позволяющее добиться полезных эффектов, например, половина файла может быть сжата, а половина — нет. Это достигается благодаря тому, что хранение информации о компрессированности определенных фрагментов очень похоже на обычную фрагментацию файлов. Сжатый файл имеет «виртуальные» кластеры, реальной информации в которых нет. Как только система обнаруживает та виртуальные кластеры, это означает, что данные 190
предыдущего блока, кратного 16 кластерам, должны быть разжаты, а получившиеся данные должны заполнить виртуальные кластеры. Hard Link — один и тот же файл может иметь два имени (несколько указателей файлакаталога или разных каталогов ссылаются на одну и ту же MFT-запись). Допустим, один и тот же файл имеет имена l.txt и 2.txt, и если пользователь удалит файл l.txt, останется файл 2.txt, наоборот, если сотрет 2.txt – останется файл 1.txt, т. е. оба имени с момента создания файла равноправны. Файл физически удаляется лишь тогда, когда будет удалено его последнее имя. Шифрование (NT5). Каждый файл или каталог может также быть зашифрован, что не даст возможность прочесть его другой инсталляцией ОС NT. В сочетании со стандартным паролем на загрузку системы, эта возможность обеспечивает достаточную для большинства применений безопасность избранных пользователем важных данных. В табл. 5.3 приведены некоторые характеристики ФС ряда различных ОС. 191
5.2. Базы данных и СУБД Множество функций управления данными ФС оказывается недостаточным для решения задач поддержки информационных систем. Предположим, что мы хотим реализовать простую информационную систему, осуществляющую учет сотрудников некоторой организации. Система должна выдавать списки сотрудников в соответствии с указанными номерами отделов, поддерживать функции регистрации перевода сотрудника из одного отдела в другой, приема на работу новых сотрудников и увольнения работающих. Для каждого отдела должна поддерживаться возможность получения имени руководителя этого отдела, обшей численности отдела, общей суммы выплаченной в последний раз зарплаты и т. д. Для каждого сотрудника должна поддерживаться возможность выдачи номера удостоверения по полному имени сотрудника, выдачи полного имени по номеру удостоверения, получения информации о текущем соответствии занимаемой должности сотрудника и о размере зарплаты. Предположим, что мы решили реализовать эту информационную систему на основе файловой системы и пользоваться при этом одним файлом, расширив базовые возможности файловой системы за счет специальной библиотеки функций. Поскольку минимальной информационной единицей в нашем случае является сотрудник, естественно потребовать, чтобы в этом файле содержалась одна запись для каждого сотрудника. Очевидно, что поля таких записей должны содержать полное имя сотрудника (СОТР_ИМЯ), номер его удостоверения (СОТР_НОМЕР) , информацию о его соответствии занимаемой должности (СОТР_СТАТУС — для простоты «да» или «нет»), размер зарплаты (СОТР_ЗАРП), номер отдела (СОТР_ОТД_НОМЕР). Поскольку мы хотим ограничиться одним файлом, эта же запись должна содержать имя руководителя отдела (СОТР_ОТД_РУК). Для выполнения функций нашей информационной системы требуется возможность многоключевого доступа к этому файлу по уникальным ключам (не дублируемым в разных записях) СОТР_ИМЯ и СОТР_НОМЕР. Кроме того, должна обеспечиваться возможность выбора всех записей с общим заданным значением СОТР_ОТД_НОМЕР, т. е. 192
доступ по неуникальному ключу. Чтобы получить численность отдела или общий размер зарплаты, информационная система должна будет каждый раз выбирать все записи о сотрудниках отдела и подсчитывать соответствующие общие значения. Таким образом, для реализации даже такой простой системы на базе файловой системы: • во-первых, требуется создание достаточно сложной надстройки, обеспечивающей многоключевой доступ к файлам; • во-вторых, неизбежны существенная избыточность хранения (для каждого сотрудника данного отдела повторяется имя руководителя отдела) и выполнение массовой выборки и вычислений для получения сводной информации об отделах. Вообще, согласованность данных является ключевым понятием баз данных. На самом деле, если информационная система поддерживает согласованное хранение информаци в нескольких файлах, можно говорить о том, что она подцержи вает базу данных. Если же некоторая вспомогательная система управления данными позволяет работать с несколькими файлами, обеспечивая их согласованность, можно назвать ее системой управления базами данных. Уже только требование поддержания согласованности данных в нескольких файлах не позволяет обойтись библиотекой функций: такая система должна обладать некоторыми собственными данными (метаданными) и даже знаниями, определяющими целостность данных. Далее, представим себе, что в первоначальной реализации информационной системы, основанной на использовании библиотек расширенных методов доступа к файлам, обрабатывается операция регистрации нового сотрудника. Следуя требованиям согласованного изменения файлов, информационная система вставила новую запись в файл СОТРУДНИКИ и приступает к модификации файла ОТДЕЛЫ, но именно в этот момент произошло аварийное выключение электрического питания. Очевидно, что после перезапуска системы ее база данных будет находиться в рассогласованном состоянии. Потребуется выяснить это (а для этого нужно явно проверить соответствие информации в файлах СОТРУДНИКИ и ОТДЕЛЫ) И привести информацию в согласованное состояние. Системы управления базами данных (СУБД) берут такую работу на себя. Прикладная система обязана знать, какое состояние данных является корректным, но всю техническую работу принимает на себя СУБД. Наконец, представим себе, что мы хотим обеспечить параллельную (например, многотерминальную) работу с базой данных сотрудников. Если опираться только на использование файлов, то для обеспечения корректности изменений на все время модификации любого из двух файлов доступ других пользователей к этому файлу будет блокирован (вспомните возможности файловых систем для синхронизации параллельного доступа). Таким образом, зачисление на работу Петра Ивановича Сидорова существенно затормозит получение информации о сотруднике Иване Сидоровиче Петрове, даже если они будут работать в разных отделах. Реальные СУБД обеспечивают гораздо более тонкую синхронизацию параллельного доступа к данным. Типология БД Классификация баз и банков данных может производиться азличным признакам, среди которых выделяют следующие. По форме представляемой информации выделяют: • фактографические; • документальные; • мультимедийные, в той или иной степени соответствующие цифровой, символьной и другим (не цифровой и не символьной) формам представления информации в вычислительной среде. К последним можно отнести картографические, видео, аудио, графические и другие БД. По типу хранимой (немультимедийной) информации выделяют: 193
• фактографические; • документальные; • лексикографические БД. Лексикографические базы — классификаторы, кодификаторы, словари основ слов, тезаурусы, рубрикаторы и т. д., обычно используемые в качестве справочных совместно с документальными или фактографическими БД. Документальные базы по уровню представления информации подразделяются на: полнотекстовые (так называемые «первичные» документы), библиографические и реферативные («вторичные» документы, отражающие на адресном и содержательном уровне первичный документ). По типу используемой модели данных выделяют три классических класса БД: • иерархические; • сетевые; • реляционные. Развитие технологий обработки данных привело к появлению постреляционных, объектно-ориентированных, темпоральных БД, в той или иной степени соответствующих трем упомянутым классическим моделям. По топологии хранения данных различают локальные и распределенные БД. По типологии доступа и характеру использования хранимой информации БД могут быть разделены на специализированные и итерированные. По функциональному назначению (характеру решаемых с помощью БД задач и, соответственно, характеру использовани данных) выделяют операционные и справочноинформацион ные БД. К последним можно отнести ретроспективные БД (электронные каталоги библиотек, БД статистической информации и т. д.), используемые для информационной поддержки основной деятельности, и не предполагающие внесение изменений в существующие записи, например по результатам этой деятельности. Операционные БД предназначены для управления различными технологическими процессами. В этом случае данные не только извлекаются из БД, но и изменяются (в том числе добавляются), в том числе в результате этого использования. По сфере возможного применения различают универсальные и специализированные (или проблемно-ориентированные) системы. По степени доступности выделяют общедоступные и БД с ограниченным доступом пользователей. В последнем случае говорят об управляемом доступе, индивидуально определяющем не только набор доступных данных, но и характер операций, которые доступны пользователю. По назначению содержащейся информации выделяют БД • деловой информации (социальная, коммерческая и другая информация, кадастры, регистры); • информации для специалистов (экономическая, правоохранительная и др информация); • массовой информации. По способу доступа существуют БД: • размещенные на хостах (доступные через сети); • тиражируемые в коммуникативных форматах; • тиражируемые с программными средствами (включая - CD-ROM); • локальные. Представленная классификация не является полной и исчерпывающей. Она в большей степени отражает исторически сложившееся состояние дел в сфере деятельности, связанной с разработкой и применением БД. 194
Таким образом, СУБД решают множество проблем, которые затруднительно или вообще невозможно решить при использовании файловых систем. При этом существуют: • приложения, для которых вполне достаточно файлов; • приложения, для которых необходимо решать, какой уровень работы с данными во внешней памяти для них требуется; . • приложения, для которых безусловно нужны базы данных. Модели данных и структура БД Понятие МД в первую очередь относится к фактографическим или табличным БД. Поскольку в данном случае БД является информационной моделью определенной предметной области существенной особенностью всякой БД является структура или, как принято говорить, модель данных (МД). Рассмотрим некоторые наиболее известные (или «замечательные») модели данных — иерархическую, сетевую, реляционную. Иерархическая МД (НМД). Впервые реализована в СУБД IBM — IMS (Information Management System), разработанной для поддержки банка данных по программе Apollo. При данном подходе предметная область представляется в виде совокупности структур иерархического типа (граф — «дерево»). Основные понятия ИМД: • поле — минимальная единица данных; • сегмент (узел) — совокупность полей, являющаяся единицей обмена между БД и прикладной программой. Сегмент (узел иерархического графа) более высокого уровня называется исходным (родительским) по отношению к ниже расположенному порожденному (отпрыску). Может использоваться также терминология «узел, принадлежащий вышестоящему узлу». Конкретные данные, входящие в сегмент, называются экземпляром сегмента. В ИМД существуют также следующие понятия: • брат — узел, имеющий того же родителя, что и другой узел; • ветвь — узел дерева вместе со всеми его отпрысками, отдаленными потомками и родительскими источниками; • лист – узел, у которого нет отпрысков; • обход дерева — процесс обследования по очереди каждого узла дерева в иерархической модели данных и пр. Преимущества IMS и реализованной в ней иерархической модели: • простота модели. Принцип построения IMS легок для понимания. Иерархия базы данных напоминает структуру компании или генеалогическое дерево; • использование отношений предок/потомок. СУБД IMS позволяла легко представлять отношения предок—потомок (или часть—целое, причина—следствие), например: «А является частью В» или «А владеет В»; • быстродействие. В СУБД IMS отношения предок/потомок были реализованы в виде физических указателей от одной записи к другой, вследствие чего перемещение по базе данных происходило быстро. Поскольку структура данных в этой СУБД отличалась простотой, IMS могла размещать записи предков и потомков на диске рядом друг с другом, что позволяло свести к минимуму количество операций записичтения. Существенно то, что физическая организация БД в этом случае такова, что выбрать конкретные сведения об объектах можно, лишь пройдя всю цепочку групп (сегментов) сверху вниз (путь на иерархическом дереве). Данная схема наиболее проста, но не лишена очевидных недостатков. 195
В частности, в связи с полииерархичностью связей объектов в реальном мире в подобных БД необходимо создавать и поддерживать несколько иерархических отношений, что нарушает основную идею модели данных. Сетевая модель данных (модель CODASYL). В предложенной CODASYL модификации иерархической модели одна запись могла участвовать в нескольких отношениях предок/потомок. В сетевой модели такие отношения называются множествами (set). В 70е гг. независимые производители программного обеспечения реализовали сетевую модель в таких продуктах, как IDMS компании Cullinet, Total компании Cincom, которые приобрели большую популярность. Сетевые БД обладали рядом преимуществ: • гибкость — множественные отношения предок—потомок позволяют сетевой БД хранить данные, структура которых сложнее обычной иерархии; • стандартизованность — соответствие стандарту CODASYL; • быстродействие — вопреки своей сложности, сетевые БД достигали быстродействия, сравнимого с быстродействием иерархических БД. Множества были представлены указателями на физические записи данных, и в некоторых системах администратор мог задать кластеризацию данных на основе множества отношений. Недостаток — жесткость БД, наборы отношений и структуру записей приходилось задавать заранее. Изменение структуры данных означало перестройку всей БД. Реляционная модель данных и операции над отношениями В то время как иерархическая модель в своей основе является формализацией и обобщением пользовательских свойств некоторой конкретной системы (IMS), в случае реляционной модели сначала были разработаны некоторые математические основы и лишь через 5—10 лет появились первые коммерчески эффективные системы. Реляционная модель предложена сотрудником компании IBM Е. Ф. Коддом в 1970 г. В настоящее время эта модель является фактическим стандартом, на который ориентируются практически все современные коммерческие СУБД. В реляционной модели достигается гораздо более высокий уровень абстракции данных, чем в иерархической или сетевой. Это обеспечивается за счет использования математической теории отношений (само название «реляционная» происходит от английского relation — «отношение»). Определения. Перейдем к рассмотрению структурной части реляционной модели данных. Прежде всего необходимо дать несколько определений. Декартово произведение: для заданных конечных множеств D1, D2 , …, DN (не обязательно различных) декартовым (прямым) произведением D1 × D2 × …× DN называется множество наборов: {d1 ,d2 …,dN},где d1 D1, d2 D2,..., dN DN. Например, если даны два множество А = {а1, а2, а3} и В={b1, b2}, их декартово произведение будет иметь вид C=A х В = {{а1b1}, {а1,b2}, {а2,b1}, {a2,b2}, {a3,b1,}, {a3 b2}}. Отношение: отношением R, определенным на множества D1, D2, ..., DN, называется подмножество декартова произведены D1 х D2 x ... х DN. При этом: множества D1, D2, ..., DN называются доменами отношения-элементы декартова произведения {d1, d2, ..., dN} называются кортежами; число N определяет степень отношения (N= 1 — унарное, N= 2 — бинарное, ..., N-арное); количество кортежей называется мощностью отношения; На множестве С из предыдущего примера могут быть определены отношения R1 ={{а1,b2},{а3,b2}} или R2 = {{a1,b1}, {a2,b1},{a1,b2}}. Отношения удобно представлять в виде таблиц. Строки таблицы называются экземплярами отношения, столбцы — атрибутами; каждый атрибут имеет область 196
значений, называемую доменом. На рис. 5.6 представлена таблица (отношение степени 5), содержащая некоторые сведения о деталях автомобилей. Так, таблица Деталь содержит сведения обо всех деталях, хранящихся на складе, а ее строки являются наборами значений атрибутов конкретных деталей. Каждый столбец таблицы — это совокупность значений конкретного атрибута объекта. Столбец Материал может содержать конечный перечень значений – Сталь, Олово, Цинк, Никель и т. д. В столбце Количество содержатся целые неотрицательные числа, Значения в столбце Вес – вещественные числа, равные весу детали в килограммах. Каждый атрибут определен на домене, поэтому домен , (domain) можно рассматривать как множество допустимых значений данного атрибута. Так, значения в столбце Материал выбираются из множества имен всех возможных материалов —пластмасс, древесины, металлов и т. д. Следовательно, в столбце Материал невозможно появление значения, которого нет в соответствующем домене, например, Вода или Песок. Каждый столбец имеет имя, которое обычно записывается в верхней части таблицы (рис. 5.6). Оно должно быть уникальным в таблице, однако различные таблицы могут иметь столбцы с одинаковыми именами. Любая таблица должна иметь по крайней мере один столбец; столбцы расположены в таблице в соответствии с порядком следования их имен при ее создании. В отличие от столбцов, строки не имеют имен; порядок их следования в таблице не определен, а количество логически не ограничено. Так как строки в таблице не упорядочены, невозможно выбрать строку по ее позиции — среди них не существует «первой», «второй», «последней». Любая таблица имеет один или несколько столбцов, значения в которых однозначно идентифицируют каждую ее строку. Такой столбец (или комбинация столбцов) называется первичным ключом (primary key). В таблице Деталь первичный ключ — это столбец Номер_детали. В нашем примере каждая деталь на складе имеет единственный номер, по которому из таблицы Деталь извлекается необходимая информация. Следовательно, в этой таблице первичный ключ — это столбец Номердетали. В этом столбце значения не могут дублироваться — в таблице Деталь не должно быть строк, меющих одно и то же значение в столбце Номер_детали. Если а лица удовлетворяет этому требованию, она называется отношением (relation). Взаимосвязь таблиц является важнейшим элементом реляционной модели данных. Она поддерживается внешними ключами (external). Рассмотрим пример, в котором база данных хранит информация о рядовых служащих (таблица Служащий) и руководителях (таблица Руководитель) в некоторой организации ) Первичный ключ таблицы Руководитель — столбец 197
Номер (например, табельный номер). Столбец Фамилия не может выполнять роль первичного ключа, так как в одной организации могут работать два руководителя с одинаковыми фамилиями. Любой служащий подчинен единственному руководителю, что должно быть отражено в базе данных. Таблица Служащий содержит столбец Номер_руководителя, и значения в этом столбце выбираются из столбца Номер таблицы Руководитель (см. рис. 5.7). Столбец Номер_Руководителя является внешним ключом В таблице Служащий. Таблицы невозможно хранить и обрабатывать, если в базе данных отсутствуют «данные о данных» (метаданные), например, описатели таблиц, столбцов и т. д. Метаданные также представлены в табличной форме и хранятся в словаре данных (DD — data dictionary) или описателе БД (DBD — data base definition) — служебном файле или системной таблице БД. Помимо таблиц в базе данных могут храниться и другие объекты, такие, как экранные формы, отчеты (reports), представления (views) и прикладные программы, работающие с базой данных. Для пользователей информационной системы недостаточно, чтобы база данных просто отражала объекты реального мира. Важно, чтобы такое отражение было однозначным и непротиворечивым. В этом случае говорят, что база данных удовлетворяет условию целостности (integrity). Для того чтобы гарантировать корректность и взаимную непротиворечивость данных, на базу данных накладываются некоторые ограничения, которые называют ограничениями целостности (data integrity constraints). Существует несколько типов ограничений целостности. Требуется, например, чтобы значения в столбце таблицы выбирались только из только из соответствующего домена. На практике учитывали более сложные ограничения целостности, например целебность по ссылкам (referential integrity). Ее суть заключается в том, что внешний ключ не может быть указателем на несуществующую строку в таблице. Свойства отношений. Отсутствие кортежей-дубликатов. Из этого свойства вытекает наличие у каждого кортежа первичного ключа. Для каждого отношения, по крайней мере, полный набор его атрибутов является первичным ключом. Однако при определении первичного ключа должно соблюдаться требование минимальности, т. е. в него не должны входить те атрибуты, которые можно отбросить без ущерба для основного свойства первичного ключа — однозначно определять кортеж. Отсутствие упорядоченности атрибутов. Для ссылки на значение атрибута всегда используется имя атрибута. 198
Атомарность значений атрибутов, т. е. среди значений домена не могут содержаться множества значений (отношения). Реляционная алгебра. Важным отличием РМД является возможность применения формального аппарата, описывающего преобразование и обработку данных в РМД — реляционной алгебры. Операндами реляционной алгебры являются отношения как постоянные, так и переменные. Операции реляционной алгебры включают следующие преобразования отношений. А. Теоретико-множественные операции над несколькими подобными (имеющими одинаковую структуру: число атрибутов, Их имен, домены и т. д.), отношениями, в том числе объедиение, пересечение, разность. Б. Операции над одним отношением: • селекция, или построение отношения-результата из отношения-источника путем отбора экземпляров, удовлетворяющих некоторому критерию отбора. Операция селекции соответствует поиску информации в БД по логическим условиям; (FIND ... WITH, FIND...WHERE, LOCATE, см табл. 5.5 • проекция, или построение результирующего отношения п тем отбора части атрибутов всех экземпляров исходного отнощ ния. Данной операции в реальных СУБД соответствует поняти пользовательской подсхемы и операции выдачи необходимы данных (DISPLAY, VIEW, SET FORM TO, REPORT FORM...). В. Операции над несколькими различными отношениями Назовем только естественное соединение (соединение). Операция заключается в поиске в паре (или большем числе) отношений строк, содержащих общий атрибут, и создания из этих строк экземпляра результирующего отношения. В СУБД соединению соответствует поиск связанных данных или логическое (физическое) связывание файлов (FIND. . .COUPLED, SET RELATION TO, JOIN. Реляционная алгебра позволяет рассматривать операции ввода, вывода, поиска коррекции и удаления данных в БД как вычисление отношений-результатов через исходные отношения. При этом исходным отношением может быть внешний (входной) формат данных, а результирующим — внутренний (хранимый) или, наоборот, исходным — внутренний, а результирующим — внешний (выходной). Язык SQL С целью стандартизации формального описания запросов к базе данных они формулируются на стандартном языке запросов (ЯМД — язык манипулирования данными), которым для многих СУБД является SQL [8]. Появление и развитие этого языка как средства описания доступа к базе данных связано с созданием теории реляционных баз данных. Прообраз языка SQL возник в 1970 г. в рамках научно-исследовательского проекта System/R, работа над которым велась в лаборатории Санта-Тереза фирмы IBM, и со временем развился в стандарт интерфейса с реляционными СУБД и разработчики нереляционных СУБД снабжают свои системы SQLинтерфейсом. Язык SQL имеет официальный стандарт — ANSI/ISO. Боль шинство разработчиков СУБД придерживаются этого стандарта, однако часто расширяют его для реализации новых возможностей обработки данных. SQL не является языком программирования в традиционном представлении. На нем пишутся не программы, а запросы к базе данных. Поэтому SQL — декларативный язык. Это означает, что с его помощью можно сформулировать, что необходимо получить, но нельзя указать, как это следует сделать. В частности, в отличие от процедурных языков программирования (С, Pascal, Fortran), в языке SQL отсутствуют такие операторы, как if-then-else, for, while и т. д. 199
Запрос на языке SQL состоит из одного или нескольких операторов, следующих один за другим и разделенных точкой с запятой. В табл. 5.4 перечислены некоторые операторы, которые входят в стандарт ANSI/ISO SQL. В запросах на языке SQL используются имена, которые однозначно идентифицируют объекты базы данных. В частности, это – имя таблицы (Деталь), имя столбца (Название_детали), а также имена других объектов в базе, которые относятся к дополнительным типам (например, имена процедур и правил). Наряду с простыми используются также сложные имена — например, квалифицированное имя столбца (qualified column name) определяет имя столбца и имя таблицы, которой он принадлежит (Название_детали. Вес). Каждый столбец в любой таблице хранит данные определенных типов. Различают базовые типы данных — строки символ фиксированной длины, целые и вещественные числа, и дополнительные типы данных — строки символов переменной длины денежные единицы, дату и время, логические данные (значения — Истина и Ложь). В языке SQL можно использовать числовые, строковые, символьные константы и константы типа дата и Время. Рассмотрим несколько примеров. Запрос: определить количество деталей на складе для щсех типов деталей реализуется следующим образом: Результатом запроса будет таблица с двумя столбцами – название_детали и Количество, которые взяты из исходной таблицы Деталь. По сути, этот запрос позволяет получить проекцию исходной таблицы — из строк таблицы деталь образуются строки, которые включают значения, взятые из двух столбцов — Название_детали и Количество. Запрос: какие детали, изготовленные из стали, хранятся на складе?, сформулированный на языке SQL, выглядит так: 200
Результатом этого запроса также будет таблица, содержащая только те строки исходной таблицы, которые имеют в столбце Материал значение Сталь. Этот запрос позволяет получить селекцию таблицы Деталь (звездочка в операторе SELECT означает выбор всех столбцов из таблицы). Запрос: определить название и количество деталей на складе, которые изготовлены из пластмассы и весят менее пяти килограммов будет записан следующим образом: Результат запроса — таблица из двух столбцов — Название_детали, Количество, которая содержит название и число деталей, изготовленных из пластмассы и весящих менее 5 кг. По сути, операция выборки является операцией селекции (найти все строки таблицы Деталь, у которых Материал = `пластмасса` и Вес < 5), а затем – проекции (извлечь Название_детали и Количество из выбранных ранее строк). Одним из средств, обеспечивающих быстрый доступ к таблицам, являются индексы. Индекс — это служебная структура (указатель) базы данных, представляющая собой указатель на конкретную строку таблицы. Он содержит значения, взятые из одного или нескольких столбцов конкретной строки таблицы, и ссылку на эту строку. Значения в индексе упорядочены, что позволяет СУБД выполнять быстрый поиск в таблице. Допустим, что сформулирован запрос к базе данных Склад: Если индексов для данной таблицы не существует, то для выполнения этого запроса СУБД должна просмотреть всю таблицу Деталь, последовательно выбирая из нее строки и проверяя для каждой из них условие выбора (последовательное сканирование). Для больших таблиц такой запрос будет выполняться очень долго. Если же был предварительно создан индекс по столбцу Номер таблицы Деталь, то время поиска в таблице будет сокращено до минимума. Индекс будет содержать значения из столбца Номер и ссылку на строку с этим значением в таблице Деталь. При выполнении запроса СУБД вначале найдет в индексе значение 'Т145-А8' (и сделает это быстро, так как индекс упорядочен, з его строки невелики), а затем по ссылке в индексе определит физическое расположение искомой строки. Индекс создается оператором SQL CREATE INDEX (СОЗДАТЬ ИНДЕКС). В данном примере оператор Позволит создать индекс с именем Индекс _детали по столбцу Номер таблицы деталь. Для пользователя СУБД интерес представляют не отдельные операторы языка SQL, а некоторая их последовательность, оформленная как единое целое и имеющая смысл с его точки зрения. Каждая такая последовательность операторов языка SQL реализует определенное действие над базой данных. Оно осуществляется за несколько шагов, на каждом из которых над таблицами базы данных выполняются некоторые операции. Так, в банковской системе перевод некоторой суммы с краткосрочного счета на долгосрочный 201
выполняется в несколько операций. Среди них — снятие суммы с краткосрочного счета, зачисление на долгосрочный счет. Если в процессе выполнения этого действия произойдет сбой, например, когда первая операция будет выполнена, а вторая — нет, то деньги будут потеряны. Следовательно, любое действие над базой данных должно быть выполнено целиком, или не выполняться вовсе. Такое действие получило название транзакции. Язык SQL является реляционно полным, т. е. совокупность операторов языка обеспечивает необходимый минимум операций реляционной алгебры (селекция, проекция, соединение и пр.). Завершая обсуждение языка SQL, еще раз подчеркнем, что это — язык запросов. На нем нельзя написать сколько-нибудь сложную прикладную программу, которая работает с базой данных. Для этой цели в современных СУБД используются языки четвертого поколения (Forth Generation Language — 4GL), обладающие как основными возможностями процедурных языков третьего поколения (3GL), таких, как Си, Паскаль, Ада, так и возможностью встроить в текст программы операторы SQL, а также средствами управления интерфейсом пользователя (меню, формами, вводом пользователя и т. д.). Сегодня язык 4GL — это один из фактических стандартов средств Разработки приложений, работающих с базами данных. Бол подробное описание одного из 4GL (Adabas/Natural) читате может найти, например, в [14]. В табл. 5.5 приводятся некото рые команды манипулирования данными других языков и си тем [14]. 202
Модел «сущность—связь» Модель сущность—связь или Entity-Relationship (ER) представляет собой обобщение РМД путем разделения отношений, описывающих предметную область на две группы — сущностей и связей. Сущность (Entity) является первичным, устойчивым объектом описываемым некоторой совокупностью атрибутов. Связь (Relationship) является вторичным понятием, характе-пизуюшим взаимодействие в пространстве и времени двух или более сущностей, и также задается рядом атрибутов, среди кото-пых присутствуют идентификаторы взаимосвязанных сущностей. При проектировании БД на основе ER-моделей используют ER-диаграммы. Модель ER является удобным средством описания предметной области перед тем, как перейти к ее представлению в реляционной модели данных. Основные представления о структуре БД в рамках указанной модели заключаются в следующем: а) совокупность сущностей и связей образует концептуальную схему базы данных и отражает структуру предметной области. Элементами схемы являются типы (классы) сущностей и связей; типы состоят из экземпляров, описывающихся значениями атрибутов. На рис. 5.8 приведен пример фрагмента диаграммы «сущность — связь», описывающей учебный процесс вуза. Здесь сущностями являются ФАКУЛЬТЕТ, ДИСЦИПЛИНА, СПЕЦИАЛЬНОСТЬ (с возможными атрибутами, например НАИМЕНОВАНИЕ, ПРОДОЛЖИТЕЛЬНОСТЬ ОБУЧЕНИЯ, ЧИСЛО ЧАСОВ и пр.). Связями являются ВЫПУСКАЕТ, ВКЛЮЧАЕТ (возможные атрибуты — КВАЛИФИКАЦИЯ, СЕМЕСТР ОБУЧЕНИЯ и пр.); 203
б) концептуальная схема трансформируется в логическую схему, в которой сущностям и связям соответствуют отношения или логические файлы, состоящие соответственно из экземпляров отношений и логических записей. Логическая запись является более общим образом, чем отношение (строка данных), посколыа допускает появление групповых полей (или агрегатных данных), соответствующих некоторым зависимым сущностям (или связям). В повторяющемся групповом поле экземпляр группы есть описание экземпляра сущности (связи) посредством соответствующих атрибутов. Групповые повторяющиеся поля представляет собой элемент иерархической модели данных, который при желании может применяться пользователями; в) следующий уровень — физическая реализация БД в форме файлов операционной системы ЭВМ. При этом в различных конкретных системах логическому файлу может отвечать один или более физических файлов (или наоборот). Физическая запись, как правило, включает одну или более логических записей; г) уровень представлений пользователя описывает БД в виде совокупности пользовательских подсхем, которые применяются для ввода/вывода информации. С представлениями пользователя связаны также понятия маски редактирования (преобразования данных при окончательном представлении пользователю), и кодирования/декодирования (трансляции кодов) — расширения кратких представлений данных и аббревиатур с помощью вспомогательных файлов и кодовых таблиц (по своей сути — операция соединения отношений в РМД). Структуры баз данных Рассмотрим вкратце обобщенные логическую и физическую структуры БД. Логическая структура БД (рис. 5.9) предполагает следующие уровни рассмотрения БД: • база данных (database) — включает одну или несколько подбаз (файлов, таблиц, массивов), каждая из которых состоит из агрегатов данных (записей, документов) — record. Запись идентифицируется внутренним номером (ISN — internal sequential number, BH3 — внутренний номер запис SDN — sequential document number и пр.); 204
• запись (документ) — совокупность разнотипных и разноструктурных данных, описывающих (относящихся к) объект реального мира, элемент предметной области АИС. Запись состоит из полей (field); • поле — именованный элементарный или составной фрагмент записи (документа), содержащий информацию об определенном аспекте (аспектах) элемента (элементов) предметной области. • элементарные (имеющие фиксированную или ограниченную длину) и не содержащие входящих в них структур данных; • составные (групповые) поля, образующиеся как агрегать элементарных и также имеющие фиксированную и ограниченную длину (реже — переменную или неопределенную, что связано с количеством вхождений элемента в агрегат) • текстовые — поля переменной (неопределенной) длины и сложной внутренней структуры (обычно это иерархическая последовательность типа РАЗДЕЛ – ПОДРАЗДЕЛ –ПРЕДЛОЖЕНИЕ – СЛОВО); • бинарные — данные, интерпретируемые как поля, однако обычно физически не входящие в состав записей БД. Необходимо отметить, что поля данного типа (BLOB — Binary Large Object) фактически являются данными, до обработки которых данная СУБД еще «не доросла» и поэтому работа с ними возлагается на пользователя (прикладные программы). В частности, в системах FoxBase и Clipper большие текстовые (так называемые MEMO) поля также не обрабатываются системой и фактически оказываются в статусе BLOB; • типы данных, определяемые пользователем. Далеко не все современные СУБД поддерживают типы данных, определенные пользователем. Пока только СУБД Ingres включает такой механизм. Эта система предоставляет программисту возможность определять собственные типы данных и операции над ними и использовать их в 205
операторах SQL. Для определения нового типа данных необходимо написать и откомпилировать функции на языке Си, после чего собрать редактором связей некоторые модули Ingres. Отметим, что введение новых типов данных является, по сути, изменением ядра СУБД. Важно также то, что в Ingres типы данных, определяемые пользователем, могут быть параметризованными. Определение нового типа данных сводится к указанию ег имени, размера и идентификатора в глобальной структуре, описывающей типы данных. Чтобы с новым типом данных можн было использовать функции, которые реализуют стандартнь операции (сравнение, преобразование в различные форматы и т. д.), программист должен разработать их самостоятельно ( интерфейс функций предопределен). Указатели на эти функции являются элементами глобальной структуры. Как только новый тип данных определен, то все операции выполняются над ним, как над данными стандартного типа. Разрешение пользователю создавать собственные типы данных по сути является одним из шагов развития реляционных СУБД в направлении объектно-реляционных систем. Поля, указанные в заштрихованных прямоугольниках (см. 5.9) относятся к фактографическим АИС, остальные — к документальным. Физическая структура БД в общем случае имеет вид, приведенный на рис. 5.10, и включает следующие компоненты: • файл (файлы) исходных (первичных) данных (текстов, бинарных данных) содержит собственно объекты, подлежащие поиску, обработке и пр.; • файл (файлы) вторичной (справочной) информации (регис рационные карты, библиографические реестры и пр.) держит описания исходных элементов (объектов). Важным видом справочных файлов являются классификаторы, кодификаторы, тезаурусы, обеспечивающие полноту и компактность представления информации в БД; • индекс — файл (файлы), связывающий адрес (номер) объекта с его содержанием (значением атрибута объекта) обычно состоит из инверсного списка и частотного 206
словаря, который облегчает составление запросов на поиск и повышает обозримость БД; • словарь данных — файл, содержащий составленное с необходимой степенью подробности описание состава БД, документов, записей, агрегатов данных, их имена, типы и структуры, способы интерпретации и обработки. Изменение содержания БД может осуществляться как в режиме конечного пользователя (диалоговый ввод или коррекция записей/документов по полям) — обычный для СУБД и редкий для АИПС, так и в режиме администратора БД (обычный для АИПС и реже для СУБД), при этом происходит массовый ввод или загрузка записей/документов. При любом виде добавления документа/записи для каждого поля осуществляется анализ, обработка и согласованное помещение документа и его фрагментов в соответствующие физические файлы БД. В конкретных случаях возможна менее полная комплектность приведенной физической схемы: • в фактографических (табличных) БД вторичный файл может являться основным накопителем информации, а текстовые и бинарные данные фигурируют в качестве необязательного приложения; • в справочно-библиографических БД текстовые данные находятся во вторичном файле, а первичный отсутствует; • в БД с полнотекстовым поиском может отсутствовать вторичный файл, а индексирование (построение частотны словарей и инверсных списков) проводится по первичному файлу (страницы или абзацы полных текстов); • может отсутствовать частотный словарь или инверсн список. Надо отметить также вариативность физической реализации и взаимосвязи лингвистического и информационного обеспечения АИС: • словарь данных может физически входить в информационные файлы (первичный или вторичный); • классификаторы, кодификаторы, тезаурусы могут быть оформлены как физическими файлами (файлами ОС), так и входить в состав БД в виде отдельных таблиц (файлов БД, массивов и пр.) на логическом уровне и т. п. Обработка транзакций Транзакция — законченный блок обращений к ресурсу (как правило, базе данных) и некоторых действий над ним, представляет собой последовательность операторов ЯМД, которая рассматривается как некоторое неделимое действие над базой данных, осмысленное с точки зрения пользователя. В то же время это логическая единица работы системы. Транзакция реализует некоторую прикладную функцию, например перевод денег с одного счета на другой в банковской системе. Традиционные транзакции характеризуются четырьмя свойствами: атомарности, согласованности, изолированности, долговечности (прочности) — ACID (Atomicity, Consistency, Isolation, Durability). Иногда традиционные транзакции называют ACIDтранзакциями. Упомянутые выше свойства означают следующее: • атомарность — операции транзакции образуют неразделимый, атомарный блок с определенным началом и концом. Этот блок либо выполняется от начала до конца, либо не выполняется вообще. Если в процессе выполнения транзакции произошел сбой, происходит откат (backup, возврат) к исходному состоянию; • согласованность гарантирует, что по мере выполнения транзакций данные переходят из одного согласованного состояния в другое — транзакция не разрушает взаимной согласованности данных; • изолированность — одновременный доступ транзакций различных приложений к разделяемым ресурсам, координируется таким образом, чтобы эти транзакции не 207
влияли друг на друга. Конкурирующие за доступ к базе данных, транзакции физически обрабатываются последовательно изолированно друг от друга, но для пользователей это выглядит так, как будто они выполняются параллельно; • долговечность — если транзакция завершена успешно, То те изменения в данных, которые были при этом произведены, не могут быть потеряны ни при каких обстоятельствах (даже в случае последующих ошибок). Расширенные транзакции допускают формирование из ACID-транзакций иерархических структур. Если конкретная модель ослабляет некоторые из требований ACID, то речь идет об ослабленной транзакции. Возможны два варианта завершения транзакции. Если все операторы выполнены успешно, и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется. Фиксация транзакции — это действие, обеспечивающее запись на диск изменений в базе данных, которые были сделаны в процессе выполнения транзакции. До тех пор, пока транзакция не зафиксирована, возможно аннулирование этих изменений, восстановление базы данных в то состояние, в котором она была на момент начала транзакции. Фиксация означает, что все результаты выполнения транзакции становятся постоянными. Если в процессе выполнения транзакции случилось нечто такое, что делает невозможным ее нормальное завершение, база данных должна быть возвращена в исходное состояние. Откат транзакции — это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны в теле текущей незавершенной транзакции. Каждый оператор в транзакции выполняет свою часть работы, но для успешного завершения всей работы в целом требуется безусловное завершение их всех. Группирование операторов в транзакции сообщает СУБД, что вся эта группа должна быть выполнена как единое целое, причем такое выполнение должно поддерживаться автоматически. В стандарте ANSI/ISO SQL определены модель транзакций и функции операторов COMMIT и ROLLBACK. Стандарт определяет, что транзакция начинается с первого SQLоператора, инииии руемого пользователем или содержащегося в программе. Все по следующие SQL-операторы составляют тело транзакции. Транзакция завершается одним из четырех возможных способов (рис 5.П): • оператор COMMIT означает успешное завершение транзакции; его использование делает постоянными изменения, внесенные в базу данных в рамках текущей транзакции; • оператор ROLLBACK прерывает транзакцию, отменяя изменения, сделанные в базе данных в рамках этой транзакции; новая транзакция начинается непосредственно после использования ROLLBACK; • успешное завершение программы, в которой была инициирована текущая транзакция, означает успешное завершение транзакции (как будто был использован оператор COMMIT); • ошибочное завершение программы прерывает транзакцию (как будто был использован оператор ROLLBACK). Точки сохранения применяются, как правило, в протяженных транзакциях и позволяют разделить транзакцию на несколько небольших осмысленных фрагментов. 11ользовател может зафиксировать работу в любой точке транзакции с тем" чтобы выполнить ее откат к состоянию, соответствующему этой точке. Откат и фиксация транзакций становятся возможными благодаря журналу транзакций. Он используется следующим, образом. 208
Операции над реляционной базой данных суть операции над строками таблиц. Следовательно, для обеспечения отката таблиц к предыдущим состояниям достаточно хранить не состояния всей таблицы, а лишь те ее строки, которые подверглись изменениям. Важные проблемы многопользовательских СУБД связаны с организацией с помощью механизма транзакций одновременного доступа множества пользователей к одним и тем же данным. Они (проблемы) кратко могут быть сформулированы как потеря изменений, незафиксированные изменения и ряд других, более сложных проблем. Потеря изменений происходит в ситуации, когда две или несколько программ читают одни и те же данные, вносят в них какие-либо изменения и затем пытаются одновременно записать результат по прежнему месту. При этом в базе данных могут быть сохранены изменения, выполненные только одной программой — другие изменения будут потеряны. Проблема незафиксированных изменений возникает в случае, когда в процессе выполнения транзакции одной программой в данные были внесены изменения, которые тут же прочитала другая программа, однако затем в первой программе транзакция была прервана оператором ROLLBACK. Может оказаться, что вторая программа прочитала неверные, незафиксированные данные. Очевидно, что необходима определенная дисциплина обработки транзакций, позволяющая устранить проблемы, описанные выше, и им подобные. Такая дисциплина существует и опирается на следующие правила: • в процессе выполнения транзакции пользователь (программа) «видит» только согласованные состояния базы данных. Пользователь никогда не может получить доступ к неза фиксированным изменениям в данных, достигнутым в результате действий другого пользователя (программы); • если две транзакции, А и В, выполняются параллельно, то СУБД полагает, что результат будет такой же, как если бы: – транзакция А выполнялась первой, а за ней была выполнена транзакция В; 209
– транзакция В выполнялась первой, а за ней была выполнена транзакция А. Эта дисциплина известна как сериализация транзакций. Фактически она гарантирует, что каждый пользователь (программа), обращающийся к базе данных, работает с ней так, как будто не существует других пользователей, одновременно с ним обращающихся к тем же данным. Для практической реализации этой дисциплины большинство СУБД используют механизм блокировок. Механизм блокировок разрешает проблемы, связанные с доступом нескольких пользователей к одним и тем же данным. Однако его применение связано с существенным замедлением обработки транзакций, вызванным необходимостью ожидания, когда освободятся данные, захваченные конкурирующей транзакцией. Можно попытаться минимизировать вызванные этим задержки, локализуя фрагменты данных, захватываемые транзакцией. Так, СУБД может блокировать всю базу данных целиком (очевидно, что это неприемлемый вариант), таблицу базы данных, часть таблицы, отдельную строку (уровни блокировки). Современные СУБД используют, как правило, блокировки на уровне частей таблиц (страниц), записей, полей (атрибутов). На практике могут происходить взаимоблокировки нескольких транзакций. Для их предотвращения СУБД периодически проверяет блокировки, установленные активными транзакциями. Если СУБД обнаруживает взаимоблокировки, она выбирает одну из транзакций, вызвавшую ситуацию взаимоблокировки, и прерывает ее. Это освобождает данные для внесения изменений конкурирующей транзакцией, разрешая тупиковую ситуацию. В современной литературе часто встречается термин OLTP ( Оn - Line Transaction Processing), который обычно переводят как «оперативная обработка транзакций», т. е. выполнение транзакции в режиме реального времени. Система OLTP обязана учитывать жесткие временные требования, следующие из специфики прикладной области. Например, процедура покупки и оформления авиабилета должна происходить быстро и не задерживать очередь. Система, регистрирующая продажи билетов должна обрабатывать одновременно несколько сотен запросов (транзакций), поступающих от множества продавцов авиабилетов. Требования по скорости обработки запроса могут бьггк очень жесткими, однако вызваны они требованиями реальной жизни. Если говорить о прикладных областях OLTP, то это прежде всего, центры кредитных карточек, системы резервирования авиабилетов и мест в отелях, телекоммуникационные системы и т. д. Классы и структуры систем управления базами данных Проблемы совместного использования данных и периферийных устройств компьютеров и рабочих станций породили модель вычислений, основанную на концепции файлового сервера — сеть создает основу для коллективной обработки, сохраняя простоту использования персонального компьютера, позволяет совместно использовать данные и периферию. В этом смысле главной отличительной чертой БД является использование централизованной системы управления данными, причем как на уровне файлов, так и на уровне элементов данных. Централизованное хранение совместно используемых данных приводит не только к сокращению затрат на создание и поддержание данных в актуальном состоянии, но и к сокращению избыточности информации, упрощению процедур поддержания непротиворечивости и целостности данных. СУБД (DBMS — database management system) — комплекс языков и программ, позволяющий создавать БД и управлять ее работой. СУБД обрабатывает поступающие от пользователей и прикладных процессов обращения к БД, а затем выдает необходимые им сведения. СУБД характеризуется используемой моделью и средствами администрирования, разработки прикладных процессов, работы в информационной сети. 210
Эффективное управление внешней памятью является основной функцией СУБД. Эти, обычно специализированные, средства определяют эффективность системы. Без них она не сможет выполнять некоторые задачи уже потому, что их выполнение будет занимать слишком много времени. При этом ни одна из таких специализированных функций, как построение индексов, буферизация данных, организация доступа и оптимизация запросов, не является видимой для пользователя и обеспечивает независимость между логическим и физическим уровнями системы. СУБД обеспечивает: • описание и контроль данных; • манипулирование данными (запись, поиск, выдачу, изменение содержания); • физическое размещение (изменение размеров блоков данных, записей, использование занимаемого пространства, сортировку, сжатие, кодирование и пр.); • защиту от сбоев, поддержку целостности и восстановление; • работу с транзакциями и файлами; • безопасность данных. Существует несколько типов СУБД. Эволюционно они прошли путь от систем, использовавших иерархическую и сетевую модели данных к реляционным и объектноориентированным. В иерархической системе управления базой данных данные в соответствии с ветвящимся деревом их признаков располагаются в двухмерных файлах и образуют деревья признаков. Соответственно этому происходит и поиск необходимых сведений. В реляционных системах управления базами данных данные представляются в форме таблиц, определяющих взаимосвязь записей. Реляционные СУБД характеризуются простотой, гибкостью и точностью. Каждая из них одновременно работает с данными, размещенными в нескольких таблицах. Поэтому, реляционные БД ориентированы на быстрый доступ к небольшим объемам данных. Объектно-ориентированные системы управления базами данных основываются на объектно-ориентированной архитектуре. Они позволяют работать со сложными типами данных, хранимых в виде объектов; отличаются высокой производительностью при обработке транзакций (особенно эффективны при обработке изображении). Их возникновение обусловлено потребностями разработки сложных информационных систем, неудовлетворенных технологиями предшествующих БД. В таких СУБД должны быть решены проблемы поддержки иерархии и наследования типов, управления сложными объектами. Решение этих кивается с ограничениями: отсутствием общепринятой объектно-ориентированной модели данных, декларативного языка запросов и т. п. Гибридные системы управления базами данных объединяют ложительные качества реляционных и объектно-ориентированных систем. Они соединяют средства обработки транзакций реляционных СУБД с поддержкой многочисленных типов даннь объектноориентированных СУБД. Кроме этого, системы управления базами данных можн классифицировать: По используемому языку общения: • замкнутые, имеющие собственные самостоятельные языки общения пользователей с БД. Они обеспечивают непосредственное общение с системой в режиме диалога, позволяют работать без программистов; • открытые, в которых для общения с БД используется язык программирования, «расширенный» операторами языка манипулирования данными (ЯМД). В этом случае необходимо участие квалифицированного программиста. По числу поддерживаемых СУБД уровней моделей данных: одно-, двух-, трехуровневые системы. Теоретически обоснован выбор трехуровневой архитектуры данных, однако на 211
практике СУБД для персональных ЭВМ часто объединяют концептуальный и внутренний уровни представления. По выполняемым функциям: • операционные, предполагающие иные виды обработки по получению информации, не хранящейся в явном виде в БД; • информационные, позволяющие организовать хранение данных, поиск и выдачу нужных данных из БД и поддерживать их целесообразность и актуальность. По сфере применения: • универсальные, настраиваемые на любую предметную о ласть путем создания соответствующей БД и прикладны программ; • проблемно-ориентированные на определенные процедуры обработки данных, присущих конкретной области применения. В структурном составе СУБД могут быть выделены ядро и среда (рис. 5.12) [14, 32]. Ядро СУБД — программный комплекс (модуль или модули), обеспечивающий непосредственное выполнение физических операций над БД (в ранних системах функции Ядра выполняли программы методов доступа ОС ЭВМ). Среда — совокупность интерфейсных модулей, обеспечивающих связь пользователей с Ядром и через него с БД. Среда включает в себя пользовательские интерфейсы и утилиты администратора БД (АБД). Утилиты АБД образуют библиотеку программ обслуживания БД в привилегированном режиме (работа пользовательских средств параллельно утилитам не разрешена) и выполняют основные функции, к которым относятся: • физическая подготовка дисковой памяти к размещению БД; • подготовка справок о составе БД, структуре файлов, количестве данных и занимаемом объеме; • загрузка файла БД из последовательного набора данных ОС; • дозагрузка (расширение существующего файла); • модификация БД: расширение или перемещение физических наборов данных, реорганизация; • модификация файла (таблицы, группы таблиц): добавление новых полей в структуру записи; инвертирование полей или освобождение (превращение инвертированных полей в сканируемые); • выгрузка образа БД (файла таблицы) для сохранения в архивном наборе данных; • создание и ведение словаря данных и др. Средства пользователя. Стандартными средствами этого типа, предоставляемыми фирмой-разработчиком, являются следующие: • диалоговые интерфейсы; • генераторы отчетов; 212
• система конструирования и поддержки интерактивных тех нологий в информационных системах (ЯП АИС). 5.3. Физическая организация данных в системах управления данными Расширим вкратце некоторые принципы физической организации данных. Как в файловых системах, так и в СУБД существуют определенные общие и особенные методы построения механизма доступа к данным, которые мы здесь и предполагаем рассмотреть. С общепринятой точки зрения к вопросам организации данных относятся: • выбор типа записи — единицы обмена в операциях ввода-вывода; • выбор способа размещения записей в файле и, возможно, метода оптимизации размещения; • выбор способа адресации и метода доступа к записям. Типы записей Логическая запись, с которой работает прикладная программа — совокупность элементов или агрегатов данных, воспри нимаемая и обычно физически отдельно размещаемая в рабочей области памяти прикладной программой как единое целое. Последовательность записей в логике обработки образу файл. Физическая запись, с которой работает файловая система – совокупность данных, которые размещаются в файле обычно на внешнем носителе и могут быть считаны или записаны как единое целое одной командой ввода-вывода. Здесь файл — последовательность физических записей, размещаемых в линейном пространстве носителя но, в общем случае, не обязательно в линейном порядке. Организация данных в случаях логического и физического представления может не совпадать, в частности, одна физическая пись может включать несколько логических (блокирование записей). При этом алгоритмы выделения логических записей из физической в значительной степени зависят от типа записи, рассматриваемого как характер организации последовательности байтов. На логическом уровне выделяют следующие типы: • записи фиксированной длины, для размещения каждой из которых выделяется всегда память фиксированной длины, объявляемой заранее. В этом случае данные, образующие запись, имеют устойчивую природу и представляются жесткими структурами, например ряд числовых полей или символьная последовательность заданной длины; • записи переменной длины, когда каждый экземпляр записи может иметь длину, отличную от длины другой записи в том же наборе. В этом случае запись содержит либо элементы данных переменной длины (например, текстовую строку), либо переменное число элементов фиксированной длины. При этом структура представления логической записи переменной длины отличается тем, что байтам содержания — собственно данным, образующим логическую запись, предшествуют байты значения длины содержания этой логической записи. Существует и другая физическая структура представления записей, имеющих переменную длину — запись неопределенной длины, га данные, образующие логическую запись, завершаются разделителем «конец записи». Порядок доступа к записи в этих случаях может быть только последовательным, поскольку для определения начала следующей записи надо считать значение длины текущей. Для файлов записей фиксированной длины доступ будет проще, так как адрес начала любой записи может быть вычислен умножением относительного номера нужной записи на длину записи. Организация файлов — способ размещения записей 213
Записи файла обычно располагаются на носителе последовательно в том порядке, как они создаются в прикладной программе. Но иногда физическая последовательность размещения записей может отличаться от их логической последовательности. Последовательность размещения физических записей естесвенно может быть только одна (если содержание логической за писи сознательно не дублируется в другой форме) и она должна быть выбрана с учетом эффективности использования данных в различных приложениях. Выбор последовательности связывается с одним из следующих обстоятельств: • ускорением выполнения наиболее частых операций путем размещения записей в той последовательности, которая требуется при последующей обработке; • ускорением или упрощением средств адресации файла (например, средств прямой адресации или хэширования); • уменьшением размера используемого индекса и сокращением, таким образом, времени поиска в нем; • сокращением среднего времени доступа за счет размещения в наиболее доступных местах записей, к которым происходит наиболее частое обращение; • облегчением операций включения, обновления и удаления записей в интенсивно изменяемых файлах. Можно выделить две «чистые» стратегии определения места (адреса) для размещения записей: последовательное (sequential) и произвольное (random) размещение. В этом смысле алгоритм размещения определяет тип организации файла. В первом случае каждая последующая запись будет располагаться физически следом за предыдущей. Во втором — по месту, адрес которого будет определяться в зависимости от некоторых факторов, в том числе упомянутых выше. Хотя записи на устройствах с прямым доступом могут записываться и читаться в любой последовательности, для каждой структуры данных существует некоторая определенная послед вательность, в которой записи можно читать намного быстрее, чем при других способах размещения. Рассмотрим следующие, наиболее распространенные мето организации файлов, позволяющих оптимизировать доступ к писям (рис. 5.13). Страничная организация. Данные можно перемещать между внешней и оперативной памятью страницами фиксированной длины. Размер страницы определяется системой, а не длиной записи. Там, где применяется страничная организация памяти, данные логически независимы от размера страницы, но они должны быть физически сгруппированы СУБД так, чтобы эффективно заполнять страницы. 214
Параллельная секционная организация. Если имеется несколько механизмов доступа, которые могут работать одновременно, то для минимизации времени ожидания данные могут быть расположены на запоминающих устройствах так, чтобы одновременно было задействовано как можно большее число механизмов доступа. При параллельной секционной организации существуют два вида ожидании. Запросы должны ожидать позиционирования механизма доступа (операция установки и задержки на вращение), а затем ждать выполнения операции чтения-записи. Время, в течение которого запись читается, значительно меньше времени, в течение которого позиционируется механизм доступа. Следовательно, полное время доступа к записи при параллельной организации будет меньше. В современных СУБД наиболее часто используется страничная организация данных, поскольку гораздо проще иметь весь файл целиком на одном пакете дисков, чем на нескольких, однако принципы секционной организации вновь нашли применение в системах планирования БД, а также на уровне аппаратных решений RAID-массивов. Способы адресации и методы доступа к записям Как уже отмечалось выше, записи логического файла идентифицируются с помощью уникальной последовательности символов или некоторого числа — ключа. Таким ключом обычно является значение поля, расположенное в каждой записи в одной и той же позиции. Иногда бывает необходимо объединить несколько полей, чтобы обеспечить уникальность ключа, который в этом случае называется сцепленным ключом. В некоторых файлах записи имеют несколько ключей. Запись закупка может иметь различные НОМЕР ПОСТАВЩИКА и НОМЕР ПОКУПАТЕЛЯ, каждый из которых является ключом. Во многих приложениях требуется идентифицировать записи по ключам, которые не являются уникальными. Однако при этом все равно должен существовать один уникальный ключ, тот, который используется для размещения записи в файле и выборки ее из файла. Такой ключ называется первичным ключом или идентификатором. Основные проблемы при адресации файла можно сформулировать следующим образом: • по первичному ключу определить местоположение записи с данным ключом; • организовать набор записей, чтобы поиск потребовал как можно меньше затрат. При разработке схем адресации файлов и определяемого ими размещения записей в файлах большое значение имеет вопрос о том, как включаются в файл новые записи и удаляются старые. Существует несколько различных способов адресации и п иска записей, например на основе упорядочения, различных и дексов, преобразования «ключ—адрес». Последовательное сканирование файла. Наиболее простым способом локализации записи является сканирование файл проверкой ключа каждой записи. Этот способ, однако, требует слишком много времени и может применяться, когда каждая запись все равно должна быть прочитана. Блочный поиск. Если записи упорядочены по ключу, то при сканировании файла не требуется чтение каждой записи. ЭВМ могла бы, например, просматривать каждую сотую запись в последовательности возрастания ключей. При нахождении записи с ключом большим, чем искомое значение, просматриваются последние 99 записей, которые были пропущены. Двоичный поиск. При двоичном (бинарном) поиске в файле записей, упорядоченных по ключу, анализируется запись, находящаяся в середине поисковой области файла (изначально всего файла), а ее ключ сравнивается с поисковым ключом. Затем поисковая область делится пополам, и процесс повторяется для соответствующей половины области, пока не будет обнаружено искомое значение или длина области не станет равной 1. Число сравнений в этом случае будет меньше, чем для случая блочного поиска. 215
Двоичный поиск эффективен для поиска в файлах, организованных в виде двоичного дерева с указателями, когда поиск происходит в направлении, задаваемом указателями. Кроме того, добавление в файл новых записей не приводит к сдвигу других записей, что требует много времени и является достаточно сложной процедурой. Таким образом, двоичный поиск более пригоден для поиска в индексе файла, чем в самом файле. Индексно-последовательные файлы. Если файл упорядочен по ключам, то для адресации может использоваться таблица, называемая индексом, связывающая ключ хранимой записи с ее относительным или абсолютным адресом во внешней памяти. Индекс можно определить как таблицу, с которой связана процедура, воспринимающая на входе информацию о некоторых значениях атрибутов и выдающая на выходе информацию, способствующую быстрой локализации записи или записей, которые имеют заданные значения атрибутов. Если записи файла упорядочены по ключу, индекс обычно содержит не ссылки на каждую запись, а ссылки на блоки записей внутри которых можно выполнять поиск или сканирование. Хранение ссылок на блоки записей, а не на отдельные записи в значительной степени уменьшает размер индекса. Причем даже в этом случае индекс часто оказывается слишком большим для поиска и поэтому используется индекс индекса. Хэширование (рандомизация). Простым и полезным способом вычисления адреса является хэширование (перемешивание). В данном методе ключ преобразуется в псевдослучайное число, которое используется для определения местоположения записи. При первоначальной загрузке файла адрес, по котором должна быть размещена запись, определяется следующим образом: • ключ записи преобразуется в псевдослучайное число, находящееся в диапазоне от единицы до числа блоков, используемых для размещения записей; • число преобразуется в адрес блока и, если в нем есть свободное место, то логическая запись размещается там; • если блок заполнен, запись должна быть размещена в блоке (блоках) переполнения — следующий по порядку блок либо блок отдельной области переполнения. При чтении записей из файла их поиск выполняется аналогично, причем может оказаться, что для поиска записи потребуется чтение нескольких блоков переполнения. Архитектура файловой организации баз данных Файловая структура и система управления файлами являются элементами ОС, поэтому по отношению к БД, которые ориентированы на работу с элементами данных и высокую интенсивность обмена, эффективность операций ввода-вывода не будет оптимальной: стандартный язык СУБД намного богаче, чем набор операций файловой системы. Это послужило причиной того, что обычно СУБД берут на себя непосредственное управление внешней памятью, минимально используя файловую систему ОС. Файл-ориентированная организация данных. Этот подход отражает точку зрения «идейно чистого» программирования, выражающуюся в стремлении к построению модульных процедур» ориентированных на обработку регулярных однородных данных: «сколько типов структур записей — столько и файлов». Таким образом, БД физически состоит из нескольких фалов: основного, индексного, файла метаданных, файлов указателей и т. д. (рис. 5.10, 5.14, а). В этом случае ОС активно участвует в навигации, беря на себя функции выборки, новления, вставки, удаления записей из физических файлов. 216
Страничная организация данных. Другой подход отражает стремление разработчиков сосредоточить в СУБД управление данными на всех уровнях — от логической обработки до управления пространством носителя. Создание сложных специализированных процедур, эффективно работающих со сложными нерегулярными структурами данных в сочетании с ресурсами вычислительной мощности и оперативной памяти позволяет реализовать однофайловую физическую структуру СУБД. Перечислим типовые понятия страничной организации хранения данных (рис. 5.14, б). Экстент — непрерывная область дисковой памяти, включающая несколько страниц фиксированной длины. Новый экстент создается после заполнения предыдущего и связывается с ним ссылкой, которая располагается на последней странице экстента либо в специальной карте размещения. Учет свободных страниц ведется внутри экстента. Каждый экстент используется для хранения одного из нескольких типов страниц: страницы данных, страницы индексов, страницы BLOB (неструктурированных данных, например, большие текстовые или двоичные данные). Данные, размещенные на одной странице, являются однородными: страница, например, может хранить только данные или только индексы. Основной логической единицей операций обмена (ввода-вывода) является страница данных, хранящая данные в виде строк или других специализированных структур. Все страницы данных имеют одинаковую структуру чающую: • заголовок страницы, содержащий номер страницы, номера предыдущей и следующей страниц, сведения о свободном пространстве на странице; • дескрипторы строк, задающие смещение строки на странице и длину строки, что позволяет при переупорядочении строк на страницах не производить физического перемещения строк, так как все манипуляции производятся с дескрипторами; • содержание — строки данных (последовательность кодов) каждая из которых имеет уникальный идентификатор в рамках всей БД, который состоит из номера страницы и номера строки на странице. Для организации быстрого доступа создаются страницы индексов, которые организованы обычно в виде В-деревьев. Модели распределения данных по физическим носителям Важным фактором, влияющим на производительность подсистемы ввода-вывода, является распределение данных по дискам. Даже минимальная по объему высокопроизводительная система должна иметь по крайней мере четыре диска: один для операционной системы и области подкачки (swap), один для данных, один для журнала и один для индексов. Размещение всех данных БД на одном и том же диске почти всегда приводит к неудовлетворительной производительности. В частности, может оказаться, что процесс 217
формирования журнала, который должен записываться синхронно, в действительности будет выполняться в режиме произвольного, а не последовательного доступа к диску. Уже только эта операция будет существенно задерживать каждую транзакцию обновления БД. Кроме того, выполнение запросов, выбирающих записи из та лицы данных путем последовательного сканирования индекс будет сильно увеличивать время ожидания ввода-вывода. Примером, иллюстрирующим подход с точки зрения прак ческих компромиссов выбора решения, являются RAID-Mac вы. На рис. 5.15 приведены два варианта: RAID-0, обеспечив щий максимальную производительность при «стандартной» надежности, и RAID-1, обеспечивающий «двойную» надеж при «стандартной» производительности. Для эффективного распределения доступа к данным мн СУБД используют механизмы сцепления или расщепления°ГИе распределения данных по дисковым накопителям. Если по запросам производится произвольный доступ к данным, например, если пользователи независимо запрашивают разные записи, то возможности сцепления дисков в СУБД полностью обеспечивают распределение нагрузки по доступу к множеству диско (при достаточно равномерном заполнении пространства базы) 218
Если обращения по своей природе последовательны, в частности если один или несколько пользователей должны просматривать каждую строку таблицы, то больше подходит механизм расщепления дисков. Главное отличие между сцеплением и расщеплением заключается в размещении смежных данных. Когда диски сцепляются друг с другом, последовательное сканирование представляет собой тяжелую нагрузку для каждого из дисков, но эта нагрузка носит последовательный характер (только один диск участвует в обслуживании запроса). Расщепление дисков осуществляет деление данных на меньшие порции, размещаемые на разные диски, позволяя тем самым всем дискам участвовать в обслуживании даже сравнительно небольшого запроса. В результате использование расщепления существенно уменьшает загрузку дисков при выполнении последовательного доступа. Основными кандидатами для расщепления являются обычно архивные и журнальные файлы, поскольку к ним всегда осуществляется последовательный доступ, что может ограничить общую производительность системы. 5.4. Анализ информации и хранилища данных Осознание пользы накапливаемой информации и физические возможности ее использования для решения задач управления (системы поддержки принятия решений — СППР) приве к появлению нового класса автоматизированных систем, ориентированных на оперативную аналитическую обработку данных (OLAP). Интеллектуальный анализ данных Интеллектуальный анализ данных ИАД (Data Mining) — это процесс поддержки принятия решений, основанный на поиске в данных скрытых закономерностей (шаблонов информации). При этом накопленные сведения автоматически обобщаются до информации, которая может быть охарактеризована как знания. В общем случае процесс ИАД состоит из трех стадий (рис. 5.16): • выявление закономерностей (свободный поиск); • использование выявленных закономерностей для предсказания неизвестных значений (прогностическое моделирование); • анализ исключений, предназначенный для выявления и толкования аномалий в найденных закономерностях. В качестве примера может быть приведен статистический анализ рядов динамики. Чаще, однако, этот тип анализа относят к области закономерностей. Кроме того, могут быть сформулированы следующие задачи: • выделение в массивах данных групп записей, сходных по некоторым признакам (кластерный анализ); • проверка достоверности найденных закономерностей между их нахождением и использованием (стадия валидации). 219
Все методы ИАД подразделяются на две большие группы по принципу работы с исходными обучающими данными: • в первом случае исходные данные могут храниться в явном детализированном виде и непосредственно использоваться для прогностического моделирования и/или анализа исключений; это так называемые методы рассуждений на основе анализа прецедентов. Главной проблемой этой группы методов является затрудненность использования на больших объемах данных, хотя именно при анализе больших хранилищ данных методы ИАД приносят наибольшую пользу; • во втором случае информация извлекается из первичных данных и преобразуется в некоторые формальные конструкции (их вид зависит от конкретного метода). Согласно предыдущей классификации, этот этап выполняется на стадии свободного поиска, которая у методов первой группы в принципе отсутствует. Таким образом, для прогностического моделирования и анализа исключений используются результаты этой стадии, которые гораздо более компактны, чем сами массивы исходных данных. При этом полученные конструкции могут быть либо «прозрачными» (интерпретируемыми), либо «черными ящиками» (нетрактуемыми). Две эти группы и примеры входящих в них методов представлены на рис. 5.17. OLAP – технологии и хранилища данных В основе концепции OLAP лежит принцип многомерного представления данных. В 1993 г. Е. Ф. Кодд рассмотрел недостатке реляционной модели, в первую очередь указав на невозможность «объединять, просматривать и анализировать данные с точки зрения множественности измерений, т. е. самым понятным для корпоративных аналитиков 220
способом», и определил общие требования к системам OLAP, расширяющим функциональность реляционных СУБД и включающим многомерный анализ как одну из своих характеристик. Аббревиатурой OLAP иногда обозначается не только многомерный взгляд на данные, но и хранение самих данных в многомерной БД. Однако Кодд отмечал, что «...реляционные БД были, есть и будут наиболее подходящей технологией для хранения корпоративных данных. Необходимость существует не в новой технологии БД, а, скорее, в средствах анализа, дополняющих функции существующих СУБД и достаточно гибких, чтобы предусмотреть и автоматизировать разные виды интеллектуального анализа, присущие OLAP». Для выполнения аналитических запросов могут быть использованы приложения, написанные специально для решения тех или иных практических задач. При этом для решения задач аналитической обработки используются данные, характер и организация которых несколько отличается от того, как это принято в системах, ориентированных на оперативную обработку. Использование концепции хранилища данных (ХД) позволяет обеспечить: • своевременное обеспечение аналитиков всей информацией, необходимой для выработки решений; • создание единой модели данных организации; • создание интегрированного источника данных, предоставляющего удобный доступ к разнородной информации из различных подсистем (единый источник). Для хранилищ данных характерны следующие основные свойства: • ориентация на предметную область — хранилище в первую очередь отражает специфику предметной области, а не приложений; • интегрированность — информация, загружаемая в хранилище из баз, ориентированных на частные прикладные задачи, должна быть приведена к единому синтаксическое семантическому виду. Важно также провести проверку И ступающих данных на целостность и непротиворечиво Чтобы при выполнении аналитических запросов избеэк выполнения операций группирования, данные должны обобщаться (агрегироваться) при загрузке хранилища; • неизменяемость данных — хранилищам свойственна ретп спективность: объем накопленных данных должен бьт достаточным для решения аналитических задач с требур мым качеством. Поэтому важное отличие аналитических систем от систем операционной обработки состоит в том что данные после загрузки в них остаются неизменными внесение каких-либо изменений, кроме добавления записей, не предполагается; • поддержка хронологии — для выполнения большинства аналитических запросов необходим анализ тенденций развития явлений или характера изменения значений переменных во времени, что обычно достигается введением атрибутов типа ДАТА/ВРЕМЯ; • многомерное концептуальное представление (multi-dimensional conceptual view) — множественная перспектива, состоящая из нескольких независимых измерений, вдоль которых могут быть проанализированы определенные совокупности данных. Одновременный анализ по нескольким измерениям определяется как многомерный анализ. Каждое измерение включает направления консолидации данных, состоящие из серии последовательных уровней обобщения, где каждый вышестоящий уровень соответствует большей степени агрегации данных по соответствующему измерению. Так, измерение Исполнитель может определиться направлением консолидации, состоящим из уровней обобщения предприятие—подразделение—отдел— служащий. Измерение Время может даже включать два направления консолидации 221
— год—квартал—месяц—день и неделя—день, поскольку счет времени по месяцам и по неделям несовместим. В этом случае становится возможны произвольный выбор желаемого уровня детализации и формации по каждому из измерений. Операция спуска (drilling down) соответствует движению от высших ступен консолидации к низшим; напротив, операция подъема (rolling up) означает движение от низших уровней к высшим (рис 5.18). Кода определил 12 свойств, которыми должны обладать системы этого класса (табл. 5.6). 222
Модели данных, используемые для построения хранилищ Задачи, решаемые аналитическими системами, существенн различаются, поэтому их БД тоже построены на разных приич пах. Критерием эффективности для таких систем обычно я ется скорость выполнения сложных запросов и прозрачно структуры хранения информации для пользователей. Многомерный OLAP (MOLAP). В специализированных СУБД, иных на многомерном представлении данных, данные организованы не в форме реляционных таблиц, а в виде упорядоченных многомерных массивов: • гиперкубов (все хранимые в БД ячейки должны иметь одинаковую мерность, т. е. находиться в максимально полном базисе измерений); • поликубов (каждая переменная хранится с собственным набором измерений, и все связанные с этим сложности обработки перекладываются на внутренние механизмы системы). Использование многомерных БД в системах оперативной аналитической обработки имеет следующие достоинства. В случае использования многомерных СУБД поиск и выборка данных осуществляются значительно быстрее, чем при многомерном концептуальном взгляде на реляционную базу данных, так как многомерная база данных содержит заранее агрегированные показатели и обеспечивает оптимизированный доступ к запрашиваемым ячейкам. Многомерные СУБД легко справляются с задачами включения в информационную модель разнообразных встроенных функций, тогда как объективно существующие ограничения языка SQL делают выполнение этих задач на основе реляционных СУБД достаточно 223
сложным, а иногда и невозможным. С другой стороны, имеются существенные ограничения: • многомерные СУБД не позволяют работать с большими объемами данных. К тому же за счет денормализации и предварительно выполненной агрегации объем данных в многомерной базе, как правило, соответствует в 2,5—100 раз меньшему объему исходных детализированных данных; • многомерные СУБД по сравнению с реляционными очень неэффективно используют внешнюю память, о подавляющем большинстве случаев информационный гиперкуб является сильно разреженным, а поскольку данные хранятся в упорядоченном виде, неопределенные значения удается удалить только за счет выбора оптимального порядка сортировки, позволяющего организовать данные в аксимально большие непрерывные группы. Но даже в том случае проблема решается только частично. Следовательно, использование многомерных СУБД оправдано только при следующих условиях: • объем исходных данных для анализа не слишком велик более нескольких гигабайт), т. е. уровень агрегации данн достаточно высок; • набор информационных измерений стабилен (посколь любое изменение в их структуре почти всегда требует полной перестройки гиперкуба); • время ответа системы на нерегламентированные запроск является наиболее критичным параметром; • требуется широкое использование сложных встроенных функций для выполнения кроссмерных вычислений над ячейками гиперкуба, в том числе возможность написания пользовательских функций. Реляционный OLAP (ROLAP). Непосредственное использование реляционных БД в системах оперативной аналитической обработки имеет следующие достоинства. В большинстве случаев корпоративные хранилища данных реализуются средствами реляционных СУБД, и инструменты ROLAP позволяют производить анализ непосредственно над ними. При этом размер хранилища не является таким критичным параметром, как в случае MOLAP. В случае переменной размерности задачи, когда изменения в структуру измерений приходится вносить достаточно часто, ROLAP-системы с динамическим представлением размерности являются оптимальным решением, так как в них такие модификации не требуют физической реорганизации БД. Реляционные СУБД обеспечивают значительно более высокий уровень защиты данных и хорошие возможности разграничения прав доступа. Главный недостаток ROLAP по сравнению с многомерными СУБД — меньшая производительность. Для обеспечения производительности, сравнимой с MOLAP, реляционные системы требуют тщательной проработки схемы базы данных и настроик индексов, т. е. больших усилий со стороны администраторов БД. Только при использовании звездообразных схем производитель ность хорошо настроенных реляционных систем может приближена к производительности систем на основе много ных баз данных. Идея схемы звезды (star schema) заключается в том, имеются таблицы для каждого измерения, а все факты помеодну таблицу, индексируемую множественным ключом, составленным из ключей отдельных измерений (рис. 5.19). Каждый луч схемы звезды задает (в терминологии Кодда) направление консолидации данных по соответствующему измерению. В сложных задачах с многоуровневыми измерениями имеет мысл обратиться к расширениям схемы звезды — схеме созвездия (fact constellation schema) и схеме 224
снежинки (snowflake schema). В этих случаях отдельные таблицы фактов создаются для возможных сочетаний уровней обобщения различных измерений (рис. 5.20). Это позволяет добиться лучшей производительности, но часто приводит к избыточности данных и к значительным усложнениям в структуре базы данных, в которой оказывается огромное количество таблиц фактов. В любом случае, если многомерная модель реализуете виде реляционной базы данных, следует создавать длинные В «узкие» таблицы фактов и сравнительно небольшие и «широки И таблицы измерений. Таблицы фактов содержат численные значения ячеек гиперкуба, а остальные таблицы определяют содержащий их многомерный базис измерений. Часть информации можно получать с помощью динамической агрегации данных распределенных по незвездообразным нормализованным структурам, хотя при этом следует помнить, что включающие агрегацию запросы при высоконормализованной структуре БД могут выполняться довольно медленно. Ориентация на представление многомерной информации с помощью звездообразных реляционных моделей позволяет избавиться от проблемы оптимизации хранения разреженных матриц, остро стоящей перед многомерными СУБД (где проблема разреженности решается специальным выбором схемы). Хотя для хранения каждой ячейки используется целая запись, которая помимо самих значений включает вторичные ключи, — ссылки на таблицы измерений, несуществующие значения просто не включаются в таблицу фактов. Возможны гибридные системы (Hybrid OLAP — HOLAP), цель которых — совмещение достоинств и минимизация недостатков, присущих предыдущим классам. Архитектуры хранилищ данных 225
Виртуальное хранилище данных. В его основе — репозитории метаданных, которые описывают источники информации (БД транзакционных систем, внешние файлы и др.), SQL-запросы для их считывания и процедуры обработки и предоставления информации. Непосредственный доступ к последним обеспеч вает ПО промежуточного слоя. В этом случае избыточной данных нулевая. Конечные пользователи фактически работают транзакционными системами напрямую со всеми вытекаюши отсюда плюсами (доступ к «живым» данным в реальном времени) и минусами (интенсивный сетевой трафик, снижение производительности OLTP-систем и реальная угроза их работоспособности вследствие неудачных действий пользователей-аналитиков) Витрина данных. Витрина данных (Data Mart) — это набор тематически связанных баз данных, которые содержат информацию, относящуюся к отдельным аспектам предметной области (рис. 5 21). По сути дела, витрина данных — это облегченный вариант хранилища данных, содержащий только тематически объединенные данные. Витрина данных существенно меньше по объему, чем корпоративное хранилище данных, и для его реализации не требуется особо мощная вычислительная техника. Глобалъное хранилище данных. Все более популярной становится идея совместить концепции хранилища и витрины данных в одной реализации и использовать хранилище данных в качестве единственного источника интегрированных данных для всех витрин данных. Тогда естественной становится такая трехуровневая архитектура системы (рис. 5.22): • сфера детализированных данных. Это область действия большинства систем, нацеленных на поиск информации. 226
В большинстве случаев реляционные СУБД отлично справляются с возникающими здесь задачами. Общепризнанным стандартом языка манипулирования реляционными данными является SQL. Информационно-поисковые системы, обеспечивающие интерфейс конечного пользователя в задачах поиска детализированной информации, могут использоваться в качестве надстроек как над отдельными базами данных транзакционных систем, так и над общим хранилищем данных; • сфера агрегированных показателей. Комплексный взгляд на собранную в хранилище данных информацию, ее обобщение и агрегация, гиперкубическое предста ление и многомерный анализ являются задачами систем оперативной аналитической обработки данных (OLAР). Здесь можно или ориентироваться на специальные мно мерные СУБД, или оставаться в рамках реляционных т нологий. Во втором случае заранее агрегированные дан могут собираться в БД звездообразного вида либо агрегация информации может производиться на лету в процессе сканирования детализированных таблиц реляционной • сфера закономерностей. Интеллектуальная обработка производится методами интеллектуального анализа данных (ИАД, Data Mining), главными задачами которых являются поиск функциональных и логических закономерностей в накопленной информации, построение моделей и правил, которые объясняют найденные аномалии и/или прогнозируют развитие некоторых процессов. Метаданные должны содержать описание структур данных хранилища, структур данных, импортируемых из разных источников, сведения о периодичности импортирования, методах загрузки и обобщения данных, средствах доступа и правилах представления информации, оценки приблизительных затрат времени на получение ответа на запрос. Доставка данных в хранилище. Данные должны поступать в хранилище в нужном формате и с требуемой регулярностью. Как правило, составляется расписание пополнения хранилища, в соответствии с которым специальные программы организуют передачу данных на склад и их первичную обработку. Передача данных на склад может также осуществляться при возникновении заранее определенных внешних событий. Процесс загрузки данных обычно подразумевает решение следующих задач: • приведение данных к единому формату (унификация типов данных и их представления, исключение управляющих кодов); • предобработка данных (исключение дубликатов, устранение ошибочных значений, восстановление пропущенных значений); • агрегирование данных (вычисление обобщенных статистических показателей). Ингеграция OLAP и ИАД 227
Оперативная аналитическая обработка и интеллектуальный пяти данных – две составные части процесса поддержки принятия решений. Однако большинство систем OLAP заостряет внимание только на обеспечении доступа к многомерным данным, а большинство средств ИАД, работающих в сфере закономерностей, имеют дело с одномерными перспективами данных. Эти анализа должны быть тесно объединены, т. е. системы ОLAP должны фокусироваться не только на доступе на поиске закономерностей (рис. 5.22). Как заметил N. Raden, «многие компании создали... прекрасные хранилища данных, идеально разложив по полочкам горы неиспользуемой информации, которая сама по себе не обеспечивает ни быстрой, ни достаточно грамотной реакции на рыночные события». В последнее время появилось обобщенное понятие «OLAP Data Mining» (многомерный интеллектуальный анализ) или «OLAP Mining» для обозначения такого объединения, причем определились несколько вариантов интеграции двух технологий: • cubing then mining. Возможность выполнения интеллектуального анализа должна обеспечиваться над любым результатом запроса к многомерному концептуальному представлению, т. е. над любым фрагментом любой проекции гиперкуба показателей; • mining then cubing. Подобно данным, извлеченным из хранилища, результаты интеллектуального анализа должны представляться в гиперкубической форме для последующего многомерного анализа; • cubing while mining. Этот гибкий способ интеграции позволяет автоматически активизировать однотипные механизмы интеллектуальной обработки над результатом каждого шага многомерного анализа (перехода между уровнями обобщения, извлечения нового фрагмента гиперкуба и т. д.). К сожалению, очень немногие производители предоставляют сегодня достаточно мощные средства интеллектуального анализа многомерных данных в рамках систем OLAP. Проблема также заключается в том, что некоторые методы ИАД (байесовские сети, метод k-ближайшего соседа) неприменимы для задач многомерного интеллектуального анализа, так как основаны на определении сходства детализированных примеров и не способны работать с агрегированными данными. Контрольные вопросы 1. Перечислите функции файловых систем. 2. Какова общая организация ФС NTFS? 3. Какие атрибуты файлов вам известны? 4. Охарактеризуйте разновидности размещения файлов в NTFS. 5 Каким образом осуществляется сжатие данных в NTFS? 6. Дайте определение понятия «База данных». 7. Перечислите преимущества и недостатки использования баз данных. 8. Определите основные функции и назначение СУБД. 9. Дайте основные характеристики моделей данных. 10. Что такое реляционное исчисление? 11. Перечислите основные компоненты логической и физической структуры БД. 12. Что такое транзакции? 13. Назовите отличительные особенности использования баз данных в ИС. 14. Перечислите основные требования, предъявляемые к базам данных. 15. Определите назначение и организацию инвертированного списка. 16. В чем заключается страничная организация данных? 17. Что такое хранилища данных? 18. Перечислите основные свойства OLAP-технологий. 19. В чем различие ROLAP и MOLAP? 228
Глава 6 СЕТЕВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ. INTERNET В исторической перспективе, с появлением в первой половине 1970-х гг. видеотерминалов, первоначально возникли структуры «терминал — хост» (локальный или удаленный). Чуть раньше и независимо развивались глобальные сети (пакетной коммутации), используемые как для функций связи общего назначения, так и для коммуникаций «хост—хост» с целью (в то время) выравнивания использования вычислительных мощностей по часовым поясам (подобно тому, как это осуществляется в сетях энергопередачи). Это были именно вычислительные сети. Структуры «терминал — хост» вносят сюда дополнительную динамику. Эта ситуация сохраняется до середины 1980-х гг., когда появление и взрывообразное распространение ПК (как выразился один из тогдашних научных острословов «карликимлекопитающие на планете вычислительных динозавров») изменило положение. Появляются локальные сети, интегрирующие прежде всего информационные ресурсы (файл-сервер), редкие или дорогостоящие технические средства (принт-сервер) и т. п. Изучение трафика (потоков данных) в развивающихся сетях показало смещение акцентов с распределенных вычислений на обмен информацией — доступ к удаленным базам данных, о мен сообщениями по электронной почте и пр. Вырисовываются , таким образом, информационные сети. Наконец, в 1980—1990-е гг. широко распространяется технология TCP/IP, обеспечивая рост и развитие «сети сетей» Internet, которая представляет собой глобальную информационно-вычислительную сеть. 6.1 Некоторые основные понятия Системы терминал—хост Первые системы совместной эксплуатации информационных вычислительных ресурсов (системы коллективного пользования) появляются в 1960—1970-е гг. и относятся к вычислительным системам с разделением времени. Первоначально операционные системы ЭВМ (ОС) были рассчитаны на пакетную обработку информации, затем с созданием интерактивных терминальных устройств появляется возможность совместной работы пользователей в реальном масштабе времени. Основные этапы развития систем доступа к информационным ресурсам представлены на рис. 6.1 и включают следующие схемы. 1. Взаимодействие терминала (конечный пользователь, источник запросов и заданий) и хоста (центральная ЭВМ, держатель всех информационных и вычислительных ресурсов) — рис. 6.1 а, б. Может осуществляться как в локальном, так и в удаленном режиме, во втором случае, как правило, некоторая совокупность пользователей (дисплейный класс) размещается в так называемом абонентском пункте — комплексе, снабженном котроллером (устройством управления), принтером, концентратором и обеспечивающим параллельную работу пользователей удаленным хостом. Связь между хостом и абонентским пунктом в этом случае осуществлялась с помощью модемов, по телефонным каналам [26]. 229
2. На следующем этапе (рис. 6.1, в) формируются сети передачи данных (из существующих общих и специальных цифровых каналов), позволяющие как осуществлять более тесное взаимодействие терминал—хост, так и обмен хост—хост для реализации распределенных баз данных и децентрализации процессов обработки информации. 3. Появление и массовое распространение персональных компьютеров выводит на первый план (для массового пользователя) проблему связи ПК— ПК (рис. 6.1, г) для быстрого резервирования и копирования информации (в том числе с использованием модемов) и локальные сети (рис. 6.1, д) — для совместной эксплуатации баз данных (файл—сервер) и дорогостоящего оборудования. В дальнейшем локальные сети потеряли самостоятельное значение вследствие интеграции с глобальными в двухуровневые сети, строящиеся по единому принципу в рамках Internet (рис. 6.1, е). В последующем перечисленные конфигурации не претерпели существенных изменений, однако понятия хост и терминал из чисто аппаратурных трансформировались в аппаратурно-программные и даже сугубо программные (например, эмуляторы терминала и эмуляторы хоста на однотипных ПК [23, 26]). Кроме того, в 80-е гг. в обиход входит понятие интеллектуального терминала (smart terminal) — сателлитной машины, которая берет на себя часть функций по обработке информации пользователя (например, синтаксический анализ запроса или программы). Системы клиент—сервер Таким образом, по мере развития представлений о распределенных вычислительных процессах и процессах обработки данных складывается концепция архитектуры «клиент — сервер» обобщенное представление о взаимодействие двух компонент информационной технологии (технического и/или программного обеспечения) в вычислительных системах и сетях, и которых логически или физически могут быть выделены: • активная сторона (источник запросов, клиент); 230
• пассивная сторона (сервер, обслуживание запросов, источник ответов). Взаимодействие клиент—сервер в сети осуществляется в соответствии с определенным стандартом, или протоколом — совокупностью соглашений об установлении/прекращении связи и обмене информацией. Обычно клиент и сервер работают в рамках единого протокола – telnet, ftp, gopher, http и пр., однако в связи с недостаточностью такого подхода появляются мультипротокольные клиенты и серверы, например браузер Netscape Navigator. Основные разновидности функциональных структур клиент—сервер рассмотрены в следующей главе. Информационно-вычислительные сети Информационно-вычислительные сети включают вычислительные сети, предназначенные для распределенной обработки данных (совместное использование вычислительных мощностей), и информационные сети, предназначенные для совместного использования информационных ресурсов. Сетевая технология обработки информации весьма эффективна, так как предоставляет пользователю необходимый сервис для коллективного решения различных распределенных прикладных задач, увеличивает степень использования имеющихся в сети ресурсов (информационных, вычислительных, коммуникационных) и обеспечивает удаленный доступ к ним. Распределение потоков сообщений с целью доставки каждого сообщения по адресу осуществляется на узлах коммутации (УК) с помощью коммутационных устройств. Система распределений потоков сообщений в УК получила название системы коммутации. Под коммутацией сетях передачи данных имеется в виду совокупность операций, обеспечивающих в узлах коммутации передачу информации между входными и выходными устройствами в соответствии с указанным адресом. При коммутации с накоплением (КН) абонент имеет постоянную прямую связь со своим УК и передает на него информацию. Затем эта информация передается через узлы коммутации другим абонентам, причем в случае занятости исходящих каналов информация запоминается в узлах и передается по мере освобождения каналов нужном направлении. Коммутация пакетов. В системах ПД широкое распространение получил метод коммутации пакетов (КП), или пакетной коммутации, являющийся разновидностью коммутации с накоплением. При КП сообщения разбиваются на меньшие части, называемые пакетами, каждый из которых имеет установленную максимальную длину. Эти пакеты нумеруются и снабжаются адресами и прокладывают себе путь по сети (методом передачи с промежуточным хранением), которая их коммутирует. Части одного и того же сообщения могут в одно и то же время находиться в различных каналах связи, более того, когда начало сообщения уже принято, его конец отправитель может еще даже не передавать в канал. В сети с КП осуществляется следующий процесс передачи (рис. 6.2): • вводимое в сеть сообщение разбивается на части — пакеты длиной обычно до 1000—2000 единичных интервалов, содержащие адрес ОП получателя. Указанное разбиение осуществляется или в оконечном пункте, если он содержит ЭВМ, или в ближайшем к ОП УК; 231
• если разбиение сообщения на пакеты происходит в УК, то дальнейшая передача пакетов осуществляется по мере их формирования, не дожидаясь окончания приема в УК целого сообщения; • в узле КП пакет запоминается в оперативной памяти (ОЗУ) и по адресу определяется канал, по которому он должен быть передан; • если этот канал к соседнему узлу свободен, то пакет немедленно передается на соседний узел КП, в котором повторяется та же операция; • если канал к соседнему узлу занят, то пакет может небольшое время храниться в ОЗУ до освобождения канала; • при хранении пакеты устанавливаются в очереди по направлению передачи, причем длина очереди не превышает 3—4 пакетов. Если длина очереди превышает допустимую, пакеты стираются из ОЗУ и их передача должна быть повторена. Эталонная модель внутри- и межсетевого взаимодействия (OSI Reference Model). Многослойный (многоуровневый) характер сетевых процессов приводит к необходимости рассмотрения многоуровневых моделей телекоммуникационных сетей. В качестве эталонной модели утверждена семиуровневая модель, в которой все процессы, реализуемые открытой системой, разбиты на взаимно подчиненные уровни. В данной модели обмен информацией может быть представлен в виде стека (табл. 6.1). 232
Эти представления были разработаны ISO (International Standard Organization) и получили название «Семиуровневой мо дели сетевого обмена» (Open System Interconnection Reference Model), или ВОС (Взаимодействие Открытых Систем). Основная идея модели заключается в том, что каждому уровню отводится конкретная роль, в том числе и транспортной среде. Благодаря этому общая задача передачи данных расчленяется на отдельные легко обозримые задачи. Необходимые соглашения для связи одного уровня с выше и нижерасположенными называют протоколом. Наличие нескольких уровней, используемых в модели, обеспечивает декомпозицию информационно-вычислительного процесса на простые составляющие. В свою очередь, увеличение числа уровней вызывает необходимость включения дополнительных связей в соответствии с дополнительными протоколами и интерфейсами. Интерфейсы (макрокоманды, программы) зависят от возможностей используемой операционной системы. Рассмотрим вкратце характеристики уровней ВОС. Уровень 1, физический уровень модели — определяет характеристики физической сети передачи данных, которая используется для межсетевого обмена. Это такие параметры, как напряжение в сети, сила тока, число контактов на разъемах, электрические, механические, функциональные и процедурные параметры для физической связи в системах. Уровень 2, канальный — представляет собой комплекс процедур и методов управления каналом передачи данных, организованный на основе физического соединения. Канальный уровень формирует из данных, передаваемых 1-м уровнем, так называемые «кадры», последовательности пакетов. Каждый пакет содержит адреса источника и места назначения, а также средства обнаружения ошибок. На этом уровне осуществляются управление доступом к передающей среде, используемой несколькими ЭВМ, синхронизация, обнаружение и исправление ошибок. К канальному уровню отнесены протоколы, определяющие соединение, — протоколы взаимодействия между драйверами устройств и устройствами, с одной стороны, а с другой — между операционной системой и драйверами устройств. Уровень 3, сетевой — устанавливает связь в вычислительной сети между двумя абонентами. Соединение происходи благодаря функциям маршрутизации, которые требуют наличия сетевого адреса в пакете. Сетевой уровень должен также обеспечивать обработку ошибок, мультиплексирование, управление потоками данных. К сетевому уровню относятся протоколы, которые отвечают а отправку и получение данных, где определяется отправитель и получатель и определяется необходимая информация для доставки пакета по сети. Уровень 4, транспортный — поддерживает непрерывную передачу данных между двумя взаимодействующими друг с другом удаленными пользовательскими процессами. Качество транспортировки, безошибочность передачи, независимость вычислительных сетей, сервис транспортировки из конца в конец, минимизация затрат и адресация связи гарантируют непрерывную и безошибочную передачу данных. Транспортный протокол связывает нижние уровни (физический, канальный, сетевой) с верхними уровнями, которые реализуются программными средствами. Этот уровень как бы разделяет средства формирования данных в сети от средств их передачи. Сетевой уровень предоставляет услуги транспортному, который требует от пользователей запроса на качество обслуживания сетью. После получения от пользователя запроса на качество обслуживания транспортный уровень выбирает класс протокола, который обеспечивает требуемое качество 233
обслуживания. При существовании разных типов сетей транспортный уровень позволяет следующие параметры качества обслуживания: • пропускная способность; • надежность сети; • задержка передачи информации через сеть; • приоритеты; • защита от ошибок; • мультиплексирование; • управление потоком; • обнаружение ошибок. Уровень 5, сеансовый (уровень сессии) – на данном уровне осуществляется управление сеансами (сессиями) связи между двумя взаимодействующими прикладными пользовательскими процессами (пользователями). Определяется начало и окончание сеанса связи: нормальное или аварийное; определяется время, длительность и режим сеанса связи, точки синхронизации для промежуточного контроля и восстановления при передаче данных, восстанавливается соединение после ошибок в время сеанса связи без потери данных. Уровень 6, представления данных (представительский, уровень представления информации, уровень обмена данными с прикладными программами) — управляет представлением данных в необходимой для программы пользователя форме, осуществляет генерацию и интерпретацию взаимодействия процессов, кодирование/декодирование данных, в том числе компрессию и декомпрессию данных (преобразование данных из промежуточного формата сессии в формат данных приложения). На рабочих станциях могут использоваться различные операционные системы: DOS, UNIX, OS/2. Каждая из них имеет свою файловую систему, свои форматы хранения и обработки данных. Задачей данного уровня является преобразование данных при передаче информации в формат, который используется в информационной системе. При приеме данных уровень представления данных выполняет обратное преобразование. Уровень 7, прикладной (уровень прикладных программ или приложений) — определяет протоколы обмена данными этих прикладных программ; в его ведении находятся прикладные сетевые программы, обслуживающие файлы, а также выполняются вычислительные, информационно-поисковые работы, логические преобразования информации, передача почтовых сообщений и т. п. Одна из задач этого уровня — обеспечить интерфейс пользователя. Таким образом, мы видим, что уровень с меньшим номером предоставляет услуги смежному с ним верхнему уровню и пользуется для этого услугами смежного с ним нижнего уровня. Самый верхний (7-й) уровень потребляет услуги, самый нижний (1-й) только предоставляет их. Кроме того, на разных уровнях обмен происходит в различных единицах информации: биты, кадры, фреймы, пакеты, сеансовые сообщения, пользовательские сообщения. Уровень может «ничего не знать» о содержании сообщения, но он должен «знать», что дальше делать с этим сообщением. Уровень приложений передает сообщение на следующий уровень и т. д. через все уровни, пока физический уровень не передаст его в кабель-Каждый уровень по-своему обрабатывает, например, сообщение электронной почты, но не «знает» о фактическом содержании этого сообщения. Для правильной и, следовательно, полной и безошибочной передачи данных необходимо придерживаться согласованных и установленных правил, оговоренных в протоколе передачи данных. Вазовые сетевые топологии 234
Проиллюстрируем (на примере локальных сетей) основные принципы комплексирования сетевого оборудования (или топологии сетей). При создании сети в зависимости от задач, которые она должна будет выполнять, может быть реализована одна из трех базовых топологий: «звезда», «кольцо» и «общая шина» — рис. 6.3, табл. 6.2. 235
Концепция топологии сети в виде звезды заимствована из области больших ЭВМ, в которой головная (хост-) машина получает и обрабатывает все данные с периферийных устройств (терминалов или рабочих станций пользователя), являясь единственным активным узлом обработки данных. Информация между любыми двумя пользователями в этом случае проходит через центральный узел вычислительной сети. Пропускная способность сети определяется вычислительной мощностью узла и гарантируется для каждой рабочей станции. Коллизий (столкновений) данных не возникает. Кабельное соединение достаточно простое, так как каждая рабочая станция связана с узлом. Затраты на прокладку кабелей высокие, особенно когда центральный узел географически расположен не в центре сети. При расширении вычислительных сетей не могут быть использованы ранее выполненные кабельные связи: к новому рабочему месту необходимо прокладывать отдельный кабель из центра сети. Топология в виде звезды является наиболее быстродействующей из всех топологий вычислительных сетей, поскольку передача данных между рабочими станциями проходит через центральный узел (при его хорошей производительности) по отдельным линиям, используемым только этими рабочими станциями. Кроме того, частота запросов передачи информации от одной станции к другой невысока по сравнению с наблюдаемой при других топологиях. При кольцевой топологии сети рабочие станции связаны одна с другой по кругу, т. е. рабочая станция 1 с рабочей станцией 2, рабочая станция 3 с рабочей станцией 4 и т. д. Последняя рабочая станция связана с первой. Коммуникационная связь замыкается в кольцо, данные передаются от одного компьютера к другому как бы по эстафете. Если компьютер получит данные, предназначенные для другого компьютера, он передает их 236
следующему по кольцу. Если данные предназначены для получившего их компьютера, они дальше не передаются. Прокладка кабелей от одной рабочей станции до другой может быть довольно сложной и дорогостоящей, особенно если географически рабочие станции расположены далеко от кольца (например, в линию). Пересылка сообщений является очень эффективной, так как большинство сообщений можно отправлять по кабельной системе одно за другим. Очень просто можно выполнить циркулярный (кольцевой) запрос на все станции. Продолжительность передачи информации увеличивается пропорционально количеству рабочих станций, входящих в вычислительную сеть. Основная проблема кольцевой топологии заключается в том, что каждая рабочая станция должна участвовать в пересылке информации, и в случае выхода из строя хотя бы одной из них работа в сети прекращается. Топология «общая шина» (магистраль) предполагает использование одного кабеля, к которому подключаются все компьютеры сети. В данном случае кабель используется совместно всеми станциями по очереди. Принимаются специальные меры для того, чтобы при работе с общим кабелем компьютеры не мешали друг другу передавать и принимать данные. Надежность здесь выше, так как выход из строя отдельных компьютеров не нарушает работоспособность сети в целом. Поиск неисправностей в кабеле затруднен. Кроме того, так как и пользуется только один кабель, в случае повреждения нарушается работа всей сети. Комбинированные топологические решения. Наряду с отмеченными базовыми, на практике применяется ряд комбинированных топологий. К таковым относится, например, логическая кольцевая сеть, которая физически монтируется как соединение звездных топологий (рис. 6.3, г). Отдельные «звезды» включаются с помощью специальных коммутаторов, которые иногда называют «хаб» (от англ. Hub — концентратор). 6.2. Технологии Internet В [20] приведено следующее определение: «Федеральный сетевой совет признает, что... Internet — это глобальная информационная система, которая: • логически взаимосвязана пространством глобальных уникальных адресов, основанных на Internet-протоколе (IP) или на последующих расширениях или преемниках IP; • способна поддерживать коммуникации с использованием семейства Протокола управления передачей/Internet – протокола (TCP/IP) или его последующих расширений/преемников и/или других IP-совместимых протоколов; • обеспечивает, использует или делает доступной на общественной или частной основе высокоуровневые сервисы, надстроенные над описанной здесь коммуникационной и иной связанной с ней инфраструктурой. За два десятилетия своего существования Сеть Internet претерпела кардинальные изменения (рис. 6.4). Она зарождалась в эпоху разделения времени, но сумела выжить во времена господства персональных компьютеров, одноранговых сетей, систем клиент/сервер и сетевых компьютеров. Она проектировалась до первых ЛВС, но впитала эту новую сетевую технологию, равно как и появившиеся позднее сервисы коммутации ячеек и кадров. Она задумывалась для поддержки широкого спектра функции, от разделения файлов и удаленного входа до разделения ресурсов сов и совместной работы, породив электронную почту и в более поздний период Всемирную паутину (WWW)». Рассмотрим некоторые основные Internet-технологии. 237
Система адресов Internet Сеть сетей – Internet — базируется на принципах пакетной коммутации и реализует многоуровневую совокупность протоколов, подобную рассмотренной выше модели OSI. Прежде чем перейти описанию данных протоколов, отметим, что на каждом из уровней используются определенные системы адресации, позволяющие осуществлять передачу сообщений и адресацию информационных ресурсов. Основными типами адресов являются следующие: • адрес Ethernet; • IP-адрес (основной адрес в Internet); • доменные адреса; • почтовые адреса; • номера портов; • универсальный локатор (идентификатор) сетевого ресурса (URL/URI). Адрес Ethernet. Internet поддерживает разные физические среды, из которых наиболее распространенным аппаратурным средством реализации локальных сетей (нижний уровень многоуровневых сетей) является технология Ethernet. В локальной сети обмен осуществляется кадрами Ethernet каждый из которых содержит адрес назначения, адрес источника, поле типа и данные. Каждый сетевой адаптер (интерфейс, карта Ethernet — физическое устройство, подключающее компьютер к сети) имеет свой сетевой адрес, размер которого составляет 6 байт. Адаптер «слушает» сеть, принимает адресованные ему кадры и широковещательные кадры с адресом FF:FF:FF:FF:FF:FF и отправляет кадры в сеть, причем в каждый момент времени в сегменте узла сети находится только один кадр. Собственно Ethernet-адрес соответствует не компьютеру, а его сетевому интерфейсу. Таким образом, если компьютер имеет несколько интерфейсов, то это означает, что 238
каждому интерфейсу будет назначен свой Ethernet-адрес. Каждой карте Ethernet соответствуют Ethernet-адрес и IP-адрес, которые уникальны в рамках Internet. IP-адрес представляет собой 4-байтовую последовательность, причем каждый байт этой последовательности записывается в виде десятичного числа. Адрес состоит из двух частей: адреса сети и номера хоста. Обычно под хостом понимают компьютер, подключенный к Internet, однако это может быть и принтер с сетевой картой, и терминал или вообще любое устройство, которое имеет свой сетевой интерфейс. Существует несколько классов адресов, различающихся количеством битов, отведенных на адрес сети и адрес хоста в сет В табл. 6.3 приведены характеристики основных классов сетей- Назначение классов IP-адресов: А – использование в больших сетях общего доступа; В — в сетях среднего размера (большие компании, научно-исследовательские институты, университеты); С — в сетях с небольшим числом компьютеров (небольшие компании и фирмы). Среди IP-адресов несколько зарезервировано под специальные случаи (табл. 6.4). Для установления соответствия между IP-адресом и адресом Ethernet в локальных сетях используется протокол отображения адресов — Adress resolution Protocol (ARP). Отображение адресов осуществляется в ARP-таблице (табл. 6.5), которая необходима, так как адреса выбираются произвольно и нет какого-либо алгоритма для их вычисления. ARP-таблица заполняется автоматически; если нужного адреса в таблице нет, то в сеть посылается широковещательный запрос «чей это IP-адрес?», который получают все сетевые интерфейсы, но отвечает только владелец адреса. Система доменных имен. Хотя числовая адресация удобна для машинной обработки таблиц маршрутов, она очевидно не приемлема для использования человеком. 239
Для облегчения взаимодействия вначале применялись таблицы соответствия числовых адресов именам машин. Эти таблицы сохранились и используются многими прикладными программами (табл. 6.6). Пользователь для обращения к машине может использовать как IP-адрес, так и имя. По мере роста сети была разработана система доменных имен — DNS (Domain Name System), которая строится по иерархическому принципу, однако эта иерархия не является строгой. Фактически нет единого корня всех доменов Internet. В 80-е гг. были определены первые домены (национальные, США) верхнего уровня: gov, mil, edu, com, net. Позднее появились национальные домены других стран: uk, jp, аи, ch и т. п. Для СССР был выделен домен su, однако после приобретения республиками союза суверенитета, многие из них получили свои собственные домены: uа, rи, la, li и т. п. Однако домен su был сохранен, и таким образом, например, в Москве существуют организации с доменными именами kiae. su и msk. ru. Вслед за доменами верхнего уровня следуют домены, определяющие либо регионы (msk), либо организации (kiae); следующие уровни иерархии могут быть закреплены за небольшими организациями, либо за подразделениями больших организации (рис. 6.5). Наиболее популярной программой поддержки DNS являете BIND, или Berkeley Internet Name Domain, — сервер доменных имен, реализованный в университете Беркли, который широк применяется в Internet. Он обеспечивает поиск доменных имен и IP-адресов для любого узла сети. BIND обеспечивает также рассылку сообщений электронной почты через узлы Internet. Вообще говоря, сервер имен может быть установлен на любой компьютер локальной сети. При выборе машины для установки сервера имен следует принимать в расчет то обстоятельство, что многие реализации серверов держат базы данных имен в оперативной памяти. Почтовые адреса. В Internet принята система адресов, которая базируется на доменном адресе машины, подключенной к сети. Почтовый адрес состоит из двух частей: идентификатора пользователя, который записывается перед знаком «коммерческого AT — @», и доменного адреса машины, который записывается после знака «@». Различают следующие типы адресов: • местный адрес — распознается как адрес на машине, с которой осуществляется отправка почты; • адреса UUCP — могут имеют вид: 240
• адреса SMTP — стандартные для Internet: Если машина, с которой отправляется почта, имеет прямую линию связи по протоколу UUCP со следующей машиной (в адресе), то почта передается на эту машину; если такого соединения нет, то почта не рассылается и выдается сообщение об ошибке. (Программа рассылки почты sendmail сама преобразует адреса формата SMTP в адреса UUCP, если доставка сообщения осуществляется по этому протоколу). При рассылке может использоваться и смешанная адресация: • user%hostA@hostB — почта отправляется с машины hostB на машину hostA; • user!hostA@hostB — почта отправляется с машины hostR на машину hostA; • hostA!user%hostB — почта отправляется с hostA на hostB TCP/UDP-nopm — условный номер соединения с хост-машиной по определенному протоколу прикладного уровня (точнее информационный сервис, WKS — Well Known Services, или прикладная программа, которая осуществляет обслуживание по определенном порту TCP или UDP). К сервисам относятся: доступ в режиме удаленного терминала, доступ к файловым архивам FTP, доступ к серверам World Wide Web и т. п. Система универсальных идентификаторов ресурсов (URI/URL) разработана для использования в системах WWW, и в ее основу заложены следующие принципы. Расширяемость — новые адресные схемы должны были легко вписываться в существующий синтаксис URI; была достигнута за счет выбора определенного порядка интерпретации адресов, который базируется на понятии «адресная схема». Идентификатор схемы стоит перед остатком адреса, отделен от него двоеточием и определяет порядок интерпретации остатка. Полнота — по возможности любая из существовавших схем должна была описываться посредством URI. Читаемость — адрес должен легко пониматься человеком, что вообще характерно для технологии WWW — документы вместе с ссылками могут разрабатываться в обычном текстовом редакторе. Формат URL включает: • схему адреса (тип протокола доступа — http, gopher, wais, telnet, ftp и т. п.); • IP- или доменный адрес машины; • номер ТСР – порта; • адрес ресурса на сервере (каталог или путь); • имя HTML-файла и метку; • критерий поиска данных. Для каждого вида протокола приложений выбирается с подмножество полей из представленного выше списка. Прежде чем рассмотреть различные схемы представления адресов, приедем пример простого адреса URI: В данном случае путь состоит из доменного адреса машины, которой установлен сервер HTTP, и пути от корня дерева сервера к файлу index.html. 241
Схема http — основная для WWW; содержит идентификатор адрес машины, TCP-порт, путь в директории сервера, поисковый критерий и метку. Приведем несколько примеров URI для схемы HTTP: Это наиболее распространенный вид URI, применяемый в документах WWW. Вслед за именем схемы (http) следует путь, состоящий из доменного адреса машины и полного адреса HTML-документа в дереве сервера HTTP. В качестве адреса машины допустимо использование и IP-адреса: При указании адреса ресурса возможна ссылка на точку внутри файла HTML. Для этого вслед за именем документа может быть указана метка внутри HTML-документа : Символ «#» отделяет имя документа от имени метки. Другая возможность схемы HTTP — передача параметров. Первоначально предполагалось, что в качестве параметров будут передаваться ключевые слова, но по мере развития механизма CGI – скриптов в качестве параметров стала передаваться и другая информация: В данном примере предполагается, что файл isindex.html — документ с возможностью поиска по ключевым словам. При использовании HTML Forms параметры передаются как поименованные поля: Схема FTP позволяет адресовать файловые архивы FТР из программ-клиентов World Wide Web. При этом возможно указание не только имени схемы, адреса FTP-архива, но и идентификатора пользователя и даже его пароля. Наиболее часто данная схема используется для доступа к публичным архивам FTP: В данном случае записана ссылка на архив polyn.net.kiae.su с идентификатором anonymous или ftр (анонимный доступ). Если есть необходимость указать идентификатор пользователя и его пароль, то можно это сделать перед адресом машины: В данном случае эти параметры отделены от адреса машины символом @, а друг от друга — двоеточием. В некоторых системах можно указать и тип передаваемой информации, но данная возможность не стандартизована. Схема Gopher используется для ссылки на ресурсы распределенной информационной системы Gopher; состоит из идентификатора и пути, в котором указывается адрес Gopherсервера, тип ресурса и команда Gopher: 242
В данном примере осуществляется доступ к Gopher-серверу gopher.kiae.su через порт 70 для поиска (тип 7) слова software. Следует заметить, что тип ресурса, в данном случае 7, передается не перед командой, а вслед за ней. Схема MAILTO предназначена для отправки почты по стандарту RFC-822 (стандарт почтового сообщения). Общий вид схемы выглядит так: Схема NEWS — просмотр сообщений системы Usenet. При этом используется следующая нотация: В данном примере пользователь получит идентификаторы ей из группы соmр.infosystems.gopher в режиме уведомления. Можно получить и текст статьи, но тогда необходим ее индентификатор: Схема TELNET осуществляет доступ к ресурсу в режиме удаленного терминала. Обычно клиент вызывает дополнительную программу для работы по протоколу telnet. При использовании этой схемы необходимо указывать идентификатор пользователя, допускается использование пароля: Схема WAIS (протокол Z39.50). WAIS — распределенная информационно-поисковая система, работающая в режимах поиска и просмотра. При поиске используется форма со знаком «?», отделяющим адресную часть от ключевых слов: В данном случае обращаются к базе данных wais на сервере wais.think.com с запросом на поиск документов, содержащих слово guide. Сервер возвращает клиенту список идентификаторов документов, после получения которого можно использовать вторую форму схемы wais-запрос на просмотр документа: где 039 — идентификатор документа. Схема FILE. WWW-технология используется как в сетевом, так и в локальном режимах. Для локального режима используют схему FILE. В данном примере приведено обращение к локальному документу на персональном компьютере с MS-DOS или MS -Windows. Существует несколько схем. Эти схемы реально на практике не используются или находятся в стадии разработки, поэтому останавливаться на них мы не будем. Совокупность протоколов Internet Стек, или семейство протоколов TCP/IP, отличается от вышерассмотренной модели OSI и обычно ограничивается схемой, представленной в табл. 6.7. Обе архитектуры включают похожие уровни, однако в TCP/IP несколько «слоев» OSI-модели объединены в один. 243
Взаимодействие на уровне прикладных протоколов осуществляется путем обмена командами установления/прекращения соединений (типа open/close), приема/передачи (send/receive) и собственно данными. Прикладные протоколы (Telnet, электронная почта, Gopher, Ftp, Http, Wais) будут рассмотрены далее, совместно с информационными сервисами доступа к информационным ресурсам, здесь же мы ограничимся рассмотрением собственно протоколов TCP/IP — канального, сетевого, транспортного уровней. Вот эти протоколы: TCP — Transmission Control Protocol — базовый транспортный протокол, давший название всему семейству протоколов TCP/IP; UDP — User Datagram Protocol — второй по распространенности транспортный протокол семейства TCP/IP; IP — Internet Protocol — межсетевой протокол; ARP — Address Resolution Protocol — используется для определения соответствия IPадресов и Ethernet-адресов; SLIP — Serial Line Internet Protocol — протокол передачи данных по телефонным линиям; PPP – Point to Point Protocol — протокол обмена данным «точка-точка»; PРС — Remote Process Control — протокол управления удаленными процессами; TFTP — Trivial File Transfer Protocol — тривиальный протокол передачи файлов; DNS — Domain Name System — система доменных имен; RIP — Routing Information Protocol — протокол маршрутизации. Некоторые предварительные замечания. На каждом из уровней схемы рис. 6.6 коммуникация осуществляется физически блоками (пакетами), и при переходе с уровня на уровень реализуются следующие преобразования форматов: инкапсуляция/экскапсуляция; фрагментация/дефрагментация. Инкапсуляция — способ упаковки данных в формате вышестоящего протокола в формат нижестоящего протокола. При этом один или несколько первичных пакетов преобразуются в один вторичный пакет и снабжаются управляющей информацией, характерной для принимающего уровня. Например, помещение пакета IP в качестве данных Ethernet-кадра, 244
помещение TCP-сегмента в качестве данных в IP-пакет (рис. 6.6). При возврате на верхний уровень исходный формат восстанавливается в соответствии с обратной процедурой — экскапсуляцией. Фрагментация — реализуется, если разрешенная длина пакета нижнего уровня недостаточна для размещения первичного пакета, при этом осуществляется «нарезка» пакетов (например, на пакеты SLIP или фреймы РРР), аналогично при возврате на первичный уровень пакет должен быть дефрагментирован. При описании основных протоколов стека TCP/IP будем следовать модели, представленной в табл. 6.7. Первыми будут рассмотрены протоколы канального ровня SLIP и РРР единственные протоколы, которые были разработаны в рам Internet и для Internet. Другие протоколы, например NDIS или ODI, мы рассматривать не будем, поскольку они создавались в других сетях, хотя и могут использоваться в сетях TCP/IP также Протоколы канального уровня SLIP и РРР применяются на телефонных каналах. С помощью этих каналов к сети подключается большинство индивидуальных пользователей, а также не большие локальные сети. Подобные линии связи могут обеспечивать скорость передачи данных до 115 200 бит/с. Serial Line IP (SLIP). Обычно этот протокол применяют как на выделенных, так и на коммутируемых линиях связи со скоростью передачи от 1200 до 19 200 бит в секунду. В рамках протокола SLIP осуществляется фрагментация IP-пакетов, при этом SLIP-пакет должен начинаться символом ESC (восьмеричное 333 или десятичное 219) и заканчиваться символом END (восьмеричное 300 или десятичное 192). Стандарт не определяет размер SLIP-пакета, поэтому любой интерфейс имеет специальное поле, в котором пользователь должен указать эту длину. Соединения типа «точка — точка» — протокол РРР (Point to Point Protocol). Данный протокол обеспечивает стандартный метод взаимодействия двух узлов сети. Предполагается, что обеспечивается двунаправленная одновременная передача данных. Собственно говоря, РРР состоит из трех частей: механизма инкапсуляции (encapsulation), протокола управления соединением (link control protocol) и семейства протоколов управления сетью (network control protocols). Под датаграммой в РРР понимается информационная единица сетевого уровня (применительно к IP — IP-пакет). Под фреймом понимают информационную единицу канального уровня (согласно модели OSI). Для обеспечения быстрой обработки информации длина фрейма РРР должна быть кратна 32 битам. Фрейм состоит из заголовка и хвоста, между которыми содержатся данные. Датаграмма может быть инкапсулирована в один или несколько фреймов (рис. 6.7). Пакетом называют информационную единицу обмена между модулями сетевого и канального уровней. Обычно каждому пакету ставится в соответствие один фрейм, за исключением тех случаев, когда канальный уровень требует большей фрагментации данных или, наоборот, объединяет пакеты для более эффективной передачи. Протокол управления соединением предназначен для установки соглашения между узлами сети о параметрах инкапсуляции (размер фрейма и т. п.), кроме того, он позволяет проводить идентификацию узлов. Первой фазой установки соединения является проверка готовности физического уровня передачи данных. При этом такая проверка может осуществляться периодически, позволяя реализовать механизм автоматического 245
восстановления физического соединения, как это бывает при работе через модем по коммутируемой линии. Если физическое соединение установлено, то узлы начинают обмен пакетами протокола управления соединением, настраивая параметры сессии. Межсетевые протоколы. К данной группе относятся протоколы IP, ICMP, ARP. Протокол IP является основным в иерархии протоколов TCP/IP и используется для управления рассылкой TCP/I Р – пакетов по сети Internet. Среди различных функций, возложенных на IP, обычно выделяют следующие: • определение пакета, который является базовым понятием и единицей передачи данных в сети Internet; • определение адресной схемы, которая используется в сети Internet; • передача данных между канальным уровнем (уровнем доступа к сети) и транспортным уровнем (другими словами, преобразование транспортных датаграмм во фреймы канального уровня); • маршрутизация пакетов по сети, т. е. передач: а пакетов от одного шлюза к другому с целью передачи пакета машине-получателю; • фрагментация и дефрагментация пакетов транспортного уровня. Таким образом, вся информация о пути, по которому должен пройти пакет, определяется по состоянию сети в момент прохождения пакета. Эта процедура называется маршрутизацией в отличие от коммутации, используемой для предварительного установления маршрута следования отправляемых данных. Маршрутизация представляет собой ресурсоемкую процедуру, так как предполагает анализ каждого пакета, который проходит через шлюз или маршрутизатор, в то время как при коммутации анализируется только управляющая информация, устанавливается канал (физический или виртуальный), и все пакеты пересылаются по этому каналу без анализа маршрутной информации. Однако при неустойчивой работе сети пакеты могут пересылаться по различным маршрутам и затем собираться в единое сообщение. При коммутации путь придется устанавливать заново для каждого пакета и при этом потребуется больше накладных затрат, чем при маршрутизации. Структура пакета IP представлена на рис. 6.8. Фактически в заголовке пакета определены все основные данные, необходимые для перечисленных выше функций протокола IP: адрес отправителя, адрес получателя, общая длина пакета и тип пересылаемой датаграммы. Используя данные заголовка, машина может определить, на какой сетевой интерфейс отправлять пакет. Если IP-адрес получателя принадлежит одной из ее сетей, то на интерфейс этой сети пакет и будет отправлен, в противном случае пакет отправят на другой шлюз. Как уже отмечалось, при обычной процедуре инкапсулирования пакет просто помещается в поле данных фрейма, а в случае, когда это не может быть осуществлено, разбивается на более мелкие фрагменты. 246
Размер максимально возможного фрейма, который передается по сети, определяется величиной MTU (Maximum Transsion Unit), определенной для протокола канального уровня. Для последующего восстановления пакет IP должен содержать информацию о своем разбиении и для этой цели используются поля «flags» и «fragmentation offset». В этих полях определяется, какая часть пакета получена в данном фрейме, если этот пакет был фрагментирован на более мелкие части. ICMP (Internet Control Message Protocol) — наряду с IP и ARP относится к межсетевому уровню. Протокол используется для рассылки информационных и управляющих сообщений. При этом используются следующие виды сообщений. Flow control — если принимающая машина (шлюз или реальный получатель информации) не успевает перерабатывать информацию, то данное сообщение приостанавливает отправку пакетов по сети. Detecting unreachable destination — если пакет не может достичь места назначения, то шлюз, который не может доставить пакет, сообщает об этом отправителю пакета. Redirect routing — это сообщение посылается в том случае, если шлюз не может доставить пакет, но у него есть на этот счет некоторые соображения, а именно адрес другого шлюза. Checking remote host — в этом случае используется так называемое ICMP Echo Message. Если необходимо проверить наличие стека TCP/IP на удаленной машине, то на нее посылается сообщение данного типа. Как только система получит это сообщение, она немедленно высылает подтверждение. ICMP используется также для получения сообщения об истечении срока «жизни» пакета на шлюзе. При этом используется время жизни пакета, которое определяет число шлюзов, через которые пакет может пройти. Программа, которая использует эту информацию (сообщение time execeed протокола ICMP), называется traceroute. Протоколы управления маршрутизацией. Наиболее распространенный из них – протокол RIP. Протокол RIP (Routing Information Protocol) — предназначен для автоматического обновления таблицы маршрутов, при этом используется информация о состоянии сети, которая рассылается маршрутизаторами (routers). В соответствии с протоколом RIP любая машина может быть маршрутизатором. При этом все маршрутизаторы делятся на активные и пассивные. Активные маршрутизаторы сообщают о маршрутах, которые они поддерживают в сети. Пассивные маршрутизаторы читают эти широковещательные сообщения и исправляют свои таблицы маршрутов, но при этом сами информации в сеть не предоставляют. 247
Обычно в качестве активных маршрутизаторов выступают шлюзы, а в качестве пассивных — обычные машины (hosts). Протоколы транспортного уровня. User Datagram Protocol (U DР) один из двух протоколов транспортного уровня, используемых в стеке протоколов TCP/IP. UDP позволяет прикладной программе передавать свои сообщения по сети с минимальными издержками, связанными с преобразованием протоколов уровня приложения в протокол 1р Однако при этом прикладная программа сама должна обеспечивать подтверждение того, что сообщение доставлено по месту назначения. Заголовок UDP-датаграммы (сообщения) имеет вид, показанный на рис. 6.9. Порты в заголовке определяют протокол UDP как мультиплексор, который позволяет собирать сообщения от приложении и отправлять их на уровень протоколов. При этом приложение использует определенный порт. Взаимодействующие через сеть приложения могут использовать разные порты, что и отражает заголовок пакета. Всего можно определить 216 разных портов. Первые 256 портов закреплены за так называемыми «well known services (WKS)» Поле Length определяет общую длину сообщения. Поле Checksum служит для контроля целостности данных. Приложение, которое использует протокол UDP, должно поддерживать целостность данных, анализируя поля Checksum и Length. Кроме этого, при обмене данными по UDP прикладная программа сама должна заботиться о контроле получения данных адресатом Обычно это достигается обменом подтверждениями о доставке между прикладными программами. Transfer Control Protocol — TCP. В том случае, когда контроль качества передачи данных по сети имеет особое значение для приложения, используется протокол TCP. Этот протокол также называют надежным, ориентированным на соединение потокоориентированным протоколом. Рассмотрим формат передаваемой по сети датаграммы (рис. 6.10). Согласно этой структуре в TCP, как и в UDP, используются порты. В поле Sequence Number (SYN) определен номер пакета в последовательности пакетов, которая составляет сообщение, затем идет поле подтверждения Asknowledgment Number и другая управляющая информация. 248
В дальнейшем мы предполагаем рассмотреть основные протоколы прикладного уровня, обеспечивающие доступ к информационным ресурсам Internet (и не только к ним), а также соответствующее программное обеспечение (программы-клиенты и программы-серверы). Это следующие протоколы: • эмуляции терминала Telnet; • электронной почты SMTP, UUCP; • Распределенных файловых систем — NNTP, Gopher, FTP; • гипертекстового доступа к WWW — HTTP; • управления поиском в распределенных базах данных — Z39.50 Каждый из перечисленных протоколов предполагает наличие некоторой совокупности команд (командный язык), которыми обмениваются программы-клиенты и программысерверы данного протокола. Естественно, целью такого взаимодействия является обмен пользовательскими данными. Могут быть выделены два основных класса средств доступа и организации информационных ресурсов: • распределенные файловые системы (Usenet, FTP, Gopher) • распределенные информационные системы (WWW, WA1S) 6.3. Прикладные протоколы коммуникации Internet К данной группе протоколов относятся: • протокол эмуляции терминала Telnet (коммуникация в режиме он-лайн); • протоколы электронной почты SMTP, UUCP (коммуникация в режиме офф-лайн). Telnet Протокол эмуляции удаленного терминала Telnet — одна из самых старых информационных технологий Internet. Этот протокол может быть использован и для организации взаимодействий «терминал— терминал» (связь) и «процесс—процесс» (распределенные вычисления). Команды протокола Telnet. Клавиатура должна иметь возможность ввода всех символов US ASCII, а также генерировать специальные стандартные функции управления терминалом (эти функции могут или присутствовать в реальном терминале, и тогда они должны представляться в стандартной форме команды, или отсутствовать и тогда заменяться командой NO (No-Operation)): IP — Interrupt Process (прервать процесс). Данная команда реализует стандартный для многих систем механизм прерываний процесса выполнения задачи пользователя (<ctrl+C> Unix-системах или <ctrl+Break> в MS-DOS). Следует заметить, что команда IP может быть использована и другим протоколом прикладного уровня, который может использовать Telnet; AO – Abort Output (прервать процесс выдачи). Многие системы позволяют остановить процесс, выдающий информацию на экран. Здесь следует понять отличие данной команды от IP. При выполнении IP прерывается выполнение текущего процесса пользователя, но не происходит очистка буфера вывода, т. е. процесс может быть остановлен, а буфер вывода будет продолжать передаваться на экран; AYT – Are You There (вы еще здесь?). Назначение этой командой – дать возможность пользователю убедиться, что в процессе работы по медленным линиям он не потерял связи с удаленной машиной; EC — Erase Character (удалить символ). Многие системы обеспечивают возможность редактирования командной строки путем введения символов «забой» или удаления последнего напечатанного символа на устройстве отображения; EL — Erase Line (удалить строку). Команда аналогична ЕС, но удаляет строку ввода целиком. Обычно выполнение этой команды приводит к очистке буфера ввода; 249
Open host [port] — начать telnet-сессию с машиной host по порту port. Адрес машины можно задавать как в форме IP-адреса, так и в форме доменного адреса (рис. 6.11, а, б); close — завершить telnet-сессию и вернуться в командный режим. Однако в некоторых системах, если telnet был вызван с аргументом, close приведет к завершению работы telnet; quit — завершить работу telnet. На рис. 6.11 приведены примеры экранов Telnet-сессии (связь с библиотекой Колумбийского университета — CLIO). Электронная почта Электронная почта является самым массовым средством электронных коммуникаций Internet, через нее можно получить ступ практически ко всем ресурсам Internet, а также к информационным ресурсам других сетей. При коммуникации в режиме ЭП корреспонденция готовится пользователем посредством программы подготовки почты, которая вызывает текстовой редактор. Затем следует вызвать программу отправки почты (программа подготовки почты вызывает программу отправки автоматически). Для работы электронной почты в Internet используется протокол прикладного уровня SMTP (Simple Mail Transfer Protocol), который использует транспортный протокол TCP. Однако совместно с этим протоколом может использоваться и UUCP. При работе по протоколу SMTP почта реально отправляется только тогда, когда установлено интерактивное соединение с программой-сервером на машине — получателе почты. При этом происходит обмен командами между клиентом и сервером протокола SMTP в режиме on-line, и почта достигает почтового ящика получателя за считанные минуты. При использовании UUCP почта передается по принципу «Stop-Go», т. е. почтовое сообщение передается по цепочке почтовых серверов, пока не достигнет машиныполучателя, что позволяет доставлять почту по плохим телефонным каналам, поскольку не требуется поддерживать связь все время доставки от отправителя к получателю. При смешанной адресации доставка почты происходит по смешанному сценарию. О том, как шла доставка и как маршрутизировалось сообщение, можно узнать из заголовка сообщения, которое вы получили. 250
Согласно схеме почтового обмена (рис. 6.12), взаимодействие между участниками этого обмена строится по схеме «клиент—сервер». Протоколы обслуживания электронной почты — наиболее распространены — SMTP, РОРЗ, ШАР. Протокол SMTP (Simple Mail Transfer Protocol) был раз работай для обмена почтовыми сообщениями в сети Internet SMTP не зависит от транспортной среды и может использоваться для доставки почты в сетях с протоколами, отличными от TCP/IP и Х.25. 251
При этом отправитель инициирует соединение и посылает запросы на обслуживание, выступая в роли клиента, а получатель отвечает на эти запросы (выполняя функции сервера). Обмен сообщениями и инструкциями в SMTP ведется в ASCII-кодах. Для инициализации канала и его закрытия используются команды helo и quit соответственно. Первой командой сеанса должна быть helo. В протоколе определено несколько видов взаимодействия между отправителем почтового сообщения и его получателем, которые называются дисциплинами. Наиболее распространенной дисциплиной является отправление почтового сообщения, которое начинается по команде mail, идентифицирующей отправителя: Следующей командой определяется адрес получателя: После того как определены отправитель и получатель, можно отправлять сообщение командой data, которая вводится без параметров и идентифицирует начало ввода почтового сообщения. Сам протокол SMTP не накладывает каких-либо ограничений на информацию, которая заключена между командой data и символом «.» в первой позиции последней строки. Следующая дисциплина, определенная в протоколе SMTP, — перенаправление почтового сообщения (forwarding). Верификация и расширение адресов составляют дисциплину верификации. В ней используются команды vrfy и ехрп. По команде vrfy сервер подтверждает наличие или отсутствие указанного пользователя. В список дисциплин, разрешенных протоколом SMTP, входит кроме отправки почты еще и прямая рассылка сообщений. В этом случае сообщение будет отправляться не в почтовый пик, а непосредственно на терминал пользователя, если пользователь в данный момент находится за своим терминалом. Прямая рассылка осуществляется по команде send, которая имеет такой же синтаксис, как и команда mail. Кроме send прямую расссылку осуществляют soml (Send or Mail) и saml (Send and Mail). Протокол обмена почтовой информацией РОРЗ (Post Office Protocol, версия 3) предназначен для пересылки почты из почтовых ящиков пользователей (на сервере) на их рабочие места с помощью программ-клиентов. Если по протоколу SMTP пользователи отправляют корреспонденцию через Internet, то по протоколу РОРЗ пользователи получают корреспонденцию из своих почтовых ящиков на почтовом сервере в локальные файлы, однако сообщения можно принимать, но нельзя отправлять. Формально 252
взаимодействие по протоколу РОРЗ можно разделить на две фазы: фазу аутентификации и фазу обмена данными. В фазе аутентификации пользователь должен сообщить свой идентификатор и пароль (команды user и pass). По команде list система сообщает число сообщений и их размер в байтах. По команде retr можно получить текст сообщения, по команде dele — пометить сообщение к удалению. Удаляются сообщения только в момент окончания сеанса, поэтому по команде rset эти пометки можно снять. Команда quit завершает сеанс работы с сервером. Протокол IMAP (Interactive Mail Access Protocol) представляет собой более надежную альтернативу протоколу РОРЗ и к тому же обладает более широкими возможностями по управлению процессом обмена с сервером. Главное отличие от POP состоит в возможности поиска нужного сообщения и осуществление разбора заголовков сообщения. Для поиска информации используется команда find с различными аргументами. Интерфейсные программы (почтовые клиенты). Режим командной строки — интерфейс mail. Простейшая и самая распространенная программа подготовки и отправки почты — это команда Unix-систем mail или ее аналог mailх, имеющие формат mail пользователь, например, В ответ программа выдаст предложение ввести сообщение;. После ввода пользователем темы (subject) программа перейдет на следующую строку и будет ждать текста сообщения. Пусть сообщение содержит одну фразу: Для завершения ввода сообщения следует нажать <ctrl+D> (конец ввода), после чего сообщение будет отправлено. Чтобы прочитать сообщения, необходимо выполнить команду mail без аргументов. При этом на экран будет выведена информация, описывающая версию программы, место почтового ящика пользователя и количество сообщений в нем, список новых сообщений и пр. Для просмотра сообщения следует нажать <Enter> и на экране появится текст: Полноэкранные интерфейсы. Интерфейс bml. Программа bml является стандартной для абонентов сети Relcom, входит в комплект версии для пользователей MS-DOS и имеется на многих Unix-системах Internet. Основной экран в bml делится на три части: • верхняя часть экрана занята падающими меню, которые позволяют редактировать, просматривать и отправлять почту; • в средней части экрана расположено рабочее поле программы, в котором отображается список полученных сообщений и осуществляется редактирование посылаемых сообщений; • в нижней части экрана расположено вспомогательное меню функциональных клавиш. 253
При запуске программы в рабочем поле отображаются полученные сообщения, первым из которых выделяется текущее сообщение. При этом рабочее поле разбито на четыре столбца: в первом указывается адрес отправителя, во втором — дата и время получения, в третьем — число строк и символов в сообщении четвертый столбец — тема сообщения. Для просмотра сообщения надо с помощью клавиш-стрелок сделать интересующее пользователя сообщение текущим и нажать <Enter>. В рабочем поле экрана появится текст сообщения (рис. 6.13). Программа-клиент MS Outlook Express. Начиная с Windows 95 в состав операционных систем включена программ – клиент Outlook Express, которая предназначена для работы с электронной почтой и новостями (рис. 6.14). Для чтения электронной почты из программы Outlook Express необходимо, чтобы используемая система обмена сообщениями поддерживала протоколы SMTP и РОРЗ или IMAP. Программу Outlook Express можно использовать для чтения групп новостей, или групп обсуждений, таких, как Usenet. Работа с группами новостей осуществляется через серверы новостей NNTP. Outlook Express включает в себя программу адресной книги Windows. Данная программа предоставляет широкие возможности управления контактными данными, включая создание групп контактов и папок для сортировки сообщений и размещения адресов электронной почты. Адресная книга Windows обеспечивает доступ к каталогам Internet, использующим протокол LDAP (протокол облегченного доступа к каталогам). Каталоги Internet облегчают поиск обычных адресов и адресов электронной почты. В программе адресной книги уже настроен доступ к нескольким популярным каталогам. 254
Можно набрать любой телефонный номер, указанный в адресной книге, используя программу номеронабирателя, установленную в вашем компьютере. Программа Outlook Express может сохранять незаконченные сообщения в папке Черновики, а отправленные сообщения — в папке Отправленные на сервере IМАР. Можно редактировать гипертекстовые (HTML) сообщения и использовать в них теги расширенной версии языка HTML. Имеется более десятка параметров, которые можно использовать при настройке представлений. (Представление — это правило, по которому сообщение отображается либо скрывается). Программа может определять, произошел ли обрыв телефонного соединения или отключение компьютера от локальной сети. Программа Outlook Express может восстановить разорванное соединение автоматически либо после подтверждения, вводимого пользователем. Чтобы программа Outlook Express подключалась к сети и производила доставку почты через определенные интервалы, необходимо включить функцию Доставлять почту каждые ... мин поставить продолжением строки Если компьютер не подключен к сети вариант Всегда подключаться либо Подключаться, если не выбран автономный режим. Если для какой-либо учетной записи почты или новостей требуется подключение через определенного поставщика услуг Internet, включить флажок Подключаться, используя и указать нужную учетную запись. Данный параметр задается во вкладке Подключение в свойствах каждой учетной записи. В основном этот параметр нужен пользователям, имеющим несколько выходов в Internet, например, через локальную сеть и через модем, или через два модемных соединения. Для проверки новой почты при запуске программы включить функцию Доставлять почту каждые ... мин во вкладке Общие, пункт Параметры, меню Сервис. Необходимо проверить, чтобы для каждой учетной записи, используемой для доставки почты, был включен флажок Использовать данную учетную запись при доставке всей почты во вкладке Общие в свойствах каждой записи. Включение флажка Спрашивать о подключении при запуске только запускает соединение, но не осуществляет проверку почты. 255
Сообщения, в заголовке которых не указана кодировка, могут быть отображены в правильном виде после выбора нужной кодировки в меню Вид. Однако пересылка таких сообщений или ответ на них с включенной функцией автоматического выбора кодировки приведет к неверному указанию кодировки. Во избежание данной проблемы при отправке таких сообщений следует выбирать кодировку вручную. Чтобы отправить сообщение кому-либо занесенному в адресную книгу Windows, следует дважды нажать кнопку мыши на соответствующей записи в разделе контактов. Программа-клиент ВАТ (ThеBat!). Позволяет, кроме всего прочего, отправлять и принимать почтовые сообщения с защитой данных, в формате S/MIME (рис. 6.15). Для использования возможностей S/MIME прежде всего необходимо получить «сертификат», состоящий из двух частей: секретного ключа и публичного ключа. Вы должны защищать свой сертификат от несанкционированного доступа. Имеющийся сертификат необходимо внести в базу данных The Bat!, например, следующим образом: • создать в адресной книге программы «нового адресата» со своим личным именем и адресом и на вкладке Сертификаты нажать кнопку Импортировать; • найти файл, содержащий сертификат, и нажать кнопку Открыть. Сертификат будет занесен в базу The Bat! На практике система S/MIME работает следующим образом. Для того чтобы подписать письмо (но не зашифровать), вам нужен ваш собственный сертификат. В меню редактора выберите: PGP-> Использовать S/MIME, РСР->Подписать перед отправкой. В момент отправки письма The Bat!, возможно (в случае, если у вас есть несколько S/MIME сертификатов), запросит вас о том, какой из сертификатов использовать для создания подписи, а затем попросит указать пароль, которым защищен ваш сертификат в базе данных программы. После чего программа автоматически создает электронную подпись для вашего письма и пошлет его по назначению. Обратите внимание, что защищен от несанкционированной модификации оказывается не только текст письма, но и те файлы, что, возможно, вы к нему прикрепили, а также некоторые служебные поля (например, From:, но не Subject:), т.е. если в процессе доставки чтолибо из вышеперечисленного окажется изменено, система S/MIME получателя письма отреагирует на это, отказавшись «заверить» электронную подпись отправителя. 6. 4. Распределенные файловые системы Internet 256
Система архивов FTP FTP-архивы — это распределенный депозитарий разнообразных данных, накопленных в сети за последние 20—30 лет. Любой пользователь может реализовать анонимный доступ к этому хранилищу и скопировать интересующие его материалы. Только объем программного обеспечения в архивах FTP составляет терабайты информации; кроме того, в FTP-архивах можно найти стандарты Internet (RFC), пресс-релизы, книги по различным отраслям знаний, главным образом по компьютерной проблематике, и многое другое. Информация в FTP-архивах разделена на три категории (рис. 6.16): • защищенная информация, режим доступа к которой определяется ее владельцами и разрешается по специальному соглашению с потребителем; • информационные ресурсы ограниченного использования, к которым относятся, например, ресурсы ограниченного времени использования или ограниченного времени действия т. е. потребитель может использовать текущую версию на свой страх и риск, но никто не будет оказывать ему поддержку; • свободно распространяемые информационные ресурсы, или freeware, если речь идет о программном обеспечении. К этим ресурсам относится все, что можно свободно получить по сети без специальной регистрации. Это могут быть документация, программы или что-либо еще. Протокол FTP (File Transfer Protocol) — один из старейших протоколов в Internet; обмен данными в FTP проходит по TCP-каналу и построен по технологии «клиент—сервер». В FTP соединение инициируется интерпретатором протокола пользователя. Управление обменом осуществляется по каналу управления в стандарте протокола Telnet. Команды FTP генерируются интерпретатором протокола пользователя и передаются на сервер. Ответы сервера отправляются пользователю также по каналу управления. Команды FTP определяют параметры канала передачи данных и самого процесса передачи. Они также определяют и характер работы с удаленной и локальной файловыми системами. В протоколе большое внимание уделяется различным способам обмена данными между машинами разных архитектур, которые могут иметь различную длину слова и часто различный порядок битов в слове. Кроме того, различные файловые системы работают с разной организацией данных, которая выражается в понятии метода доступа. Практически для любой платформы и операционной среды существуют как серверы, так и клиенты. Ниже описываются стандартные сервер и клиент Unix-подобных систем [31, 34]. Программное обеспечение доступа к FTP-архивам. Для работы с FTP-архивами необходимо следующее программное обеспечение: сервер, клиент и поисковая программа. Сервер обеспечивает доступ к ресурсам архива из любой точки сети, клиент — доступ пользователя к любому архиву в сети, а поисковая система — навигацию во всем множестве архивов сети. 257
Сервер протокола — программа ftpd. Команда ftpd предназначена для обслуживания запросов на обмен информацией по протоколу FTP. Сервер обычно стартует в момент загрузки компьютера. Каждый сервер имеет свое описание команд, которое можно получить по команде help. Возможен вход в архив по идентификатору пользователя anonimous или ftp. В этом случае сервер принимает меры по ограничению доступа к ресурсам компьютера для данного пользователя. Обычно для таких пользователей создается специальная директория ftp, в которой размещают каталоги bin, etc и pub. В каталоге bin размещаются команды, разрешенные для использования, а в каталоге pub — собственно файлы. Каталог etc закрыт для просмотра пользователем и там размещены файлы идентификации пользователей. Рассмотрим некоторые команды протокола. Обычно при передаче групп файлов для каждого файла запрашивается подтверждение. Для того чтобы избежать этого перед приемом/передачей, следует выдать команду prompt. Последняя переключает режим запроса подтверждения и при повторном использовании этой команды состояние запроса подтверждения восстанавливается; bin — после выдачи этой команды по умолчанию данные будут передаваться в режиме передачи двоичных данных, что весьма существенно, так как в режиме ASCII нельзя передать программы и архивированные данные. Часто бывает полезно включить режим bin для символьных данных с произвольной длиной строки, например файлов postscript (*.ps); quit — команда выхода из ftp. Программа обмена файлами ftp — это интерфейс пользователя при обмене файлами по одноименному протоколу. Программа устанавливает канал управления с удаленным сервером и ожидает команд пользователя. Если команда ftp работает с пользователем и ожидает его команд, то на экране отображается приглашение ftp>. Вот некоторые команды данного режима: open — по этой команде открывается сеанс работы с удаленным сервером: ftp>оpen polyn.net.kiae.su; После выдачи команды последуют запросы идентификаций пользователя. user регистрация пользователя: ftp> user anonymous; В данном случае пользователь не имеет особых прав доступна удаленном сервере и поэтому регистрируется как аноним. В ответ на запрос идентификации пользователю следует внести свой почтовый адрес; cd и Ls (dir) — назначение этих команд достаточно очевидно — навигация по дереву файловой системы и просмотр содержания каталогов. Так как в процессе приема-передачи участвуют две машины, то кроме навигации в удаленной файловой системе нужна еще навигация в локальной файловой системе. Для этой цели служит команда lcd (локальная cd). Кроме того, пользователь может выдать и любую команду локальной оболочки, если предварит ее символом «!»: По этой команде будет выдано имя текущей директории на локальной машине. Команды get, put, mget, mput и bin (прием/передача данных). По командам get и put можно принять или передать один файл: 258
Команды mget, mput предназначены для приема/передачи группы файлов: Windows Commander. Функции FTP-клиента встроены, например, в программную оболочку Windows Commander. На рис. 6.17 отображен экран настройки на связь с FTPcepвером. Конфигурации каждой настройки запоминаются в меню Connection и включают в себя: • адрес FTP-сервера (здесь — ftp.inion.ru); • имя пользователя и пароль (здесь — anonimous); • имя удаленного каталога в файловой системе FTP (здесь – w_inion/irb). После установления связи на одной из панелей отображается удаленный каталог (рис. 6.18 — слева удаленный каталог, справа — локальный). Передача файлов в обе стороны (Upload и Download) осуществляется обычным выделением файлов (директорий) и копирования их по команде <F5> (рис. 6.19). 259
Usenet Распределенная файловая система Usenet — система телеконференций Internet. (Данный термин не очень удачен — в Internet есть и другие средства, которые также реализуют принцип телеконференций.) Пользователи Usenet предпочитают придерживаться термина newsgroup или group, который можно перевести как группа новостей (группа) — это постоянно изменяющийся набор сообщений, входящих в область интересов участников данной группы. Статья или сообщение отправляется в телеконференцию пользователем и становится доступной для всех подписчиков группы. Данным способом распространяется большинство сообщений Internet, например списки часто задаваемых вопросов (FAQ) или реклама программных продуктов. Подписка подразумевает процедуру оповещения пользователя о появлении новых статей по интересующей его теме. Сообщение оформляется в соответствии со стандартом почтового сообщения Internet. С точки зрения структуры информационного ресурса Usenet организована как иерархический каталог, узлами которого являются группы новостей. Сообщения в группе обычно не задерживаются более нескольких дней (стандартное значение по умолчанию — 5). Проиллюстрировать такую организацию можно на примере группы соmр (компьютеры и компьютерные технологии) на рис. 6.20. 260
Пользователь осуществляет подписку на одном из серверов Usenet, который террирориально ближе для него (обычно это машина, на которой расположены все информационные ресурсы организации или учебного заведения). По мере поступления новых сообщений от пользователей серверы обмениваются между собой этой информацией. Первые версии системы появились в 1979 г. в Университете штата Северная Каролина и функционировали на основе межмашинного Unix-протокола UUCP. В 1986 г. система была впервые реализована на основе нового специального протокола обмена новостями Network News Transfer Protocol (NNTP — RFC-977). Протокол обмена новостями и принципы построения системы. Протокол NNTP пришел на смену UUCP, и его целью было Упорядочить обмен информацией между серверами Usenet. Протокол NNTP определяет запросно-ответный механизм обмена сообщениями между серверами и сервером и программами-клиентами. Для этой цели в протоколе определен набор команд и ответов на них. Весь диалог осуществляется в текста ASCII, причем каждая команда состоит из идентификатора и параметров. По команде group выбирается группа новостей. При этом указатель статьи в группе устанавливается на первую запись группе. По команде help можно получить список разрешенных для использования команд. Команды last и next перемещают указатель текущей строки в группе, команда list выдает список групп с указанием количества новых статей в них и начальным и конечным номерами статей. По командам newgroups и newnews можно получить списки новых групп и новых статей соответственно, а по команде post отправить свою статью на сервер. По командам article, body, head, stat запрашиваются статьи или их части. Существует два способа запросить статью: либо по ее идентификатору (указывается в заголовке), либо по номеру статьи в группе. Команда article возвращает заголовок и через пустую строку текст статьи, body — только тело статьи, head — только заголовок, а по команде stat устанавливается текущая позиция в группе по идентификатору статьи. При этом никакой информации не возвращается. Команда slave сообщает о наличии в качестве клиента подчиненного сервера, команда quit позволяет запершить сеанс. Gopher Файловая система Gopher была разработана для реализации распределенной базы документов, которые хранятся на машинах сети и предоставляются пользователю в виде единой иерархической файловой системы. Модель файловой системы наилучшим образом подходит для отображения структуры хранения документов по следующим очевидным соображениям: • иерархическое представление данных привычно большинству пользователей, так как иерархии широко используются во многих компьютерных представлениях (UNIX, MS-DOS, системах BBS); • Gopher рассчитан на применение недорогих решений как в аппаратной части, так и при программировании, поскольку первоначально он был ориентирован на разработку информационной системы университета (шт. Миннесота). Система соответствовала реальной структуре университета с его делением на факультеты и кафедры, что также хорошо описывается иерархической моделью данных; • модель файловой системы может быть легко расширена путем добавления к традиционным файлам и директориям других объектов, которые можно назвать виртуальными файлами. Такие виртуальные объекты могут быть поисковыми запросами или шлюзами в другие информационные ресурсы Internet. Вначале 261
система ориентировалась на два типа виртуальных файлов, добавленных к основным: информационный поиск по ключевым словам и записные/телефонные книжки. Ресурсы Gopher. Gopher представляет весь Internet (серверы Gopher) в виде единой иерархической системы. Gopher-серверы объединены в единое информационное пространство в Internet. Многие архивы дублируют информацию из других архивов (так называемые «зеркала» — mirrors). В табл. 6.8 приведены основные типы ресурсов, доступных в системах Gopher, и их коды (для сетевых протоколов). Каждый файл на сервере должен быть описан следующим образом (табл. 6.9). Пример описания: 262
263
На экране пользователя отобразится следующая информация: Протокол Gopher. Протокол Gopher предназначен для работы по модели «клиент— сервер», при этом программа-клиент установлена на рабочем месте пользователя. Эта программа посылает запрос-селектор в ТСР – порт 70 (строку текста, которая может быть и пустой), а затем сервер отвечает блоком текста, в конце которого стоит точка. Никакой информации о состоянии соединения сервер клиенту не сообщает и, в свою очередь, не запрашивает. После ответа сервера соединение разрывается, а при новом запросе оно должно быть установлено заново. Простота этого алгоритма позволяет реализовать его даже на маломощных персональных компьютерах. Возвращаемый сервером текст представляет собой справку о содержании текущей директории (каталога), каждый элемент которой включает: • тип {объекта в директории); • имя (используется для отображения и в запросах); • неотображаемую строку выбора, которая обычно описывает путь, используемый удаленным хостом для доступа к объекту (селектор); • имя хоста (машины, к которой надо обращаться за информацией); • номер порта (на котором сервер данного объекта ожидает запрос). Пользователь реально видит только имя объекта. Программа-клиент может воспользоваться триадой селектор, хост, порт для поиска каждого объекта. Для использования поискового объекта из директории Gopher клиент посылает запрос специальному поисковому серверу Gopher. В этом случае клиент посылает серверу строку-селектор и ключевые слова, а получает от сервера список адресов документов, удовлетворяющих запросу. Программы, обслуживающие взаимодействие по протоколу Gopher, существуют практически для всех типов компьютерных платформ. Модель взаимодействия Gopher. Модель взаимодействия Gopher основывается на архитектуре «клиент—сервер» (рис. 6.21). Сервер ожидает запросы пользователя по назначенному порту TCP (по умолчанию это порт 70), а клиент посылает в этот порт запросы. Диалог «клиент—сервер» может выглядеть следующим образом: 264
Здесь первый символ каждой строки определяет тип ресурса — документ, каталог или поисковый критерий (соответственно цифры 0, 1,7 — см. табл. 6.4). Все остальные символы поел кода типа до первого символа табуляции задают отображаемую в дереве виртуальной файловой системы информацию. Интерфейсы-клиенты отображают эту информацию в виде идентификатора входа в элемент файловой системы. Тип информации обычно может отображаться в виде 265
изображения (иконки) соответствующего типа в графических интерфейсах или символа, например, V» для каталогов, в алфавитно-цифровых интерфейсах. Таким разом пользователю дается подсказка, с каким типом информации или программ он будет иметь дело, если выберет тот или иной вход в виртуальную файловую систему Gopher. Следующее идентификатором поле — строка-селектор, которую клиент отсылает на сервер, если пользователь выбрал данный вход. За селектором следует доменный адрес Gopher-сервера за тем номер порта, по которому осуществляется взаимодействие. Обычно это порт 70, но можно указать и другой, на котором ест обслуживание Gopher-клиента. На экране пользователя в данном случае будет отображаться только следующая информация: Если пользователь выбрал вход «Microcomputer Prices», то будет инициализировано следующее взаимодействие с Gopher-сервером. Gopher-клиент WSGopher32. Доступ к системе Gopher может осуществляться путем использования: Gopher-клиента; HTTP-шлюза; навигации по системе с помощью e-mail. Существует большое количество клиентских программ под различные платформы. Рассмотрим использование Gopher- клиента WSGopher32 (рис. 6.22). 266
Специализированные Gopher-клиенты позволяют наиб адекватно отображать информацию протокола. Для подключения к gopher-серверу, достаточно указать его адрес (Server name) — см. рис. 6.22, б. Навигация по серверу осуществляется в привычном режим просмотра структуры папок и их содержимого. Тип файла выделяет соответствующим значком. На рис. 6.22, в в интерфейсе программы WSGopher32 отображен корневой узел хоста gopher://horae.jumpjet.info. Кроме того, возможно использование обычного веб-браузепа для просмотра gopherресурсов. Поддержка протокола существует изначально в браузерах FireFox и других 267
браузерах на основе Mozilla. Обозреватель Opera поддерживает работу только через шлюз, а в Internet Explorer поддержка существует, однако обычно отключена по соображениям безопасности протокола. Включить ее можно, изменив значение в реестре: Поисковая программа VERONICA. VERONICA (Very Easy Rodent-Oriented Net-wide Index to Computerized Archives) является инструментом поиска, который позволяет быстро просматривать Gopher-пространство для получения отдельных файлов и каталогов. Она собирает данные точно таким же образом, как и другие АИПС, — посещает Gopherсерверы по всему миру, просматривает меню и запоминает их. Программа запускается из Gopher-клиента (рис. 6.23, а), результатом поиска является виртуальное меню, пунктами которого будут элементы с Gopher-серверов всего мира, которые содержат поисковые слова. Это временное меню работает таким же образом, как и любое другое Gopher-меню (рис. 6.23, б). Поданным, представленным на сайте gopher.floodgap.com, указано, что по состоянию на 17 мая 2006 г. последнее обновление поисковой базы было произведено 14 март 2006 г. и содержит 1 246 517 уникальных и проверенных селе торов, содержащихся на 148 серверах. По оценкам сопровождающих систему, поиск охватывает до 40 % всего gopher-пространства. 268
6.5. Распределенные информационные системы Internet Файловые системы Internet, рассмотренные выше, во многом аналогичны файловым системам операционных систем ЭВМ (UNIX, DOS и пр. [31]), которые они, собственно и имитируют. Навигация в таких структурах весьма ограничена — «вверх» «вниз» по ветвям каталогов (директорий). Поиск информации почти исключен, поскольку связь между содержанием данных наименованиями файлов или каталогов весьма ограничена. Альтернативным подходом является организация информационных систем, позволяющих проводить содержательный поиск данных в распределенной БД. Применительно к INTERNET такими технологиями являются WWW и WAIS. Информационные технологии WWW Основными компонентами данных технологий, состоящих в применении гипертекстовой модели к информационным ресурсам, распределенным в Internet, являются (рис. 6.24): • HTML — язык гипертекстовой разметки документов; • URL — универсальный способ адресации ресурсов в сети; • HTTP (Hypertext Transfer Protocol) — протокол обмена гипертекстовой информацией; • дополнительные средства (CGI, Java, JavaScript). 269
Ранее уже были рассмотрены основные возможности Н как приложения SGML к описанию типов документов. Здесь вкратце остановимся на навигационных компонентах HTML. Гипертекстовая база данных в концепции WWW — это набор текстовых файлов, написанных на языке HTML, который определяет форму представления информации (разметка) и структуру связей этих файлов (гипертекстовые ссылки) (рис. 6.25). Такой подход предполагает наличие еще одной компоненты технологии — интерпретатора языка. В World Wide Web функции интерпретатора разделены между сервером гипертекстовой базы Данных и интерфейсом пользователя. Сервер, кроме обеспечения доступа к документам и реализации гипертекстовых ссылок, осуществляет также препроцессорную обработку документов, в то время как интерфейс пользователя проводит интерпретацию конструкций языка, связанных с представлением информации. Язык разметки HTML. Описание интерфейсов и навигация. Язык HTML включает две основные компоненты: • средства отображения документа (рассмотрены выше); 270
• средства навигации и построения интерфейсов с пользователем. Гипертекстовые ссылки. Все рассмотренные ранее средства управления отображением текста являются дополнительными к основному элементу документа — гипертекстов ссылкам. Вот некоторые элементы HTML, реализующие данный механизм. LINK — элемент заголовка — используется для описания общих для всего документа гипертекстовых ссылок. Элемент имеет три атрибута: REL, REV и HREF, REL задает тип ссылки, REV обратную ссылку, a HREF определяет ссылку в форме URL. На данный элемент возложена нагрузка по программированию средств управления интерфейсом пользователя. При выборе соответствующей позиции в меню интерфейса пользователя или соответствующей этой позиции пиктограммы программа интерфейса должна генерировать запрос к серверу на получение документа, указанного в атрибуте HREF. Например; Данное предложение в заголовке HTML-документа означает, что при выборе режима Help на экране отобразится документ, который хранится по адресу http://polyn.net.kiae.su/ dss/syshelp.html. Таким образом появляется возможность строить системы контекстно-зависимых справок в интерфейсах, построенных по технологии WWW. Элемент <А. . . >......</А>, который называют «якорь» (anchor), применяется для записи гипертекстовой ссылки из тела документа; имеет несколько атрибутов, главным из которых является HREF (HyperText Reference). Простую ссылку можно записать в виде: Здесь значением атрибута HREF является адрес документа index.html на машине polyn.nct.kiae.su, доступ к которой осуществляется по протоколу HTTP, записанный в формат URL. Содержание элемента А, заключенное между метками начала и конца элемента, выделяется в тексте цветом, определенным для контекстных гипертекстовых ссылок. На рис. 6.25 привел пример использования в документе меток <А. . . >...<../А>, и его отображение интерфейсом Netscape. Яругой формой использования элемента А является определение точек внутри текста, на которые можно сослаться: Представление multimedia-информации. Система World Wide Web была ориентирована на графические средства представления информации. Первым шагом на этом пути была реализация возможности вставлять в текст графические объекты, затем появилась возможность запуска внешней программы для просмотра файла в форматах, отличных от ASCII (например, GIF). Таким образом, на любой информационный объект можно сослаться из документа HTML, вызвав его через внешнюю программу просмотра. Графические объекты могут использоваться в качестве идентификаторов гипертекстовых ссылок и для перехода по гипертекстовой сети. Для встраивания в документ графических образов используются элементы IMG и FIG. IMG — элемент встраивания в текст графического образа, например: 271
В данном примере атрибут SRC определяет адрес графического объекта, который надо встроить в документ, а атрибут ALT предназначен для отображения в интерфейсах, которые не поддерживают встраиваемую графику (типа Lynx). В последнем случае вместо картинки будет отображено содержание атрибута ALT. IMG можно использовать внутри гипертекстовой ссылки: В этом случае весь рисунок целиком используется как идентификатор гипертекстовой ссылки. Кроме того, в данном примере используется атрибут элемента IMG — ALIGN, который может принимать значения тор,MIDDLE, BOTTOM, LEFT, RIGHT и определяет, где относительно других символов текста в строке будет располагаться рисунок. Элемент FIG (развитие IMG) введен в стандарт языка для улучшения отображения графической информации и использования ее для разработки гипертекстовых баз данных. При использовании IMG текст разбивается на две части: до рисунка и после при этом реализуется обтекание картинки текстом (рис. 6.26). Элементы реализации интерфейсов в HTML ISINDEX — элемент заголовка документа — определяет использование HTML – документа для ввода запроса на поиск по ключевым словам: В приведенном примере атрибут HREF определяет адрес про граммы обработки запроса, а атрибут PROMPT – содержание приглашения. 272
FORM — средства встраивания элементов интерфейса в тело документа (механизм форм заполнения — FILL-OUT FORMS) – впервые были подробно описаны в инструкциях по использованию сервера NCSA. Посредством форм осуществляется передача параметров внешним программам, которые вызываются сервером, что сделало WWW универсальным интерфейсом ко всем ресурсам сети. Вот некоторые вложенные в FORM элементы HTML: INPUT — наиболее универсальный из всех элементов формы. Способ его отображения определяется атрибутом TYPE, который может принимать значения text, password, checkbox, radio, range, scribble, file, hidden, submit, reset, image. Атрибут NAME определяет идентификатор поля. Данный атрибут не отображается, но его значение передается обрабатывающей программе. Атрибут VALUE определяет значение поля. Данное значение передастся вслед за именем поля. Если разработчик указал этот атрибут в тексте документа, то это будет значение по умолчанию. Атрибут DISABLE защищает значение поля формы от изменения пользователем. Часто это бывает полезным при многократных обращениях к внешним базам данных и при коррекции запросов. Атрибут ERROR определяет текст сообщения об ошибке при неправильном вводе. Атрибут CHECKED используется в полях типа checkbox и radiobutton. Он определяет состояние данного поля (ВЫБРАНО/НЕ ВЫБРАНО) Атрибут SIZE определяет размер видимой части поля ввода. Для непропорциональных шрифтов он равен числу символов, для пропорциональных шрифтов — числу типографских интервалов. Атрибут MAXLENGTH определяет максимальное число символов, которое можно ввести в текстовое поле. Атрибуты MIN и MAX определяют диапазон разрешенных числовых значений для поля ввода. Атрибут SRC используется для задания адреса графического объекта, который можно использовать в поле ввода. Атрибут MD задает контрольную сумму для графики. Атрибут ALIGN определяет выравнивание текста. Приведем фрагмент HTML-документа с элементами группы FORM и их интерпретацию Web-обозревателем Konqueror (рис. 6.27, l): 273
В первой строке приведено простое текстовое поле с введенным в него значением по умолчанию. Это значение может быть изменено пользователем. В следующей строке отображено поле типа checkbox. Крестик в поле показывает, что оно выбрано (значение по умолчанию установлено атрибутом CHECKED). Ниже приведено поле radiobutton в виде кружка (так как в нем нет черной точки, это поле не выбрано); в поле password введен пароль, который не отображается, а заменяется звездочками; невидимое поле не отображается, а предназначено для реализации диалога с удаленными программами. Кнопка submit активирует передачу параметров серверу, в то время как Reset восстанавливает значения полей формы по умолчанию. Графическая кнопка аналогична кнопке Submit, только она передав также значения координат графического образа. TEXTAREA предназначен для ввода больших многострочных текстовых данных; это связано с ограничениями на длину си вольной строки. Элемент имеет два атрибута: ROWS - число видимых строк и COLS — число видимых символов в строке (рис. 6.27, 2): 274
Элементы SELECT и OPTION предназначены для организации меню, которое может быть падающим, множественным и графическим: в падающем меню можно выбрать только один элемент; в множественном — несколько; графическое меню предназначено Для выбора по графическому образу. Приведем пример организации меню (рис. 6.27, 3): В данном случае при отображении HTML-документа будет создано падающее меню с тремя элементами. Пользователь может выбрать один из этих элементов в качестве значения поля. HTTP (Hypertext Transfer Protocol) — протокол прикладного уровня, который разработан для обмена гипертекстовой информацией в сети Internet и используется в Word Wide Web с 1990 г Реальная информационная система требует гораздо большего количества функций, чем только поиск данных. HTTP позволяет реализовать в рамках обмена информацией широкий набор методов доступа. Программа-клиент посылает после установления соединения запрос серверу. Этот запрос может быть в двух формах: в форме полного запроса и в форме простого запроса. Простой запрос содержит метод доступа и запрос ресурса. Например: 275
В этой записи слово GET обозначает метод доступа GET, a http: //polyn.net. kiae . su/ — это адрес ресурса. Методы доступа — в практике World Wide Web реально используются три таких метода: POST, GET, HEAD. GET — метод, позволяющий получить данные, заданные в форме URI в запросе ресурса. Если ссылаются на программу, то возвращается результат выполнения этой программы, но не ее текст. Дополнительные данные, которые надо передать для обработки, кодируются в запрос ресурса. HEAD — в отличие от GET не возвращает тела ресурса. Используется для получения информации о ресурсе и для тестирования гипертекстовых ссылок. POST — метод разработан для передачи большого объема информации на сервер. Им пользуются для аннотирования существующих ресурсов, посылки почтовых сообщений, работы с формами интерфейсов к внешним базам данных и внешним исполняемым программам. В отличие от GET и HEAD в POST передается тело ресурса, которое является информацией из поля форм или других источников ввода. Средства расширения HTML-технологий. Фреймы — тип элементов, обеспечивающих возможность разделить рабочее окно программы просмотра на несколько независимых панелей. В каждый фрейм может быть загружена отдельная страница HTML. Спецификация CGI (Common Gateway Interface) определяет порядок взаимодействия сервера с прикладной программой, в котором сервер выступает инициирующей стороной, и задает механизм реального обмена данными и управляющими командами в этом взаимодействии, что не определено в HTTP. Главное назначение — обеспечение единообразного потока иных между сервером и прикладной программой, которая запускается под управлением сервера. CGI устанавливает протокол обмена данными между сервером и программой. При описании различных программ, которые вызываются сервером HTTP и реализованы в стандарте CGI, используют следующую терминологию. CGI – скрипт — программа, написанная в соответствии со спецификацией Common Gateway Interface. CGI – скрипты могут быть написаны на любом языке программирования (С, C++, PASCAL, FORTRAN и т. п.) или командном языке (shell, cshell, командный язык MS-DOS, Perl и т. п.). Шлюз — CGI – скрипт, который используется для обмена данными с другими информационными ресурсами Internet или резидентными приложениями (демонами). Обычная CGI-программа запускается сервером HTTP для выполнения некоторой работы, возвращает результаты серверу и завершает свое выполнение. Шлюз выполняется аналогично, однако он инициирует взаимодействие с третьей программой в качестве клиента. Если эта третья программа является сервисом Internet, например, Gopherсервером, то шлюз становится клиентом Gopher, который посылает запрос по порту Gopher, а после получения ответа пересылает его серверу HTTP. По аналогии осуществляется взаимодействие с серверами распределенных баз данных (например, Oracle). JavaScript — язык управления сценарием отображения Документа — является естественным продолжением HTML. По своей природе это объектно-ориентированный язык программирования, который, однако, не поддерживает инкапсуляцию объектов и полиморфизм методов. Объекты, над которыми можно выполнять различные операции в JavaScript — это элементы интерфейса Netscape Navigator и контейнеры HTML. Средствами этого языка могут быть реализованы многие полезные эффекты (мультипликация, контекстная помощь, проверка синтаксиса и многое другое). JavaScript не единственный язык управления сценария просмотра документов; известна аналогичная разработка – VBScript (на основе Visual Basic, фирмы Microsoft). 276
Java — объектно-ориентированный язык программирования, который связан с World Wide Web библиотекой классов описывающих элементы интерфейса пользователя (кнопки, поля ввода, меню, метки, графические объекты и пр.), порядок взаимодействия страниц World Wide Web с другими ресурсами сети через транспорт TCP/IP. Язык поддерживает возможность построения многопоточных программ. Программное обеспечение для World Wide Web Программное обеспечение World Wide Web можно разделить на группы по направлениям использования. Каждое из этих направлений определяется либо схемой взаимодействия компонентов Web-технологии, либо особенностями применения его субъектами обмена информацией в рамках World Wide Web. Принята следующая классификации программного обеспечения World Wide Web: • программы-клиенты (в том числе мультипротокольные браузеры); • программы просмотра документов в форматах, отличных от стандартных форматов Web; • программы-серверы протокола обмена гипертекстовой информацией (Web-серверы); • программы подготовки публикаций; • поисковые машины; • программы анализа статистики посещений. Рассмотрим некоторые из этих типов программ более подробно. Программы-клиенты — стандартны для World Wide Web. Первыми распространенными некоммерческими программами этого типа являлись Mosaic (графический интерфейс) и Lynx для алфавитно-цифрового режима доступа. Mosaic — графический интерфейс доступа в WWW, интерпретирует язык гипертекстовой разметки HTML и позволяет обмениваться данными по протоколу HTTP 1.0 (см. также рис. 2.7, 2.8). Arena позволяет интерпретировать версии языка, которые в дополнение к возможностям, существующим в Mosaic, также реализуют математические формулы, обтекание графики текстом, прозрачные графические образы и ряд других изобразительных средств. Lynx __ полноэкранный интерфейс доступа к WWW с алфавитно-цифровых устройств типа терминала VT100. Интерфейс поддерживает все возможности языка HTML 2.0 за исключением графики. Используя Lynx, можно не только просматривать базы данных WWW, но обмениваться данными с CGI – скриптами, размещенными на удаленных серверах. Line Mode Browser — самый простой интерфейс WWW. Он используется на любых устройствах отображения информации, в том числе и на терминалах типа TTY (телетайп). Мультипротокольные программы-браузеры. На роль стандартов в этом классе программного обеспечения претендуют две программы: Netscape Communicator (NC) и Microsoft Internet Explorer (IE). По своим возможностям и внешнему оформлению они довольно похожи. Основная задача этих программ — интерпретация разметки на языке HTML, интерпретация встроенных в HTML программ на одном из командных языков Web: JavaScript или VBScript, интерпретация байткодов Java, разбор спецификации ресурсов сети (обработка URI), взаимодействие с серверами по протоколам прикладного уровня стека протоколов TCP/IP. Netscape. Рассмотрим типовой интерфейс такой программы (рис. 6.28). В верхней части этого интерфейса расположено поле title документа. В нем отображается содержание контейнера TITLE. Ниже расположено текстовое меню настроек и управления просмотром. Под ним расположены пиктограммы графического меню управления просмотром. Затем следует поле закладок пользователя и поле location, которое определяет URL загруженного документа. Ниже расположено меню перехода на встроенные в браузер закладки, которые указывают на наиболее полезные с точки зрения 277
разработчиков программы узлы Web. Далее вниз следует рабочая область программы, в которой отображается содержание документа. Под ним расположены пиктограммы работы в защищенном режиме, поле status, в котором текущего документа или URLсоединения, линейка икон других модулей программы браузера. Текстовое меню открывает подменю Файл (File). В этом режиме определяется адрес загрузки документа (New, Open page), сохранение текущей страницы (Save, Save as...), режимы редактирования и обмена страницами, печати и выхода из окна или системы просмотра вообще. За File обычно следует Редактирование (Edit), в котором определяются режимы редактирования и поиска информации на текущей странице, а также режим настроек Preference. Последний чрезвычайно важен для настроек программы. Для того чтобы просмотреть/изменить настройки NN, необходимо, запустив программу, выбрать команду Edit/Preference в Главном меню. Появится диалоговое окно Preferences (Установки) — рис. 6.29. Слева расположено меню выбора опций настройки программы, справа — набор параметров, который соответствует выбранной опции. Символ «—» указывает на дополнительные опции. Символ «+» сообщает, что дополнительные опции не отображены. Выбирая ту или иную опцию, можно управлять отображением интерфейса браузера на экране монитора и настройками программы при взаимодействии с серверами Web. Наиболее существенные настройки браузера содержатся в двух группах настроек: Appearance (Появление) и Navigator (браузер NC). 278
В группе настроек Navigator, показанной на рис. 6.29, в правой части окна имеется три группы параметров. Переключатели в первой группе Navigator Starts With (Браузер стартует с) предназначены для настройки адреса начальной Web страницы. Так же, как и в случае IE, для начинающих рекомендуем первый вариант — Blank Page (чистая страница). Во второй области можно задать адрес домашней страницы. По умолчанию здесь стоит адрес Web-страницы фирмы Netscape nttp://home.netscape.com/. Наконец, в третьей области можно задать срок хранения адресов посещаемых страниц или очистить этот список. В подгруппе Language (Языки) так же, как и в браузере IE, обязательно должны присутствовать, по крайней мере, два языка: английский и русский. Подгруппа Application (Приложения) дает список всех приложений, которые могут взаимодействовать с браузером NC. Выбрать правильную кодировку текста можно, выполнив команду VIEW/Encording (Вид/Кодировка) в Главном меню браузера. В открывшемся списке необходимо выбрать кодировку Cyrillic (Windows-125I) и нажать клавишу <Enter>. Для того чтобы эта кодировка оставалась и в дальнейшем, необходимо сразу же еще раз выполнить указанные команды и выбрать последний пункт Set Default Encoding (установка кодировки по умолчанию) и опять нажать клавишу <Enter>. Вслед за Edit указано меню Вид (view). Данное меню отвечает за отображение информации о странице и позволяет обрабатывать перекодировку текста в тот код, который заказывается через режим Encoding. Практически именно этот режим позволяет читать русский текст, в какой кодировке он не был бы подготовлен. Меню Перейти (Go) позволяет быстро извлекать из запасников адреса пройденных гипертекстовых ссылок и снова возвращаться к просмотру страниц, на которые они указывают. Меню Компоненты (Communicator) позволяет запустить на выполнение другие модули системы, например, систему просмотра электронной почты или программу просмотра новостей. Мультипротокольный браузер Opera. При запуске Opera отображается диалог запуска, который содержит два основных параметра использования Opera (рис. 6.30, а): • открывать все окна Opera внутри программы (многодокументный интерфейс — MDI); 279
• открывать отдельное окно приложения для каждого окна Opera (однодокументный интерфейс — SDI). Рассмотрим элементы пользовательского интерфейса Opera. Главная панель содержит набор кнопок, которые позволяют осуществлять собственно навигацию в Internet: • создавать новые окна для навигации; • открывать и сохранять файлы на компьютере; • распечатывать Web-страницы; • осуществлять поиск текста на Web-странице; • отображать список; • перемещаться назад и вперед по посещенным страницам в одном окне; • получать самую последнюю версию страницы (обновление); • осуществлять переход к домашней странице; • получать доступ к закладкам в активной папке закладок; • располагать все окна в Opera каскадом, по вертикали и горизонтали. Пользователь может настроить главную панель, щелкнув по ней правой кнопкой мыши или из раздела вид главного меню. 280
Личная панель постоянно отображает на экране наиболее посещаемые закладки, поэтому пользователь может получить прямой доступ к ним, минуя список. На личной панели можно также поместить любимые средства поиска в Internet, тем самым пользователю не нужно будет выбирать их из списка. Панель адреса. На панели адреса расположены следующие элементы (слева направо): • значок замка — показывает уровень безопасности узла; • кнопка рисунка — переключает отображение рисунков на странице; • кнопка режима отображения— переключает режим автора и режим пользователя; • кнопка просмотра— включает предварительный просмотр печатной версии страницы; • поле адреса — поле ввода Web-адресов страниц; • раскрывающийся список адресов — обеспечивает доступ к ранее введенным адресам; • кнопка «пуск» — осуществляет переход к введенному адресу; • поле поиска — осуществляет прямой поиск в Internet; • раскрывающийся список поиска — обеспечивает выбор средства поиска; • кнопка поиска — выполняет поиск; • поле масштаба — изменяет масштаб отображения Web-страниц; • раскрывающийся список масштаба— выбирает уже существующее значение масштаба. Панель окон (для MDI). Если запустить Opera с использованием многодокументного интерфейса (MDI), все окна будут отображаться внутри программы (рис. 6.30, а). Панель окон дает возможность управления всеми открытыми окнами и доступа к ним, и заменяет панель страниц, которая отображается при использовании однодокументного интерфейса (SDI). Панель страниц (для SDI). Если запустить Opera использованием однодокументного интерфейса (SDI), все окна программы будут отображаться как окна отдельных приложений. Но дополнительно в распоряжении пользователя будет возможность открывать несколько страниц внутри каждого окна Орera. Панель страниц обеспечивает доступ к этим страницам с помощью изящных вкладок, и заменяет панель окон, которая используется для многодокументного интерфейса (MDI). Панель загрузки. При загрузке Web-страницы выводится панель загрузки. Она отображает следующую информацию (слева направо): • объем загруженной страницы, передаваемой на компьютер (в процентах); • количество загруженных рисунков и их общее количество; • общий объем загруженных данных; • среднюю скорость передачи данных во время загрузки страницы; • время, прошедшее с начала загрузки; • текущее состояние загрузки страницы. Браузер Mozilla Firefox. Mozilla Firefox является Internet-браузером, предназначенным для просмотра Web-страниц и поиска в Internet, который реализован в различных ОС — Windows, Linux, Mac OS. Навигация по Web-страницам. Просмотр начальной страницы. При запуске Firefox открывает начальную страницу (рис. 6.31, /). По умолчанию это будет домашняя страница Firefox. Чтобы отобразить на экране больше содержимого, можно использовать полноэкранный режим. В полноэкранном режиме 281
панели Firefox сворачиваются в одну маленькую панель. Чтоб включить полноэкранный режим, следует выбрать пункт вид\ Полноэкранный режим или нажать <F11>. Чтобы быстро перейти к начальной странице, следует нажать <Alt+Home>. Переход на другую страницу. Чтобы перейти на другую Web-страницу, наберите ее Internet-адрес или URL R панели навигации (рис. 6.31, 3). Адрес страницы обычно начинается с префикса http: //, за которым следует одно или несколько слов определяющих адрес (например, http://www.mozilla.org/). Возвращение к просмотренным страницам. Существует несколько путей, чтобы возвратиться к просмотренным страницам, например, чтобы перейти назад или вперед на одну страницу, следует нажать на кнопки (Назад) или (Вперед). Остановка загрузки и обновление страницы. Если страница загружается слишком медленно или нет необходимости открыть эту страницу, надо нажать кнопку Стоп Просмотр страниц во вкладках. При работе сразу с несколькими Web-страницами в одно и то же время можно открывать их во вкладках для более быстрой и удобной работы в Internet. Поиск в Internet. Можно легко произвести поиск нужной Web-страницы в Internet, набрав несколько слов в панели поиска Firefox. Поиск выделенных слов на Web-странице. Firefox позволяет искать в Internet слова, которые выделены мышью на Web-странице. Firefox откроет новое окно и использует поисковую машину по умолчанию для поиска по выделенным словам. Поиск на странице. Чтобы найти текст на странице, которую вы просматриваете в данный момент в Firefox, следует выбрать пункт меню правка\Найти на этой странице…, после этого в нижней части окна Firefox появится новая панель, в которой следует набрать искомый текст (рис. 6.31, 6). Копирование части страницы. Чтобы скопировать текст со страницы, следует выделить текст, выбрать пункт меню Правка\Копировать, после этого можно вставить текст в другие программы. Сохранение изображения со страницы. Необходимо разместить указатель мыши над изображением (рис. 6.32, /), нажать <Ctrl> и щелкнуть клавишей мыши по изображению для отображения контекстного меню. Выбрав пункт Сохранить изображение как. . ., выбрать расположение файла, в котором будет сохранено изображение, набрать имя файла, в который будет сохранено изображение (рис. 6.32, 2), и нажать кнопку Сохранить. 282
Печать страницы. Чтобы распечатать текущую, страницу следует выбрать пункт меню Файл\Печать .... Как будут выглядеть распечатанные страницы, можно увидеть, используя предварительный просмотр (выбрать пункт Файл\Предварительный просмотр — рис. 6.33). Управление различными типами файлов. Firefox может работать с многими типами файлов. Тем не менее для работы с некоторыми типами файлов, такими как фильмы или музыка, в Firefox необходимо установить дополнительные модули или вспомогательные приложения, которые позволяют Firefox взаимодействовать с подобными типами файлов. Если в Firefox не имеется необходимого вспомогательного приложения или модуля, он может только сохранять подобные файлы на жесткий диск Установка Firefox как браузера по умолчанию. Чтобы установить Firefox как браузер по умолчанию, следует перейти в меню Правка\Настройки, а затем в разделе Основное нажать на кнопку Установить как браузер по умолчанию. Клавиатурные сокращения и приемы работы с мышью. В табл. 6.10 приведен список наиболее часто используемых клавиатурных сокращений, принятых в Mozilla Firefox, и аналогичных сокращений, используемых в Internet Explorer и Opera. 283
284
285
В табл. 6.11 приведены основные приемы работы с мышью в Mozilla Firefox и аналогичные приемы, используемые в Internet Explorer и Opera. 286
Web-обозревателъ Konqueror (Unix/Linux). В качестве Web-обозревателя Konqueror полностью совместим со стандартом HTML 4.01, имеет встроенную поддержку языка JavaScript (ECMA-262), CSS (каскадные таблицы стилей) и двунаправленного письма (арабский и иврит), позволяет запускать приложения Java, поддерживает SSL (использующийся для безопасного сообщения в Internet), а также дополнительные модули Netscape (в частности, для проигрывания медиафайлов Flash, RealAudio и RealVideo). Среди особых возможностей — автодополнение вводимого текста и адресов Internet, импорт закладок из других обозревателей, открытие нескольких Webстраниц одном окне, а также выполнение функций клиента FTP. Во внешнем виде Konqueror практически все может быть на строено по вкусу пользователя — от стиля в целом, размера текста и значков до выбора необходимых панелей инструментов пунктов меню и назначения собственных клавиш быстрого вызова. Различные конфигурации Konqueror можно сохранить для последующего использования. Приводимые ниже иллюстрации относятся к версии LINUX SuSE. При работе с Konqueror, как и с любым другим приложением KDE, целесообразно использовать трехкнопочную мышь. Однако, если используется двухкнопочная мышь, нажатие средней кнопки можно заменить одновременным нажатием левой и правой (для этого необходимо соответствующим образом настроить систему). В то время как в системах Windows для открытия документов обычно используется двойной щелчок мышью, следует отметить, что Konqueror, как и другие программы KDE, по умолчанию воспринимает одиночный щелчок. Работа с Internet и поиск. При нахождении в Internet можно просматривать Web-страницы в Konqueror так же, как в любом другом обозревателе. На рис. 3.34 приведен пример экрана Konqueror. 287
Необходимо ввести адрес страницы в строку адреса, нажать клавишу <Enter> или кнопку Переход справа от строки адреса, и Konqueror загрузит и отобразит указанную страницу. Сообщение узел неизвестен обычно означает, что не установлена связь с Internet (или указан неверный адрес страницы). Если эта страница ранее посещалась, Konqueror облегчит ввод адреса с помощью функции автозавершения текста. Имеется также возможность выбрать нужный адрес из списка посещенных страниц, для этого следует воспользоваться разделом Журнал на панели навигации. Если необходимо произвести поиск в Internet, специальные Web-сокращения помогут легко указать нужную поисковую машину. В табл. 6.12 приводятся основные действия при навигации по Web-страницам. Web-сокращения. В Konqueror имеется возможность пользовать Web-сокращения — сокращенные названия поисковых машин, с помощью которых поиск в Internet активизируется вводом искомой фразы в строке адреса (без захода на главную страницу поисковой машины). 288
Например, если ввести в строке адреса gg: konqueror и нажать <Enter>, обозреватель автоматически передаст поисковой машине Google запрос показать информацию об обозревателе Konqueror, которая есть в Internet. Чтобы просмотреть список доступных Web-сокращений и добавить новые, следует выбрать пункт меню Настройка \ Настройка Konqueror..., в появившемся окне войти в раздел Настройки и щелкнуть по значку Wеb-сокращения. Идентификация обозревателя. Когда Konqueror подключается к какому-либо серверу в Internet, он сообщает туда некоторые собственные данные (название, версия, система и т. д. или «User Agent»), исходя из которых сервер пересылает обозревателю такой вариант страницы, который в Konqueror будет выглядеть наилучшим образом. Это связано с тем, что у каждого обозревателя есть свои особенности, и не во всех обозревателях одна и та же страница будет выглядеть одинаково. Сохранение и печать страниц. Если необходимо сохранить текущую Web-страницу на жестком диске, следует выбрать пункт меню Адрес\Сохранить как. . . . При наличии на странице врезок (frames) каждая из них может быть сохранена отдельно, если щелкнуть по ней левой кнопкой мыши и выбрать пункт меню Адрес\Сохранить врезку как. . . В табл. 6.13 приводятся различные варианты команд сохранения и печати страниц. Программы-серверы. Сервер WWW — программа, которая принимает запросы от WWWклиентов и отвечает на них. В качестве ответа может быть возвращен HTML-документ, хранящийся в базе данных сервера, графический образ, аудиозапись, фильм или ответ внешней программы. Сервер обменивается данными не только с клиентами, но и с CGIскриптами. В настоящее время серверы WWW существуют для всех типов компьютерных платформ и операционных систем. Серверы для Unix-систем: HTTPD (NCSA) — весьма распространен в сети; большое количество клиентов настроены для работы с этим типом сервера, А р а с h i e — некоммерческое развитие сервера NCSA с учетом спецификаций защиты данных от несанкционированного доступа; WN-сервер — реализует механизм графического стека ссылок в себе самом, а не через внешний скрипт, что повышает защищенность данных. Кроме того, данный сервер позволяет воспользоваться механизмом обновления информации протокола HTTP для организации видеоклипов. 289
Сервер Win HTTPD — это сервер для Windows. Он является функционально полным сервером WWW для этого типа операционной системы. XML-технологии и поиск данных. BizQuery. Просмотр XML-Документов осуществляется специальной программой анализатором. На сегодняшний день разработано около десятка подобных анализаторов. В браузере Internet Explorer 5 предусмотрен анализ XML-документов. Анализ документа в Internet Explorer 5 осуществляется тремя вариантами: просмотр аналогично HTML-документу, форматирование документа с использованием специальных стилевых таблиц — XSL и анализ с помощью сценариев, написанных на Java Script или VBScript. Поиск нужного элемента или поддерева осуществляется с помощью XQL-запроса. XQL является частью XML и переводится как язык запросов для XML (XML Query Language). Широко обсуждается вопрос об утверждении языка XQL в качестве стандарта, который может заменить SQL Синтаксис языка запросов очень гибок и позволяет осуществлять поиск элемента как по названию, значению атрибутов со держанию, так и учитывать вложенность и положение в дереве элементов. С помощью запросов мы можем выделять из общего дерева необходимые нам элементы и применять к ним необходимые инструкции. Запрос возможно применять как к самому XML-документу, так и к ссылкам URL. Язык запросов напоминает обычный способ определения пути к ресурсу — список узлов дерева, разделенных символом «/». Для указания на текущий элемент используется символ «.» на родительский — «..», для выделения всех дочерних элементов — символ «*», для выделения элемента, расположенного просто «ниже» по дерену (не важно, на 290
каком именно уровне вложенности) — «//». Условие на значение в запросе должно заключаться в символы «f« и «]». Для выбора значения атрибута в условии указывается символ «@». Примеры простых XQL-шаблонов: Система виртуальной интеграции BizQuery на основе технологий XML и UML является результатом работы исследовательской группы, которая на протяжении многих лет занимается вопросами исследования и разработки методов управления XML - данными. Основные возможности BizQuery заключаются в следующем: • интегрированный доступ к нескольким источникам данных, которые могут быть реляционными или содержать XML-данные; • использование XML как для внутреннего представления данных, так и для представления результата; • представление глобальной схемы интегрированных данных в терминах XML, так и в терминах UML; • возможность формулировки запросов к интегрированным данным с использованием декларативных языков запросов; • развитая обработка запросов, включая оптимизацию запросов; декомпозицию запросов на частичные запросы, адресуемые к индивидуальным источникам данных; формирование окончательного результата с потенциальным выполнением соединений и трансформаций данных. Приведем пример запроса. Предположим, необходимо обратиться к двум документам одного реляционного источника и выдать данные об отделах, в которых имеются сотрудники моложе 20 лет. Схемы документов-источников в виде DTD (определение типа документа) имеют следующий вид: (см. также гл. 2, рис. 2.5): 291
Запрос содержит полусоединение (определяется раздела for и where) двух документов одного источника, которое может быть выполнено на стороне источника, а также трансформаций не поддерживаемую реляционным источником. Протокол Z39.50 Данный протокол ориентирован на информационный поиск в удаленных базах данных. Это — протокол прикладного уровня в рамках семиуровневой эталонной модели взаимодействия открытых систем, разработанной Международной Организацией Стандартов (ISO), и поэтому может быть реализован в различных типах сетей (например, в сетях TCP/IP, IPX/SPX, OSI) независимо от реализации транспортного уровня. Его назначение — предоставить компьютеру, работающему в режиме «клиент», возможности поиска и извлечения информации из другого компьютера, работающего как информационный сервер. Особенностями протокола Z39.50 является возможность сохранения состояний системы и присвоение каждому состоянию соответствующего идентификатора. Эта особенность протокола позволяет производить «навигацию во времени» т. е. в любой момент можно вернуться в определенную точку поиска, произведенного ранее. Наличие такой «памяти» позволяет использовать результаты, полученные ранее, в составлении дальнейших запросов. Первоначально многие Z39.50-пршюжения создавались исключительно для использования с библиографическими данными (например, электронные Online-версии библиотечных каталогов). Однако в настоящее время протокол развит настолько, что позволяет обрабатывать различные данные — финансовую, химическую, техническую информацию, тексты и изображения. Технология сетевого доступа к базам данных по протоколу Z39.50 существенно отличается от других технологий. Различие обусловлено самой сутью протокола: его ориентацией на работу с базами данных, абстрагированных от конкретных систем. Состав протокола Z39.50. В основе Z39.50 лежит модель абстрактной базы данных. Каждый элемент этой модели имеет описание с однозначным толкованием и стандартизуется с присвоением уникального идентификатора — OID. Термин база данных в спецификации Z39.50 означает набор файлов каждый из которых имеет свое уникальное имя. Единицей хранения информации, которая может быть найдена при обращении к базе данных, является запись файла. Все записи одного файла должны иметь одинаковую структуру (т. е. состоять из одного и того же набора элементов и точек доступа). Точка доступа — это уникальный или неуникальный ключ, который может быть указан самостоятельно или в совокупности с другими ключами в поисковом критерии. Ключ может быть элементом данных, состоять из нескольких элементов или быть частью элемента. Работа с каждой конкретной СУБД согласно Z39.50 должна быть организована только через эту абстрактную модель путем обмена пакетами данных (PDU), содержащими последовательности объектов, идентифицируемых по меткам. В стандарте описаны следующие классы объектов: 292
• контекст приложения (context); • протокольные блоки данных — protocol data unit (pdu); • атрибуты (attributeset); • диагностика (diagnostic); • структура записей (recordsyntax); • синтаксис преобразований (transfersyntax); • отчет по ресурсам (resourcereport); • контроль доступа (accesscontrol); • расширенный сервис (extendedservice); • пользовательская информация (userinfoformat); • элементы (elementspec); • варианты (variantset); • схема данных (schema); • схема меток (tagset). Внутри класса объекты идентифицируются номерами, добавляемыми к номеру класса. Например, в классе recordsyntax {1.2.840.10003.5} объекты имеют OID: Unimarc {1.2.840.10003.5.1}, USmarc {1.2.840.10003.5.10}, SUTRS {1.2.840.10003.5.101} и т. п. Модель службы 239.50 предусматривает обмен сообщениями типа «запрос—ответ» между соответствующими приложениями – клиентом и сервером. Формат таких сообщений и определяется протоколом Z39.50. После установления ТСР-соединения (или любого другого, зависящего от способа передачи данных) устанавливается 239.50соединение, посредством обмена протокольными блоками данных — Protocol Data Unit (PDU). PDU состоят из набора тегов, определяющих тип PDU (запрос или ответ на инициализацию сессии, запрос на поиск зультат поиска, запрос представления, ответ представления, запрос или ответ на закрытие сессии и т. д.), физические параметры сеанса, виды услуг, поддерживаемых клиентом и сервером параметры поиска, содержание запроса, сообщения о проведенном поиске и т. д. Получив от клиента PDU на инициализацию сессии, сервер формирует ответ — сообщения о параметрах сеанса, видах услуг поддерживаемых клиентом и сервером, после получения которого клиентом 239.50-соединение считается установленным. Далее клиент может либо продолжить работу с такими параметрами, либо закрыть соединение и попытаться затем установить новое — быть может, с другими параметрами. Передавать запрос на поиск информации пользователь может только после установки соединения. Таким образом, протокол Z39.50 описывает интерактивную сессию между источником запросов и приемником, обслуживающим эти запросы. Полный информационный сервис, как он понимается в стандарте, состоит из инициализации сессии, передачи данных и завершения сессии. Параметры сессии и ее окружение источник и приемник определяют в процессе инициализации. Согласно Z39.50 существует семь основных видов информационного обмена в рамках распределенной ИПС: • инициализация сессии; • поиск информации по запросу; • представление результатов поиска; • удаление результатов поиска; • контроль доступа к информационному ресурсу; • контроль прав доступа к информационному ресурсу; • завершение сессии. 293
Завершение сессии — это закрытие Z-соединения и последующее закрытие ТСРсоединения. В течение сеанса происходит обмен PDU, инициатором которых, чаще всего, выступает клиент. Основные PDU следующие: Контрольные вопросы 1 Что такое архитектура «клиент—сервер» и каковы основные видности программно-аппаратных средств на клиентской и се стороне? 2 Дайте определение протокола в информационных сетях. 3. В чем преимущества систем с коммутацией пакетов? 4. Определите 7-уровневую модель протоколов в открытых система. 5. На что ориентированы протоколы 1—3 уровня в 7-уровнево модели OSI? 6. На что ориентированы протоколы 5—7 уровня в 7-уровнево модели OSI? 7. Какой уровень прокладывает путь через сеть? 8. Какой уровень обеспечивает обнаружение и исправление ошибок? 9. Какой уровень определяет процедуру представления перед информации в нужную сетевую форму? 10. Что входит в систему адресов Internet? 11. Какую структуру имеет адрес Ethernet? 12. Какую структуру имеет IP-адрес? 13. Что такое выделенные IP-адреса? 14. Что из себя представляет система доменных имен? 15. Что такое сервер доменных имен? 16. Какие разновидности URL вам известны? 17. Какие протоколы транспортного уровня вы знаете? 18. Что такое инкапсуляция и фрагментация? 19. Что такое TCP/UDP—порт? 20. Что представляют собой протоколы управления маршрутизацией? 21. Какова структура пакета TCP? 22. Что представляет собой ARP? 23. Расставьте на места уровни в архитектуре протокола TCP/IP. 24. Какую функцию описывает протокол TCP? 25. Какую функцию описывает протокол IP? 26. Что такое класс локальной сети, входящей в Internet? 27. Каковы преимущества и недостатки конфигурации «звезда»? В каких локальных сетях она применяется? 28. Каковы преимущества и недостатки конфигурации «общая шина»? В каких локальных сетях она применяется? 29. Каковы преимущества и недостатки конфигурации «кольцо»? В каких локальных сетях она применяется? 30. Какие смешанные топологии вам известны и с помощью какого сетевого оборудования они реализуются? 31. Какие прикладные протоколы Internet вы знаете? 32. Какие информационные ресурсы Internet вы знаете? 294
33. Какова структура ресурса Usenet? 34. Какова структура распределенной ФС FTP? 35. Перечислите команды Telnet. 36. Какие протоколы электронной почты вам известны? 37. Перечислите программы-клиенты электронной почты. 38. Перечислите команды прикладных протоколов электронной почты. 39. Что такое протокол NNTP? Перечислите команды протокола. 40. Перечислите команды протокола FTP. 41. Назовите программы-клиенты и серверы протокола FTP. 42. Что такое Copher? Какова структура взаимодействия программы-клиента и сервера? 43. Каков состав средств Web-технологий? Что такое CGI? 44. Перечислите команды протокола HTTP. 45. Каков состав программного обеспечения WWW? 46. Перечислите основные программы-клиенты и серверы WWW. 47. Перечислите основные форматы HTML. 48. Каковы основные возможности отображения документов? 49. Расскажите об организации гипертекстовых ссылок. 50. Каковы возможности браузера Netscape Navigator? 51. В чем состоит отличие протокола Z39.50 от других прикладных протоколов? 52. Почему использование протокола HTTP для реализации ИПС вызывает трудности? 53. Из каких фаз состоит взаимодействие по протоколу Z39.50? 295
Глава 7 ТЕХНОЛОГИИ РАСПРЕДЕЛЕННОЙ ОБРАБОТКИ ИНФОРМАЦИИ Основное назначение БД — многоцелевое параллельное использование данных, уже предопределяет наличие средств, которые должны обеспечить практически одновременный и независимый доступ к одним и тем же данным. При этом данные могут быть размешены как на одном, так и на нескольких компьютерах. Стремление к интеграции и управляемости (обеспечению целостности) естественно порождает стремление к централизации. Однако на практике наблюдается и стремление к децентрализации, в значительно большей степени отражающей организационную структуру предметной области и технологию порождения и использования хранимых данных. Разные фрагменты данных порождаются и используются обычно в разных подразделениях и организациях, зачастую — географически разобщенных. Разработка распределенных баз и технологий распределенной обработки существенно расширяет возможности, как создания, так и использования данных. 7.1. Распределенные базы данных Следует отметить, что общая тенденция развития технологий обработки данных вполне соответствует этапам развития средств вычислительной техники и информационных технологий, и в первую очередь — сетевых. Распределенные системы Классификация. Следует выделить два класса систем распределенной обработки и системы распределенных данных: • системы распределенной обработки в основном отражают структуру и свойства многопользовательских операционных систем с базой данных, размещенной на центральном компьютере; • системы распределенных данных обеспечивают обработку распределенных запросов, когда при обработке одного запроса используются информационные ресурсы, размещенные на различных ЭВМ сети. При этом, как и ранее, следует говорить как о распределенных файловых системах, так и о распределенных базах данных. Для распределенных баз данных свойственны следующие характеристики: • база данных — это логически связанные, разделяемые на некоторое количество фрагментов данные; • фрагменты распределяются по разным узлам, которые связаны между собой сетевыми соединениями; • может быть предусмотрена репликация фрагментов; • доступ к данным на каждом узле происходит под управлением СУБД, которая на каждом узле должна поддерживать работу как локальных приложений, так и глобальных. Основные условия и требования к распределенной обработке данных: • прозрачность относительно расположения данных (СУБД должна представлять все данные так, как если бы они были локальными); • гетерогенность системы (СУБД должна работать с данными, которые хранятся в системах с различной архитектурой и производительностью); • прозрачность относительно сети (СУБД должна одинаково работать в условиях разнородных сетей); • поддержка распределенных запросов (пользователь должен иметь возможность объединять данные из любых баз, даже если они размещены в разных системах); • поддержка распределенных изменений (пользователь должен иметь возможность изменять данные в любых базах, на доступ к которым у него есть права, даже если эти базы размещены в разных системах); 296
• поддержка распределенных транзакций (СУБД должна выполнять транзакции, выходящие за рамки одной вычислительной системы, и поддерживать целостность распределенной БД даже при возникновении отказов как в отдельных системах, так и в сети); • безопасность (СУБД должна обеспечивать защиту всей распределенной БД от несанкционированного доступа); • универсальность доступа (СУБД должна обеспечивать единую методику доступа ко всем данным). Поясним некоторые из этих требований: Прозрачность расположения. Прозрачный (для пользователя) доступ к удаленным данным предполагает использование в прикладных программах такого интерфейса с сервером БД, который позволяет переносить данные в сети с одного узла на другой, не требуя при этом модификации текста программы. Иными словами доступ к информационным ресурсам должен быть полностью прозрачен относительно расположения данных. Любой пользователь или любая прикладная программа оперирует с одной или несколькими базами данных. В том случае, когда прикладная программа и сервер БД выполняются на одном и том же узле, проблемы расположения не возникает. Для получения доступа к базе данных пользователю или программе достаточно указать имя базы, например: SQL Dbname. Однако в том случае, когда прикладная программа запускается на локальном узле, а база данных находится на удаленном, возникает проблема идентификации удаленного узла. Для того чтобы получить доступ к базе данных на удаленном узле, необходимо указать имя удаленного узла и имя базы данных. Если использовать жестко фиксированное имя узла в паре «имя_узла, имя_БД», то прикладная программа становится зависимой от расположения БД. Например, обращение к БД «host:stock», где первый компонент — имя узла, будет зависимым от расположения. Одно из возможных решений этой проблемы состоит в использовании виртуальных имен узлов. Управление ими обеспечивается специальным программным компонентом СУБД — сервером имен (Name Server), который адресует запросы клиентов к серверам. Прозрачность сети. Клиент и сервер взаимодействуют по сети с конкретной топологией; для поддержки взаимодействия всегда используется определенный протокол. Следовательно, оно должно быть организовано таким образом, чтобы обеспечивать независимость как от используемого сетевого аппаратного обеспечения, так и от протоколов сетевого обмена. Чтобы обеспечить прозрачный доступ пользователей и программ к удаленным данным в сети, объединяющей разнородные компьютеры, коммуникационный сервер должен поддерживать как можно R лее широкий диапазон сетевых протоколов (TCP/IP, DECnet SNA, SPX/IPX, NetBIOS, AppleTalk и др.). Автоматическое преобразование форматов данных. Как толь ко несколько компьютеров различных моделей под управлением различных операционных систем соединяются в сеть, сразу возникает вопрос о согласовании форматов представления данных Действительно, в сети могут быть компьютеры, отличающиеся разрядностью (16-, 32- и 64-разрядные процессоры), порядком следования байт в слове, представлением чисел с плавающей точкой и т. д. Задача коммуникационного сервера состоит в том чтобы на уровне обмена данными обеспечить согласование форматов между удаленным и локальным узлами с тем, чтобы данные, извлеченные сервером из базы на удаленном узле и переданные по сети, были правильно истолкованы прикладной программой на локальном узле. Автоматическая трансляция кодов. В неоднородной компьютерной среде при взаимодействии клиента и сервера возникает также задача трансляции кодов. Сервер 297
может работать с одной кодовой таблицей (например, EBCDIC), клиент — с другой (например, ASCII), при этом происходит рассогласование трактовки кодов символов. Поэтому, если на локальном узле используется одна кодовая таблица, а на удаленном — другая, то при передаче запросов по сети и при получении ответов на них необходимо обеспечить трансляцию кодов. Решение этой задачи также ложится на коммуникационный сервер. Однако ни одна из существующих СУБД не достигает этого идеала вследствие следующих практических проблем: • низкая и несбалансированная производительность сетей передачи данных, что в распределенных транзакциях сильно снижает общую производительность обработки; • обеспечение целостности данных в распределенных транзакциях базируется на принципе «все или ничего» и требует специального протокола двухфазного завершения транзакций, что приводит к длительной блокировке изменяемых данных; • необходимо обеспечить совместимость данных стандартного типа, для хранения которых в разных системах используются разные физические форматы и кодировки; • трудности выбора схемы размещения системных каталогов. Если каталог будет храниться в одной системе, то удаленный доступ будет замедлен. Если будет размножен, то изменения придется распространять и синхронизировать; • необходимо обеспечить совместимость СУБД разных типов и поставщиков; • увеличение потребностей в ресурсах для координации работы приложений с целью обнаружения и устранения тупиковых ситуаций в распределенных транзакциях. Типы распределенных СУБД В общем случае режимы работы с БД можно классифицировать по следующим признакам: • многозадачность — однопользовательский или многопользовательский; • правило обслуживания запросов — последовательное или параллельное; • схема размещение данных — централизованная или распределенная БД. Распределенные СУБД подразделяются на однородные и разнородные. В однородных системах все узлы используют один и тот же тип СУБД. В разнородных системах на узлах могут функционировать различные типы СУБД, использующие разные модели данных. Однородные системы значительно проще проектировать и сопровождать, добавляя новые узлы к уже существующей распределенной системе и повышая производительность системы за счет параллельной обработки информации. Разнородные системы обычно возникают в тех случаях, когда узлы, уже эксплуатирующие свои собственные системы с базами данных, со временем интегрируются в распределенную систему. В разнородных системах для организации взаимодействия между различными типами СУБД требуется обеспечить преобразование предаваемых сообщений, для чего каждый из узлов должен иметь возможность формулировать запросы на языке той СУБД, которая используется на их локальном узле или система должна взять на себя выполнение всех необходимых преобразований. Очевидны следующие преимущества и недостатки распределенных баз данных (табл. 7.1). 298
Распределенная СУБД должна иметь следующий набор функциональных возможностей: • расширенные службы установки соединений должны обеспечивать доступ к удаленным узлам и позволять передавать запросы и данные между узлами, входящими в сеть; • расширенные средства ведения каталога, позволяющие сохранять сведения о распределении данных в сети; • средства обработки распределенных запросов, включая механизмы оптимизации запросов и организации удаленного доступа к данным; • расширенные функции управления защитой, позволяющие обеспечить соблюдение правил авторизации и прав доступа к распределенным данным; • расширенные функции управления параллельным выполнением, позволяющие поддерживать целостность копируемых данных; • расширенные функции восстановления, учитывающие вероятность отказов в работе отдельных узлов и отказов линий связи. Соответственно, программные средства, обеспечивающие целевую (функциональную) обработку данных, должны быть организованы таким образом, чтобы обеспечить более эффективное использование совокупных вычислительных ресурсов за счет специализированного разделения функций обработки между центральным процессом СУБД и клиентскими функционально-ориентированными процедурами. 7 2- Клиент-серверные архитектуры распределенной обработки данных Практически все модели организации взаимодействия пользователя с базой данных, построены на основе модели «клиент – сервер». То есть предполагается, что приложения, реализующие какой-либо тип модели, отличаются способом распределения функций ранее приведенных групп обработки данных между как минимум двумя частями: • клиентской, которая отвечает за целевую обработку данных и организацию взаимодействия с пользователем; • серверной, которая обеспечивает хранение данных, обрабатывает запросы и посылает результаты клиенту для специальной обработки. В общем случае предполагается, что эти части приложения функционируют на отдельных компьютерах, т. е. к серверу БД с помощью сети подключены компьютеры пользователей (клиенты). Сервер — это программа, реализующая функции собственно СУБД: определение данных, запись-чтение данных, поддержка схем внешнего, концептуального и внутреннего уровней, диспетчеризация и оптимизация выполнения запросов, защита данных. Клиент — это различные программы, написанные как пользователями, так и поставщиками СУБД, внешние или «встроенные» по отношению к СУБД. Программаклиент организована в виде приложения, работающего «поверх» СУБД и обращающегося 299
для выполнения операций над данными к компонентам СУБД через интерфейс внешнего уровня. Инструментальные средства, в том числе и утилиты, не отнесены к серверной части очень условно. Являясь не менее важной составляющей, чем ядро СУБД, они выполняются самостоятельно, как пользовательское приложение. Основной принцип технологии «клиент—сервер» заключается разделении функций стандартного интерактивного приложения на четыре группы, имеющие различаю природу: • функции ввода и отображения данных; • чисто прикладные функции, характерные для данной предметной области (например, для банковской системы — открытие счета, перевод денег с одного счета другой и т. д.); • фундаментальные функции хранения и управления информационными ресурсами (базами данных, файловыми системами и т. д.); • служебные, играющие роль интерфейсов между функциями первых трех групп. Выделяются четыре основных подхода, реализованные в следующих моделях (или схемах): • файловый сервер (File Server — FS); • доступ к удаленным данным (Remote Data Access — RDAV , • север базы данных (DataBase Server — DBS); • сервер приложений (Application Server — AS). Файловый сервер (FS) Модель является базовой для локальных сетей персональных компьютеров. В свое время она была исключительно популярной среди отечественных разработчиков, использовавших такие системы, как FoxPRO, Clipper, Clarion, Paradox и т. д. Один из компьютеров в сети считается файловым сервером и предоставляет услуги по обработке файлов другим компьютерам. Здесь мы имеем дело с распределенной файловой системой. Файловый сервер работает под управлением сетевой операционной системы (например, Novell NetWare) и играет роль компонента доступа к информационным ресурсам (т. е. к файлам). На других компьютерах в сети функционируют приложения, в кодах которых совмещены компонент представления и прикладной компонент (рис. 7.1, а). Протокол обмена представляет собой набор низкоуровневых вызовов, обеспечивающих приложению доступ к файловой системе на файл-сервере. FS-модель послужила фундаментом для расширения возможностей персональных СУБД в направлении поддержки многопользовательского режима. В таких системах на нескольких персональных компьютерах выполняется как прикладная программа, так и копия СУБД, а базы данных содержатся в разделяемых файлах, которые находятся на файловом сервере. Когда прикладная программа обращается к базе данных, СУБД направляет запрос на файловый сервер. В этом запросе указаны файлы, где находятся запрашиваемые данные. В ответ на запрос файловый сервер направляет по сети требуемый блок данных. СУБД, получив его, выполняет над данными действия, которые были декларированы в прикладной программе. 300
К технологическим недостаткам модели относят высокий сетевой трафик (передача множества файлов, необходимых приложению), узкий спектр операций манипулирования данными («данные — это файлы»), отсутствие адекватных средств безопасности доступа к данным (зашита только на уровне файловой системы) и т. д. Собственно, перечисленное не есть недостатки, но следствие внутренне присущих FS-модели ограничений, определяемых ее характером. Недоразумения возникают в том случае, когда FS-модель используют не по назначению – например, пытаются интерпретировать как модель сервера базы данных. Удаленный доступ (RDA) Более технологичная RDA-модель существенно отличается от FS-модели характером компонента доступа к информационным ресурсам. Это, как правило, SQL-сервер. В RDAмодели коды компонента представления и прикладного компонента совмещены и выполняются на компьютере-клиенте. Последний поддерживает как функции ввода и отображения данных, так и чисто прикладные функции. Доступ к информационным ресурсам обеспечивается либо операторами специального языка (языка SQL, например, если речь идет о базах данных) или вызовами функций специальной библиотеки (если имеется соответствующий интерфейс прикладного программирования — API). Клиент направляет запросы к информационным ресурсам (например, к базам данных) по сети удаленному компьютеру. На нем функционирует ядро СУБД, которое обрабатывает запросы, выполняя предписанные в них действия и возвращает клиенту результат, оформленный как блок данных (рис. 7.1, 6). При этом инициатором манипуляций с данными выступают программы, выполняющиеся на компьютерах-клиентах, в то время как ядру СУБД отводится пассивная роль — обслуживание запросов и обработка данных. 301
Далее будет показано, что такое распределение обязанностей между клиентами и сервером базы данных — не догма: сервер БД может играть более активную роль, чем та, которая предписана ему традиционной парадигмой. RDA-модель избавляет от недостатков, присущих как системам с централизованной архитектурой, так и системам с файловым сервером. Основное достоинство RDA-модели заключается в унификации интерфейса «клиент— сервер» в виде языка SQL. Действительно, взаимодействие прикладного компонента с ядром СУБД невозможно без стандартизованного средства общения. Запросы, направляемые программой ядру, должны быть понятны обеим сторонам. Для этого их следует сформулировать на специальном языке. Но в СУБД уже существует язык SQL, о котором речь шла выше. Поэтому было бы целесообразно использовать его не только в качестве средства доступа к данным, но и как стандарта общения клиента и сервера. К сожалению, RDA-модель не лишена ряда недостатков. Во-первых, взаимодействие клиента и сервера посредством SOL-запросов существенно загружает сеть. Во-вторых, удовлетворительное администрирование приложений в RDA-модели практически невозможно из-за совмещения в одной программе различных по своей природе функций (функции представления и прикладные функции). Сервер баз данных (DBS) Наряду с RDA-моделью все большую популярность приобретает DBS-модель (рис. 7.1, в). Последняя реализована в некоторых реляционных СУБД (Informix, Ingres, Sybase, Oracle). Ее основу составляет механизм хранимых процедур — средство программирования SQLсервера. Процедуры хранятся в словаре базы данных, разделяются между несколькими клиентами и выполняются на том же компьютере, где функционирует SQL-сервер. Язык, на котором разрабатываются хранимые процедуры, представляет собой процедурное расширение языка запросов SQL и уникален для каждой конкретной СУБД. В DBS-модели компонент представления выполняется на компьютере-клиенте, в то время как прикладной компонент оформлен как набор хранимых процедур и функционирует на компьютере-сервере БД. Там же выполняется компонент доступа к данным, т. е. ядро СУБД. Достоинства DBS-модели очевидны: это и возможность централизованного администрирования прикладных функций, и снижение трафика (вместо SQL-запросов по сети направляются вызовы хранимых процедур), и возможность разделения процедуры между несколькими приложениями, и экономия ресурсов компьютера за счет использования единожды созданного плана выполнения процедуры. К недостаткам можно отнести ограниченность средств, используемых для написания хранимых процедур, которые представляют собой разнообразные процедурные расширения SQL, не выдерживающие сравнения по изобразительным средствам и функциональным возможностям с языками третьего поколения, такими, как Си или Паскаль. Сфера их использования ограничена конкретной СУБД, в большинстве СУБД отсутствуют возможности отладки и тестирования разработанных хранимых процедур. На практике часто используются смешанные модели, копт поддержка целостности базы данных и некоторые простейшие прикладные функции выполняются хранимыми процедурами (DBS-модель), а более сложные функции реализуются непосредственно в прикладной программе, которая работает на компьютере-клиенте (RDA-модель). Так или иначе, современные многопользовательские СУБД опираются на RDA- и DBS-модели и при создании ИС, предполагающем использование только СУБД, выбирают одну из этих двух моделей либо их разумное сочетание. Сервер приложений (AS) В AS -модели (рис. 7.1, г) процесс, выполняющийся на компьютере-клиенте, отвечает обычно за интерфейс с пользователем (т. е. реализует функции первой группы). Обращаясь за выполнением услуг к прикладному компоненту, этот процесс играет роль 302
клиента приложения (Application Client — АС). Прикладной компонент реализован как группа процессов, выполняющих прикладные функции, и называется сервером приложения (Application Server — AS). Все операции над информационными ресурсами выполняются соответствующим компонентом, по отношению к которому AS играет роль клиента. Из прикладных компонентов доступны ресурсы различных типов — базы данных, очереди, почтовые службы и др. RDA- и DBS-модели опираются на двухзвенную схему разделения функций. В RDAмодели прикладные функции приданы программе-клиенту, в DBS-модели ответственность за их выполнение берет на себя ядро СУБД. В первом случае прикладной компонент сливается с компонентом представления, во втором — интегрируется в компонент доступа к информационным ресурсам. В AS-модели реализована трехзвенная схема разделения функций, где прикладной компонент выделен как важнейший изолированный элемент приложения, для его определения используются универсальные механизмы многозадачной операционной системы, и стандартизованы интерфейсы с двумя другими компонентами. AS-модель является фундаментом для мониторов обработки транзакций (Transaction Processing Monitors — ТРМ) или, проще мониторов транзакций, которые выделяются особый вид программного обеспечения. В заключение отметим, что часто, говоря о сервере базы данных подразумевают как компьютер, так и программное обеспечение – ядро СУБД. При описании архитектуры «клиент—сервер» под сервером базы данных мы имели в виду компьютер. Ниже сервер базы данных будет пониматься как программное обеспечение — ядро СУБД. 7.3. Архитектура сервера баз данных Эволюция серверов баз данных В период создания первых СУБД технология «клиент—сервер» только зарождалась. Поэтому изначально в архитектуре систем не было адекватного механизма организации взаимодействия такого типа, в современных же системах он жизненно необходим. Первое время доминировала модель, в которой управление данными (функция сервера) и взаимодействие с пользователем были совмещены в одной программе (рис. 7.2, а). Затем функции управления данными были выделены в самостоятельную группу — сервер, однако модель взаимодействия пользователя с сервером соответствовала структуре «один к одному» (рис. 7.2, б), т. е. сервер обслуживал запросы ровно одного пользователя (клиента), и для обслуживания нескольких клиентов нужно было запустить эквивалентное число серверов. Выделение сервера в отдельную программу — шаг, позволяющий, в частности, поместить сервер на одну машину, а программный интерфейс с пользователем — на другую, осуществляя взаимодействие между ними по сети (рис. 7.2, в). Однако необходимость запуска большого числа серверов для обслуживания множества пользователей сильно ограничивала возможности такой системы. Проблемы, возникающие в модели «один к одному», решаются в архитектуре систем с выделенным сервером, способным обрабатывать запросы от многих клиентов. Сервер обладает монополией на управление данными и взаимодействует одновременно со многими клиентами (рис. 7.2, г). Логически каждый клиент связан с сервером отдельной нитью (thread) или потоком, по которому пересылаются запросы. 303
Такая архитектура получила название многопотоковой (multi-threaded). Она позволяет значительно уменьшить нагрузку на операционную систему, возникающую при работе большого числа пользователей. С другой стороны, возможность взаимодействия с одним сервером многих клиентов позволяет в полной степени использовать разделяемые объекты (начиная с открытых файлов и кончая данными из системных каталогов), что сильно уменьшав потребности в памяти и общее число процессов операционную системы, например, системой с архитектурой «один к одному» будет создано 50 копий процессов СУБД для 50 пользователей, тогда как системе с многопотоковой архитектурой для этого понадобится только один сервер. Однако такое решение привносит новую проблему. Так как сервер может выполняться только на одном процессоре, возникает естественное ограничение на применение СУБД для мультипроцессорных платформ. Если компьютер имеет, например, четыре процессора, то СУБД с одним сервером используют только один из них, не загружая оставшиеся три. В некоторых системах эта проблема решается заменой выделенного сервера на диспетчер или виртуальны й сервер (virtual server) (рис. 7.2, д), который теряет право монопольно распоряжаться данными, выполняя только функции диспетчеризации запросов к актуальным серверам. Таким образом, в архитектуру системы добавляется новый слой, который размещается между клиентом и сервером, что увеличивает трату ресурсов на поддержку баланса загрузки (load balancing) и ограничивает возможности управления взаимодействием «клиент—сервер». Во-первых, становится невозможным направить запрос от конкретного клиента конкретному серверу, по- вторых, серверы становятся равноправными — невозможно устанавливать приоритеты для обслуживания запросов. Современное решение проблемы СУБД для мультипроцессорных платформ заключается в возможности запуска нескольких серверов базы данных, в том числе и на различных 304
процессорах. При этом каждый из серверов должен быть многопотоковым. Если два эти условия выполнены, то есть основание говорить о многопотоковой архитектуре с несколькими серверами (multi-threaded, multi-server architecture), представленной на рис. 7.2, е. Повышение эффективности и оперативности обслуживания большого числа клиентских запросов, помимо простого увеличения ресурсов и вычислительной мощности серверной машины, Может быть достигнуто двумя путями: • снижением суммарного расхода памяти и вычислительных ресурсов за счет буферизации (кэширования) и совместного использования (разделяемые ресурсы) наиболее часто запрашиваемых данных и процедур; • распараллеливанием процесса обработки запроса — использованием разных процессоров для параллельной обработки изолированных подзапросов и/или для одновременного обращения к частям базы данных, размещенным отдельных физических носителях. Таким образом, типология распределенных баз данных определяется схемой распределения данных между узлами и схемой распараллеливания процессов обработки запросов. Рассмотрим архитектуры, реализующие следующие модели совместной обработки клиентских запросов. Как уже отмечалось, для однопроцессорных архитектур возможны схемы следующих типов: • однопотоковые архитектуры — «один к одному», когда для обслуживания каждого запроса запускается отдельный серверный процесс. В этом случае, даже если от клиентов поступят совершенно одинаковые запросы, для обработки каждого из них будет запущен отдельный процесс, каждый из которых будет выполнять одинаковые действия и использовать одни и те же ресурсы; • многопотоковые архитектуры, когда обработку всех запросов выполняет один серверный процесс (использующий один процессор), взаимодействующий со всеми клиентами и монопольно управляющий ресурсами. Либо в том случае, когда для работы СУБД используются многопроцессорные платформы, обслуживание запросов может быть физически распределено для параллельной обработки между процессорами. В общем случае для повышения оперативности за счет распараллеливания процесса обработки отдельного клиентского запроса в мультисерверной архитектуре можно использовать следующие подходы: • размещение хранимых данных БД на нескольких физических носителях (сегментирование базы). Для обработки запроса в этом случае запускаются несколько серверных процессов (использующих обычно отдельные процессоры), каждый из которых независимо от других выполняет одинаковую последовательность действий, определяемую существом запроса, но с данными, принадлежащими разным сегментам базы. Полученные таким образом результаты объединяются и передаются клиенту. Такой тип распараллеливания называют моделью горизонтального параллелизма; • запрос обрабатывается по конвейерной технологии. Для этого запрос разбивается на взаимосвязанные по результатам подзапросы, каждый из которых может быть обслужен отдельным серверным процессом независимо от обработки других подзапросов. Получаемые результаты объединяются согласно схеме декомпозиции запроса и передаются клиенту. Такой тип распараллеливания называют моделью вертикального параллелизма. Схема обработки клиентского запроса, построенная с использованием обеих моделей параллелизма (гибридная модель), приведена на рис. 7.3. 305
Отдельно необходимо упомянуть «интеграционный» подход — использование мультибазовой СУБД, которая размещается над существующими системами баз данных и файловыми системами и позволяет пользователям рассматривать совокупность баз данных (и, возможно, под управлением разнотипных СУБД) как единую базу. Мультибазовая СУБД поддерживает глобальную схему, на основании которой пользователи могут формировать запросы и модифицировать данные. Мультибазовая СУБД работает только с глобальной схемой, тогда как локальные СУБД могут использовать собственные схемы представления и обработки «своих» данных. Активный сервер В распределенных БД возникают следующие проблемы: • база данных в любой момент времени должна правильно отражать состояние предметной области —данные должны быть взаимно непротиворечивыми. Пусть, например, база данных Кадры хранит сведения о рядовых сотрудниках, отделах, в которых они работают, и их руководителях. Нужно учесть следующие правила: каждый сотрудник должен быть подчинен реальному руководителю; если руководитель уволился, то все его сотрудники переходят в подчинение другому, а отдел реорганизуется; во главе каждого отдела должен стоять реальный руководитель; если отдел сокращен, то его руководитель переводится в резерв на выдвижение и т. д.; • база данных должна отражать некоторые правила предметной области, законы, по которым она функционирует (business rules). Завод может нормально работать только в том случае, если на складе имеется достаточный запас деталей определенной номенклатуры. Следовательно как только количество деталей некоторого типа станет меньше минимально допустимого, завод должен докупить их в нужном количестве; • необходим постоянный контроль за состоянием базы данных, отслеживание всех изменений и адекватная реакция на них. Например, в автоматизированной системе управления производством датчики контролируют температуру инструмента; она периодически передается в базу данных и там сохраняется; как только температура инструмента превышает максимально допустимое значение, он отключается; • необходимо, чтобы возникновение некоторой ситуации в базе данных четко и оперативно влияло на ход выполнения прикладной программы. Многие программы требуют оперативного оповещения обо всех происходящих в базе данных изменениях. Так, в системах автоматизированного управления производством необходимо моментально уведомлять программы о любых изменениях параметров технологических процессов, когда последние хранятся в базе данных. Почтовая служба требует оперативного уведомления получателя, как только получено новое сообщение; • важная функция — контроль типов данных. В базе данных каждый столбец в любой таблице содержит данные некоторых типов. Тип данных определяется при создании таблицы. Каждому столбцу присваивается один из стандартных типов данных, разрешенных в СУБД. Концепция активного сервера опирается на следующие принципы: 306
• процедуры базы данных; • правила (триггеры); • события в базе данных. Процедуры базы данных. В различных СУБД они носят название хранимых (stored), присоединенных, разделяемых и т. д. Ниже используется терминология, принятая в СУБД Ingres. Использование процедур базы данных преследует четыре цели: • обеспечивается новый независимый уровень централизованного контроля доступа к данным, осуществляемый администратором базы данных; • одна и та же процедура может использоваться несколькими прикладными программами — это позволяет существенно сократить время написания программ за счет оформления их общих частей в виде процедур базы данных. Процедура компилируется и помещается в базу данных, становясь доступной для многократных вызовов. Так как план ее выполнения определяется единожды при компиляции, то при последующих вызовах процедуры фаза оптимизации пропускается, что существенно экономит вычислительные ресурсы системы; • значительное снижение трафика сети в системах с архитектурой «клиент— сервер». Прикладная программа, вызывающая процедуру, передает серверу лишь ее имя и параметры. В процедуре, как правило, концентрируются повторяющиеся фрагменты из нескольких прикладных программ (рис. 7.4). Если бы эти фрагменты остались частью программы, они загружали бы сеть посылкой полных SQLзапросов; • процедуры базы данных в сочетании с правилами, о которых речь пойдет ниже, предоставляют администратору мощные средства поддержки целостности базы данных. Процедура обычно хранится непосредственно в базе данных и контролируется ее администратором. Она имеет параметры и возвращает значение. Процедура базы данных создается оператором CREATE PROCEDURE (СОЗДАТЬ ПРОЦЕДУРУ) И содержит определения переменных, операторы SQL (например, SELECT, INSERT), операторы проверки условий (IF/THEN/ELSE), операторы цикла (FOR, WHILE), а также некоторые другие. 307
Пусть, например, необходимо разработать процедуру, которая переводила бы рядового сотрудника в резерв на выдвижение на руководящую должность. Процедура Назначение перемещает строки из таблицы Сотрудник, которая содержит сведения о сотрудниках, в таблицу Резерв для всех сотрудников с указанным номером. Номер сотрудника представляет собой целое число (тип integer), который не может иметь пустое значение, является параметром процедуры и передается ей при вызове из прикладной программы оператором EXECUTE PROCEDURE (ВЫПОЛНИТЬ ПРОЦЕДУРУ): Правила Механизм правил (триггеров) позволяет программировать обработку ситуаций, возникающих при любых изменениях в базе данных. Правило придается таблице базы данных и применяется при выполнении над таблицей операций включения, удаления или обновления строк. Одна из целей механизма правил — отражение некоторых внешних правил деятельности организации. Пусть, например, в базе данных Склад содержится таблица Деталь, хранящая сведения о наличии деталей на складе завода. Одно из правил деятельности 308
завода заключается в том, что недопустима ситуация, когда на складе число деталей любого типа становится меньше некоторого числа (например, 1000). Это требование может быть описано правилом Проверить_деталь. Оно применяется в случае обновления столбца количество таблицы Деталь: если новое значение в столбце меньше 1000, то выполняется процедура Заказать_деталь. В качестве параметров ей передаются номер детали данного типа и остаток (число деталей на складе): Таким образом, если возникает ситуация, когда на складе количество деталей какого-либо типа становиться меньше требуемого, запускается процедура базы данных, которая заказывает недостающее количество деталей этого типа. Заказ сводится к посылке письма (например, по электронной почте), на завод или в цех, который изготавливает данные детали. Все это происходит автоматически, без вмешательства пользователя. Важнейшая цель механизма правил — обеспечение целостности базы данных. Один из аспектов целостности — целостность по ссылкам (referential integrity) — относится к связи двух таблиц между собой. Допустим, таблица Руководитель содержит сведения о начальниках, а таблица Сотрудник — о сотрудниках некоторой организации (см. рис. 5.6). Столбец Номер_руководителя является внешним ключом таблицы Сотрудник и ссылкой на таблицу Руководитель. Для обеспечения целостности ссылок должны быть учтены два требования. Во-первых, если в таблицу Сотрудник добавляется новая строка, значение столбца номер руководителя должно быть взято из множества значений столбца Номер таблицы Руководитель (сотрудник может быть подчинен только реальному руководителю). Вовторых, при удалении любой строки из таблицы Руководитель в таблице Сотрудник не должно остаться ни одной строки, в которой в столбце Номер_руководителя было бы значение, тождественное значению столбца Номер в удаляемой строке (все сотрудники, если их руководитель уволился, должны перейти в подчинение другому). Для того чтобы учесть эти требования, должны быть созданы правила, их реализующие. Первое правило Добавить_сотрудника срабатывает при включении строки в таблицу Сотрудник; его применение заключается в вызове процедуры Проверить_руководителей, устанавливающей, существует ли среди множества значений столбца Номер таблицы Руководитель значение, тождественное значению поля Номер_руководителя добавляемой строки. Если это не так, процедура должна ее отвергнуть. Второе правило применяется при попытке удалить строку из таблицы Руководитель; оно состоит в вызове процедуры, которая сравнивает значения в столбце Номер_руководителя таблицы Сотрудник со значением поля Номер в удаляемой строке. В случае совпадения значение в столбце Номер_руководителя обновляется. 309
Механизм правил позволяет реализовать и более общие ограничения целостности. Пусть, например, таблица Сотрудник содержит информацию о сотрудниках, в том числе имя и название отдела, в котором они работают. Таблица Отдел хранит для каждого отдела количество работающих в нем сотрудников в столбце Количество_сотрудников. Одно из ограничений целостности заключается в том, что это количество должно совпадать с числом строк для данного отдела в таблице Сотрудник. Чтобы это ограничение, можно использовать правило Добавить_сотрудника, которое применяется при включении строки в таблицу Сотрудник и запускает процедуру Новый_сотрудник. Она, в свою очередь, обновляет значение столбца Количество_сотрудников, увеличивая его на единицу. Параметр процедуры — название отдела. Разумеется, на практике с помощью механизма правил реализуются более сложные и изощренные ограничения целостности. Аналогом правил послужили триггеры (triggers), которые впервые появились в СУБД Sybase и впоследствии были реализованы в том или ином виде и под тем или иным названием в большинстве многопользовательских СУБД. События в базе данных. Механизм событий в базе данных (database events) позволяет прикладным программам и серверу базы данных уведомлять другие программы о наступлении в базе данных определенного события и тем самым синхронизировать их работу. Операторы языка SQL, обеспечивающие уведомление, часто называют сигнализаторами событий в базе данных (database event alerters). Функции управления событиями целиком ложатся на сервер базы данных. Рисунок 7.5 иллюстрирует один из примеров использования механизма событий: различные прикладные программы и процедуры вызывают события в базе данных, а сервер оповещает монитор прикладных программ об их наступлении. Реакция монитора на события заключается в выполнении действий, которые предусмотрел его разработчик. Механизм событий используется следующим образом. Вначале в базе данных для каждого события создается флажок, состояние которого будет оповещать прикладные программы о том, что некоторое событие имело место (оператор CREATE DBEVENT - СОЗДАТЬ СОБЫТИЕ). Далее, во все прикладные программы, на ход выполнения которых может повлиять это событие, включается оператор REGISTER DBEVENT (ЗАРЕГИСТРИРОВАТЬ СОБЫТИЕ), который оповещает сервер базы данных, что программа заинтересована в получении сообщения о наступлении события. 310
Теперь любая прикладная программа или процедура базы данных может вызвать событие оператором RAISE DBEVENT (ВЫЗВАТЬ СОБЫТИЕ) . Как только событие произошло, каждая зарегистрированная программа может получить его, для чего она должна запросить очередное сообщение из очереди событий (оператор GET DBEVENT — получить СОБЫТИЕ) и запросить информацию о событии, в частности его имя (оператор SQL INQUIRE_SQL). Следующий пример иллюстрирует обработку всех событии из очереди: Рассмотрим пример из производственной системы, иллюстрирующий использование механизма событий в базе данных совместно с правилами и процедурами. События используются для определения ситуации, когда рабочий инструмент нагревается до температуры свыше допустимой и должен быть отключен. Создается правило, которое применяется всякий раз, когда новое значение температуры инструмента заносится в таблицу Инструмент. Как только оно превосходит 500 градусов, правило вызывает процедуру Отключить__инструмент. 311
Создается процедура базы данных Отключить_инструмент, которая вызывает событие Перегрев; она будет выполнена в результате применения правила, определенного на шаге 1. Создается событие Перегрев, которое будет вызвано, когда инструмент перегреется: Наконец создается прикладная программа Монитор_Инструментов, которая следит за состоянием инструментов. Она регистрируется сервером в качестве получателя события Перегрев с помощью оператора REGISTER DBEVENT. Если событие произошло, программа посылает сообщение пользователю и сигнал необходимый для отключения инструмента: Описанные выше конструкции в совокупности определяют логику работы (рис. 7.6). 312
Прикладная программа Монитор_Инструментов периодически регистрирует с помощью датчиков текущие значения параметров множества различных инструментов и заносит в таблицу Инструмент новое значение температуры для данного инструмента. Всякий раз, когда это происходит, т. е. обновляется значение столбце Температура таблицы Инструмент, применяется правило Перегрев_инструмента. Применение правила состоит в проверке нового значения температуры. Если оно превышает максимально допустимое, то запускается процедура Отключить_инструмент. В том случае, когда используются традиционные методы опроса БД, логика работы была бы совершенно иной. Пришлось бы разработать дополнительную программу, которая периодически выполняла бы операцию выборки из таблицы Инструмент по критерию Температура > 500. Это очень сильно сказалось бы на эффективности, поскольку операция SELECT является ресурсоемкой. Разумеется, пример приведен лишь для иллюстрации схемы срабатывания механизма «правило — процедура — событие». 7.4. Схемы размещения и доступа к данным в распределенных БД Размещение данных в распределенных БД характеризуется следующими понятиями: • фрагментация. Любая запись (отношение в случае реляционных моделей данных) может быть разделено на некоторое количество частей, называемых фрагментами, которые затем могут распределяться по различным узлам. Как отмечалось ранее, существуют два основных типа фрагментации: горизонтальная и вертикальная. В первом случае фрагменты представляют собой подмножества строк, а во втором — подмножества столбцов (атрибутов); • размещение. Каждый фрагмент сохраняется на узле, выбранном с учетом оптимальной схемы доступа; • репликация. Распределенная СУБД может поддерживать актуальную копию некоторого фрагмента на нескольких различных узлах. 313
Определение и размещение фрагментов должно проводить с учетом особенностей использования базы данных (в частности, на основе анализа транзакций). Существуют четыре стратегии размещения данных в системе: Централизованное размещение. Данная стратегия предусматривает создание на одном из узлов единственной базы данных под управлением СУБД, доступ к которой будут иметь все пользователи сети. 2. Фрагментированное размещение. В этом случае база данных разбивается на непересекающиеся фрагменты, каждый из которых размещается на одном из узлов системы. 3. Размещение с полной репликацией. Эта стратегия предусматривает размещение полной копии всей базы данных на каждом из узлов системы. Стоимость устройств хранения данных и уровень затрат на передачу информации об обновлениях в этом случае также будут самыми высокими. Для преодоления части этих проблем в некоторых случаях используется технология снимков. Снимок представляет собой копию базы данных в определенный момент времени. Эти копии обновляются через некоторый установленный интервал времени, например 1 раз в час или в сутки. 4. Размещение с избирательной репликацией. Данная стратегия представляет собой комбинацию методов фрагментации, репликации и централизации. Одни массивы данных разделяются на фрагменты, что позволяет добиться для них высокой локализации ссылок, тогда как другие, используемые на многих узлах, но не подверженные частым обновлениям, подвергаются репликации. Все остальные данные хранятся централизованно. Управление параллельной обработкой в распределенных БД При параллельной обработке данных (совместной работе нескольких пользователей с общими данными) СУБД должна гарантировать, что пользователи не будут мешать друг другу (сюда относятся, например, проблемы потерянного обновления, зависимости от промежуточных результатов, несогласованности обработки, несогласованности многих копий данных) и их деист вия будут изолированы. Такими единицами изолированности являются транзакции — неделимая (с точки зрения воздействия на состояние целостности БД) последовательность операторов управления данными. Решения по организации управления параллельным выполнением в распределенной среде основаны на подходах с использованием механизмов блокировок и временных отметок: • механизм блокировки создает такие условия, что график параллельного выполнения транзакций будет эквивалентен некоторому (но, в общем случае, непредсказуемому) варианту последовательного выполнения этих транзакций; • механизм обработки временных отметок гарантирует, что график параллельного выполнения транзакций будет эквивалентен конкретному варианту последовательного выполнения этих транзакций в соответствии с их временными отметками. Механизм блокировки реализуется в виде следующих протоколов двухфазной блокировки (2PL — two-phase lock): 1. При использовании централизованного протокола двухфазной блокировки существует единственный узел, на котором хранится вся информация о блокировке элементов данных в системе. Поэтому во всей распределенной СУБД существует только один диспетчер блокировок, способный устанавливать и снимать блокировку с элементов данных. 2. При двухфазной блокировке с первичными копиями функции диспетчера блокировок распределены по нескольким узлам. Каждый локальный диспетчер отвечает за управление блокировкой некоторого набора элементов данных. В процессе репликации для каждого копируемого элемента данных одна из копий выбирается в качестве первичной копии, а все остальные Рассматриваются как вторичные (зависимые). 314
3-При использовании распределенного протокола двухфазной блокировки диспетчеры блокировок размещены в каждом узле системы. Каждый отвечает за управление блокировкой данных, находящихся на его узле. Если данные не подвергаются репликации, этот протокол функционирует аналогично протоколу двухфазной блокировки с первичными копиями. В противном случае распределенный протокол двухфазной блокировки использует особый протокол управления репликацией, получивший название «чтение одной копии и обновление всех копии». В этом случае для операций чтения может использоваться любая копия элемента, но прежде чем можно будет обновит значение элемента, должны быть установлены исключительные блокировки на всех копиях. 4. При использовании протокола блокировки большинства копий диспетчер блокировок также имеется на каждом из узлов системы, но, когда транзакции требуется считать или записать элемент данных, копии которого имеются на узлах системы, она должна отправить запрос на блокировку этого элемента более чем на половину из всех тех узлов, где имеются его копии. Транзакция не имеет права продолжать свое выполнение пока не установит блокировки на большинстве копий элемента данных. Если ей не удастся это сделать за некоторый установленный промежуток времени, она отменяет свои запросы и информирует все узлы об отмене ее выполнения. Двухфазные протоколы не могут устранить возможность взаимной блокировки, поскольку при их использовании может возникнуть ситуации, когда некоторый узел остается заблокированным. Например, процесс, который обнаружил истечение тайм-аута после отправки своего согласия на фиксацию транзакции, но так и не получил глобального подтверждения от координатора, остается заблокированным, если может взаимодействовать только с узлами, которые также не имеют сведений о принятом глобальном решении. Неблокирующий протокол трехфазной фиксации транзакций не имеет периода ожидания в состоянии неопределенности, в которое переходят участники с момента подтверждения своего согласия на фиксацию транзакции и до момента получения от координатора извещения о глобальной фиксации или глобальном откате. В трехфазном протоколе между этапами голосования и принятия глобального решения вводится третий этап, называемый предфиксацией. После получения результатов голосования всех участников координатор рассылает глобальное сообщение PRECOMMIT. Таким образом, участник, получивший глобальное извещение о предфиксации, знает, что все остальные участники проголосовали за фиксацию результатов транзакции и что со временем сам этот участник также выполнит фиксацию транзакции, если не произойдет отказ. Далее каждый участник подтверждает получение сообщения о предфиксации, и после чего координатор, получив все подтверждения, рассылает команду глобальной фиксации транзакции. Многоуровневая модель предметной области для распределенных БД Архитектурная модель ANSI/SPARC, представляющая собой классическое решение для локальных СУБД, может быть расширена на случай распределенных СУБД. На рис. 7.7 приведена обобщенная схема архитектуры распределенной БД, где в верхней части присутствуют схемы глобального уровня, обеспечивающие целостное представление БД, как если бы она была локальной. Здесь на внешнем уровне может поддерживаться совсем иная модель данных (или даже несколько моделей), чем на концептуальном уровне. Поддержка разнообразных возможностей абстрагирования в такой системе достигается благодаря средствам определения и поддержки межуровневого отображения моделей данных. Схемы фрагментации и распределения определяют размещение логических сегментов данных по физическим разделам (локальным БД), а локальная схема преобразования обеспечивает отображение фрагментов во внешние схемы. При этом локальные концептуальные и 315
внутренние схемы определяют в соответствии с концепцией представление данных с учетом особенностей конкретной СУБД. Технологии и средства удаленного доступа Распределенные корпоративные приложения все более усложняются, интегрируя в себя унаследованные приложения, разрабатываемые и вновь приобретаемые готовые программные средства. Кроме того, разные подсистемы решают разные бизнес – задачи, однако одна из главных целей создания корпоративной системы — получить «единый образ» общего состояния системы, что обеспечит пользователям доступ к нужным ресурсам. Основа такой инфраструктуры — так называемое промежуточное программное обеспечение, позволяющее, не вникая в тонкости сетевых реализаций, создавать и эксплуатировать взаимодействующие между собой приложения с разными требованиями к межмодульным коммуникациям. Промежуточное ПО эволюционировало вместе с архитектурой «клиент—сервер». Ранние, но достаточно эффективные как с точки зрения разработки, так и эксплуатации, частные решения предназначались для упрощения доступа к базам данных в двухзвенной модели, где «толстый клиент» реализует всю логику обработки информации, предоставляемой сервером базы данных. Такие системы вполне удовлетворяли потребностям небольших корпоративных подразделений с ограниченным числом пользователей и невысокой интенсивностью обмена. Этот способ реализации клиент-серверной схемы доступа ограничивает возможности масштабирования, поскольку увеличение числа обращений к одной базе данных значительно увеличивает нагрузку на сервер и делает доступ к данным «узким местом» в общей производительности системы. Кроме того, всякая модификация логики приложения требовала внесения изменений во все экземпляры клиентских приложений. 316
Чтобы избежать таких проблем, для разработки корпоративных приложений используют трехзвенную модель, которая переносит логику приложения на отдельный уровень сервера приложений. В результате клиентская часть приложения становится «тоньше» и в основном отвечает за предоставление удобного пользовательского интерфейса. Развитие этого среднего звена клиент-серверной модели идет сторону усложнения. Ограничиваясь вначале построением более высокого уровня абстракции для взаимодействия приложения с ресурсами данных, разработчик приложения получал возможность использовать общие API (Application Program Interface), которые скрывали различия специфических интерфейсов коммуникационных протоколов более низкого уровня, например TCP/IP, Sockets или DECNet. Однако теперь этого уже явно недостаточно для построения сложных распределенных приложений. Современные решения не только обеспечивают межпрограммное взаимодействие, но и являются платформой для реализации сервера приложений, обеспечивая обширный набор необходимых служб: управления транзакциями, именования, защиты и т. д. Вычислительная среда распределенных приложений может включать в себя различные операционные системы, аппаратные платформы, коммуникационные протоколы и разнообразные средства разработки. Соответственно, формат представления данных в различных узлах будет различаться. Таким образом, в распределенной неоднородной среде программное обеспечение промежуточного уровня играет роль «информационной шины», надстроенной над сетевым уровнем и обеспечивающей доступ приложения к разнородным ресурсам, а также независимую от платформ взаимосвязь различных прикладных компонентов, изолирующую логику приложений от уровня сетевого взаимодействия и ОС. ПО промежуточного уровня можно разделить на две категории: • доступа к базам данных (например, ODBC-интерфейсы и SQL-шлюзы); • межмодульного взаимодействия — системы, реализующие вызов удаленных процедур (RPC — Remote Procedure Call), мониторы обработки транзакций (ТРмониторы), средства интеграции распределенных объектов. При этом следует отметить, что различия прикладных задач не позволяют построить универсальное ПО, реализовав в одном продукте все необходимые возможности. Двухзвенные клиент-серверные архитектуры В простых двухзвенных моделях клиент—сервер, где сколько баз данных обслуживают ограниченное число пользователей настольных ПК, в роли встроенного ПО доступа к данным могут выступать обычные ODBC-драйверы. Необходимость в более сложных решениях возникает в больших, разнородных многозвенных системах, где множество приложений в параллельном режиме осуществляет доступ к разнообразным источникам данных, включая разнотипные СУБД и хранилища данных. В таких системах между клиентами и серверами баз данных размещается промежуточное звено — SQL-шлюз, который представляет собой набор общих API, позволяющих разработчику строить унифицированные запросы к разнородным данным (в формате SQL или с помощью ODBC-интерфейса). SQL-шлюз выполняет синтаксический разбор такого запроса, анализирует и оптимизирует его и в конце концов выполняет преобразование в SQL-диалект нужной СУБД. ПО этого типа реализует синхронный механизм связи, когда выполнение приложения, сделавшего запрос, блокируется до момента получения данных. Каждое приложение, построенное на основе архитектуры «клиент—сервер», включает, как минимум, две части: клиентскую и серверную часть. В общем случае предполагается, что эти части приложения функционируют на отдельных компьютерах, т. е. к выделенному серверу БД с помощью сети подключены узлы-компьютеры пользователей (клиенты). При этом узел-клиент сам может быть СУБД. 317
Рассмотрим различные способы организации двухуровневого доступа прикладной программы к серверу базы данных в двухзвенной архитектуре. Открытый интерфейс баз данных ODBC. Спецификация открытого интерфейса баз данных (ODBC — Open Database Connectivity) предназначена для унификации доступа к данным, размещенным на удаленных серверах. ODBC опирается на спецификации CLI. ODBC представляет собой программный слой, унифицирующий интерфейс взаимодействия приложений с базами данных. За реализацию особенностей доступа к каждой отдельной СУЬД отвечает соответствующий специальный ODBC-драйвер. Пользовательское приложение этих особенностей не видит, так как взаимодействует с универсальным программным слоем более высокого уровня. Таким образом, приложение становится в значительной степени независимым от СУБД. Вместо создания в каждом отдельном случае СУБД-приложения с обращениями через встроенный, но быстро устаревающий интерфейс можно использовать один общий стандартизированный программный интерфейс. В архитектуре ODBC используется один ODBC Driver Manager и несколько ODBCдрайверов, обеспечивающих доступ к конкретным СУБД. Driver Manager связывает приложение и интерфейсные объекты, которые выполняют обработку SQL-запросов к конкретной СУБД (рис. 7.8). Такой подход является достаточно универсальным, стандартизируемым, что и позволяет использовать ODBC-механизмы для работы практически с любой системой, однако этот способ также не лишен недостатков: • увеличивается время обработки запросов (как следствие введения дополнительного программного слоя); • необходимы предварительная инсталляция и настройка ODBC-драйвера (указание драйвера СУБД, сетевого пути к серверу, базы данных и т. д.) на каждом рабочем 318
месте. Параметры этой настройки являются статическими, т. е. приложение изменить их самостоятельно не может. Мобильный интерфейс к базам данных на платформе Java — JDBC (Java Data Base Connectivity) — это интерфейс прикладного программирования (API) для выполнения SQL-запросов к базам данных из программ, написанных на платформенно – независимом языке Java, позволяющем создавать как самостоятельные приложения (standalone application), так и аплеты, встраиваемые в Web-страницы. JDBC во многом подобен ODBC, он также построен на основе спецификации CLI, однако имеет ряд следующих отличий; • приложение загружает JDBC-драйвер динамически, следовательно, администрирование клиентов упрощается, более того, появляется возможность переключаться на работу с другой СУБД без перенастройки клиентского рабочего места; • JDBC, как и Java в целом, не привязан к конкретной аппаратной платформе, следовательно проблемы с переносимостью приложений практически снимаются; • использование Java-приложений и связанной с ними идеологии «тонких клиентов» обещает снизить требования к оборудованию клиентских рабочих мест. Прикладные интерфейсы OLE DB и ADO. OLE DB (Object Linking and Embedding Data Base), как и ODBC — это прикладные интерфейсы доступа к данным с использованием SQL. OLE DB специфицирует взаимодействие, обеспечивая единый интерфейс доступа к данным через провайдеров — поставщиков данных не только из реляционных БД. В отличие от ODBC, OLE DB предоставляет общее решение обеспечения СОМприложениям доступа к информации независимо от типа источника данных. OLE DB включает два базовых компонента: провайдер данных и потребитель данных. Потребитель (клиент) — это приложение или СОМ-компонент, обращающийся посредством АР1-вызовов к OLE DB. Провайдер (сервер) — это приложение, отвечающее на вызовы OLE DB и возвращающее запрашиваемый объект — обычно это данные в табличном виде. ADO (Active Data Object) — это универсальный интерфейс высокого уровня к OLE DB. Модель объекта ADO не содержит таблиц, среды или машины БД. Здесь основными объектами являются следующие: объект Соединение, создающий связь с провайдером данных; объект Набор данных и объект Команда — выполнение процедуры, SQL-строки. В общем случае ADO можно рассматривать как язык программирования с БД, позволяющий выбирать, модифицировать и удалять записи. Поскольку он опирается на универсальный OLE DB, то может использоваться практически в любых приложениях Microsoft. Взаимосвязь механизмов доступа к данным Рассмотренные технологии построения приложения ориентированы на извлечение данных непосредственно из статического источника (хранилища данных) и не могут обращаться за данными к другому прикладному модулю. Один из способов организации доступа к данным заключается в непосредственном использовании API. Однако это означает полную зависимость создаваемого приложения от используемой СУБД. В этом случае переход к другой системе (например, для перехода от настольной системы к системе типа клиент—сервер) влечет за собой переписывание большей части программного кода клиентского приложения. Таким образом, следующим этапом в обеспечении доступа клиентского приложения к данным является создание универсального механизма доступа к БД, обеспечивающего для клиентского приложения стандартный набор функций, классов или сервисов (служб), необходимых для работы с различными системами управления базами данных. Эти 319
стандартные функции (классы или сервисы) должны размещаться в библиотеках, именуемых драйверами или провайдерами баз данных (data base drivers (providers)). Каждая такая библиотека реализует набор стандартных функций, классов или сервисов, используя обращения API к конкретной СУБД. Наиболее популярными механизмами доступа к данным (Universal Data Access — UDA) в настоящий момент являются: ODBC, OLE DB, ADO, BDE. Первые три являются фактически промышленными стандартами. Последний долгое время был единственным механизм доступа к данным, реализованным в инструментальных средствах разработки компании Borland-Inprise (например Delnhi, C++ Builder). На рис. 7.9 схематически представлены различные механизмы доступа к данным, включая непосредственные вызовы клиентской частью API системы управления базой данных. Технологии межмодульного взаимодействия (трехуровневая архитектура) Технологии, реализующие трехуровневую архитектуру взаимодействия клиента и сервера, включают ПО промежуточного слоя — сервер приложений, через который один прикладной модуль, используя специальные протоколы, получает данные из другого модуля. Появление серверов приложений как отдельных готовых решений связано и с бурным вторжением Web-технологий в сферу корпоративных высоко критичных систем. Однако возможности протокола HTTP ограничены функциями связи без каких-либо средств сохранения информации о состоянии, поэтому он не подходит для поддержки мощных корпоративных систем. На рис. 7.10 приведен обобщенный состав сервера приложений с набором служб и средств связи с клиентскими системами и информационными ресурсами. 320
Спецификация вызова удаленных процедур. Протокол вызова удаленных процедур (Remote Procedure Calls — RPC) реализуй асимметричное взаимодействие программных компонентов, когда можно выделить клиента, которому требуется некоторая услуга, и сервер, который такую услугу способен оказать, причем, как правило, клиент не может продолжать свое выполнение, пока сервер не произведет требуемые от него действия. С точки зрения клиентской программы обращение к серверу ничем не отличается от вызова локальной процедуры. Средства вызова удаленных процедур (RPC) поддерживают синхронный режим коммуникаций между двумя прикладными модулями (клиентом и сервером). Для установки связи, передачи вызова и возврата результата клиентский и серверный процессы обращаются к специальным процедурам — клиентскому и серверному суррогатам (client stub и server stub). Эти процедуры не реализуют никакой прикладной логики и предназначены только для организации взаимодействия удаленных прикладных модулей. Каждая функция на сервере, которая может быть вызвана удаленным клиентом, должна иметь такой суррогатный процесс. Если клиент вызывает удаленную процедуру, вызов вместе с параметрами передается клиентскому суррогату. Он упаковывает эти данные в сетевое сообщение и передает его серверному суррогату. Тот, в свою очередь, распаковывает полученные данные и передает их реальной функции сервера и затем проделывает обратную процедуру с результатами. Таким образом изолируются прикладные модули клиента и сервера от уровня сетевых коммуникаций. 321
Ключевым компонентом RPC является язык описания интерфейсов (interface definition language — IDL), предназначенный для определения интерфейсов, которые задают контрактные отношения между клиентом и сервером. Интерфейс содержит определение имени функции и полное описание передаваемых параметров и результатов выполнения. Язык IDL обеспечивает независимость механизма RPC от языков программирования — вызывая удаленную процедуру, клиент может использовать свои языковые конструкции, преобразуются в конструкции языка программирования, на котором реализован серверный процесс. Транзакции в распределенных БД Если данные хранятся в одной базе данных, то транзакция к ней рассматривается как локальная. В распределенных базах транзакция, выполнение которой заключается в обновлении данных на нескольких узлах сети, называется глобальной или распределен ной транзакцией. Внешне выполнение распределенной транзакции выглядит как обработка транзакции к локальной базе данных. Тем не менее распределенная транзакция включает в себя несколько локальных транзакций, каждая из которых завершается двумя путями — фиксируется или прерывается. Распределенная транзакция фиксируется только в том случае, когда зафиксированы все локальные транзакции, ее составляющие. В современных СУБД предусмотрен так называемый протокол двухфазовой (или двухфазной) фиксации транзакций (two-phase commit). Фаза 1 начинается, когда при обработке транзакции встретился оператор COMMIT. Сервер распределенной БД (или компонент СУБД, отвечающий за обработку распределенных транзакций) направляет уведомление «подготовиться к фиксации» всем серверам локальных БД, выполняющим распределенную транзакцию. Если все серверы приготовились к фиксации (т. е. откликнулись на уведомление и отклик был получен), сервер распределенной БД принимает решение о фиксации. Серверы локальных БД остаются в состоянии готовности и ожидают от него команды «зафиксировать». Если хотя бы один из серверов не откликнулся на уведомление в силу каких-либо причин, будь то аппаратная или программная ошибка, то сервер распределенной БД откатывает локальные транзакции на всех узлах, включая даже те, которые подготовились к фиксации и оповестили его об этом. Фаза 2 — сервер распределенной БД направляет команду зафиксировать» всем узлам, затронутым транзакцией, и гарантирует, что транзакции на них будут зафиксированы. Если связь с локальной базой данных потеряна в интервал времени между Моментом, когда сервер распределенной БД принимает решение о Фиксации транзакции, и моментом, когда сервер локальной А подчиняется его команде, то сервер распределенной БД продолжает попытки завершить транзакцию, пока связь не будет восстановлена. Мониторы обработки транзакций. Мониторы обработки транзакций (Transaction Processing Monitor — ТРМ), или мониторы транзакций — это программные системы (которые относят к категории middleware, т. е. к посредническому промежуточному ПО), решающие задачу эффективного управления информационно-вычислительными ресурсами в распределенной системе. Первоначально основной задачей ТРМ в среде клиент — сервер было сокращение числа соединений клиентских систем с базами данных. При непосредственном обращении клиента к серверу базы данных для каждого клиента устанавливается соединение с СУБД, которое порождает запуск отдельного процесса в рамках операционной системы. ТРмониторы брали на себя роль концентратора таких соединений, становясь посредником между клиентом и сервером базы данных. Основное назначение ТР-мониторов — автоматизированная поддержка приложений, представленных в виде последовательности транзакций. 322
Одна из основных функций ТРМ — обеспечение быстрой обработки запросов, поступающих к серверу приложений от множества клиентов (от сотен до тысяч). ТРМ выполняет ее, мультиплексируя запросы на обслуживание, направляя их серверам приложения, число которых контролируется им самим. Важнейшая характеристика ТРМ — поддержка многомашинных конфигураций с возможностью миграции серверов приложений и их групп на резервный компьютер в случае сбоев в работе основного — является фундаментом, на котором может быть построена система, по надежности близкая к абсолютной. Действительно, применение так называемых безотказных (fault tolerant) компьютеров гарантирует сохранение работоспособности лишь при случайных сбоях, но бессильно перед злоумышленником или в случае механического повреждения. На современном рынке мониторов транзакций основными являются такие системы, как ACMS (DEC), CICS (IBM), TOP END (NCR), PATHWAY (Tandem), ENCINA (Transarc), TUXEDO Sytem (Novell). Наиболее известной из этой группы является система CICS (Customer Information Control System), работавшая на мэйнфрейме IBM. Модель обработки транзакций. Понятия транзакции в ТРМ в традиционных СУБД значительно отличаются. Суть остается одной, но в понимании СУБД транзакция — это атомарное действие над базой данных, в то время как в ТРМ транзакция трактуется гораздо шире. Она включает не только операции с данными, но и любые другие действия — передачу сообщений, выдачу отчетов, запись в индексированные файлы, опрос датчиков и т.д. Это позволяет реализовать в ТРМ прикладные транзакции, бизнестранзакции, которые в СУБД не предусмотрены. ТРМ опирается на модель обработки распределенных транзакций X/Open DTP, которая описывает взаимодействие трех субъектов обработки транзакций — прикладной программы (в качестве прикладной программы фигурирует как сервер приложения, так и клиент приложения), менеджера транзакций (Transaction Manager — ТМ) и менеджера ресурсов (Resource Manager — RM). Модель представлена на рис. 7.11. Ha RM возложено управление информационными ресурсами — будь то файлы, базы данных или что-то другое. Приложение взаимодействует с RM либо с помощью набора специальных функций, либо (если в качестве RM выступает реляционная SQLориентированная СУБД) посредством операторов языка SQL, инициируя необходимые операции с данными. Последние оформляются как транзакции, обработку которых берет на себя ТМ. Если с помощью монитора транзакций необходимо решать задачи обработки распределенных транзакций, то роль менеджера ресурсов должна играть СУБД, поддерживающая двухфазовый протокол фиксации транзакций и удовлетворяющая стандарту X/Open XA (например, Oracle 7.x, ОрenINGRES, Informix-Online 7.x). Роль ТМ в модели X/Open DTP — это роль диспетчера, главного координатора транзакций. Он обладает полным набором Функций управления как локальными, так и глобальными распределенными транзакциями. В последнем случае транзакция может 323
обновлять данные на нескольких узлах, причем управление данными на них, вообще говоря, осуществляется различными RM. Обработка распределенных транзакций обеспечивается за счет использования протокола двухфазовой фиксации транзакций, который гарантирует целостность данных в информационной системе, распределенной по нескольким узлам, независимо от того, какой RM управляет обработкой данных на каждом таком узле. Эта уникальная возможность как раз и позволяет рассматривать ТРМ как средство интеграции в гетерогенной информационной среде. Функции ТМ в модели X/Open DTP не ограничиваются только управлением транзакциями. Он берет на себя также координацию взаимодействия клиента и сервера (поэтому иногда его называют менеджером транзакций и коммуникаций). При этом используется высокоуровневый интерфейс ATMI, представляющий собой набор вызовов функций на языке третьего поколения (например, на языке Си). С его помощью разработчик реализует один из нескольких режимов взаимодействия клиента и сервера в рамках расширенной модели «клиент—сервер». Ни сервер приложения, ни клиент приложения не содержат явных вызовов менеджера транзакций — они включены в библиотечные функции ATMI и «невидимы» извне. Таким образом, детали взаимодействия прикладной программы и монитора транзакций скрыты от разработчика, что и дает основание говорить об ATMI как о высокоуровневом интерфейсе. Функциональный подход. Фундаментальная характеристика ТРМ — функциональный (function-centric) подход к проектированию бизнес-приложений — сосредоточение всех прикладных функций в серверах приложений по сути означает поставку (или предоставление) функций (functions shipping) для программы-клиента, в отличие от традиционной архитектуры с сервером базы данных, следующей парадигме поставка (или предоставление) данных (data shipping). Возможность декомпозиции приложений по нескольким уровням с четко очерченными функциями и стандартными интерфейсами позволяет создавать легко модифицируемые системы со стройной и целостной архитектурой. Концентрация чисто прикладных функций в серверах приложений и использование унифицированных интерфейсов с другими логическими компонентами делает прикладную систему практически полностью независимой как от конкретной реализации интерфейса с пользователем, так и от необходимого ей менеджера ресурсов. Первое означает, что для реализации интерфейса с пользователем может быть выбран практически любой удобный и привычный для разработчика инструментарий, будь то Microsoft Visual C++ или Visual Basic; следствием второго является то, что менеджер ре-сов (например, СУБД) может быть заменен на другой, поддерживающий тот же стандарт интерфейса с прикладной программой. Для реляционных СУБД в качестве унифицированного интерфейса используется встроенный (embedded) SQL. Разумеется, в реализации ESQL для каждой конкретной СУБД имеются различия, порой весьма существенные. Поэтому приложение должно быть либо разработано специально с целью работы с конкретной СУБД, либо оно должно быть спроектировано так, чтобы максимально безболезненно перенастраиваться на работу с другой СУБД. Функциональный подход имеет своим следствием и преимущества администрирования приложения. Отныне оно рассматривается как единое целое; сервер приложения имеет набор параметров, устанавливаемых его администратором; как и сервер БД, сервер приложения запускается и останавливается специальными командами; существуют команды, позволяющие опросить параметры сервера приложения и вывести их на консоль. Таким образом снимается одно из серьезных ограничений производительности и масштабируемости клиент-серверной среды — необходимость поддержки отдельного соединения с базой данных для каждого клиента. 324
7.5. Объектно-ориентированные технологии распределенной обработки Сегодня наибольшее применение для разработок приложений распределенной обработки находят две компонентные модели — DCOM и CORBA. Эти технологии реализуют трехуровневую архитектуру модели «клиент—сервер». Введение специального промежуточного слоя — сервера приложений, которому «делегированы полномочия» организации взаимодействия клиента и сервера, обеспечивает возможность интеграции объектов, размещенных на машинах разных платформ и под управление разнотипных операционных систем. Обе модели распространяют принципы вызова удаленных процедур на объектные распределенные приложения и обеспечивают прозрачность реализации и физического размещения серверного объекта для клиентской части приложения; поддерживают возможность взаимодействия объектов, созданных различных объектно-ориентированных языках и скрывают от приложения детали сетевого взаимодействия. Основу этого подхода составляет «минимальная» объектная модель, обладающая ограниченными возможностями, но имеющая обязательные аналоги в наиболее распространенных объектных системах. В архитектуре CORBA используется модель Core Object Model с соответствующим языком спецификации интерфейсов объектов (Interface Definition Language — IDL). Чтобы обеспечить возможность взаимодействия объекта, существующего в одной системе программирования, с некоторым объектом из другой системы программирования, в исходный текст первого объекта (объявления его класса) должна быть помещена IDL-спецификация интерфейса (имя метода, список имен и типов данных входных и выходных параметров) того объекта, метод которого должен быть вызван. Аналогичная спецификация должна быть помещена на стороне вызываемого объекта. Далее, спецификации, транслированные IDL-процессором в выражения языка программирования, включаются в исходный текст программы на языках Си, Java. DCOM В DCOM-технологии, представленной на рис. 7.12, взаимодействие между клиентом и сервером осуществляется через двух посредников. Клиент помещает параметры вызова в стек и обращается к методу интерфейса объекта. Это обращение перехватывает посредник Proxy, упаковывает параметры вызова в СОМ-пакет и адресует его в Stub, который в свою очередь распаковывает параметры в стек и инициирует выполнение метода объекта в пространстве сервера. При этом объект должен быть предварительно зарегистрирован на локальной машине, чтобы клиент с помощью распределенной службы имен (в качестве которой Microsoft предлагает Active Directory) мог его отыскать по глобальному уникальному идентификатору (GUId). CORBA CORBA-технология также использует интерфейс объекта, но в этом случае схема взаимодействия объектов (рис. 7.13) включает промежуточное звено (Smart agent), реализующее доступ к удаленным объектам. Smart agent, установленный на машинах сетевого окружения (сервере локальной сети или Internet-узле), моделирует сетевой каталог известных ему серверов объектов. Регистрация объектов сервера в каталоге одного или нескольких Smart agent'oB происходит автоматически при создании сервера. 325
Связи между брокерами осуществляются в соответствии с требованиями специального протокола General Inter ORB Protocol, определяющего низкоуровневое представление данных и множество форматов сообщений. На машине клиента создаются два объекта-посредника: Stab (заглушка) и ORB (Object Required Broker — брокер вызываемого объекта). Так же как и в DCOM-технологии, Stub передает перекаченный вызов брокеру, который посылает широковещательное сообщение в сеть. Smart agent, получив сообщение, отыскивает сетевой адрес сервера и передает запрос брокеру, размещенному на машине сервера. Вызов требуемого объекта производится через специальный базовый объектный адаптер (BOA). При этом данные в стек пространства вызываемого объекта помещает особый объект сервера (Skeleton — каркас), который вызывается адаптером. CORBA имеет два механизма реализации запросов к объектам: • статический, предполагающий использование заглушек каркасов, интерфейсы которых были сгенерированы при создании объекта; • динамический вызов с помощью интерфейса динамического вызова (DII). Интерфейс динамического вызова позволяет определять объекты и их интерфейсы во время выполнения, а затем формировать заглушки. Аналогично, на стороне сервера может использоваться динамический интерфейс каркасов (DSI), что позволяет обращаться к реализации объекта, для которого на этапе создания не был сформирован каркас. Ключевым компонентом архитектуры CORBA является язык описания интерфейсов IDL, на уровне которого поддерживаются «контрактные» отношения между клиентом и сервером и обеспечивается независимость от конкретного объектно-ориентированного языка. CORBA IDL поддерживает основные понятия объектно-ориентированной парадигмы (инкапсуляцию, полиморфизм и наследование). При этом CORBA-объекты могут быть преобразованы в объекты языков программирования (например, Java, С, C++), т. е. будут сформированы файлы: • исходного клиентского кода, содержащего интерфейсные заглушки; • исходного серверного кода, содержащего каркасы; • заголовков, которые включаются в клиентскую и серверную программы. В модели DCOM также может использоваться разработанный Microsoft язык IDL, который, однако, играет вспомогательную роль и используется в основном для удобства описания объектов. Реальная интеграция объектов в DCOM происходит не на уровне абстрактных интерфейсов, а на уровне бинарных кодов, и это одно из основных различий этих двух объектных моделей. Как DCOM, так и CORBA, в отличие от процедурного RPС., дают возможность динамического связывания удаленных объектов: клиент может обратиться к серверуобъекту во время выполнения, не имея информации об этом объекте на этапе компиляции. В CORBA для этого существует специальный интерфейс динамического вызова DII, a COM использует механизм OLE-Automation. Информацию о доступных объектах сервера на этапе выполнения клиентская часть программы получает из специального хранилища метаданных об объектах — репозитария интерфейсов Interface Repositary в случае 326
CORBA, или библиотеки типов (Type Library) в модели DCOM. Эта возможность очень важно для больших распределенных приложений, поскольку позволяет менять и расширять функциональность серверов, не внося существенных изменений в код клиентских компонентов программы. Например, банковское приложение, основная бизнес-логика которого поддерживается сервером в центральном офисе, а клиентские системы — в филиалах, размещенных в разных городах. Контрольные вопросы 1. Какие разновидности систем «клиент—сервер» вы знаете? 2. Что такое файловый сервер? 3. Что такое сервер баз данных? 4. Что такое сервер приложений? 5. Сформулируйте основные требования к системам управления распределенными базами данных. 6. Перечислите основные условия и предпосылки появления систем управления распределенными базами данных. 7. Перечислите основные различия системы распределенной обработки данных и системы распределенных баз данных. 8. Обоснуйте целесообразность разделения «клиентских» и «серверных» функций. 9. Проведите сравнительный анализ распределения функций для различных базовых архитектур. 10. Определите основные принципы и примерные структурные схемы сервера распределенной обработки. 11 Перечислите основные решения распределенной обработки на основе межмодульного взаимодействия. 327
Глава 8 ЗАЩИЩЕННЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ Концентрация информации в компьютерах — аналогична концентрации наличных денег в банках — заставляет все более усиливать контроль в целях защиты информации. Юридические вопросы, частная тайна, национальная безопасность — все эти соображения требуют усиления внутреннего контроля в коммерческих и правительственных организациях. Работы в этом направлении привели к появлению новой дисциплины: безопасность информации. Специалист в области безопасности информации отвечает за разработку, реализацию и эксплуатацию системы обеспечения информационной безопасности, направленной на поддержание целостности, пригодности и конфиденциальности накопленной в организации информации. В его функции входит обеспечение физической (технические средства, линии связи и удаленные компьютеры) и логической (данные, прикладные программы, операционная система) защиты информационных ресурсов. Сложность создания системы защиты информации определяется тем, что данные могут быть похищены из компьютера и одновременно оставаться на месте; ценность некоторых данных заключается в обладании ими, а не в уничтожении или изменении. Обеспечение безопасности информации — дорогое дело, и не столько из-за затрат на закупку или установку средств, сколько из-за того, что трудно квалифицированно определить границы разумной безопасности и соответствующего поддержания системы в работоспособном состоянии. Средства защиты информации нельзя проектировать, покупать или устанавливать до тех пор, пока не произведен соответствующий анализ. Анализ риска должен дать объективную оценку многих факторов (подверженность появлению нарушения работы, вероятность появления нарушения работы, ушерб от коммерческих потерь, снижение коэффициента готовности системы, общественные отношения, юридические проблемы) и предоставить информацию для определения подходящих типов и уровней безопасности. В связи с этим большую актуальность приобретает разработ-защищенных информационных технологий (ЗИТ), являющихся неотъемлемой компонентой современных систем обработки данных, информационных систем и ресурсов. 8.1. Информационная безопасность и защита информации Под информационной безопасностью понимается защищенность информации и поддерживающей инфраструктуры от случайных или преднамеренных воздействий естественного или искусственного характера, чреватых нанесением ущерба владельцам или пользователям информации и поддерживающей инфраструктуры. Защита информации — это комплекс мероприятий, направленных на обеспечение информационной безопасности. На практике под этим понимается поддержание целостности, доступности и, если нужно, конфиденциальности информации и ресурсов, используемых для ввода, хранения, обработки и передачи данных. Отметим, что меры информационной безопасности можно разделить на три группы в соответствии с тем, направлены ли они на предупреждение, обнаружение или ликвидацию последствий нападений. Большинство мер носят предупредительный характер. Оперативный анализ регистрационной информации и некоторые аспекты реакции на нарушения служат для обнаружения угроз. Ровни обеспечения информационной безопасности Проблемы обеспечения безопасности носят комплексный характер, включают необходимость сочетания законодательных, организационных и программно-технических мер. К сожалению, законодательная база отстает от требностей практики. Имеющиеся в России законы и указы носят в основном запретительный характер. В то же время следует учитывать, что в данном случае от государства требуется в первую очередь поддержка, 328
организация и координация работ. В других странах это поняли довольно давно. Так, в США в 1987 г. был принят закон о компьютерной безопасн сти (Computer Security Act, вступил в силу в сентябре 1988 м Этот закон предусматривает комплекс мер по обучению поль зователей, имеющих дело с критичной информацией, разъяснительных руководств и т. д., без чего сознательное поддержание режима безопасности просто невозможно. И данный закон на самом деле выполняется. Проблемы законодательного уровня мы здесь не рассматриваем, отсылая читателей, например, к учебному пособию [30]. Следующим после законодательного, можно назвать управленческий (организационный) уровень. Руководство каждой организации должно осознать необходимость поддержания режима безопасности и выделения на эти цели значительных ресурсов. Главное, что должен сделать управленческий уровень, это выработать политику безопасности, которая задает общее направление работам в данной области и управленческие регуляторы безопасности. Операционные регуляторы применяются к окружению компьютерных систем и прежде всего к людям. Имеются в виду способы подбора персонала, его обучения, обеспечения дисциплины. Сюда же относятся меры по физической защите помещений и оборудования и некоторые другие. Для поддержания режима информационной безопасности особенно важны программнотехнические меры, поскольку основная угроза компьютерным системам исходит от самих этих систем (сбои оборудования, ошибки программного обеспечения, промахи пользователей и администраторов и т. п.). Ключевые механизмы безопасности программно-технического уровня: • идентификация и аутентификация; • управление доступом; • протоколирование и аудит; • криптография; • экранирование. Строго говоря, всем защитным мерам должен предшество-анализ угроз. Информационная безопасность начинается не тогда, когда случилось первое нарушение, а когда идет формирование будущей компьютерной системы. Она начинается с составления спецификаций на приобретаемое оборудование и программное обеспечение. Наиболее распространенные угрозы Рассмотрим наиболее распространенные угрозы, которым подвержены современные компьютерные системы. Знание возможных угроз, а также уязвимых мест защиты, которые эти угрозы обычно эксплуатируют, необходимо для того, чтобы выбирать наиболее экономичные средства обеспечения безопасности. Отметим, что само понятие угроза в разных ситуациях зачастую трактуется по-разному. Например, для подчеркнуто открытой организации может просто не существовать угроз конфиденциальности — вся информация считается общедоступной; однако в большинстве случаев нелегальный доступ считается серьезной опасностью. Рассмотрим некоторую типичную организацию. Впрочем, многие угрозы (например, пожар) опасны для всех. Ошибки пользователей. Самыми частыми и самыми опасными (с точки зрения размера ущерба) являются непреднамеренные ошибки пользователей, операторов, системных администраторов и других лиц, обслуживающих информационные системы. Иногда такие ошибки являются угрозами (неправильно введенные данные, ошибка в программе, вызвавшая крах системы), иногда они создают слабости, которыми могут воспользоваться злоумышленники (таковы обычно ошибки администрирования). Утверждают, что 65 % потерь — следствие непреднамеренных ошибок. Пожары и наводнения можно считать пустяками по Равнению с безграмотностью и расхлябанностью. Очевидно, самый 329
радикальный способ борьбы с непреднамеренными отгибами — максимальная автоматизация и строгий контроль за пра-ильностью совершаемых действий. Кражи и подлоги. На втором месте по размерам ущерба располагаются кражи и подлоги. По данным газеты USA Today, в результате подобных противоправных действий с использованием персональных компьютеров американским организациям ежегодно наносится суммарный ущерб в размере не менее 1 млрд долларов. Можно предположить, что подлинный ущерб намного больше, поскольку многие организации по понятнк причинам скрывают такие инциденты. В большинстве расследованных случаев виновниками оказывались штатные сотрудники организаций, отлично знакомые с режимом работы и защитными мерами. Еще раз мы убеждаемся в том, что внутренняя угроза гораздо опаснее внешней. Весьма опасны так называемые обиженные сотрудники — нынешние и бывшие. Как правило, их действиями руководит желание нанести вред организации-обидчику, например: • повредить оборудование; • встроить логическую бомбу, которая со временем разрушит программы и/или данные; • ввести неверные данные; • удалить данные; • изменить данные и т. д. Обиженные сотрудники, даже бывшие, знакомы с порядками в организации и способны вредить весьма эффективно. Необходимо следить за тем, чтобы при увольнении сотрудника его права доступа к информационным ресурсам аннулировались. Угрозы, исходящие от окружающей среды, к сожалению, отличаются большим разнообразием. В первую очередь следует выделить нарушения инфраструктуры — аварии электропитания, временное отсутствие связи, перебои с водоснабжением, гражданские беспорядки и т. п. Опасны, разумеется, стихийные бедствия и события, воспринимаемые как стихийные бедствия — пожары, наводнения, землетрясения, ураганы. По известным данным, на долю огня, воды и аналогичных «врагов» (среди которых самый опасный — низкое качество электропитания и его перебои) приходится 13 % потерь, нанесенных информационным системам. Хакеры. Много говорят и пишут о хакерах, но исходящая от них угроза зачастую преувеличивается. Известно, что почти каждый Internet-сервер по нескольку раз в день подвергается попыткам проникновения; верно, что иногда такие попытки оказываются удачными; верно, что изредка подобные действия связань со шпионажем. Однако в целом ущерб от деятельности хакеро (в сравнении с другими угрозами) представляется не столь уж значительным. Вероятно, больше всего пугает непредсказуемость действий людей такого сорта. Представьте себе, что в любой момент к вам в квартиру могут забраться посторонние люди. Даже если они не имеют злого умысла, а зашли просто посмотреть, нет ли чего интересного, приятного в этом мало. Программные вирусы. Много говорят и пишут и о программныx вирусах. Как показало проведенное исследование, несмотря экспоненциальный рост числа известных вирусов, аналогичного роста количества инцидентов, вызванных вирусами, не зарегистрировано. Соблюдение несложных правил компьютерной гигиены сводит риск заражения практически к нулю. Там где работают, а не играют, число зараженных компьютеров составляет лишь доли процента. Справедливости ради отметим лишь, что зловредный код поражает не только персональные компьютеры, но и системы других типов. Первый шаг в анализе угроз — их идентификация. Анализируемые виды угроз следует выбрать из соображений здравого смысла (оставив вне поля зрения, например, 330
землетрясения или захват организации террористами), но в пределах выбранных видов провести максимально полное рассмотрение. Целесообразно выявлять не только сами угрозы, но и источники их возникновения — это поможет в выборе дополнительных средств защиты. Например, нелегальный вход в систему может стать следствием воспроизведения начального диалога, подбора пароля или подключения к сети неавторизованного оборудования. Очевидно, для противодействия каждому из перечисленных способов нелегального входа нужны свои механизмы безопасности. После идентификации угрозы необходимо оценить вероятность ее осуществления. Допустимо использовать при этом трехбалльную шкалу (низкая (1), средняя (2) и высокая (3) вероятность). Кроме вероятности осуществления, важен размер потенциального ущерба. Например, пожары бывают нечасто, но ущерб от каждого из них, как правило, велик. Тяжесть ущерба также можно оценить по некоторой шкале. Оценивая тяжесть ущерба, необходимо иметь в виду не только чепосредственные расходы на замену оборудования или востановление информации, но и более отдаленные, такие, как подрыв репутации, ослабление позиций на рынке и т. п. Пусть, например, в результате дефектов в управлении доступом к бухгалтерской информации сотрудники получили возможности корректировать данные о собственной заработной плате. Следствием такого состояния дел может стать не только пеп бюджетных или корпоративных средств, но и полное разложение коллектива, грозящее развалом организации. Слабости обладают свойством притягивать к себе не т злоумышленников, но и сравнительно честных людей. Не всякий устоит перед искушением немного увеличить свою зарплату если есть уверенность, что это сойдет с рук. Поэтому, оценивая вероятность осуществления угроз, целесообразно исходить не только из среднестатистических данных, но учитывать также специфику конкретных информационных систем. Если в подвале дома, занимаемого организацией, располагается сауна, а сам дом имеет деревянные перекрытия, то вероятность пожара, к сожалению, оказывается существенно выше средней. Таковы основные угрозы, на долю которых приходится львиная доля урона, наносимого информационным системам. Рассмотрим теперь иерархию защитных мероприятий, способных противостоять угрозам. Управленческие меры обеспечения информационной безопасности Главная цель мер, предпринимаемых на управленческом уровне, — сформировать программу работ в области информационной безопасности и обеспечить ее выполнение, выделяя необходимые ресурсы и контролируя состояние дел. Политика безопасности. Основой программы является политика безопасности, отражающая подход организации к защите своих информационных активов. Под политикой безопасности понимают совокупность документированных управленческих решений, направленных на защиту информации и ассоциированных с ней ресурсов. С практической точки зрения политику безопасности целесообразно подразделить на три уровня. К верхнему уровню можно отнести решения, затраги вающие организацию в целом. Они носят весьма общий характер и, как правило, исходят от руководства организации. Политика верхнего уровня должна четко очерчивать сферу своего, влияния. Возможно, это будут все компьютерные системы opганизации (или даже больше, если политика регламентирует некоторые аспекты использования сотрудниками своих доманих компьютеров). Возможна, однако, и такая ситуация, когда в сферу влияния включаются лишь наиболее важные системы. 331
К среднему уровню можно отнести вопросы, касающиеся отдельных аспектов информационной безопасности, но важные для различных систем, эксплуатируемых организацией. Примеры таких вопросов — отношение к передовым (но, возможно, недостаточно проверенным) технологиям, доступ к Internet (как сочетать свободу получения информации с защитой от внешних угроз?), использование домашних компьютеров, применение пользователями неофициального программного обеспечения и т. д. Политика безопасности нижнего уровня относится к конкретным сервисам. Она включает в себя два аспекта — цели и правила их достижения, поэтому ее порой трудно отделить от вопросов реализации. В отличие от двух верхних уровней, рассматриваемая политика должна быть гораздо детальнее. Есть много вещей, специфичных для отдельных сервисов, которые нельзя единым образом регламентировать в рамках всей организации. В то же время эти вещи настолько важны для обеспечения режима безопасности, что решения, относящиеся к ним, должны приниматься на управленческом, а не техническом уровне. Программа безопасности. После того, как сформулирована политика безопасности, можно приступать к составлению программы ее реализации и собственно к реализации. Проведение политики безопасности в жизнь требует использования трех видов регуляторов — управленческих, операционных и программно-технических. Рассмотрим управленческий аспект программы безопасности. Чтобы понять и реализовать любую программу, ее целесообразно структурировать по уровням, обычно в соответствии со структурой организации. В простейшем и самом распространенном случае достаточно двух уровней — верхнего, или центрального который охватывает всю организацию, и нижнего, или сервисного, который относится к отдельным сервисам или группам однородных сервисов. Программу верхнего уровня возглавляет лицо, отвечающее за информационную безопасность организации. У этой программы следующие главные цели: • управление рисками (оценка рисков, выбор эффективных средств защиты, см. следующий раздел); • координация деятельности в области информацион безопасности, пополнение и распределение ресурсов; • стратегическое планирование; • контроль деятельности в области информационной 6 опасности. Цель программы нижнего уровня — обеспечи надежную и экономичную защиту конкретного сервиса группы однородных сервисов. На этом уровне решается, каки механизмы защиты использовать, закупаются и устанавливаются технические средства, выполняется повседневное администрирование, отслеживается состояние слабых мест и т. п. Обычно за программу нижнего уровня отвечают администраторы сервисов Выбирая подходящий способ защиты, целесообразно учитывать возможность экранирования одним сервисом безопасности сразу нескольких прикладных сервисов. Так поступили в Масса-чусетском технологическом институте, защитив несколько тысяч компьютеров сервером аутентификации Kerberos. Регулирование режима безопасности Рассмотрим подробнее меры безопасности, которые ориентированы на людей, а не на технические средства. Именно люди формируют режим информационной безопасности и они же оказываются главной угрозой, поэтому «человеческий фактор» заслуживает первостепенного внимания. Сюда входят следующие вопросы: • управление персоналом; • физическая защита; • поддержание работоспособности; • реакция на нарушения режима безопасности; 332
• планирование восстановительных работ. Управление персоналом начинается с приема нового сотру ника на работу и даже раньше — с составления описания дол ности. Уже на этом этапе желательно привлечение специали по информационной безопасности для определения компьют ных привилегий, ассоциируемых с должностью. Существует общих принципа, которые следует иметь в виду: • разделение обязанностей; • минимизация привилегий. Принцип разделения обязанностей предписывает оаспределять роли и ответственность, чтобы один человек не мог нарушить критически важный для организации процесс. Например, нежелательна ситуация, когда платежи от имени организации выполняет один человек. Надежнее поручить одному сотруднику оформлять заявки на платежи, а другому — заверять эти заявки. Принцип минимизации привилегий предписыва-выделять пользователям только те права доступа, которые необходимы им для выполнения служебных обязанностей. Назначение этого принципа очевидно — уменьшить ущерб от случайных или умышленных некорректных действий пользователей. Проблема обучения — одна из центральных с точки зрения информационной безопасности. Если сотрудник не знаком с политикой безопасности своей организации, он не может стремиться к достижению сформулированных в ней целей. Если он не знает мер безопасности, он не сможет их соблюдать. Напротив, если сотрудник знает, что его действия протоколируются, он, возможно, воздержится от нарушений. Физическая защита. Безопасность компьютерной системы зависит от окружения, в котором она работает. Следовательно, необходимо принять меры для защиты зданий и прилегающей территории, поддерживающей инфраструктуры и самих компьютеров. Известны следующие направления физической защиты: • физическое управление доступом; • противопожарные меры; • защита поддерживающей инфраструктуры; • защита от перехвата данных; • защита мобильных систем. Меры физического управления доступом позволяют контролировать и при необходимости ограничивать вход и выход сотрудников и посетителей. Контролироваться может все здание организации и, кроме того, отдельные помещения, например, те, где расположены серверы, коммуникационная аппа-тура и т. п. Средства физического управления доступом известны давно — это охрана, двери с замками, перегородки, телекамеры датчики движения и многое другое. Противопожарные меры. Отметим лишь крайнюю желательност установки противопожарной сигнализации и автоматических средств пожаротушения. Обратим также внимание на то, как защитные меры могут создавать новые слабости. Если на работу взят новый охранник, это, вероятно, улучшает физическое управление доступом. Если же он по ночам курит и пьет, то повышенная пожарная опасность делает его скорее врагом, чем другом организации. К поддерживающей инфраструктуре можно нести системы электро-, водо- и теплоснабжения, кондицион ры, средства коммуникаций. В принципе к ним применимы т же требования целостности и доступности, что и к информационным системам. Для обеспечения целостности нужно защищать оборудование от краж и повреждений. Для поддержания доступности целесообразно выбирать оборудование с максимальным временем наработки на отказ, дублировать ответственные узлы, всегда иметь под рукой запчасти. 333
Перехват данных может осуществляться самыми разными способами: подсматриванием за экраном монитора, чтением пакетов, передаваемых по локальной сети, улавливанием стука иголок матричного принтера или кнопок на клавиатуре, анализом побочных электромагнитных излучений и наводок (ПЭМИН). К сожалению, некоторые способы перехвата данных, такие как анализ ПЭМИН, относительно доступны и дешевы, а бороться с ними трудно и дорого. Остается уповать на то, что для коммерческих систем обеспечение конфиденциальности не является главной задачей, пытаться держать под контролем линии связи (например, заключать их в надувную оболочку с обнаружением прокалывания) и разместиться в тихом особняке, поодаль от других домов. Мобильные и портативные компьютеры — заманчивый объект кражи. Их довольно часто оставляют без присмотра, в автомобиле или на работе, и унести и спрятать такой компьютер весьма несложно. Следует настоятельно рекомендовать шифрование данных на жестких дисках ноутбуков и лэптопов. Поддержание работоспособности включает в себя рутинны действия, направленные на поддержание компьютерных систеь и имеющие отношение к информационной безопасности. Как ни странно, именно здесь таится наибольшая опасность. Нечаянные ошибки системных администраторов и пользовате грозят повреждением аппаратуры, разрушением программ и да ных; «в лучшем случае» создаются слабости, облегчающие реализацию угроз. Недооценка факторов безопасности в повседневной работе – ахиллесова пята многих организаций. Дорогие средства безопасности теряют смысл, если они плохо документированы, нфликтуют с другим программным обеспечением, а пароль стемного администратора не менялся с момента установки. Можно выделить следующие направления повседневной деятельности: • поддержка пользователей; • поддержка программного обеспечения; • конфигурационное управление; • резервное копирование; . • управление носителями; • документирование; • регламентные работы. Поддержка пользователей состоит прежде всего в консультировании и в оказании помощи при решении разного рода проблем. Иногда в организациях создают для этой цели специальный «стол справок», чаще от пользователей отбивается системный администратор. Очень важно в потоке вопросов, умных и не очень, уметь выявлять проблемы, связанные с информационной безопасностью. Поддержка программного обеспечения — одно из важнейших средств обеспечения целостности информации. Прежде всего, необходимо контролировать, какое программное обеспечение выполняется на компьютерах. Если пользователи могут устанавливать программы по своему усмотрению, это чревато заражением вирусами, а также появлением утилит, действующих в обход защитных средств. Например, на любой персональный компьютер, подключенный к сети Ethernet, можно установить программу — сетевой анализатор, позволяющую отслеживать весь сетевой трафик. Обладатель такой программы может довольно быстро «выловить» пароли других пользователей и системных администраторов, получив тем самым по существу неограниченный доступ к сетевым ресурсам. Конфигурационное управление позволяет контролировать и фиксировать изменения, вносимые в программную Фигурацию. Прежде всего, необходимо застраховаться от учайных или непродуманных модификаций, уметь как минимум возвращаться к прошлой, работающей версии. Далее, фиксация изменений позволит легко восстановить текущую 334
версию после аварии. Лучший способ уменьшить количество ошибок в рутинной работе — в максимальной степени автоматизирок ее. Хорошим примером являются развитые средства конфигурационного управления, когда одним нажатием можно вызв внесение или откат сотен согласованных изменений. Резервное копирование необходимо для восстано ления программ и данных после аварий. Здесь также целесообразно автоматизировать работу, как минимум сформировав кои пьютерное расписание выполнения полных и инкрементальных копий, а как максимум воспользовавшись безлюдной технологи ей фирмы Hewlett-Packard. Нужно также наладить размещение копий в безопасном месте, защищенном от пожаров и иных угроз. К резервному копированию следует относиться как к осознанной необходимости — стоит хоть на день отступить от расписания и неприятности не заставят себя ждать. Управление носителями служит для обеспечения физической защиты и учета дискет, CD, лент, печатных выдач и т. п. Управление носителями должно обеспечить конфиденциальность, целостность и доступность информации, хранящейся вне компьютерных систем. Под физической защитой здесь понимается не только отражение попыток несанкционированного доступа, но и предохранение от вредных влияний окружающей среды (жары, холода, влаги, магнетизма). Управление носителями должно охватывать весь жизненный цикл дискет и лент — от закупки до выведения из эксплуатации. К управлению носителями можно отнести и контроль потоков данных, выдаваемых на печать. Здесь поучительно отметить необходимость сочетания различных механизмов информационной безопасности. Программные средства позволяют направить конфиденциальные данные на определенный принтер, но только меры физической защиты способны гарантировать отсутствие посторонних у этого принтера. Документирование — неотъемлемая часть информационной безопасности. В виде документов оформляется почти все — от политики безопасности до журнала учета дискет. Важно, чтобы документация была актуальной, отражала текущее, а не прошлое состояние дел, причем отражала в непротиворечи вом виде. Здесь необходим правильный технологический подход когда документы печатаются и сшиваются способом, облегчающим внесение изменений. К хранению некоторых документов (содержащих, например, анализ системных слабостей и угроз) применимы требования обеспечения конфиденциальности, к другим, таким как план постановления после аварий — требования целостности и дотупности (план необходимо найти и прочитать). Регламентные работы — очень серьезная угроза безопасности. Лицо, осуществляющее регламентные работы, получает исключительный доступ к системе, и на практике очень трудно проконтролировать, какие именно действия совершаются. Здесь на первый план выходит степень доверия к тем, кто выполняет работы. Лет двадцать назад, очевидно, предвидя волну публикаций по сертификации, Кен Томсон, один из создателей ОС UNIX, написал, что нужно верить или не верить не программам, а людям, которые пишут эти программы. Если в общем виде данное утверждение можно оспорить, то применительно к регламентным работам оно абсолютно справедливо. Реакция на нарушения режима безопасности Программа безопасности, принятая организацией, должна предусматривать набор оперативных мероприятий, направленных на обнаружение и нейтрализацию вторжений хакеров и зловредного кода. Важно, чтобы в подобных случаях последовательность действий была спланирована заранее, поскольку меры нужно принимать срочные и скоординированные. Реакция на нарушения режима безопасности преследует две главные цели: • блокирование нарушителя и уменьшение наносимого вреда; • недопущение повторных нарушений. 335
В организации должен быть человек, доступный 24 часа в сутки (лично, по телефону, пейджеру или электронной почте), отвечающий за реакцию на нарушения. Все должны знать координаты этого человека и обращаться к нему при первых признаках опасности. В общем, нужно действовать, как при пожаре: знать, куда звонить, и что делать до приезда пожарной команды. Правда, пользователя может удержать от вызова помощи сознание собственной вины и боязнь наказания, если он сам принес на работу зараженную дискету. Для таких случаев целесообразно смотреть процедуру анонимного вызова, поскольку лучше наказать одного виновного, чем допустить распространение последствий нарушения. Важность быстрой и скоординированной реакции мож продемонстрировать на следующем примере. Пусть локаль сеть предприятия состоит из двух сегментов, администрируемых разными людьми. Пусть, далее, в один из сегментов был внесен вирус. Почти наверняка через несколько минут (или, в крайн случае, несколько десятков минут) вирус распространится и другой сегмент. Значит, меры нужны немедленные. Далее, вычищать вирус нужно одновременно в обоих сегментах; в противном случае сегмент, вычищенный первым, заразится от другого а затем вирус вернется и во второй сегмент. Для недопущения повторных нарушений необходимо анализировать каждый инцидент, выявлять причины, накапливать статистику. Каковы источники зловредного кода? Какие пользователи имеют обыкновение выбирать слабые пароли? На подобные вопросы и должны дать ответы результаты анализа. Хотя «реактивный» подход к информационной безопасности недостаточен, но некоторая обратная связь все же должна существовать. Заранее все предусмотреть невозможно. Появляются новые вирусы, совершенствуются приемы нападения, новые системы приносят с собой новые угрозы. Кто-то в организации должен отслеживать этот процесс, принимать краткосрочные меры и корректировать программу безопасности для принятия долгосрочных мер. Основные программно-технические меры Программно-технические меры образуют последний и самый важный рубеж информационной защиты. Напомним, что основную часть ущерба наносят действия легальных пользователей, по отношению к которым операционные регуляторы не могут дать решающего эффекта. Главные враги — некомпетентность и неаккуратность при выполнении служебных обязанностей, и только программно-технические меры способны им противостоять. Компьютеры помогли автоматизировать многие области человеческой деятельности. Вполне естественным представляется желание возложить на них и обеспечение собственной безопасности. Даже физическую защиту все чаще поручают не охранникам, а интегрированным компьютерным системам, что позволяет одновременно отслеживать перемещения сотрудников и п пространству предприятия, и по информационному пространству. Это вторая причина, объясняющая важность программно-технических мер. Известны основные сервисы безопасности: • идентификация и аутентификация; • управление доступом; • протоколирование и аудит; • криптография; • экранирование. Идентификацию и аутентификацию можно считать основой программно-технических средств безопасности, поскольку остальные сервисы рассчитаны на обслуживание именованных субъектов. Идентификация и аутентификация — это первая линия обороны, «проходная» информационного пространства организации. Без порядка на проходной не будет порядка и внутри охраняемой территории. 336
Идентификация позволяет субъекту (пользователю или процессу, действующему от имени определенного пользователя) назвать себя (сообщить свое имя). Посредством аутентификации вторая сторона убеждается, что субъект действительно тот, за кого он себя выдает. В качестве синонима слова «аутентификация» иногда используют сочетание «проверка подлинности». Общая схема идентификации и установления подлинности пользователя при его доступе в компьютерную систему представлена на рис. 8.1. Если в процессе аутентификации подлинность пользователя установлена, то система защиты должна определить его полномочия по использованию ресурсов ВС для последующего контроля установленных полномочий. Управление доступом. В настоящее время следует признать устаревшим (или, по крайней мере, не полностью соответствующим действительности) положение о том, что разграничение доступа направлено исключительно на защиту от злоумышленных пользователей. Современные информационные системы характеризуются чрезвычайной сложностью и их внутренние ошибки представляют не меньшую опасность. Средства управления доступом позволяют специфицировать и контролировать действия, которые субъекты (пользователи и процессы) могут выполнять над объектами (информацией и другими компьютерными ресурсами). В данном разделе речь идет о логическом (в отличие от физического) управлении доступом, который реализуется рограммными средствами. Логическое управление доступом — это основной механизм многопользовательских систем, призванный обеспечить конфиденциальность и целостность объектов и, до некоторой степени, их доступность (путем запрещения обслуживания неавторизованных пользователей). Имеется совокупность субъектов и набор объектов. Задача логического управления доступом состоит в том, чтобы для каждой пары (субъект, объект) определить множество допустимых операций (зависящее, быть может, от некоторых дополнительных условий) и контролировать выполнение установленного порядка. 337
Отношение (субъекты, объекты) можно представить в виде матрицы, в строках которой перечислены субъекты, в столбцах — объекты, а в клетках, расположенных на пересечени строк и столбцов, записаны дополнительные условия (например, время и место действия) и разрешенные виды доступа. Фрагмен матрицы может выглядеть, например, так, как это показано на рис 8.2. Логическое управление доступом — одно из сложнейших в области информационной безопасности. Причина в том, что само понятие объекта (а тем более видов доступа) меняется от сервиса к сервису. Для операционной системы в число объектов входят файлы, устройства и процессы. Применительно к файлам и устройствам обычно рассматриваются права на чтение, запись, выполнение (для программных файлов), иногда на удаление и добавление. Отдельным правом может быть возможность передачи полномочий доступа другим субъектам (так называемое право владения). Процессы можно создавать и уничтожать. Современные операционные системы могут поддерживать и другие объекты. Например, в ОС Solaris имеются отображения со своими видами доступа. Для систем управления реляционными базами данных объект — это база данных, таблица, представление, хранимая процедура, к таблицам применимы операции поиска, добавления, модификации и удаления данных, у других объектов иные виды Доступа. И список этот можно продолжать до бесконечности. Протоколирование и аудит. Под протоколированием понимается сбор и накопление информации о событиях, происходящих в информационной системе предприятия. У каждого сервиса свой набор возможных событий, но в любом случае их можно подразделить на внешние (вызванные действиями других сервисов), внутренние (вызванные действиями самого сервиса) и клиентские (вызванные действиями пользователей и адми страторов). Аудит — это анализ накопленной информации, проводим -оперативно, (почти) в реальном времени или периодически ( например, раз в день). Реализация протоколирования и аудита преследует следующие главные цели: • обеспечение подотчетности пользователей и администра торов; • обеспечение возможности реконструкции последовательности событий; • обнаружение попыток нарушения информационной безопасности; • предоставление информации для выявления и анализа проблем. Криптография. Одним из наиболее мощных средств обеспечения конфиденциальности и контроля целостности информации является криптография. Во многих отношениях она занимает центральное место среди программно-технических регуляторов безопасности, являясь основой реализации многих из них, и, в то же время, последним (а подчас и 338
единственным) защитным рубежом (см. далее, п. 8.2). Например, для портативных компьютеров, которые физически защитить крайне трудно, только криптография позволяет гарантировать конфиденциальность информации даже в случае кражи. Экранирование. Постановка задачи экранирования состоит в следующем. Пусть имеется два множества информационных систем. Экран — это средство разграничения доступа клиентов из одного множества к серверам из другого множества. Экран выполняет свои функции, контролируя все информационные потоки между двумя множествами систем (рис. 8.3). В простейшем случае экран состоит из двух механизмов, один из которых ограничивает перемещение данных, а второй, наоборот, ему способствует (т. е. осуществляет перемещение данных). В более общем случае экран (полупроницаемую оболочку) удобно представлять себе как последовательность фильтров. Каждый из них может задержать (не пропустить) данные, а может и сразу «перебросить» их «на другую сторону». Кроме того, допускается передача порции данных на следующий фильтр для продолжения анализа или обработка данных от имени адресата и возврат результата отправителю. Помимо функций разграничения доступа, экраны осуществляют также протоколирование информационного обмена. Обычно экран не является симметричным, для него определены понятия «внутри» и «снаружи». При этом задача экранирования формулируется как защита внутренней области от потенциально враждебной внешней. Так, межсетевые экраны устанавливают для защиты локальной сети организации, имеющей выход в открытую среду, подобную Internet. Другой пример экрана – устройство защиты порта компьютера, контролирующее доступ к коммуникационному порту компьютера до и независимо от всех прочих системных защитных средств. 8.2. Криптографические методы защиты данных Криптографическое закрытие является специфическим способом защиты информации, оно имеет многовековую историю развития и применения. Поэтому у специалистов не возникало сомнений в том, что эти средства могут эффективно использоваться также и для защиты информации в АСОД, вследствие чего им уделялось и продолжает уделяться большое внимание. Достаточно сказать, что в США еще в 1978 г. утвержден и рекомендован для широкого применения национальный стандарт (DES) криптографического закрытия информации. Подобный стандарт в 1989 г. (ГОСТ 28147— 89) утвержден и у нас в стране. Интенсивно ведутся исследования с целью разработки в Ь1сокостойких и гибких методов криптографического закрытия информации. Более того, сформировалось самостоятельное на-Учное направление — криптология (kryptos — тайный, logos — наука), изучающая и разрабатывающая научно-метол логические основы, способы, методы и средства криптографу ского преобразования информации. Криптология, криптография, криптоанализ 339
Можно выделить следующие три периода развития крипто-логии. Первый период — эра донаучной криптологии, являвшейся ремеслом-уделом узкого круга искусных умельцев. Началом второго периода можно считать 1949 г., когда появилась работа К. Шеннона «Теория связи в секретных системах», в которой проведено фундаментальное научное исследование шифров и важнейших вопросов их стойкости. Благодаря этому труду криптология оформилась как прикладная математическая дисциплина. И, наконец, начало третьему периоду было положено появлением в 1976 г. работы У. Диффи, М. Хеллмана «Новые направления в криптографии», где показано, что секретная связь возможна без предварительной передачи секретного ключа. Так началось и продолжается до настоящего времени бурное развитие наряду с обычной классической криптографией и криптографии с открытым ключом. Еще несколько веков назад само применение письменности можно было рассматривать как способ закрытия информации, так как владение письменностью было уделом немногих. Криптология разделяется на два направления — криптографию и криптоанализ. Цели этих направлений прямо противоположны: • криптография занимается поиском и исследованием математических методов преобразования информации; • сфера интересов криптоанализа — исследование возможности расшифровывания информации без знания ключей; Современная криптография включает в себя четыре крупных раздела: • симметричные криптосистемы; • криптосистемы с открытым ключом; • системы электронной подписи; • управление ключами. Основные направления использования криптографических методов — передача конфиденциальной информации по каналам связи (например, электронная почта), установление подлинности передаваемых сообщений, хранение информации (документов, баз данных) на носителях в зашифрованном виде. Криптосистемы разделяются на симметричные и асимметричные (с открытым ключом): • в симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ. Существуют весьма эффективные (быстрые и надежные) методы симметричного шифрования. Существует и стандарт на подобные методы — ГОСТ 28147—89 «Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования». Основным недостатком симметричного шифрования является то, что секретный ключ должен быть известен и отправителю, и получателю; • в асимметричных методах используются два ключа. Один из них, несекретный (он может публиковаться вместе с адресом пользователя), используется для шифровки, другой (секретный, известный только получателю) — для расшифровки. Самым популярным из асимметричных является метод RSA (Райвест, Шамир, Адлеман), основанный на операциях с большими (скажем, 100-значными) простыми числами и их произведениями. Использование асимметричного шифрования проиллюстрировано рис. 8.4. 340
Асимметричные методы позволяют реализовать так называемую электронную подпись, или электронное заверение сообщения. Идея состоит в том, что отправитель посылает два экземпляра сообщения — открытое и дешифрованное его секретным ключом (естественно, дешифровка незашифрованного сообщения на самом деле есть форма шифрования). Получатель может зашифровать с помощью открытого ключа отправителя дешифрованный экземпляр и сравнить с открытым. Если они совпадут, ли ность и подпись отправителя можно считать установленными Термины распределение ключей и управление ключами отно сятся к процессам системы обработки информации, содержанием которых является составление и распределение ключей между пользователями. Классы методов криптографии Рассмотрим классификацию методов криптографического закрытия. 1. Шифрование 1.1. ЗАМЕНА (ПОДСТАНОВКА) 1.1.1. Простая (одноалфавитная) 1.1.2. Многоалфавитная одноконтурная обыкновенная 1.1.3. Многоалфавитная одноконтурная монофоническая 1.1.4. Многоалфавитная многоконтурная 1.2. ПЕРЕСТАНОВКА 1.2.1. Простая 1.2.2. Усложненная по таблице 1.2.3. Усложненная по маршрутам 1.3. АНАЛИТИЧЕСКОЕ ПРЕОБРАЗОВАНИЕ 1.3.1. С использованием алгебры матриц 1.3.2. По особым зависимостям 1.4. ГАММИРОВАНИЕ 1.4.1. С конечной короткой гаммой 1.4.2. С конечной длинной гаммой 1.4.3. С бесконечной гаммой 1.5. КОМБИНИРОВАННЫЕ МЕТОДЫ 1.5.1. Замена и перестановка 1.5.2. Замена и гаммирование 1.5.3. Перестановка и гаммирование 1.5.4. Гаммирование и гаммирование 2. Кодирование 2.1. СМЫСЛОВОЕ 2.1.1. По специальным таблицам (словарям) 2.2. СИМВОЛЬНОЕ 2.2.1. По кодовому алфавиту 341
3. Другие виды 3.1. РАССЕЧЕНИЕ-РАЗНЕСЕНИЕ 3.1.1. Смысловое 3.1.2. Механическое 3.2. СЖАТИЕ-РАСШИРЕНИЕ Под шифрованием понимается такой вид криптографи-ского закрытия, при котором преобразованию подвергается каждый символ защищаемого сообщения. Все известные способы шифрования можно разбить на пять групп: подстановка (замена), перестановка, аналитическое преобразование, гаммирование и комбинированное шифование. Каждый из этих способов может иметь несколько разновидностей. Под кодированием понимается такой вид криптографического закрытия, когда некоторые элементы защищаемых данных (это не обязательно отдельные символы) заменяются заранее выбранными кодами (цифровыми, буквенными, буквенно-цифровыми сочетаниями и т. п.). Этот метод имеет две разновидности: смысловое и символьное кодирование. При смысловом кодировании кодируемые элементы имеют вполне определенный смысл (слова, предложения, группы предложений). При символьном кодировании кодируется каждый символ защищаемого сообщения. Символьное кодирование по существу совпадает с шифрованием заменой. Перестановки — несложный метод криптографического преобразования. Используется, как правило, в сочетании с другими методами. Многоалфавитная подстановка — наиболее простой вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. Для обеспечения высокой криптостойкости требуется использование больших ключей. Гаммирование — этот метод заключается в наложении на исходный текст некоторой псевдослучайной последовательности, генерируемой на основе ключа. Блочные шифры — последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемая к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем «чистые» преобразования того или иного класса в силу их более высокой крипто-стойкости. Российский и американский стандарты шифрования основаны именно на этом классе шифров. К отдельным видам криптографического закрытия отнесены методы рассечения — разнесения и сжатия данных. Рассечение—разнесение заключается в том, что массив защищаемых данных делится (рассекается) на такие элементы, каждый из которых в отдельности не позволяет раскрыть содержание защищаемой информации. Выделенные таким обпя зом элементы данных разносятся по разным зонам ЗУ или располагаются на различных носителях. Сжатие данных прел ставляет собой замену часто встречающихся одинаковых строк данных или последовательностей одинаковых символов некоторыми заранее выбранными символами. Кратко рассмотрим некоторые методы криптографического закрытия информации. Шифрование заменой (подстановка). В этом наиболее простом методе символы шифруемого текста заменяются другими символами, взятыми из одного (одно- или моноалфавитная подстановка) или нескольких (много- или полиалфавитная подстановка) алфавитов. Самой простой разновидностью является прямая (простая) замена, когда буквы шифруемого сообщения заменяются другими буквами того же самого или некоторого другого алфавита. Таблица замены может иметь следующий вид (табл. 8.1). 342
Используя эту таблицу, зашифруем текст: In this book the reader will wind a comprehensive survey...Получим следующее зашифрованное сообщение: At omiy pbbe omr nrsirn /add zail s xbwgnrmrtjafr jcnfru... Однако такой шифр имеет низкую стойкость, так как зашифрованный текст имеет те же статистические характеристики, что и исходный. Например, текст на английском языке содержит символы со следующими частотами появления (в порядке убывания): Е — 0,13, Т— 0,105; А — 0,081, О — 0,079 и т. д. В зашифрованном тексте наибольшие частоты появления в порядке убывания имеют буквы R — 0,12; О — 0,09, А и N по 0,07. Естественно предположить, что символом R зашифрована буква Е, символом О — букв Т и т. д. Это действительно соответствует таблице замены. Дальнейшая расшифровка не составляет труда. Эти методы дешифровки хорошо известны из классической литературы (см., например, Артур Конан Дойль «Пля-ущие человечки», или Алан Эдгар По «Золотой жук»). Если бы объем зашифрованного текста был намного больше, чем в рассмотренном примере, то частоты появления букв в зашифрованном тексте были бы еще ближе к частотам появления букв в английском алфавите и расшифровка оказалась бы еще проще. Поэтому простую замену используют редко и лишь в тех случаях, когда шифруемый текст короток. Для повышения стойкости шифра используют полиалфавитные подстановки, в которых для замены символов исходного текста используются символы нескольких алфавитов. Известно несколько разновидностей полиалфавитной подстановки, наиболее известными из которых являются одно- (обыкновенная и монофоническая) и много контурная. При полиалфавитной одноконтурной обыкновенной подстановке для замены символов исходного текста используются несколько алфавитов, причем смена алфавитов осуществляется последовательно и циклически, т. е. первый символ заменяется соответствующим символом первого алфавита, второй — символом второго алфавита и т. д. до тех пор, пока не будут использованы все выбранные алфавиты. После этого использование алфавитов повторяется. Шифрование методом перестановки. Этот метод заключается в том, что символы шифруемого текста переставляются по определенным правилам внутри шифруемого блока символов. Рассмотрим некоторые наиболее часто встречающиеся разновидности этого метода, которые могут быть использованы в автоматизированных системах. Самая простая перестановка — написать исходный текст задом наперед и одновременно разбить шифрограмму на пятерки букв. Например, из фразы ПУСТЬ БУДЕТ ТАК, КАК МЫ ХОТЕЛИ получится такой шифротекст: ИЛЕТО ХЫМКА ККАТТ ЕДУБЬ ТСУП. В последней группе (пятерке) не хватает одной буквы. Значит, прежде чем шифровать исходное выражение, следует его дополнить не значащей буквой (например, О) до числа, кратн го пяти: ПУСТЬ-БУДЕТ-ТАККА-КМЫХО-ТЕЛИО. 343
Тогда шифрограмма, несмотря на столь незначительное из менение, будет выглядеть подругому: ОИЛЕТ ОХЫМК АККАТ ТЕДУБ ЬТСУП Кажется, ничего сложного, но при расшифровке проявятся серьезные неудобства. Во время Гражданской войны в США в ходу был такой шифр: исходную фразу писали в несколько строк. Например, по пятнадцать букв в каждой (с заполнением последней строки незначащими буквами). Криптографические стандарты Широко известны алгоритмы блочного шифрования, принятые в качестве государственных стандартов шифрования данных в США и России. Data Encryption Standart. В 1973 г. Национальное бюро стандартов США начало разработку программы по созданию стандарта шифрования данных на ЭВМ. Был объявлен конкурс среди фирм-разработчиков США, который выиграла фирма IBM, представившая в 1974 г. алгоритм шифрования, известный под названием DES (Data Encryption Standart). Входные 64-битовые векторы, называемые блоками открытого текста, преобразуются в выходные 64-битовые векторы, называемые блоками шифротекста, с помощью двоичного 56-битового ключа К. Число различных ключей DES-алгоритма равно 256>7- 1016. Алгоритм реализуется в течение 16 аналогичных циклов шифрования, где на i-u цикле используется цикловой ключ А,-, представляющий собой алгоритмически вырабатываемую выборку 48 битов из 56 битов ключа К;, i = 1,2, ..., 16. Алгоритм обеспечивает высокую стойкость, однако недавние результаты показали, что современная технология позволяет создать вычислительное устройство стоимостью около 1 млн долларов США, способное вскрыть секретный ключ с помощью полного перебора в среднем за 3,5 часа. Из-за небольшого размера ключа было принято решение использовать DES-алгоритм для закрытия коммерческой (несекретной) информации. Практическая реализация перебора всех ключей в данных условиях экономически нецелесообразна, так как затраты на реализацию перебора не соответствуют ценности информации, закрываемой шифром. DES-алгоритм явился первым примером широкого производства и внедрения технических средств в области защиты информации. Национальное Бюро Стандартов США организовало проверку аппаратных реализаций DES-алгоритма на специальном тестирующем стенде. Только после положительных результатов проверки производитель получает от Национального Бюро Стандартов сертификат на право реализации своего продукта. К настоящему времени аттестовано несколько десятков изделий, выполненных на различной элементной базе. Достигнута высокая скорость шифрования. По некоторым сообщениям, имеется микросхема, реализующая DES-алгоритм со скоростью 45 Мбит/с. Велика доступность этих изделий: стоимость некоторых аппаратных реализаций ниже 100 долл. США. Основные области применения DES-алгоритма: • хранение данных в ЭВМ (шифрование файлов, паролей); • аутентификация сообщений (имея сообщение и контрольную группу, несложно убедиться в подлинности сообщения); • электронная система платежей (при операциях с широкой клиентурой и между банками); • электронный обмен коммерческой информацией (обмен данными между покупателем, продавцом и банкиром защищен от изменений и перехвата). ГОСТ 28129-89. В 1989 г. в СССР был разработан блочный шифр для использования в качестве государственного стандарта Шифрования данных. Разработка была принята и зарегистрирована как ГОСТ 28147—89. И хотя масштабы применения этого ЭДгоритма 344
шифрования до сих пор уточняются, начало его внедрению, в частности, в банковской системе, уже положено. Алгоритм несколько медлителен, но обладает весьма высокой стойкостью. Блок-схема алгоритма ГОСТ отличается от блок-схем DES-алгоритма лишь отсутствием начальной перестановки и числом циклов шифрования (32 в ГОСТе против 16 в DES-алг ритме). Ключ алгоритма ГОСТ — это массив, состоящий из 32-мео ных векторов X1, Х2, ..., Х8. Цикловой ключ i-го цикла Ki равен ХS, где ряду значений i от 1 до 32 соответствует следующий ряд значений s: 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8,8, 7, 6, 5, 4, 3, 2, 1. В шифре ГОСТ используется 256-битовый ключ и объем ключевого пространства составляет 2256. Ни на одной из существующих в настоящее время или предполагаемых к реализации в недалеком будущем ЭВМ общего применения нельзя подобрать ключ за время, меньшее многих сотен лет. Российский стандарт проектировался с большим запасом и по стойкости на много порядков превосходит американский стандарт DES с его реальным размером ключа в 56 бит и объемом ключевого пространства всего 256. В свете прогресса современных вычислительных средств этого явно недостаточно. В этой связи DES может представлять скорее исследовательский или научный, чем практический интерес. Алгоритм расшифрования отличается от алгоритма зашифрования тем, что последовательность ключевых векторов используется в обратном порядке. Характеристики криптографических средств защиты Важнейшей характеристикой надежности криптографического закрытия информации является его стойкость. Под этим понимается тот минимальный объем зашифрованного текста, статистическим анализом которого можно вскрыть исходный текст. Таким образом, по стойкости шифра можно определить допустимый объем информации, зашифровываемый при использовании одного ключа. При выборе криптографического алгоритма для использования в конкретной разработке одним из определяющих факторо является его стойкость, т. е. устойчивость к попыткам противоположной стороны его раскрыть. Вопрос о стойкости шифра при ближайшем рассмотрении сводится к двум взаимосвязанным вопросам: • можно ли вообще раскрыть данный шифр; • если да, то насколько это трудно сделать практически; Шифры, которые вообще невозможно раскрыть, называются абсолютно или теоретически стойкими. Существование подобных шифров доказывается теоремой Шеннона, однако ценой этой стойкости является необходимость использования для шифрования каждого сообщения ключа, не меньшего по размеру самого сообщения. Во всех случаях, за исключением ряда особых, эта цена чрезмерна, поэтому на практике в основном используются шифры, не обладающие абсолютной стойкостью. Таким образом, наиболее употребительные схемы шифрования могут быть раскрыты за конечное время или, что точнее, за конечное число шагов, каждый из которых является некоторой операцией над числами. Для них наиважнейшее значение имеет понятие практической стойкости, выражающее практическую трудность их раскрытия. Количественной мерой этой трудности может служить число элементарных арифметических и логических операций, которые необходимо выполнить, чтобы раскрыть шифр, т. е. чтобы для заданного шифротекста с вероятностью, не меньшей заданной величины, определить соответствующий открытый текст. При этом в дополнение к дешифруемому массиву данных криптоа-налитик может располагать блоками открытых данных и соответствующих им зашифрованных данных или даже возможностью получить 345
для любых выбранных им открытых данных соответствующие зашифрованные данные — в зависимости от перечисленных и многих других неуказанных условий различают отдельные виды криптоанализа. Все современные криптосистемы построены по принципу Кирхгоффа, т. е. секретность зашифрованных сообщений определяется секретностью ключа. Это значит, что даже если сам алгоритм шифрования известен криптоаналитику, тот тем не менее не в состоянии расшифровать сообщение, если не располагает соответствующим ключом. Все классические блочные шифры, в том числе DES и ГОСТ, соответствуют этому принципу и спроектированы таким образом, чтобы не было пути вскрыть их более эффективным способом, чем полным перебором по всему ключевому пространству, т. е. по всем возможны значениям ключа. Ясно, что стойкость таких шифров определ ется размером используемого в них ключа. 8.3. Компьютерные вирусы и защита от них Компьютерные вирусы, их свойства и типы Компьютерный вирус — это специально написанная, небольшая по размерам программа (т. е. некоторая совокупность выполняемого кода), которая может «приписывать» себя к другим программам («заражать» их), создавать свои копии и внедрять их в файлы, системные области компьютера и т. д., а также выполнять различные нежелательные действия на компьютере. По-видимому, самым ранним примером могут служить первые прототипы будущих вирусов программы-кролики. Не причиняя разрушений, они тем не менее были сконструированы так, что многократно копируя себя, захватывали большую часть ресурсов системы, отнимая процессорное время у других задач. История их создания доподлинно не известна. Возможно, они явились следствием программной ошибки, которая приводила к зацикливанию и наделяла программу репродуктивными свойствами. Первоначально кролики (rabbits) встречались только на локальных машинах, но с появлением сетей быстро «научились» распространяться по последним. Затем, в конце шестидесятых годов была обнаружена саморазмножающаяся по сети APRAnet программа, известная сегодня как Creeper (вьюнок). Вьюнок проявлял себя текстовым сообщением: "i'm the creeper ... catch me.if you can" (" я вьюнок... поймай меня, если сможешь"), и экономно относился к ресурсам пораженной машины, не причиняя ей никакого вреда и разве что слегка беспокоя владельца. Каким бы безвредным Вьюнок ни казался, но он впервые показал, что проникновение на чужой компьютер возможно без ведома и против желания его владельцев. С появлением Creeper родились и первые системы защиты. Первым шагом в борьбе против Вьюнка стал Жнец (Reaper), репродуцирующийся наподобие Creeper, но уничтожающий все встретившиеся ему копии последнего. Достоверно неизвестно, чем закончилась борьба двух программ. Так или иначе, от подобного подхода к защите впоследствии отказались. Однако копии обеих программ еще долго бродили по сети. Свойства вирусов. Своим названием компьютерные вирусы обязаны определенному сходству с вирусами естественными: • способности к саморазмножению; • высокой скорости распространения; • избирательности поражаемых систем (каждый вирус поражает только определенные системы или однородные группы систем); • способности «заражать» еще незараженные системы; • трудности борьбы с вирусами и т. д. 346
В последнее время к этим особенностям, характерным для вирусов компьютерных и естественных, можно добавить еще и постоянно увеличивающуюся быстроту появления модификаций (мутаций) и новых поколений вирусов. Программа, внутри которой находится вирус, называется «зараженной». Когда такая программа начинает работу, то сначала управление получает вирус. Вирус находит и «заражает» другие программы, а также выполняет какие-нибудь вредные действия (например, портит файлы или таблицу размещения файлов на диске, «засоряет» оперативную память и т. д.). Для маскировки вируса действия по заражению других программ и нанесению вреда могут выполняться не всегда, а, скажем, при выполнении определенных условий. Классификация вирусов. Один из авторитетнейших «вирусологов» страны Евгений Касперский предлагает условно классифицировать вирусы по следующим признакам: • по среде обитания вируса; • по способу заражения среды обитания; • по деструктивным возможностям; • по особенностям алгоритма вируса. Более подробная классификация внутри этих групп представлена на рис. 8.5. Основными путями проникновения вирусов в компьютер являются съемные диски (гибкие и лазерные), а также компьютерные сети. Заражение жесткого диска вирусами может произойти при загрузке программы с дискеты, содержащей вирус. Такое заражение может быть случайным, например, если дискету не вынули из дисковода А: и перезагрузили компьютер, при этом дискета может быть и не системной. Заразить дискету гораздо проще. На нее вирус может попасть, даже если дискету просто вставили в дисковод зараженного компьютера и прочитали ее оглавление. 347
Как работает вирус Рассмотрим схему функционирования простейшего загрузочного вируса, заражающего дискеты. При включении компьютера управление передается программе начальной загрузки, которая хранится в постоянном запоминающем устройстве (ПЗУ) т. е. ПНЗ ПЗУ. Эта программа тестирует оборудование и при успешном завершении проверок пытается найти дискету в дисководе А: Всякая дискета размечена на секторы и дорожки, секторы объединяются в кластеры. Среди секторов есть несколько служебных, используемых операционной системой для собственных нужд (в этих секторах не могут размещаться ваши данные). Среди служебных секторов нас пока интересует один — так называемый сектор начальной загрузки (boot sector). В секторе начальной загрузки хранится информация о дискете — количество поверхностей, количество дорожек, количество секторов и пр. Но нас сейчас интересует не эта информация, а небольшая программа начальной загрузки (ПНЗ), которая должна загрузить саму операционную систему и передать ей управление. 348
Тем самым, нормальная схема начальной загрузки следующая: ПНЗ (ПЗУ) - ПНЗ (диск) - СИСТЕМА В загрузочных вирусах выделяют две части — так называемую голову и так называемый хвост. Хвост, вообще говоря, может быть пустым. Пусть у вас имеются чистая дискета и зараженный компьютер под которым мы понимаем компьютер с активным резидентным вирусом. Как только этот вирус обнаружит, что в дисководе появилась подходящая среда — в нашем случае не защи-нная от записи и еще незараженная дискета, он приступает кзаражению. Заражая дискету, вирус производит следующие действия: • выделяет некоторую область диска и помечает ее как не доступную операционной системе, это можно сделать по-разному, в простейшем и традиционном случае занятые вирусом секторы помечаются как сбойные (bad); • копирует в выделенную область диска свой хвост и оригинальный (здоровый) загрузочный сектор; • замещает программу начальной загрузки в загрузочном секторе (настоящем) своей головой; • организует цепочку передачи управления согласно схеме: ПНЗ (ПЗУ) - ВИРУС - ПНЗ (диск) - СИСТЕМА Таким образом, голова вируса теперь первой получает управление, вирус устанавливается в память и передает управление оригинальному загрузочному сектору. Как правило, вирусы способны заражать не только загрузочные секторы дискет, но и загрузочные секторы НЖМД. При этом в отличие от дискет на винчестере имеются два типа загрузочных секторов, содержащих программы начальной загрузки, которые получают управление. При загрузке компьютера с винчестера первой берет на себя управление программа начальной загрузки в MBR (Master Boot Record — главная загрузочная запись). Если жесткий диск разбит на несколько разделов, то лишь один из них помечен как загрузочный (boot). Программа начальной загрузки в MBR находит загрузочный раздел винчестера и передает управление на программу начальной загрузки этого раздела. Код последней совпадает с кодом программы начальной загрузки, содержащейся на обычных дискетах, а соответствующие загрузочные секторы отличаются только таблицами параметров. Таким образом, на винчестере имеются два объекта атаки загрузочных вирусов — программа начальной загрузки в MBR и программа начальной загрузки boot-сектора загрузочного диска. Способы заражения программ • метод приписывания — код вируса приписывается к концу файла заражаемой программы, и тем или иным способом осуществляется переход вычислительного процесса на команды этого фрагмента; • метод оттеснения — код вируса располагается в начале зараженной программы, а тело самой программы приписывается к концу; • метод вытеснения — из начала (или середины) файла «изымается» фрагмент, равный по объему коду вируса, приписывается к концу. Сам вирус записывается на освободившееся место. Разновидность метода вытеснения — когда оригинальное начало не сохраняется вообще. Такие программы являются полностью разрушенными и не могут быть восстановлены никакими антивирусами; • прочие методы — сохранение вытесненного фрагмента программы в «кластерном хвосте» файла и пр. Признаки проявления вируса При заражении компьютера вирусом важно его обнаружить. Для этого следует знать об основных признаках проявления вирусов. К ним можно отнести следующие: 349
• прекращение работы или неправильная работа ранее успешно функционировавших программ; • медленная работа компьютера; • невозможность загрузки операционной системы; • исчезновение файлов и каталогов или искажение их содержимого; • изменение даты и времени модификации файлов; • изменение размеров файлов; • неожиданное значительное увеличение количества файлов на диске; • существенное уменьшение размера свободной оперативной памяти; • вывод на экран непредусмотренных сообщений или изображений; • подача непредусмотренных звуковых сигналов; • частые зависания и сбои в работе компьютера; Следует отметить, что вышеперечисленные явления не обязательно вызываются присутствием вируса, а могут быть следствием других причин. Поэтому всегда затруднена правильная диагностика состояния компьютера. Методы защиты. Антивирусы Каким бы ни был вирус, пользователю необходимо знать о щрвные методы защиты от компьютерных вирусов. Для защиты от вирусов можно использовать: • общие средства защиты информации, которые полезнь также как и страховка от физической порчи дисков, неправильно работающих программ или ошибочных действий пользователя; • профилактические меры, позволяющие уменьшить вероятность заражения вирусом; • специализированные программы для защиты от вирусов. Общие средства защиты информации полезны не только для защиты от вирусов. Имеются две основные разновидности этих средств: • копирование информации — создание копий файлов и системных областей дисков; • разграничение доступа предотвращает несанкционированное использование информации, в частности, защиту от изменений программ и данных вирусами, неправильно работающими программами и ошибочными действиями пользователей. Для обнаружения, удаления и защиты от компьютерных вирусов разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие программы называются антивирусными. Различают следующие виды антивирусных программ: • программы-детекторы; • программы-доктора или фаги; • программы-ревизоры; • программы-фильтры; • программы-вакцины или иммунизаторы. Программы-детекторы осуществляют поиск характерного для конкретного вируса кода (сигнатуры) в оперативной памяти и в файлах и при обнаружении выдают соответствующее сообщение. Недостатком таких антивирусных программ является то, что они могут находить только те вирусы, которые известны разработчикам таких программ. Программы-доктора или фаги, а также программы-вакцины не только находят зараженные вирусами файлы, но и «лечат» их, т. е. удаляют из файла тело программывируса, возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы оперативной памяти, уничтожая их, и только затем переходят «лечению» файлов. Среди фагов выделяют полифаги, т. е. программы-доктора, предназначенные для поиска и 350
уничтожения большого количества вирусов. Наиболее известные из них: /Vidstest, Scan, Norton AntiVirus, Doctor Web. Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Ревизоры запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран монитора. Как правило, сравнение состояний производят сразу после загрузки операционной системы. При сравнении проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры. Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже очистить изменения версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа Adinf. Программы-фильтры или «сторожа» представляют собой небольшие резидентные программы, предназначенные для обнаружения подозрительных действий при работе компьютера, характерных для вирусов. Такими действиями могут являться: • попытки коррекции файлов с расширениями СОМ, ЕХЕ; • изменение атрибутов файла; • прямая запись на диск по абсолютному адресу; • запись в загрузочные сектора диска; • загрузка резидентной программы. При попытке какой-либо программы произвести указанные Действия «сторож» посылает пользователю сообщение и предлагает запретить или разрешить соответствующее действие. Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней стадии его существования до размножения. Однако, они не «лечат» файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги. недостаткам программ-сторожей можно отнести их «назойливость» (например, они постоянно выдают предупреждение о любой попытке копирования исполняемого файла), а также возные конфликты с другим программным обеспечением. Примером программыфильтра является программа Vsafe, входят в состав пакета утилит MS-DOS. Вакцины или иммунизаторы — резидентные программы, пп дотвращающие заражение файлов. Вакцины применяют, если о сутствуют программы-доктора, «лечащие» этот вирус. Вакцина ция возможна только от известных вирусов. Вакцина модифицирует программу или диск таким образом, чтобы это не отражалось на их работе, а вирус будет воспринимать их зараженными и поэтому не внедрится. В настоящее время программывакцины имеют ограниченное применение. Следует отметить, что своевременное обнаружение зараженных вирусами файлов и дисков, полное уничтожение обнаруженных вирусов на каждом компьютере позволяют избежать распространения вирусной эпидемии на другие компьютеры. 8.4. Средства защиты данных в СУБД Как только данные структурированы и сведены в базу данных, возникает проблема организации доступа к ним множества пользователей. Очевидно, что нельзя позволить всем без исключения пользователям беспрепятственный доступ ко всем элементам базы данных. В любой базе данных существует конфиденциальная информация, доступ к которой может быть разрешен лишь ограниченному кругу лиц. Так, в банковской системе особо конфиденциальной может считаться, например, информация о выданных кредитах. Это — один из аспектов проблемы безопасности в СУБД. Безопасность реляционных СУБД В самом общем виде требования к безопасности реляционных СУБД формулируются так: 351
• данные в любой таблице должны быть доступны не всем пользователям, а лишь некоторым из них; • некоторым пользователям должно быть разрешено обновлять данные в таблицах, в то время как для других допускается лишь выбор данных из этих же таблиц; • для некоторых таблиц необходимо обеспечить выборочный доступ к ее столбцам; • некоторым пользователям должен быть запрещен непосредственный (через запросы) доступ к таблицам, но разрешен доступ к этим же таблицам в диалоге с прикладной программой. Рассмотрим кратко средства защиты данных в СУБД и метопы авторизации доступа к данным, которые являются общепринятыми для большинства современных СУБД, а также обсудим новые методы защиты данных. Схема доступа к данным во всех реляционных СУБД выглядит примерно одинаково и базируется на трех принципах: • пользователи СУБД рассматриваются как основные действующие лица, желающие получить доступ к данным. СУБД от имени конкретного пользователя выполняет операции над базой данных, то есть добавляет строки в таблицы (INSERT), удаляет строки (DELETE), обновляет данные в строках таблицы (UPDATE). Она делает это в зависимости от того, обладает ли конкретный пользователь правами на выполнение конкретных операций над конкретным объектом базы данных; • объекты доступа — это элементы базы данных, доступом к которым можно управлять (разрешать доступ или защищать от доступа). Обычно объектами доступа являются таблицы, однако ими могут быть и другие объекты базы данных — формы, отчеты, прикладные программы и т. д. Конкретный пользователь обладает конкретными правами доступа к конкретному объекту; • привилегии (priveleges) — это операции, которые разрешено выполнять пользователю над конкретными объектами. Например, пользователю может быть разрешено выполнение над таблицей операций SELECT (ВЫБРАТЬ) И INSERT (включить). Установление и контроль привилегий Таким образом, в СУБД авторизация доступа осуществляется помощью привилегий. Установление и контроль привилегий — прерогатива администратора базы данных. Привилегии устанавливаются и отменяются специальным операторами языка SQL GRANT (РАЗРЕШИТЬ) И REVOKE (ОТМЕНИТЬ). Оператор GRANT указывает конкретного пользовате ля, который получает конкретные привилегии доступа к указан' ной таблице. Например, оператор устанавливает привилегии пользователю Петров на выполнение операций выбора и включения над таблицей Деталь. Таким образом, оператор GRANT устанавливает соответствие между операциями, пользователем и объектом базы данных (таблицей в данном случае). Привилегии легко установить, но легко и отменить. Отмена привилегий выполняется оператором REVOKE. Пусть, например, пользователь Петров утратил доверие администратора базы данных и последний решил лишить его привилегий на включение строк в таблицу Деталь. Он сделает это, выполнив оператор 352
Конкретный пользователь СУБД опознается по уникальному идентификатору (user-id). Любое действие над базой данных, любой оператор языка SQL выполняется не анонимно, но от имени конкретного пользователя. Идентификатор пользователя определяет набор доступных объектов базы данных для конкретного физического лица или группы лиц. Однако он ничего не сообщает о механизме его связи с конкретным оператором SQL. Например, когда запускается интерактивный SQL, как СУБД узнает, от имени какого пользователя осуществляется доступ к данным? Для этого в большинстве СУБД используется сеанс работы с базой данных. Для запуска на компьютере-клиенте программы переднего плана (например, интерактивного SQL) пользователь должен сообщить СУБД свой идентификатор и пароль. Все операции над базой данных, которые будут выполнены после этого, СУБД свяжет с конкретным пользователем, который запустил программу. Системы паролей в СУБД. Механизм ролей Некоторые СУБД (Oracle, Sybase) используют собственную систему паролей, в других (Ingres, Informix) применяется идентификатор пользователя и его пароль из операционной системы. Для современных баз данных с большим количеством пользователей актуальна проблема их объединения в группы. Традиционно применяются два способа определения групп пользователей: • один и тот же идентификатор используется для доступа к базе данных целой группы физических лиц (например, сотрудников одного отдела). Это упрощает задачу администратора базы данных, так как достаточно один раз установить привилегии для этого «обобщенного» пользователя. Однако такой способ в основном предполагает разрешение на просмотр, быть может, на включение, но ни в коем случае — на удаление и обновление. Как только идентификатор (и пароль) становится известен большому числу людей, возникает опасность несанкционированного доступа к данным посторонних лиц; • конкретному физическому лицу присваивается уникальный идентификатор. В этом случае администратор базы данных должен позаботиться о том, чтобы каждый пользователь получил собственные привилегии. Если количество пользователей базы данных возрастает, то администратору становится все труднее контролировать привилегии. В организации, насчитывающей свыше 100 пользователей, решение этой задачи потребует от него массу внимания. Современные СУБД позволяют исправить эти неудобства, предлагая третий способ администрирования (Ingres, Informix). Суть его состоит в поддержке, помимо идентификатора пользователя, еще и идентификатора группы пользователей. Каждый пользователь, кроме собственного идентификатора, имеет также идентификатор группы, к которой он принадлежит. Чаще всего группа пользователей соответствует структурному подразделению организации, например отделу. Привилегии устанавливаются не только для отдельных пользователей, но и для их групп. Одна из проблем защиты данных возникает по той причине, что с базой данных работают как прикладные программы, так и пользователи, которые их запускают. В любой организации существует конфиденциальная информация о заработной плате ее служащих. К ней имеет доступ ограниченный круг лиц, например, финансовый контролер. В то же время к этой информации также имеют доступ некоторые прикладные программы, в частности, программа для получения платежной ведомости. Тогда на первый взгляд может показаться, что ее может запускать тольк финансовый контролер. Если он отсутствует, то сделать это может любой рядовой служащий — при условии, что ему известен пароль финансового контролера. Таким образом, необходимость запуска некоторых прикладных 353
программ пользователями, которые обладают различными правами доступа к данным, приводит к нарушению схемы безопасности. Одно из решений проблемы заключается в том, чтобы прикладной программе также были приданы некоторые привилегии доступа к объектам базы данных. В этом случае пользователь, не обладающий специальными привилегиями доступа к некоторым объектам базы данных, может запустить прикладную программу которая имеет такие привилегии. Так, в СУБД Ingres это решение обеспечивается механизмом ролей (role). Роль представляет собой именованный объект, хранящийся в базе данных. Роль связывается с конкретной прикладной программой для придания последней привилегий доступа к базам данных, таблицам, представлениям и процедурам базы данных. Роль создается и удаляется администратором базы данных, ей может быть придан определенный пароль. Как только роль создана, ей можно предоставить привилегии доступа к объектам базы данных. Пусть, например, в некоторой организации работает служащий, имеющий имя пользователя Петров. По характеру своей работы он часто обращается к таблице Заработная плата. Он также является членом группы Учет. Для пользователей этой группы разрешено выполнение операции SELECT над таблицей Заработная плата. Всякий раз, когда ему необходимо выполнить операцию выборки из таблицы, он должен для начала сеанса ввести идентификатор своей группы. Однако ни один из пользователей группы Учет не может непосредственно выполнить операцию UPDATE. Для этого необходимо запустить программу Контроль заработной платы, которая имеет привилегии обновления этой таблицы и выполняет специальные проверки для корректного выполнения операцию этой целью администратором БД создается и помещается в БД роль Обновить заработную плату, для чего используется оператор предоставляет новой роли привилегии на выполнение операций выбора и обновления таблицы Заработная плата. Когда пользователь Петров запускает программу Контроль заработной платы, то она получает привилегии роли Обновить заработную плату. Тем самым данный пользователь, сам не обладая привилегиями на обновление таблицы, тем не менее может выполнить эту операцию, но только запустив прикладную программу. Она же, в свою очередь, должна играть определенную роль, которой приданы соответствующие привилегии доступа к таблице. Многоуровневая защита Выше речь шла о реализациях схемы безопасности, которые ограничиваются схемой «данные — владелец». В них пользователь, работающий с базой данных, является владельцем некоторых ее объектов, а для доступа к другим объектам должен получить привилегии. Он может получить статус пользователя СУБД и некоторые привилегии доступа к объектам БД, войти в группу пользователей и получить соответствующие привилегии доступа, получить права на запуск некоторых прикладных программ. Это — так называемый добровольный или дискреционный контроль доступа (discretionary access control). Называется он так потому, что владелец данных по собственному усмотрению ограничивает круг пользователей, имеющих доступ к данным, которыми он владеет. 354
Несмотря на то, что в целом этот метод обеспечивает безопасность данных, современные информационные системы требуют другую, более изощренную схему безопасности — обязательный или принудительный контроль доступа (mandatory access control). Он основан на отказе от понятия владельца данных и опирается на так называемые метки безопасности (security abels), которые присваиваются данным при их создании. Каждая из меток соответствует некоторому уровню безопасности. Метки служат для классификации данных по уровням. Например, для правительственных и коммерческих организаций такая классификация выглядит следующим образом (рис. 8.6). Так как данные размещены по уровням безопасности метками, конкретный пользователь получает ограниченный доступ к данным. Он может оперировать только с данными, расположенными на том уровне секретности, который соответствует его статусу. При этом он не является владельцем данных. Эта схема безопасности опирается на механизм, позволяющий связать метки безопасности с каждой строкой любой таблицы в базе данных. Любой пользователь может потребовать в своем запросе отобразить любую таблицу из базы данных, однако увидит он только те строки, у которых метки безопасности не превышают уровень его компетенции. 8.5. Защита информации в сетях Международные стандарты Х.800 и Х.509. Рекомендации IETF Стандарт Х.800 описывает основы безопасности в привязке к эталонной семиуровневой модели. Стандарт предусматривает следующие сервисы безопасности: 355
• аутентификация (имеются в виду аутентификация партнеров по общению и аутентификация источника данных); • управление доступом — обеспечивает защиту от несанкционированного использования ресурсов, доступных по сети; • конфиденциальность данных — в Х.800 под этим названием объединены существенно разные вещи — от защиты отдельной порции данных до конфиденциальности трафика; • целостность данных — данный сервис подразделяется на подвиды в зависимости от того, что контролируется — целостность сообщений или потока данных, обеспечивается ли восстановление в случае нарушения целостности; • неотказуемость — данный сервис относится к прикладному уровню, т. е. имеется в виду невозможность отказаться от содержательных действий, таких, например, как отправка или прочтение письма. Администрирование средств безопасности включает в себя распространение информации, необходимой для работы сервисов безопасности, а также сбор и анализ информации об их функционировании. Примерами могут служить распространение криптографических ключей, установка прав доступа, анализ регистрационного журнала и т. п. Концептуальной основой администрирования является информационная база управления безопасностью. Эта база может не существовать как единое (распределенное) хранилище, но каждый компонент системы должен располагать информацией, достаточной для проведения в жизнь избранной политики безопасности. В условиях глобальной связности администрирование перестает быть внутренним делом организации. Во-первых, плохо защищенная система может стать плацдармом для подготовки и проведения злоумышленных действий. Во-вторых, прослеживание нарушителя эффективно лишь при согласованных действи многих администраторов. Стандарт Х.509 описывает процедуру аутентификации с ис пользованием службы каталогов. Впрочем, наиболее ценной стандарте оказалась не сама процедура, а ее служебный эле мент — структура сертификатов, хранящих имя пользователя криптографические ключи и сопутствующую информацию. Подобные сертификаты — важнейший элемент современных схем аутентификации и контроля целостности. Рекомендации IETF. Сообществом Интернет под эгидой Тематической группы по технологии Интернет (Internet Engineering Task Force — IETF) разработан ряд рекомендаций по отдельным аспектам сетевой безопасности. Рекомендации периодически организуемых конференций по архитектуре безопасности Интернет носят весьма общий, а порой и формальный характер. Основная идея состоит в том, чтобы средствами оконечных систем обеспечивать сквозную безопасность. От сетевой инфраструктуры в лучшем случае ожидается устойчивость по отношению к атакам на доступность. Базовые протоколы, наиболее полезные с точки зрения безопасности, включают в себя — IPsec, DNSsec, S/M1ME, X.509v3, TLS и ассоциированные с ними. Наиболее проработанными на сегодняшний день являются вопросы защиты на IP-уровне. Спецификации семейства IPsec регламентируют следующие аспекты: • управление доступом; • контроль целостности на уровне пакетов; • аутентификация источника данных; • защита от воспроизведения; • конфиденциальность (включая частичную защиту от ана лиза трафика); • администрирование (управление криптографическими ключами). Протоколы обеспечения аутентичности и конфиденциальности могут использоваться в двух режимах: транспортном и туннельном. В первом случае защищается только 356
содержимое пакетов и, быть может, некоторые поля заголовков. Как правило, транспортный режим используется хостами. В туннельном режиме защищается весь пакет — он инкапсулируете в другой IP-пакет. Туннельный режим (тунеллирование) обычно реализуют на специально выделенных защитных шлюзах (в роли которых могут выступать маршрутизаторы или межсетевые экраны). Суть туннелирования состоит в том, чтобы «упаковать» передаваемую порцию данных вместе со служебными полями в новый «конверт». Данный сервис может применяться для нескольких целей: • осуществление перехода между сетями с разными протоколами (например, IPv4 и IPv6); • обеспечение конфиденциальности и целостности всей передаваемой порции, включая служебные поля. Туннелирование может применяться как на сетевом, так и прикладном уровнях. Например, стандартизовано туннелирование для IP и двойное конвертование для почты Х.400. Следует отметить, что IP-уровень можно считать оптимальным для размещения защитных средств, поскольку при этом достигается удачный компромисс между защищенностью, эффективностью функционирования и прозрачностью для приложений. Стандартизованными механизмами IP-безопасности могут (и должны) пользоваться протоколы более высоких уровней и, в частности, управляющие протоколы, протоколы конфигурирования и маршрутизации. На транспортном уровне аутентичность, конфиденциальность и целостность потоков данных обеспечиваются протоколом TLS (Transport Layer Security, RFC 2246). Подчеркнем, что здесь объектом защиты являются не отдельные сетевые пакеты, а именно потоки данных (последовательности пакетов). Злоумышленник не сможет переупорядочить пакеты, удалить некоторые из них или вставить свои. На основе TLS могут строиться защищенные протоколы прикладного уровня. В частности, предложены спецификации для HTTP над TLS. Архитектура механизмов защиты информации в сетях ЭВМ Архитектуру механизмов защиты информации можно рас-мотреть на примере эталонной модели взаимодействия открытых систем - ВОС (см. ранее гл. 6). Основные концепции применения методов и средств защиты информации на уровне базовой эталонной модели изложены в международном стандарте ISO/I EC 7498-2 «Базовая эталонна модель взаимодействия открытых систем, часть 2 «Архитектура безопасности». В самом наименовании ВОС термин открытые подразумевает, что если вычислительная система соответствует стандартам ВОС, то она будет открыта для взаимосвязи с любой другой системой, которая соответствует тем же стандартам. Это естественно относится и к вопросам защиты информации. В ВОС различают следующие основные активные способы несанкционированного доступа к информации: • маскировка одного логического объекта под другой, обладающий большими полномочиями (ложная аутентификация абонента); • переадресация сообщений (преднамеренное искажение адресных реквизитов); • модификация сообщений (преднамеренное искажение информационной части сообщения); • блокировка логического объекта с целью подавления некоторых типов сообщений (выборочный или сплошной перехват сообщений определенного абонента, нарушение управляющих последовательностей и т. п.). Поскольку эталонная модель относится только к взаимосвязи открытых систем, то и защита информации рассматривается в том же аспекте. Прежде всего, приведём перечень 357
видов услуг, предоставляемых по защите информации, которые обеспечиваются с помощью специальных механизмов защиты. В настоящее время определено четырнадцать таких услуг: 1) аутентификация равнозначного логического объекта (удостоверение подлинности удаленного абонента-получателя) — обеспечивается во время установления их соединения или во время нормального обмена данными для гарантии того, что равноправный логический объект, с которым осуществляется взаимодействие, является тем, за кого себя выдает. Для аутентификации равнозначного логического объекта требуется, чтобы лежащий ниже уровень обеспечивал услуги с установлением соединения; 2) аутентификация источника данных — подтверждение подлинности источника (абонента-отправителя) сообщения. Эта услуга не ориентирована на соединение и не обеспечивает защиту от дублирования («проигрывания» ранее пер хваченного и записанного нарушителем) блока данных; 3) управление доступом (разграничение доступа) — обеспечивает защиту от несанкционированного доступа к ресурсам, потенциально доступным посредством ВОС. Доступ может быть ограничен полностью или частично. Например, для информационного ресурса может быть ограничен доступ по чтению, записи, уничтожению информации; 4) засекречивание соединения — обеспечивает конфиденциальность всех сообщений, передаваемых пользователями в рамках данного соединения. Данная услуга направлена на предотвращение возможности ознакомления с содержанием сообщений со стороны любых лиц, не являющихся легальными пользователями соединения. При этом в некоторых случаях нет необходимости в защите срочных данных и данных в запросе на установление соединения; 5) засекречивание в режиме без установления соединения — обеспечивает конфиденциальность всех данных пользователя в сообщении (единственном сервисном блоке данных), передаваемом в режиме без установления соединения; 6) засекречивание поля данных — обеспечивает конфиденциальность отдельных полей данных пользователя на всем соединении или в отдельном сервисном блоке данных; 7) засекречивание трафика — препятствует возможности извлечения информации из наблюдаемого графика; 8) целостность соединения с восстановлением — позволяет обнаружить попытки вставки, удаления, модификации или переадресации в последовательности сервисных блоков данных. При нарушении целостности предпринимается попытка ее восстановления; 9) целостность соединения без восстановления — обеспечивает те же возможности, что и предыдущая услуга, но без попытки восстановления целостности; 10) целостность поля данных в режиме с установлением соединения — обеспечивает целостность отдельного поля данных пользователя во всем потоке сервисных блоков данных, передаваемых через это соединение, и обнаруживает вставку, удаление, модификацию или переадресацию этого поля; 11)целостность поля данных в режиме без установления соединения — позволяет обнаружить модификацию выбранного поля в единственном сервисном блоке данных; 12) целостность блока данных в режиме без установления соединения — обеспечивает целостность единственного сервисного блока данных при работе без установления соединения и позволяет обнаружить модификацию и некоторые формы вставки и переадресации; 13) информирование об отправке данных — позволяет обнаружить логические объекты, которые посылают информацию о нарушении правил защиты информации. Информирование об отправке предоставляет получателю информацию о факте передачи данных в его адрес, обеспечивает подтверждение подлинности абонента-отправителя. 358
Услуга направлена на предотвращение отрицания отправления, т. е. возможности отказа от факта передачи данного сообщения со стороны отправителя; 14) информирование о доставке — позволяет обнаружить логические объекты, которые не выполняют требуемых действий после приема информации, предоставляет отправителю информацию о факте получения данных адресатом. Услуга направлена на предотвращение отрицания доставки, т. е. обеспечивает защиту от попыток получателя отрицать факт получения данных. Теоретически доказано, а практика защиты сетей подтвердила, что все перечисленные услуги могут быть обеспечены криптографическими средствами защиты, в силу чего эти средства и составляют основу всех механизмов защиты информации в ВС. Центральными при этом являются следующие задачи: • взаимное опознавание (аутентификация) вступающих в связь абонентов сети; • обеспечение конфиденциальности циркулирующих в сети данных; • обеспечение юридической ответственности абонентов за передаваемые и принимаемые данные. Решение последней из названных задач обеспечивается с помощью так называемой цифровой (электронной) подписи. К настоящему времени разработан ряд протоколов аутентификации, основанных на использовании шифрования, которые обеспечивают надежную взаимную аутентификацию абонентов вычислительной сети без экспозиции любого из абонентов. Эти протоколы являются стойкими по отношению ко всем рассмотренным выше угрозам безопасности сети. Любая СУБД есть полная или частичная реализация некоторой политики безопасности, которая может содержать или не содержать криптографические механизмы безопасности. Основной проблемой использования криптографических методов для зашиты информации в СУБД является проблема распределения ключей шифрования, управления ключами. Ключи шифрования для баз данных требуют использования специфических мер защиты. Если база данных разделяется между многими пользователями (что, как правило, и имеет место на практике), то предпочтительно хранить ключи в самой системе под защитой главного ключа, чем распределять ключи прямо между пользователями. Сама задача управления при этом может возлагаться на пользователя. Вторичные ключи могут храниться либо в самой базе данных, либо в отдельном файле. Отметим, что любой протокол шифрования должен отвечать на следующие основные вопросы: 1) каким образом устанавливается первоначальный канал связи между отправителем и получателем с операциями «открытый текст — шифротекст — открытый текст»? 2) какие предоставляются средства для восстановления процесса обмена и восстановления синхронизации протокола? 3) каким образом закрываются каналы? 4) каким образом взаимодействуют протоколы шифрования с остальными протоколами сети? 5) каков объем необходимого математического обеспечения для реализации протоколов шифрования и зависит ли безопасность сети от этих программ? 6) каким образом адресация открытого текста, проставляемая отправителем, проходит через средства информации в сети, чтобы предотвратить пути, по которым данные открытого текста могли бы быть намеренно или случайно скомпрометированы? Желательно иметь протокол, который позволяет производить Динамическое открытие и закрытие канала, обеспечивать защиту от сбоев и все это с минимальными объемами механизма, от которого зависит безопасность сети. Характеристики сети, получающиеся 359
при использовании соответствующего протокола шифрования, должны сравниваться с характеристиками сети без использования протоколов шифрования. Несомненно, что предпочтительней использование общего сетевого протокола, который мог бы встраиваться в сеть с минимальным нарушением существующих механизмов передачи. Механизм управления доступом, предназначенный для рея лизации соответствующего вида перечисленных выше услуг основан на идентификации логического объекта (или информации о нем) для проверки его полномочий и разграничения доступа. Если логический объект пытается получить доступ к ресурсу использование которого ему не разрешено, механизм управления доступом (в основе которого также наиболее эффективными средствами являются криптографические) отклонит эту попытку и сформирует запись в специальном системном журнале для последующего анализа. Механизмы управления доступом могут быть основаны на: 1) информационных базах управления доступом, где содержатся сведения о полномочиях всех логических объектов; 2) системах управления криптографическими ключами, обеспечивающими доступ к соответствующей информации; 3) идентифицирующей информации (такой, как пароли), предъявление которой дает право доступа; 4) специальных режимах и особенностях работы логического объекта, которые дают право доступа к определенным ресурсам; 5) специальных метках, которые будучи ассоциированы с конкретным логическим объектом, дают ему определенные права доступа; 6) времени, маршруте и продолжительности доступа. Механизмы удостоверения целостности данных подразделяются на два типа: обеспечивающие целостность единственного блока данных и обеспечивающие целостность потока блоков данных или отдельных полей этих блоков. Целостность единственного блока данных достигается добавлением к нему при передаче проверочной величины (контрольной суммы, имитов-ставки), которая является секретной функцией самих данных. При приеме генерируется (формируется) такая же величина и сравнивается с принятой. Защита целостности последовательности блоков данных требует явного упорядочения блоков с помощью их последовательной нумерации, криптографического упорядочения или отметки времени. Механизмы аутентификации (взаимного удостоверения подлинности) абонентов, вступающих в связь, используют пароли, криптографические методы, а также характеристики и взаимоотношения подчиненности логических объектов. Криптографические методы могут использоваться в сочетании с протоколами взаимных ответов («рукопожатия») для защиты от переадресации. Если обмен идентификаторами не даст положительного результата, то соединение отклоняется или заканчивается с соответствующей записью в системном журнале и выдачей сообщения об этом событии. Механизм заполнения трафика используется для защиты от попыток анализа трафика. Он эффективен только в случае шифрования всего трафика, когда нельзя отличить информацию от заполнения. Механизм управления маршрутизацией позволяет использовать только безопасные с точки зрения защиты информации фрагменты сети, участки переприема, коммуникации, звенья. Может быть запрещена передача некоторых данных по определенным маршрутам, или оконечная система, обнаружив воздействие на ее информацию, может потребовать предоставить ей маршрут доставки данных, обеспечивающий их конфиденциальность и целостность. 360
Механизм нотариального заверения обеспечивается участием третьей стороны — «нотариуса», позволяет подтвердить целостность данных, удостоверить источник и приемник данных, время сеанса связи и т. п. Пример системы защиты локальной вычислительной сети Для иллюстрации приведем краткое описание системы защиты локальной вычислительной сети на основе ОС Novell NetWare, известной под названием «Secret NET». Назначение системы защиты. Система защиты «Secret NET» (далее по тексту Система защиты) предназначена для обеспечения защиты хранимой и обрабатываемой в локальной вычислительной сети (ЛВС) информации от несанкционированного доступа (ознакомления, искажения, разрушения) и противодействия попыткам нарушения нормального функционирования ЛВС и прикладных систем на ее основе. В качестве защищаемого объекта выступает ЛВС персональных ЭВМ, работающих под сетевой операционной системой Novell NetWare 3.1x (файловые серверы), объединенных при помощи сетевого оборудования Ethernet, Arcnet или Token-Ring. Максимальное количество защищенных станций — 256, защищенных файловых серверов — 8, уникально идентифицируемых пользователей — 255. Система защиты позволяет решать следующие задачи: • защита от лиц, не допущенных к работе с системой обработки информации; • регламентация (разграничение) доступа законных пользователей и программ к информационным, программным и аппаратным ресурсам системы в строгом соответствии с принятой в организации политикой безопасности; • защита ЭВМ сети от внедрения вредоносных программ (закладок), а также инструментальных и технологических средств проникновения; • обеспечение целостности критических ресурсов Системы защиты и среды исполнения прикладных программ; • регистрация, сбор, хранение и выдача сведений обо всех событиях, происходящих в сети и имеющих отношение к ее безопасности; • централизованное управление средствами Системы защиты. Для решения перечисленных задач Система защиты включает следующие подсистемы (ПС): • идентификации и аутентификации пользователей; • разграничения доступа к ресурсам; • контроля целостности; • регистрации; • управления средствами защиты (администрирования). Общее содержание функций подсистем заключается в следующем. ПС идентификации и аутентификации. Выполняет функцию идентификации/аутентификации (проверки подлинности) пользователя при каждом его входе в Систему, а также после каждой приостановки его работы. Для идентификации в системе каждому пользователю присваивается уникальное имя. Обеспечивается работа с именами длиной до 12 символов (символов латинского алфавита и специальных символов). Вводимое имя отображается на экране рабочей станции. Проверка подлинности пользователя осуществляется после его идентификации для подтверждения того, что пользователь действительно является тем, кем представился. Проверка осуществляется путем проверки правильности введенного пароля. Поддерживается работа с паролями длиной до 16 символов. Вводимый пароль не отображается на экране рабочей станции. При неправильно введенном пароле на экран выдается сообщение об ошибке и подается звуковой сигнал. При трехкратном неверном вводе пароля блокируется клавиатура, выдается сообщение о попытке НСД на сервер управления доступом и осуществляется 361
оперативное оповещение администратора безопасности, регистрируется попытка НСД в системном журнале и выдается звуковой сигнал. Пароли администратора и всех пользователей системы хранятся в зашифрованном виде и могут быть изменены как администратором безопасности, так и конкретным пользователем (изменение только своего пароля) с помощью специальных программных средств. Для повышения защищенности идентификация/аутентификация пользователя может проводиться до загрузки операционной системы. Это обеспечивается специальным техническим устройством (микросхемой ПЗУ или платой Secret NET Card). ПС разграничения доступа. Реализует концепцию диспетчера доступа, при которой ПС является посредником при всех обращениях субъектов к объектам доступа (попытки обращения к объекту в обход ПС приводят к отказу в доступе); может работать в одном из двух режимов функционирования: основном и технологическом. Технологический режим предназначен для точного определения объектов, к которым должен иметь доступ пользователь, и прав доступа к ним. При работе в этом режиме Система только регистрирует все попытки доступа к защищаемым ресурсам в системном журнале и выдает предупреждающие сообщения на экран. В основном режиме Система защиты не только регистрирует попытки доступа к защищаемым ресурсам, но и блокирует их. Пользователю предоставлена только возможность назначения прав доступа других пользователей к принадлежащим ему (созданным им) объектам. Для реализации избирательного управления доступом подсистема поддерживает замкнутую среду доверенного программного обеспечения (с помощью индивидуальных для каждого пользователя списков программ, разрешенных для запуска). Создание и ведение списков программ возложено на администратора. Для этого в его распоряжении имеются специальные программные средства. Для совместного использования программ и данных Система защиты предусматривает возможность объединения пользователей в группы. Права доступа группы наследуются всеми пользователями этой группы. ПС обеспечивает контроль доступа субъектов к следующим объектам: • физическим и логическим устройствам (дискам, принтерам); • каталогам дисков; • файлам; • физическим и логическим секторам дисков. В подсистеме реализована сквозная иерархическая схема действия прав доступа к локальным объектам рабочей станции, при которой объект нижнего уровня наследует права доступа объектов доступа верхних уровней (диск — каталог — файл). Права доступа пользователя к объектам системы могут принимать следующие значения: • запрет доступа — пользователь не имеет возможности выполнять с объектом какие-либо действия; • наличие доступа — в этом случае уровень доступа может быть одним из следующих: доступ на чтение, доступ на запись, доступ на исполнение (субъект может только запустить объект на исполнение). ПС контроля целостности. В системе контролируется целостность следующих объектов: операционных систем локальных рабочих станций, программ Системы защиты, файлов паспортов пользователей и системных областей локальных дисков рабочих станций, а также файлов пользователей (по требованию пользователей). Контроль осуществляется методом контрольного суммирования с использованием специального алгоритма и производится периодически администратором. Для этого ему предоставлены соответствующие программные средства. 362
В случае обнаружения нарушения целостности контролируемых объектов производится регистрация этого события в системном журнале и оперативное оповещение администратора. В случае нарушения целостности системных областей диска, кроме того, производится их восстановление с использованием резервных копий. ПC регистрации событий безопасности — обеспечивает: • ведение и анализ журналов регистрации событий безопасности (системных журналов), причем журнал регистрации ведется для каждой рабочей станции сети; • оперативное ознакомление администратора с системным журналом любой станции и с журналом событий об НСД; • получение твердой копии системного журнала; • преобразование содержимого системных журналов в формат DBF для их дальнейшего анализа; • объединение системных журналов и их архивирование; • оперативное оповещение администратора о нарушениях безопасности. ПС управления средствами защиты. Подсистема позволяет администрации безопасности осуществлять: • централизованное (с АРМ администратора) создание и удаление пользователей, изменение их полномочий и паролей; • установку атрибутов доступа пользователей к ресурсам; • централизованное создание, удаление и изменение состава групп пользователей, а также их прав доступа; • централизованное управление группами компьютеров; • централизованное управление оперативным оповещением о НСД; • централизованное управление регистрацией событий и просмотр системных журналов. Контрольные вопросы 1. Перечислите уровни информационной безопасности. 2. В чем состоят основные угрозы информационной безопасности? 3. Что такое политика безопасности? 4. Перечислите основные направления физической защиты. 5. Охарактеризуйте основные программно-технические меры защиты информации. 6. Что такое протоколирование и аудит? 7. Что такое криптология? 8. Что такое ключ? 9. Что из себя представляет криптосистема? 10. Дайте определение стойкости криптосистемы. 11. Объясните суть алгоритма DES и укажите на его особенности. 12. Какие классы антивирусных программ вам известны? 13. Какие вредоносные программные закладки кроме вирусов вам вестны? 14. Какие типы компьютерных вирусов вам известны? 15. Укажите основные признаки заражения компьютера. 16. Какие существуют методы борьбы с компьютерными вирусами? 17. Дайте классификацию антивирусных программ. 18. Что такое программа-полифаг? 19. Что такое программа-детектор? 20. В чем заключается установление и контроль привилегий в СУБД? 21. Что такое механизм ролей? 22. Охарактеризуйте задачи стандарта Х.800. 363
23. Что такое туннелирование? 24. Перечислите механизмы защиты информации в сетях. Заключение Современный период развития цивилизованного общества характеризует процесс информатизации. Информатизация общества — это глобальный социальный процесс, особенность которого состоит в том, что доминирующим видом деятельности в сфере общественного производства является сбор, накопление, продуцирование, обработка, хранение, передача и использование информации, осуществляемые на основе современных средств микропроцессорной и вычислительной техники, а также на базе разнообразных средств информационного обмена. Информатизация общества обеспечивает: • активное использование постоянно расширяющегося интеллектуального потенциала общества, сконцентрированного в печатном фонде, и научной, производственной и других видах деятельности его членов, • интеграцию информационных технологий с научными, производственными, инициирующую развитие всех сфер общественного производства, интеллектуализацию трудовой деятельности; • высокий уровень информационного обслуживания, доступность любого члена общества к источникам достоверной информации, визуализацию представляемой информации, существенность используемых данных. Применение открытых информационных систем, рассчитанных на использование всего массива информации, доступной в данный момент обществу в определенной его сфере, позволяет усовершенствовать механизмы управления общественным устройством, способствует гуманизации и демократизации общества, повышает уровень благосостояния его членов. Процессы, происходящие в связи с информатизацией общества, способствуют не только ускорению научно-технического прогресса, интеллектуализации всех видов человеческой деятельности, но и созданию качественно новой информационной среды социума, обеспечивающей развитие творческого потенциала индивида. Глоссарий 16-Bit Audio (аудио на 16 бит) — уровень измерения разрешающей способности оцифрованного аудиосигнала (чем выше разрешение, тем лучше звучание). 16-битовое аудио является стандартом, принятым для аудиокомпакт-дисков (CD-DA). 8-Bit Audio (аудио на 8 бит) — уровень разрешающей способности оцифрованного звукового сигнала, который соответствует качеству звучания обычного АМ-радио. A3D — технология генерации пространственного звучания и аудио-API на ее основе, предложенная Aureal Semiconductor Inc. Звуковое ЗЭ-окружение слушателя создается путем реального использования только пары наушников или колонок. A3D — стандарт генерации таких эффектов, как густой туман или подводные звуки, позволяет моделировать конфигурацию помещения, в котором раздаются и распространяются звуки. АС'97 — рекомендованный Intel стандарт для построения аудио-электроники в ПК. Спецификация снижает шумы и помехи за счет разделения по различным модулям аналоговых и дискретных компонент. ADC (Analogue-to-Digital Converter) — аналогово-цифровой преобразователь (АЦП) — устройство, преобразующее непрерывный аналоговый сигнал, который поступает от физического датчика и соответствует скорости, температуре, интенсивности звука, света и пр. в бинарный код для ввода в компьютер; каждому значению напряжения входного аналогового сигнала соответствует определенное значение выходного цифрового кода. Additive color system — аддитивный синтез цветов, в котором первичные цвета (красный, зеленый и синий) смешивают для образования белого. 364
АIIМ (Association for Information and Image Management International) — международная ассоциация по информации и обработке изображений. Аккредитована ANSI как организация по развитию стандартов. АIIМ представляет США в Международной Организации по Стандартизации и является представительной организацией для промышленных коалиций продавцов и конечных пользователей. Занимается созданием способных к взаимодействию стандартов для технологий управления документами во всем мире. Anchors — ссылки, гипертекстовые ссылки, внедренные в \УеЬ-доку мент. Позволяют пользователю переходить от одного фрагмента инфоп мации к другому независимо от места ее хранения в Internet. ANSI (American National Standards Institute) — неправительственная организация, создающая и публикующая стандарты для добровольного использования в США. API (Applications Programmer's Interface) — интерфейс прикладного программирования — спецификация набора функций, которой должны удовлетворять разработчики программного обеспечения для совместимости своих программ с соответствующими операционными системами Windows API включает более чем 1000 функций, которые могут быть вызваны из программ, написанных на ЯП С, C++, Pascal и других, чтобы создать окно, открыть файл или выполнить другое необходимое действие. APRP (Adaptive Pattern Recognition) — адаптивное распознавание образов. ASCII (American Standard Code for Information Interchange) — разработанный American National Standards Institute (ANSI) стандарт представления символьной информации в ЭВМ. Символы ASCII содержат 128 символов с кодами от 0 до 127 и включают цифры, знаки пунктуации, буквы и управляющие коды, такие как конец строки или перевод страницы. Aspect Ratio (соотношение сторон экрана) — характеристика стандарта видеоадаптера. VGA, SVGA, XGA и UXGA имеют это соотношение, равное 4 : 3, SXGA —5:4, телевидение высокой четкости (ТВЧ) — 16 : 9 и т. д. Asynchronous (асинхронный). Относится к несинхронизированным событиям, которые не скоординированы во времени. Большинство коммуникаций между компьютерами и устройствами являются асинхронными; они осуществляются в случайные моменты времени с нерегулярными интервалами. Authentication — установление личности пользователя, делающего попытку доступа к системе. Authoring — процесс авторской подготовки документа в какой-либо системе управления документами (Document Management System). Authorization — определение набора привилегий, которыми обладает пользователь. Bandwidth (полоса пропускания) — количество информации, которое может быть передано через конкретный интерфейс за данный период времени, например шина памяти SDRAM в 64 бит и 100 МГц имеет полосу пропускания 800 Мбайт/с. Bit — двоичная единица, базовая мера для измерения количества данных. Имеет значение «1» или « 0». Для размещения 1 байта требуется 8 бит. Bit depth (также color depth) — глубина цвета. Число бит, используемых для представления каждого пикселя изображения, определяемое цветовым или тоновым диапазоном. Bitmap — битовая карта. Цифровое изображение, представленное в виде решетки из пикселей. Цвет каждого пикселя определяется числом бит. BLOB (Binary Large Object) — тип данных СУБД, используется для хранения произвольной информации, которая может быть представлена в двоичном виде. Тип данных BLOB является частью структуры базы данных, которая обеспечивает полную функциональность СУБД для манипулирования BLOB-элементами, т. е. BLOB-элементы 365
могут создаваться, удаляться, проверяться или копироваться. Но чаще всего отсутствует возможность работы внутри BLOB. Например, невозможно извлечение частей текста, индексирование и перемещение по BLOB. Block. Данные обычно организуются в блоки для передачи между устройствами. Блок может иметь постоянную или переменную длину, причем типичной является длина в 512 или 1024 байт. Типичная структура блока включает преамбулу (начальные биты), область данных пользователя, контрольную сумму, конечные биты. Bump mapping (отображение неровностей поверхности) — технология представления трехмерных объектов компьютерной графики, где каждому пикселю поверхности придается определенное смещение по высоте (heightmap). В результате после обработки освещенности поверхности приобретают более реалистический вид, детали которой приближаются к виду объектов реального мира (древесная кора, шершавый бетон и пр.). Byte — восемь бит, рассматриваемые как единое целое и представляющие, например, символ кода ASCII. CALS (Continuous Acquisition and Life-cycle Support) — инициатива министерства обороны США (1985 г.) по выработке стандартов для использования электронных документов в системах вооружения. Поддержка инициативой CALS ряда стандартов, таких как CCITT Group 4 и SGML, способствовали их широкому внедрению в промышленность. CASE-средства (технологии) — программные средства, поддерживающие процессы создания и сопровождения ИС, включая анализ и формулировку требований, проектирование прикладного ПО (приложений) и баз данных, генерацию кода, тестирование, документирование, обеспечение качества, конфигурационное управление и управление проектом, а также другие процессы. CCD (Charge-Coupled Device, ПЗС, прибор с зарядовой связью) _ фотодиод, светочувствительный элемент на микрочипах, применяемый в устройствах сканирования изображений для преобразования света в электрический заряд. СС1А (Computer and Communications Industry Association) — ассоциация фирмпроизводителей компьютеров и средств коммуникации представляющая их интересы в зарубежной и национальной торговле а также разрабатывающая соответствующие стандарты. CCIR (Consultative Committee for International Radio communications) — Консультативный комитет по международной радиосвязи CCITT (Consultative Committee on International Telegraphique et Telephonique) — Международный консультативный комитет по телеграфии и телефонии, МККТТ, в настоящее время ITU-T. CCITT Group 4 — один из стандартов по сжатию изображений. CD-ROM (Compact Disk-Read Only Memory) — накопитель на оптическом диске. Диск диаметром 5 дюймов емкостью 640 — 700 Мбайт имеет одну спиральную дорожку. Время доступа относительно велико (у лучших моделей — 80 не), чувствителен к вибрациям при работе. Интерфейсы: SCSI, IDE (E-IDE, IDE ATAPI). Исполнение - внутреннее и внешнее (SCSI, LPT-порт). Client — прикладная программа, которая делает запрос программе сервера на получение информации или выполнение задания сервером от имени клиента. Клиент и сервер взаимодействуют через специальный протокол. Клиент и сервер могут работать на различных хостах в сети и эти хосты могут быть компьютерами совершенно различной конфигурации и платформы. CMYK (Cyan-Magenta-Yellow-Black — голубой, пурпурный, желтый, черный) — основные цвета в печатном процессе. CMY — основные цвета субтрактивного синтеза. Collaborative Authoring — совместное создание документа группой людей, даже если они находятся в различных местах или работают в различное время. 366
Color separation (цветоделение) — операция разделения цвета на четыре основные составляющие (голубой, пурпурный, желтый и черный) в процессе подготовки оригиналов к цветной печати. Процесс разделения цветного файла на составные части, которые будут печататься с отдельных печатных форм. COM (Component Object Model) — составляющая программного обеспечения, поддерживающая OLE 2. Container — 1) чаще всего объект, дающий возможность объединять и перемещать совокупности объектов, связанные между собой отношением «содержит»; 2) механизм в OLE, который позволяет в сложных документах: а) устанавливать связь между данными и прикладными программами, которые управляют этими данными; б) управлять представлением этих данных; в) обеспечивать функции, облегчающие взаимодействие с приложениями. Content — содержательная часть данных документа в противоположность атрибутам. Может включать текст, изображения, видео, звук, программы или любой другой материал, содержащийся на бумаге, дискете, компакт-диске (CD-ROM) и др. Отметим, что некоторые системы управления документами расценивают данные как один из атрибутов. Contour-type font (контурный шрифт) — технология создания шрифтов, базирующаяся на математическом описании каждого символа в виде набора векторов определенного размера и направления. Данный тип шрифтов легко масштабируется простым умножением или делением базовых величин (длин) векторов на коэффициент масштабирования. Кроме того, символы шрифта легко поворачивать, наклонять или закрашивать. Примерами контурных шрифтов являются TrueType и PostScript. Conversion — изменение формата документа или его части. Может быть классифицировано по типам преобразования — преобразование символьных наборов, форматов текстовых процессоров, или языков описания страницы. Преобразования, изменяющие логическую структуру документа, считаются трансформацией документа. Это различие используется, чтобы указать, что изменения в логической структуре документа могут привести к добавлению, исключению или переупорядочению компонентов документа. СР 866 — распространенная в РФ кодировка символьной информации на базе кода ASCII с расширением его до 256 символов: кодовая страница 866 для IBM PC в части кириллицы отсортирована по алфавиту, используется для работы с немодифицируемыми (нерусскоязычными) программами в ОС типа MS-DOS, сохраняет наиболее часто используемые в программах псевдографические знаки. CPS (Characters Per Second) — скорость принтера (знаков в секунду, знс). DAC (Digital-to-Analogue Converter, цифроаналоговый преобразователь — ЦАП) — устройство (как правило, на одной микросхеме), которое преобразует цифровые данные в аналоговый сигнал. Обычно используются в графических картах, видеокартах, модемах и др. Data mining — «добыча» данных. Набор методов из области искусственного интеллекта, позволяющих извлекать из сырых данных ранее неизвестные знания о зависимостях и закономерностях поведения рассматриваемого объекта. При этом все результаты формулируются в текстовых и графических формах, удобных для восприятия человеком. Data model — модель данных. Описание содержания базы данных на более детализированном уровне, чем требуется непосредственно системе управления базы данных. Наиболее известная методика моделирова ния данных — «объектно-связанное моделирование»; эта методика идентифицирует основные объекты в базе данных и их связи. Data transformation — преобразование данных. Процесс изменения данных при начальной загрузке или при выполнении перемещения данных. Данные могут быть преобразованы 367
для улучшения удобочитаемости при объединении данных из различных источников, для улучшения качества данных при их суммировании и т. д. Data warehouse — хранилище (склад, кладовая) данных. База данных, разработанная для решения прикладных задач, в основном, из области принятия решений. Данные извлекаются из файловых систем операционных систем из всевозможных СУБД и т. п. Затем они преобразуются и объединяются, чтобы стать подходящими для анализа пользователями. Database design — проектирование базы данных. Проект базы данных описывает организацию данных в базе данных на детальном уровне, требуемом DBMS для управления этими данными. Он описывает разделение данных на таблицы и столбцы и основные типы в столбцах, например, целое число или 8-символьная строка. Проектирование базы данных — это область деятельности администратора базы данных. Простые проекты базы данных соответствуют информационной модели базы данных, содержание которой имеет представление, ориентированное на пользователя. DBMS (DataBase Management System) — Система управления базой данных. DDE (Dynamic Data Exchange) — динамический обмен данными. Device driver (драйвер устройства) — программное обеспечение, соединяющее внешнее устройство с операционной системой. Каждое устройство воспринимает специфический набор команд, управляющий его работой. Наоборот, прикладные программы выдают высокоуровневые команды общего назначения. Драйвер выступает в качестве «переводчика» между командами устройства и программных приложений. Digital camera (цифровая камера, цифровой фотоаппарат) — в качестве светочувствительного элемента используются фотодиоды, которые преобразуют свет в электрические сигналы и затем в цифровой вид. Directory (директорий, директория, папка, каталог) — логическая область на диске для размещения данных в соответствии с содержанием и структурой файла. DirectX — набор интерфейсов прикладного программирования (API) для обработки задач, связанных с мультимедиа, особенно игровых, разрабатываемых в средах Windows. Distribution Media — среда вывода для хранения и копирования документов. DMA (Document Management Alliance) — сформированное путем объединения двух ранее существовавших групп по стандартизации (Shamrock и DEN) общество обработки документации — это мощная часть АПМ, состоящая из пользователей, разработчиков и продавцов программ управления документами, специализирующаяся на разработке спецификаций для универсального взаимодействия всех прикладных программ управления документами и архивами. Document Interchange Format — правила представления документов с целью обмена. Document Retrieval — поиск, выборка и использование документа из архивного хранилища. Dolby Digital — цифровая система кодирования аудиосигнала, предложенная Dolby Laboratiries (1995 г.) для использования в кинофильмах и домашних театрах. Использует технологию кодирования и сжатия Dolby AC-3 (Audio Coding-3). Поддерживает шесть аудиоканалов (что обозначается как 5.1) — передние (левый, центральный, правый), задние (левый, правый) и канал низкой частоты (subwoofer). Dot area — площадь растрового элемента. Площадь, занимаемая растровой точкой. Обычно измеряется в процентах от максимально возможной площади точки. Dots Per Inch, DPI (число точек на дюйм) — единица измерения разрешающей способности устройств ввода-вывода, применяемых для работы с растрированными изображениями (обозначается так же, как тнд, — «точек на дюйм»). Downsizing — разукрупнение, децентрализация средств обработки данных. Переход с больших ЭВМ на ПК конечного пользователя и ЛВС. 368
DSL (Dictionary Specification Language) — «язык описания словарей». В электронном словаре ABBYY Lingvo так называется встроенный инструмент, позволяющий пользователю создавать и редактировать собственные словари. Эти словари впоследствии могут быть подключены к Lingvo наряду с типовыми словарями из комплекта поставки. DTD (Document Type Definition) — определение типа документа — начало (преамбула) SGML-документа, в котором определяются компоненты документа и его структура. Описание типа (шаблона) документа. DTR (Data Transfer Rate) — скорость передачи данных. Обычно указывается в KBps (Кбайс/с) или MBps (Мбайт/с), иногда — в MB/min (Мбайт/мин). Чаще всего характеризует максимально возможную (пиковую) пропускную способность. DVD (Digital Versatile Disk) — цифровой универсальный диск. Современный стандарт хранения информации на оптическом (лазерном) Диске. Отличается от «обычного» CDROM увеличенной почти в 30 раз емкостью (до 17 Гбайт). DVD-ROM — диск, доступный только для чтения; может считывать ся только на приводе DVD. DVD-Video предназначен для записи видеофильмов и может воспроизводиться как на приводах DVD в компькэте pax, так и на DVD плейерах. Dynamic range (динамический диапазон, для изображений) — ДИа_ пазон значений тонов от самого светлого до самого темного, которые могут содержаться в графическом файле. ЕАХ (Environmental Audio Extensions) — аудиостандарты для разработчиков программных средств и оборудования, предложенные Creative Labs и впервые реализованные в аудиокарте SoundBlaster. Спецификации ЕАХ широко используются для реализации объемного звучания и манипулирования звуковыми эффектами. EDI (Electronic Data Interchange) — обмен данными и документами между различными пользователями согласно стандартным (ANSI X.12, EDI FACT) правилам. EDIFACT (Electronic Data Interchange For Administration, Commerce and Transport) — электронный обмен данными в управлении, торговле и на транспорте (ISO 9735—1987). EIA (Electronic Industries Association) — ассоциация производителей, представляющих высокотехнологичные производства США, основанная в 1924 г. как Radio Manufacturers Association. EIA, в частности, разработаны такие стандарты последовательных устройств, как RS-232, RS-422 and RS-423. Embedding — размещение (вложение) данных в составном документе, при котором данные и связанные с ними управляющие приложения физически размещены внутри документа. FAT (File Allocation Table) — таблица размещения файлов. Тип файловой системы ОС фирмы Microsoft. Firewall — защитный экран, брандмауэр, противопожарная стена — жаргон системных администраторов. Системный компонент, выполняющий роль шлюза в сети, т. е. система или набор систем, через которую должен проходить весь трафик между внешней сетью (например, Internet) и внутренней сетью организации. Механизм, защищающий пакеты внутренней сети от попадания во внешнюю (глобальную) сеть и наоборот. Flatbed scanner — плоскостной или планшетный сканер. Сканер, в котором оригиналы располагают на прозрачной стеклянной пластине. FlexiCapture — метаязык, разработанный компанией ABBYY для описания структуры гибких форм. Используется в описаниях гибкой формы FlexiLayout в программе ABBYY FlexiCapture Studio. FlexiLayout — описание структуры гибкой формы в терминах языка FlexiCapture. Это описание разрабатывается в программе ABBYY FlexiCapture Studio и передается в ABBYY FormReader или приложение на базе ABBYY FineReader Engine. FlexyLayout — своего рода «инструкция» о том, как следует искать и идентифицировать поля на гибкой форме. 369
Font (шрифт) — законченный набор символов определенного стиля, размера и начертания, имеющий свое название. Шрифты, применяемые в электронных издательских системах, подразделяются на растровые и векторные. В растровых шрифтах каждый символ представляется в виде совокупности пикселей по определенному для него шаблону. При этом, в отличие от векторных шрифтов, для каждого размера (кегля) шрифта требуется свой шаблон. Векторные шрифты базируются на математическом описании каждого символа в виде набора векторов определенного размера и направления. Данный тип шрифтов легко масштабируется простым умножением или делением базовых величин (длин) векторов на коэффициент масштабирования. Frame Grabbing — оцифровка и сохранение отдельного кадра. FTP (File Transfer Protocol) — протокол передачи файлов — сетевой протокол для передачи файлов между компьютерами. Клиентская программа, использующая FTPтранзакции, является или ftp или Web-браузером. Серверной программой для FTPтранзакций является ftpd. GB (GigaByte) — гигабайт, единица измерения, содержащая 1000 Мбайт. В качестве альтернативной IEC предложила в 1998 г. GiB (GibiByte) - 1024 MiB (MibiByte). GBps (GigaBytes per second) — гигабайт в секунду, скорость передачи информации. GDI (Graphics Device/Display Interface) — интерфейс графических устройств (устройств отображения). Низкоуровневый набор API в Microsoft Windows, поддерживающих графический вывод растровых изображений на мониторы, графопостроители и ряд принтеров. GIF (Graphics Interchange Format) — электронный формат данных, широко используемый в издательских системах для изображений. Gray level (уровень серого) — дискретные ступени в полутоновом изображении. Обычно изображения содержат 256 уровней серого на каждый цвет. Grayscale (GS, шкала серого цвета, шкала яркости, шкала полутонов) — полутоновое изображение, содержащее только плавный переход °т черного через серый к белому. Groupware — программное обеспечение, поддерживающее неформализованную последовательность обработки документов. Позволяет Участвовать в объединенном проекте многим сотрудникам, работающим в сети. GUI (Graphical User Interface) — графический интерфейс пользователя. HDTV (High Definition Television) — телевидение высокой четкости (ТВЧ). Термин применяется к системам, удбвлетворяющим следующим параметрам: вертикальное разрешение не менее 750р или 1125i (p _ progressive scanning, i — interlaced scanning), размер растра 1920 x 1080 соотношение сторон 16:9, запись и воспроизведение (или выход) Dolbv Digital. ШН color printing (High Fidelity) — цветная печать с использованием более чем четырех красок для расширения цветового охвата. High dynamic range (HDR) — расширенный динамический диапазон. Применяется в модернизированном стандарте для TlFF-файлов предложенном фирмой Leaf Systems. Для каждого из основных RGB-цветов выделяется 16 бит, т. е. общая разрядность составляет 48 бит. Таким образом, на каждый цвет приходится 65 536 оттенков что позволяет пользователям оперировать с такими деталями изображений, которые обычно теряются при 8-битовом сканировании на каждый из основных цветов. High Sierra Format (HSF, от HSG — High Sierra Group) — фактический стандарт на доступ к данным на CD из среды DOS, UNIX и других ОС. Начальная дорожка содержит информацию об организации диска — VTOC — Volume Table Of Contents. Hint (хинт) — специальная операция по преобразованию символов контурного шрифта в растровый формат, применяемая при выводе их на экран дисплея или устройство печати. При преобразовании может возникнуть ситуация, когда из-за низкого разрешения устройства вывода или при малых величинах кегля контурная кривая будет лишь час370
тично проходить через точку растра. Для решения этой проблемы и используется операция хинтования, которая позволяет систематизирован-но искривлять элементы символов в зависимости от их размеров и разрешения выводного устройства. HLS (цвет—яркость—насыщенность) — одна из цветовых моделей. Цвет задает угол, а насыщенность — расстояние от центра цветового круга (color gamut). С физической точки зрения цвет — это длина волны, насыщенность — чистота оттенка цвета, а значение — его яркость. HLSL (High Level Shader Language) — высокоуровневый язык раскрашивания объектов. Специализированный язык, разработанный Microsoft для Direct3D API. Является конкурентом аналогичного языка (GLSL), разработанного SGI, но несовместим со стандартами OpenGL. Обработка осуществляется на трех уровнях — вершины многогранников (vertex shader), графических примитивов (geometry shader), пикселей/фрагментов (pixel/fragment shader). Horizontal scan frequency (частота горизонтальной развертки) — число строк видеодисплея, обновляющих свое изображение за одну секунду. Например, дисплей с разрешением 200 линий, обновляющихся 60 раз в секунду, имеет частоту горизонтальной развертки 12 кГц. HSV (Hue-Saturation-Value, также Hue-Saturation-Brightness — HSB, Hue-SaturationIntensity — HSI) — «цвет—насыщенность—значение». Одна из цветовых моделей, в которой цвет задает угол, насыщенность — расстояние от центра цветового круга {color gamut). С физической точки зрения цвет — длина волны, насыщенность — чистота оттенка цвета, значение — яркость. HTML (HyperText Markup Language) — язык высокого уровня для определения структуры документов. Разработан в CERN и является одним из применений SGML. В настоящее время разрабатывается третья версия HTML. Некоторые разработчики, например, Netscape, создали свои расширения. HTTP (HyperText Transfer Protocol) — сетевой протокол передачи документов HTML. Hue (оттенок цвета) — характеристика цвета, которая отличает его от других цветов. Определяет длину волны цвета, используемую для описания качества цвета. Например, коралловый и красный имеют разные оттенки. Huffman encoding (также Huffman Coding) — кодирование по алгоритму Хаффмана. Метод сжатия данных, при котором часто встречающиеся символы кодируются более эффективно и занимают меньше места, чем данные, встречающиеся реже. Является технологией сжатия без потери данных (в отличие от JPEG-компрессии, при которой происходит потеря части данных в зависимости от коэффициента сжатия). Код Хаффмана минимизирует среднее количество битов для представления заданного потока символов текста. Hybrid typeface (гибридный шрифт) — шрифт, сгенерированный компьютером, который объединяет в себе черты нескольких других шрифтов. Hz (Гц, герц) — мера частоты в циклах в секунду (1/с). ICR (Intelligent Character Recognition) — «интеллектуальное распознавание символов». Так называют технологии или системы, предназначенные для массовой обработки документов, заполненных печатными буквами и цифрами от руки, т. е. для распознавания «рукопе-чатных» символов. Если OCR-система должна построить точную электронную модель исходного документа, то перед ICR-системой такая задача не стоит. От ICRсистемы требуется найти на изображении Документа информацию, извлечь ее и передать во внешнюю базу данных. Извлеченные данные упорядочиваются по заранее заданным правилам, а как выглядит и какую структуру имеет исходный документ — несущественно. IEC (International Electrotechnical Commission) — международная организация по стандартизации в области электротехники. В частности, в 1998 г. IEC предприняла 371
попытку устранить разночтения в трактовке 1 Мбайта как 1000 байт (десятичный мегабайт) и 1024 байт (бинарный мегабайт), предложив обозначения — 1 MegaByte и 1 MibiByte соответственно. Аналогично были определены 1 KibiByte = 1024 байт' 1 GibiByte = 1024 MibiByte и 1 TibiByte = 1024 GibiByte. IEEE (Institute of Electrical and Electronics Engineers) — общественная организация, которая объединяет специалистов, ученых, студентов и др. лиц, заинтересованных в электронике и смежных областях. Известна более как разработчик и популяризатор стандартов в вычислительной технике и связи, например IEEE 1394 — стандарт FireWire. Image — изображение, образ. Рисунок, созданный на компьютере с помощью соответствующего программного обеспечения, или оригинальная картинка. Image resolution (разрешение, разрешающая способность изображения) — величина, характеризующая степень детализации изображения. Измеряется в пикселях на дюйм (ppi). Information object(s) — информационный объект(ы) — 1) объект, который используется в рассматриваемом процессе, может быть электронным либо материальным, в обоих случаях он представляет собой либо сырые данные, либо результат работы; 2) блоки, из которых состоит документ. Например, текст, уравнения, штриховая графика, векторные данные, извлечения из баз данных, фотографии, звуковая информация, видео, программы. Information warehouse — информационный склад. Архитектура, разработанная IBM в начале 1990-х годов для складируемых данных. Описывается в IBM Visual Warehouse. Interleaving — интерливинг (чередование, перекрытие, чересстрочная развертка — стандарт вывода изображения на экран, система PAL). Internet — всемирная компьютерная сеть — Сеть сетей, объединяющая множество компьютерных сетей во всем мире и предоставляющая доступ к мировым информационным ресурсам. Interoperability — интероперабельность (функциональная совместимость). Interpolation (интерполяция) — увеличение числа пикселей в изображении или пополнение потерянной информации путем усреднения значений окружающих пикселей. Intranet (интрасеть) — корпоративная сеть, использующая протоколы и стандарты Internet. IPA (Integrity, Purposefulness, Adaptability) — принципы целостности, целенаправленности, адаптивности. На этих принципах базируется восприятие животных и людей, природных «чемпионов по распознаванию». И на этих же принципах основаны технологии распознавания ABBYY. ABBYY FineReader —система OCR, которая на всех этапах обработки документа действует в соответствии с принципами IPA. ISM (The Industrial, Scientific and Medical) — группа радиодиапазонов, выделенных для международного некоммерческого использования в промышленных, медицинских и научных целях. В дальнейшем в этих диапазонах были размещены также коммуникационные приложения, такие как беспроводные сети и Bluetooth. Диапазоны включают полосы 900 МГц (Северная Америка и Австралия) 1,8; 2,4 и 5,8 ГГц. ISO (International Standards Organization, Международная организация по стандартизации — МОС) — международный орган, ответственный за создание и контроль деятельности различных комитетов по стандартизации и рабочих групп, работающих над стандартами обработки данных (например, сжатия изображений и пр.). ISO 8859/5 — распространенная в РФ кодировка символьной информации на базе кода ASCII с расширением его до 256 символов: используется в русскоязычных версиях VAX/VMS и на ряде персональных компьютеров, получила достаточно широкое распространение благодаря явной направленности на работу с русским языком. Эта кодировка зафиксирована ГОСТ 19768-87. 372
ISO 9660 — международный формат, описывающий логическую структуру файлов и каталогов на CD-ROM. Использует межплатформенный набор символов и соглашения о записи имен файлов и каталогов, которые ограничивают перечень устройств, способных прочесть диск с данными. Запись данных по ISO 9660 начинаются по первому треку (время 00:02:16 или сектор 166, логический сектор 16); файловая система аналогична MSDOS; имена файлов по схеме: 8 символов — имя, 3 — расширение имени; глубина вложенности каталогов до 8. Isochronous (изохронный). Относится к процессам, в которых данные должны передаваться в пределах некоторых временных ограничений. Например, передача мультимедийных данных требует изохронный механизм транспорта, который гарантирует согласования звука и изображения. Java — объектно-ориентированный язык для создания распределенных прикладных Webсистем. JPEG (Joint Photographic Expert Group) — 1) объединенная экспертная группа по фотографии, разработавшая алгоритм сжатия изображения; 2) метод сжатия неподвижных изображений, основанный на одновременной обработке информации матрицы пикселей (например, 8x8) в пространстве Y-U-V с приоритетом сохранения яркостной информации. Изображение восстанавливается с некоторыми небольшими потерями качества. Степень сжатия зависит от характера изображения и размера матрицы квантования и варьируется в пределах от 2 до 100 раз. KB (KiloByte, Кбайт) — килобайт, мера количества информации в 1000 байт. Альтернативой является предложенная IEC единица KiB (KibiByte) - 210 = 1024 байт. Kbit (Kilobit, Кбит) — килобит, единица измерения объема данных равная 1000 бит, часто употребляемая для измерения скорости передачи данных (Кбит/с). KBps (Kilobytes per second) — килобайт в секунду, мера скорости передачи данных. LAN (Local Area Network) — локальная компьютерная сеть. LCD (Liquid Crystal Display) — жидкокристаллический дисплей (ЖКД). Дисплеи на жидких кристаллах имеют многослойную структуру, состоящую из слоя жидкокристаллического материала, активизирующего его мультиплексора, цветового фильтра и подсветки. LED-sensor — фотодиод, светочувствительный элемент на базе полупроводников. Lempel-Zeev- Welch (LZW) — метод сжатия информации Лемпела — Зива — Велча, основанный на выявлении и кодировании повторяющихся данных. Используется, например, для сжатия графических файлов. Line art — 1) штриховой рисунок, штриховая графика; 2) изображения, имеющие два уровня яркости (состоящие только из черных и белых пикселей). Line screen (линиатура) — число линий растра на единицу измерения, обычно дюйм. Линиатура является важным показателем, влияющим на детализацию изображения. Для высококачественной печати полутоновых изображений обычно используют линиатуру 150 lpi. Вообще же выбор линиатуры растра сильно зависит как от краски и типа печатающей машины, так и от типа используемой бумаги. Измерение частоты растра в линиях, а не в точках на единицу измерения обусловлено тем, что при реальной печати растровая сетка имеет наклон относительно вертикальной и горизонтальной осей. Linear array (также scanning array, CCD array) — линейка приборов с зарядовой связью (ПЗС-линейка). Используется в большинстве плоскостных сканеров и цифровых фотокамер. Сканирует изображение, передвигаясь вдоль него с помощью шагового двигателя. Lines per inch (lpi — линий на дюйм или лин/дюйм) — линиатура растра, с которой печатается полутоновое изображение, обычно от 55 до 200 lpi. 373
Linking — объединение (связывание) объектов в составной документ, вследствие этого ссылка связи, вставленная в документ, указывает на фактические данные, которые физически находятся в другом месте документа или в каком-то другом документе. Localization (локализация) — адаптация программного продукта к национальным особенностям страны или географического региона, котором он используется. Например, разработчики программ обработки текстов должны локализовать алгоритмы сортировки списков для различных алфавитов. Lossless compression (сжатие без потери данных) — технология сжатия изображений, при которой уменьшается количество бит для хранения каждой точки изображения без потери информации или резкости. Примером является кодирование по алгоритму Хаффмана. Lossy compression (сжатие с потерей данных) — технология сжатия изображений, при которой уменьшается количество бит для хранения каждой точки изображения, но при этом теряется часть информации. Примером является JPEG-компрессия. MB, MegaByte — мегабайт (Мбайт). Единица измерения количества информации, равная 1000 Кбайт. Альтернативой является предложенная IEC единица MiB (MibiByte); I MiB = 1024 KibiByte. MBps (MegaBytes per second) — мегабайт в секунду (Мбайт/с). Мера скорости передачи данных. MHz, Megahertz — мегагерц (МГц). Мера частоты в 1 миллион циклов в секунду (1/с). Middleware — программное обеспечение, обеспечивающее интерфейс высокого уровня, освобождающий разработчика прикладных программ от знания сложностей аппаратных средств, операционной системы и сетевой семантики. MIDI (Music Instrument Digital Interface) — стандарт на язык и аппаратуру представления звуков различных инструментов. Команды MIDI сообщают аппаратуре, у какого инструмента, на какой октаве и какая нота должна звучать. Поэтому запись мелодии в MIDI-командах очень компактна. MIDI-секвенсор — устройство (или программа), которое записывает и воспроизводит команды MIDI, а не аудиосигналы. Millisecond (ms, миллисекунда, мс) — одна тысячная секунды (0,001 с). MIME (Multipurpose Internet Mail Extention) — многоцелевое расширение электронной почты Internet. Официально предложенный стандарт электронной почты в Internet. MIMEформат позволяет включать в сообщение электронной почты помимо текста также изображения, звук, видео. Minus color (дополнительный или комплементарный, цвет) — цвет, который формируется вычитанием другого цвета из белого. Например, при вычитании голубого из белого образуется красный. M-JPEG (Motion JPEG) — метод сжатия для обработки движущихся изображений. Используется в ряде устройств среднего (по стоимости) Уровня для ввода в компьютер видеоинформации. Modulation (модуляция) — термин, первоначально относившийся к методам передачи информации (амплитудная модуляция, частотная модуляция и пр.) посредством наложения полезного сигнала на служебный (несущая частота). В дальнейшем употребляется по отношению к различным методам преобразования исходного сигнала с целью сжатия, кодирования передачи по каналам связи (импульсно-кодовая модуляция, модуляция «8—14» и пр.). Moire (муар) — повторяющийся интерференционный рисунок, вызванный наложением симметричных рядов точек или линий, имеющих разный шаг и угол наклона. Обычно считается полиграфическим браком. 374
Monochrome Image (монохромное изображение) — изображение, формируемое градациями (оттенками) одного цвета. Как правило, на практике данный термин используют применительно к черно-белым изображениям. Mosaic — один из первых графических браузеров для просмотра HTML-документов всемирной паутины, разработанный NCSA. Movie Grabbing — оцифровка и сохранение «живого» видео (видеозахват). МРЗ(стандарты ISO-MPEG Audio Layer-3 - IS 11172-3 и IS 138-3) -спецификация технологий сжатия аудиосигналов с минимизацией потерь до размеров, в 10 раз меньших по сравнению с исходными WAV-файлами при сохранении качества звучания, сравнимого с CD. MPEG (Motion Picture Expert Group) — организация-разработчик стандартов на типы кодирования видео- и аудиосигналов. MPEG-1 (стандарт ISO/IES 11172) — тип кодирования видеоизображения и/или звука, позволяющий при потоке данных на уровне 1,5 Мбит/с (170 Кбайт/с) передавать изображение с качеством бытового кассетного видеомагнитофона стандарта VHS (Video Home System) со стереофоническим звуковым сопровождением. Исходное изображение — 352 х 240 пикселей, 30 кадров в секунду. MPEG-2 (стандарт ISO/I ЕС 13818) — стандарт на кодирование для высококачественной передачи и хранения изображений в вещательном формате (720 х 480 пикселей), аудиоинформации и данных при потоке 28 Мбит/с (3,5 Мбайт/с). MS-DOS — дисковая операционная система, созданная фирмой Microsoft. MS-DOS — однозадачная, однопользовательская операционная система с интерфейсом командной строки. Multitexturlng (мультитекстурирование) — использование нескольких текстур для закрашивания одного многоугольника на поверхности трехмерного графического объекта. Nanometre (от греч. nanos — карлик, nm, vm, нанометр, нм) — одна миллиардная доля метра (10-9 м). Nanosecond (ns, vs, наносекунда, не) — одна миллиардная доля секунды (0,000000001 с). Свет проходит около 8" за 1 не. Navigation — процесс целенаправленного перемещения от одного информационного объекта к другому. Netscape — браузер для навигации и просмотра информации в гипертекстовой системе WWW, разработанный Netscape Communication Corporation. NNTP (Network News Transfer Protocol) — сетевой протокол передачи новостей. Служит для помещения и извлечения статей в телеконференциях. Non-lossy — компрессия, сжатие файла изображения без потери качества. Обычно степень сжатия составляет не более 2:1. NURBS (Non-Uniform, Rational B-Spline) — математическая модель интерполяции, использующая методы сплайнов, применяемая в трехмерной компьютерной графике для создания гладких кривых и поверхностей, приблизительно соответствующих опорным точкам на плоскости или в пространстве. Используется методика кривых Безье (Bezier Spline, Bezier curve). OASIS (Organization for the Advancement of Structured Information Standards) — Организация по развитию стандартов структурирования информации — глобальный консорциум, который занимается развитием, согласованием и принятием стандартов в области web-сервисов и электронной коммерции (а также защиты информации, законодательства в этой области, автоматизированного управления, обработки XML и пр.). OASIS была основана в 1993 г., первоначально именовалась SGML Open и представляла собой ассоциацию разработчиков и распространителей технологий SGML (главным образом через сферу образования). В 1998 г., с перемещением внимания 375
разработчиков информационных технологий к XML, SGML Open изменил акцент от SGML на XML, a свое название — на OASIS. В то время организация состояла из пяти технических комитетов, а к 2004 г. их стало почти 70. OCR (Optical Character Recognition) — распознающая программа для ввода документов с использованием оптического сканера. Характерным представителем относительно дешевых OCR-программ является пакет FineReader. В качестве примера OCR-программы для автоматического распознавания типографского набора можно привести пакет CuneiForm 1.2R. ODA (Office Data/Document Architecture) — архитектура офисных документов (стандарт ISO 8613). ODBC (Open DataBase Connectivity) — стратегический интерфейс Microsoft для вызова данных в гетерогенной среде реляционных и нереляционных систем управления базами данных. ODBC предназначен обеспечить универсальный набор команд интерфейса для доступа к данным, что обеспечивает доступ к множественным различным базам данных. Интерфейс используется разработчиком, чтобы определить команды, которые затем транслируются драйверами для различных видов SQL, используемого различными продавцами DBMS. ODIF (Office Document Interchange Format) — формат обмена документами в делопроизводстве (ISO 8613), см. ODA. ODMA (Open Document Management API) — API для связи прикладных программ с системой управления документами и другим групповым ПО. Office Suit (комплект офисных приложений) — набор программ, предназначенный для использования в типичных учрежденческих условиях, компоненты которого имеют сходные интерфейсы и могут взаимодействовать друг с другом путем передачи информации. Большинство комплектов офисных приложений включают по крайней мере текстовый процессор и обработчик электронных таблиц. В дополнение к ним, набор может содержать программы презентаций, СУБД, набор графических средств и инструменты связи. Офисный комплект может также включать почтового клиента и администратора персональной системы информационного обслуживания или пакет программного обеспечения для коллективной работы. Доминирующим офисным набором в настоящее время является Microsoft Office, который доступен для Microsoft Windows и Macintosh Apple и стал фактическим стандартом в программном обеспечении офиса. Альтернатива — любой из наборов OpenDocument, которые используют бесплатный формат файла OpenDocument, определенный стандартом ISO/MEC 26300. Самые известные — OpenOffice.org (программное обеспечение с открытыми программными кодами, которое является доступным для Windows, Linux, Macintosh и других платформ). OpenOffice.org поддерживает многие из особенностей Microsoft Office так же, как большинства его форматов файла, и породил несколько производных, например, NeoOfiice (для Mac OS X) и StarOffice, коммерческая версия Sun Microsystems. Известны и другие офисные комплекты: WordPerfect Office (Corel); iWork (Apple, только для Mac), включает Pages (гибрид текстового процессора и настольной издательской системы) и Keynote (презентации); KOffice, который является частью настольной среды KDE (Unix/Linux). OLAP (On-Line Analytical Processing) — аналитическая обработка данных в оперативном режиме. Прикладное ПО для анализа информации, хранящейся в базе данных. OLE (Object Linking and Embedding) — набор стандартных спецификаций и способов их реализации, находящийся в собственности и поддерживаемый Microsoft для составных документов. 0MR (Optical Mark Recognition) — оптическое распознавание меток. Так называется технология, позволяющая ABBYY FormReader не 376
только уверенно распознавать на формах обычные метки (галочки, крестики и т. п.), но и правильно идентифицировать метки, отмеченные по ошибке и затем полностью закрашенные. Применение OMR позволяет ABBYY FormReader достигать высокой точности распознавания даже в тех случаях, когда обрабатываемые документы заполнены с ошибками или помарками. On-line — 1) режим работы с компьютером или каким-либо другим устройством, при котором подразумевается постоянное с ним взаимодействие. Синонимы: интерактивный, диалоговый, оперативный; 2) постоянно включенное устройство; неавтономный режим работы. OODBMS (Object Oriented DBMS) — объектно-ориентированная система управления базами данных. Система управления базами данных, выполняющая ряд функций, основанных на объектных понятиях (концепциях). В зависимости от целей их проектирования такие системы обладают одним или всеми из нижеперечисленных свойств: системы более гибкого типа, чем найденные в RDBMS; легкая связываемость с помощью интерфейса с объектными языками; способность обрабатывать неструктурированные и мультимедийные данные; более быстрая эффективность, чем у RDBMS. OpenGL (Open Graphics Library) — открытая графическая библиотека. Межъязыковая и межплатформенная спецификация API для трех-и двумерных приложений компьютерной графики. Включает более чем 250 функций, которые позволяют строить трехмерные объекты и сцены из простых примитивов. OpenGL предложена SGI (Silicon Graphics Inc.) в 1992 г. Optical resolution (оптическая разрешающая способность, оптическое разрешение) — число пикселей на дюйм (ppi), получаемое прямой оцифровкой. В некоторых сканерах эффективное разрешение больше оптического за счет интерполяции. ORACLE — система управления реляционными базами данных и широкий набор работающих с ней инструментальных средств разного уровня, доступные практически на всех распространенных вычислительных машинах и операционных системах. OSI (Open System Interconnection) — взаимосвязь открытых систем. Набор сетевых протоколов, предложенный ISO. Этот стандарт сетевого и межсетевого взаимодействия определяет семь уровней взаимодействия компонентов сети: физический, канальный, сетевой, транспортный, сеансовый, уровень представления данных и прикладной. Для каждого уровня разработан один или несколько протоколов, которые обеспечивают сетевое взаимодействие широкого класса устройств. Outline font (контурный шрифт, векторный шрифт) — технология создания шрифтов, базирующаяся на математическом описании каждого символа в виде набора векторов определенного размера и направления. Данный тип шрифтов легко масштабируется простым умножением или делением базовых величин (длин) векторов на коэффициент масштабирования. Примерами контурных шрифтов являются TrueType и PostScript. PCL (Printer Control Language) — язык управления принтером. PDF (Portable Document Format) — универсальный формат документов. Термин введен корпорацией Adobe, которой и разработан данный формат. Удобство формата PDF в том, что он может быть прочитан специальной программой — Adobe Acrobat, версии которой существует почти для любых платформ и операционных систем. PDL (Page Description Language) — язык описания страниц. Единый формат для передачи готового документа в нередактируемом виде. Позволяет просматривать и печатать документ на различном оборудовании. PICT/PICT2 — общепринятый формат определения изображений и рисунков в платформе Macintosh. Формат PICT 2 поддерживает цветопередачу 24 бит на цвет. 377
Pixel (PICTure ELement, пиксель) — наименьший дискретный элемент оцифрованного изображения. Pixel depth (глубина цвета, color depth) — число бит, используемых для представления каждого пикселя изображения, определяемое цветовым или тоновым диапазоном. РпР (Plug and Play, P&P) — «включил и работай». Предложенная Microsoft и Intel спецификация самоконфигурирования компьютера и периферии. ПК с РпР требует следующие компоненты — РпР BIOS, адаптеры и периферию РпР, ОС РпР. Point-and-click («укажи и щелкни») — в GUI способ запуска различных приложений. PostScript — язык высокого уровня для описания страниц. Разработка компании Adobe Systems. Является стандартом де-факто в области издательских систем. Позволяет детально описать характеристики и расположение любых элементов, таких как шрифты, линии, изображения, кривые и т. д., на странице издания для отображения на экране дисплея или устройстве вывода, оборудованном интерпретатором языка PostScript. Спецификации PostScript лицензированы практически всеми производителями принтеров, фотонаборных автоматов и других периферийных устройств, а также разработчиками программного обеспечения для издательских систем и подготовки документов. Ppi/Ppcm (Pixels per inch/Pixels per centimetre) — пиксели на дюйм/пиксели на сантиметр. Единицы измерения разрешающей способности. Prescan (предварительное сканирование) — способность многих планшетных сканеров и управляющего программного обеспечения проводить быстрое сканирование с низким разрешением, чтобы позволить оператору изменить положение сканируемого оригинала или выделить определенную область для сканирования с высоким разрешением. Process color (составной цвет) — печать цветных изображений, производится с помощью составных цветов. Получение нужного цвета реализуется наложением красок первичных цветов (CMYK). Вследствие того, что голубая, пурпурная и желтая краски полупрозрачны, они поглощают одни цвета и отражают другие, создавая широкую гамму оттенков, в зависимости от растра каждого из триадных цветов. Protocol (протокол) — совокупность формальных правил и описаний форматов данных, которая позволяет двум устройствам обмениваться информацией. RAID (Redundant Array of Independent Disks) — дисковый массив, обеспечивающий резервирование и дублирование данных. RDBMS (Relational Database Management System) — реляционная система управления базами данных. Основная технология баз данных, используемая в складировании данных. Реляционная технология базы данных была определена Т. Коддом, который также издал набор правил, определяющих OLAP. Rendering (рендеринг, англ — представление, исполнение) — 1) процесс создания цифрового (растрового) изображения на основе модели объекта или сцены посредством компьютерной программы. Модель представляет собой описание трехмерных объектов на основе конкретного языка или набора данных и может учитывать: геометрию сцены, направления взгляда наблюдателя и освещения, текстуры поверхностей объектов. Включает объединение растровых, векторных, естественных и виртуальных фрагментов картины. Скорее относится к синтезируемым (виртуальным) образам, нежели к фото/видеокадрам. Предполагает формирование таких подробностей изображения, как тени, блики, отражения, искажения перспективы и пр. Рендеринг имеет две основные разновидности: пререндеринг (pre-rendering) или интенсивный вычислительный процесс, обычно используемый в кинематографе, и рендеринг реального времени (real-time rendering), используемый в видеоиграх на основе видеокарт с ЗО-акселераторами; 2) процесс вычисления и монтирования в видеофайл эффектов при видеоредактировании. Replication — процесс физического дублирования данных из одной базы данных в другую. Дублирование увеличивает функциональные возможности преобразования данных. 378
Гетерогенное копирование, где исходные и целевые типы данных различны, осуществляется разными средствами. Некоторые репликаторы позволяют двунаправленное копирование, где любая копируемая база данных может модифицироваться, тогда изменения автоматически распространяются в другую. Repository — склад. Корпоративный информационный ресурс, содержащий всю разработку, предоставленную от анализа до кодов программ, и способный к сохранению версий и конфигураций. Узловой центр для интегрированной среды обработки с различным набором инструментальных средств, способствующий использованию информации для стандартизации семантики. Resolving power (также resolution) — разрешающая способность. Характеристика, определяющая способность оптической системы различать тонкие черные линии на белом фоне. Задается числом линий на миллиметр. Retrieval — процесс поиска, выборки документов или их частей в системах управления документами. RGB (Red, Green, Blue, красный, зеленый, синий) — первичные (базовые) цвета аддитивной модели цвета. RIP (Raster Image Processor) — процессор растровых изображений. Компонента системы печати, которая производит точечный (битовый, \ растровый) рисунок, передаваемый затем на выход. Вход RIP может j быть как кодом на языке описания страниц высокого уровня, наподо- ; бие PostScript, PDF, XPS (в том числе включающим векторную инфор- I мацию), так и другим точечным рисунком, разрешающая способность | которого выше или ниже, чем у устройства вывода. В последнем случае j RIP применяет алгоритмы сглаживания или интерполяции к входному; точечному рисунку, чтобы генерировать точечный рисунок вывода. RIP J реализуется либо как программный компонент операционной системы, I либо как встроенная микропрограмма, выполняемая на процессоре j принтера. Для высокопроизводительного набора иногда используются j автономные аппаратные средства RIP. Ghostscript и GhostPCL — примеры программных RIP. Каждый PostScript-принтер содержит RIP в его встроенном программном обеспечении. Ripper — наименование программных средств для извлечения аудиоданных из музыкальных CD-ROM для обработки и передачи по интерфейсам ПК (IDE, SCSI). Router — маршрутизатор, устройство для передачи сетевых пакетов из одной сети в другую на основе информации, содержащейся в передаваемом пакете. Сетевой шлюз является наиболее типичным представич телем маршрутизаторов. RPN (Reverse Polish Notation) — обратная польская запись. Называется также «постфиксной записью» (postfix notation), в которой каждый] оператор следует за всеми его операндами. В PRN обычная (в «инфиксной записи») операция сложения (4+5) выглядит как (5 4 +). Предложена австралийским философом и математиком Чарльзом ХамблиноМ (Charles Hamblin) в середине 1950-х гг. для записи операций с безадресной (стековой) памятью. Названа по аналогии с «польской записью» (polish notation), предложенной в 1920 г. польским математиком Яном Лукашевичем (Jan Lukasiewicz). Это наоборот — «префиксная запись» (prefix notation). Sampling — сэмплирование, квантование, процесс конвертирования аналоговых данных в цифровые путем взятия серий измерений или результатов считывания через равные промежутки времени. Sampling Rate (частота сэмплирования/квантования по времени) — при оцифровке аналогового сигнала частота, с которой осуществляется сканирование аналогового сигнала. Частота квантования должна по крайней мере в 2 раза превышать максимальную частоту исходного сигнала, например, частота сэмплирования 44,1 кГц (аудио CD) 379
обеспечивает правильную оцифровку звука в 20 кГц (наивысшие тона, которые может воспринять человеческий слух). Saturation (насыщенность цвета) — показатель, описывающий силу цвета и его уровень серого. Мера чистоты цвета, определяющая количество содержащегося в нем серого. Чем выше содержание серого, тем ниже насыщенность цвета. Scanning — сканирование — процесс преобразования информации, находящейся на твердом носителе, в цифровой формат. Security — безопасность — функция системы, правила, ограничивающие доступ к документам: установление личности пользователя, делающего попытку доступа, определение набора привилегий, доступных пользователю. SGML (Standard Generalized Markup Language) — язык разметки высокого уровня для представления документов сложной структуры, обычно используемых в технических приложениях. Shader («заштриховыватель», «закрашиватель», «затушевыватель») — программа, использующаяся в компьютерной графике для создания поверхностных свойств и придания окончательной формы трехмерному графическому объекту. Разновидности — vertex shader (обработчик угловых вершин в контуре изображения); geometry shaders (обработчик графических примитивов — треугольники, линии, полосы, пятна); pixel/fragment shader (обработчик пикселей, вычисляет их свойства, которые в конечном итоге трансформируются в цвета пикселей); Gouraud shading (закрашивание по методу Гуро — метод, обеспечивающий имитацию плавных искривленных поверхностей, которые строятся из плоских многоугольников; быстрый интерполяционный алгоритм, который может быть форсирован при аппаратной реализации на графическом акселераторе). Shading («заштриховка», «закрашивание», «затушевывание») — процесс изменения цветов объекта в зависимости от угла зрения, угла освещенности и дистанции до источников света и зрителя для достижения фотореалистического эффекта. Выполняется в процессе рендеринга (rendering). Sharpen (повышение резкости полутонового изображения) — процесс повышения контрастности и «светлоты» отдельных частей изображения. SMTP (Simple Mail Transfer Protocol) — простой (упрощенный) протокол электронной почты. Прикладная служба в сетях TCP/IP для передачи текстовых сообщений. SNA (Systems Network Architecture) — сетевая архитектура систем, разработанная корпорацией IBM для организации сетей своих хост-машин и терминалов. Состоит из семи уровней протоколов, которые подобны уровням модели OSI. Определяет способы передачи информации; иерархический (связь между хост машиной и терминалами) и одноранговый (равноправный). Sound Blaster — семейство аудиокарт, выпускаемых Creative Labs. Протокол интерфейса Sound Blaster является стандартом де-факто для аудиооборудования ПК. Монофоническая версия карт Sound Blaster была предложена в 1989 г., а стерео — тремя годами позднее. Sound Blaster AWE32 и AWE64 —16-битовые звуковые карты, которые поддерживают WaveTable MIDI с 32 и 64 каналами (voices) соответственно. SPDIF, S/PDIF (Sony/Philips Digital Interchange Format) — стандартный интерфейс, позволяющий пользователям соединять различные типы аудиооборудования (наподобие звуковых карт, колонок и пр.) для получения чистого звукового сигнала. Sprite (спрайт — от англ. эльф, фея) — в компьютерной графике двумерное изображение или мультипликация, встраиваемая в трехмерную сцену. Спрайт-технологии были первоначально разработаны для быстрого соединения вместе нескольких изображений (в двумерных видеоиграх) с использованием специальных аппаратных средств. 380
SQL (Structured Query Language) — структурированный язык запросов. Стандартный язык запросов, используемый для обращения к реляционным базам данных. Разработан фирмой IBM. ANSI-стандарты были изданы для SQL в 1986 и 1989 годах. STN International — научно-техническая информационная сеть, предоставляющая пользователю доступ к большинству мировых БД по науке и технике; содержит более 170 БД, суммарный объем более 170 млн записей. Subtractive color system — система субтрактивного синтеза цветов. Использует в качестве первичных голубой, желтый, пурпурный цвета (модель CMYK). Subtractive primaries (также primary colors, color primaries) — основные цвета, на которых базируются цветовые модели. В аддитивной RGB-модели — красный, зеленый и синий, а в субтрактивной CMY-модели — голубой, пурпурный и желтый. S-Video — видеосигнал, в котором компонент яркости передается отдельно от компонента цвета, что обеспечивает более высокое качество изображения. Он относится к изображениям, которые состоят из двух независимых сигналов: Y (сигнал яркости) и С (сигнал цвета). Synchronous (синхронный). Относится к событиям, которые синхронизированы или скоординированы во времени. Коммуникации внутри компьютера синхронизированы и управляются тактовым генератором. Сигналы на шине, например, могут появляться только в определенные моменты времени. ТВ (Terabyte, терабайт) — единица измерения емкости памяти, содержащая 1000 Гбайт. В качестве альтернативной IEC предложила в 1998 г. TiB (TibiByte), I TiB = 1024 GiB (GibiByte). TCP/IP (Transmission Control Protocol/Internet Protocol) — набор протоколов для коммуникации в локальной сети или во взаимосвязанном наборе сетей. Основные протоколы Internet/Intranet. Texture (текстура) — термин, описывающий раскраску, заполнитель фрагмента изображения (или его фона), который обычно образует однородную мелкомасштабную повторяющуюся картину. Примеры — обои, трава, паркет, древесный рисунок, волны по воде, облака и пр. Элементом текстуры является тексель (texel — pixel of the texture). Текстуры используются при рендеринге (представлении) кадра. Возможны и более сложные случаи, когда текстура представляет собой плоское изображение, которое должно быть нанесено на объемный «каркас» (texture mapping, текстурирование). Texture mapping (текстурирование, нанесение текстуры) — метод нанесения деталей или окраски на трехмерную модель, сгенерированную компьютером, нечто подобное обтягиванию каркаса разрисованной бумагой или тканью. TIFF (Tagged Image File Format) — формат файлов, используемый для представления цветных и черно-белых изображений. Turing complete (Turing equivalent, computationally universal) — полнота (законченность) Тьюринга (по Тьюрингу). Свойство алгоритма, абстрактной вычислительной машины или языка программирования, которое обеспечивает вычислительные возможности, эквивалентные (т. е. эмулируемые) упрощенной модели программируемого компьютера, известной как универсальная машина Тьюринга. Эта эквивалентность по существу означает «быть в состоянии выполнить любую вычислительную задачу» (хотя и не обязательно эффективно, быстро или легко). Under color removal, UCR (вычитание цветов из черного) — технология снижения количества цветных красок субтрактивного синтеза (CMYK) в тенях и нейтральных областях изображения путем замены их на соответствующее количество черной краски. URL (Universal Resource Locator) — последовательность символов, обозначающая адрес документа (или его части) на сервере Паутины. Типичный URL содержит три части: используемый протокол при извлечении документа (ftp, http и др.); доменное имя 381
компьютера, где хранится документ; путь к документу (pathname) в локальной файловой системе; синтаксис URL — protocol: //server_name/path. Value (оптическая плотность, уровень серого, степень почернения) — мера «светлоты» цветового тона. Чем меньше белая компонента в цвете, тем выше оптическая плотность. Vector graphics (также object-oriented graphics) — векторная графика, где изображение представляется в виде совокупности отрезков кривых, а не методом расчета каждой точки (пикселя), как это делается в растровой графике. Векторное изображение может быть легко масштабировано без потери деталей. View (просмотр, показ) — представление содержания документа в читаемой форме. Volume — том, или логический носитель данных, содержащий множество файлов. В случае НЖМД обычно том размещается в разделе диска, форматируется для поддержки файловой системы (FAT или NTFS) и ему назначается идентификатор (буква — С:, D: и пр.). Как правило, на одном физическом диске размещают несколько логических томов, однако том может занимать и несколько дисков. В соответствии со стандартом ISO 9660 «том» — это отдельный диск CD-ROM. WAN(Wide Area Network) — глобальная вычислительная сеть. WAV (Waveform Audio) — естественная форма цифрового аудиосигнала, используемая в Windows. WAV-файлы обозначаются расширением .wav и поддерживают звуковую запись в широком диапазоне качества звучания (квантование по времени с частотой 11 025, 22 050 или 44 100 Гц и 8- или 16-битовое квантование по амплитуде). Наивысшее качество (16-бит и 44 100 Гц) требует расхода памяти 176 Кбайт/с. Web-site (буквально — место в Паутине) — первоначально Web-сервер или совокупность серверов Internet, которые представляли компании, университеты и другие организации во Всемирной Паутине (WWW). Место на хосте WWW, где хранится информация, доступная пользователям сети с помощью какого-либо браузера. По сути дела это логически обособленная совокупность гипермедиа-информационных объектов, объединенная общей темой и положением в гипер(ме-диа)-пространстве, например, общей хост-частью URL. Следует отличать «сайт» от сервера. Сервер — объект сетевого пространства, в то время как сайт — объект информационного web-пространства. На сервере может располагаться множество сайтов. Большинство сайтов Паутины приняли соглашение о том, что их доменное имя будет начинаться С www, например, www.Ankey.ru. White balance (баланс белого) — относительная насыщенность красного, синего и зеленого в источнике света. Управление балансом белого позволяет компенсировать отклонения от стандарта в спектре источника света. WT Music Synthesizer — синтезаторы с табличным синтезом (Wave Table), хранящие в своей постоянной памяти образцы (волновые таблицы — цифровые последовательности выборок) сигналов настоящих «живых» инструментов для нескольких нот диапазона по каждому инструменту. Как правило, минимальный объем таблицы — 1 Мбайт. На многих звуковых картах возможна установка дополнительной памяти для загружаемых таблиц, которые могут быть созданы самим пользователем. Качество волнового синтеза высокое, но при более высокой цене. WWW (World Wide Web) — всемирная паутина. WYSIWYG (What You See Is What You Get — что видишь, то и получишь) — экранное изображение, которое в точности (или очень близко) соответствует выводу на печать. Х.400 — наборы протокольных стандартов для международной пересылки электронной почты. Это новый стандарт для систем работы с сообщениями электронной почты позволяет включать в сообщения не только текстовую, но и другую информацию, например факсы и графические изображения. Поддерживается поставщиками в основном в качестве инструмента, позволяющего работать с различными системами электронной почты. 382
XML (extensible Markup Language) — расширяемый язык разметки. Современный инструмент для создания и обработки документов; его возможности используются многими программами. YCbCr — несущий сигнал, который содержится в цветной полосе сигнала, используемого в передаче в современном телевидении. Название происходит от сигналов Y (яркость) и СЬСг (цвет). YpbPr — несущий сигнал, который содержится в цветной полосе сигнала, используемого в передаче в телевидении высокой четкости (HDTV). Название происходит от сигналов Y (яркость) и РЬРг (разность цветов). Автоматизированная информационно-поисковая система (АИ ПС) — совокупное название как для программных оболочек, ориентированных на ввод, хранение, поиск и выходное представление документов (структур данных сложного или неопределенного формата), так и для конкретных систем определенного наполнения и предметной ориентации, реализованных на основе таких оболочек (или иными программными методами). Примерами программных оболочек АИ ПС являются STAIRS, DPS, ISIS, IRBIS. Агрегат данных — именованная совокупность элементов данных, представленных простой (векторной) или иерархической (группы или повторяющиеся группы) структурой. Примеры — массивы, записи, комплексные числа и пр. Агрегатные функции — вычислительные функции СУБД, реализующие при выводе отчета или чтении таблицы данных вычисление агрегатных данных по группе записей БД (строк таблицы) — МАХ (максимальное значение данного поля в обработанной группе записей/строк), MIN (минимальное значение), AVER (среднее значение), COUNT (подсчет числа записей)и пр. Адаптер (от лат. adaptare — прилаживать, короче говоря, — «приспособление») — устройство сопряжения центрального процессора и периферийных устройств компьютера. Кроме этого, иногда осуществляет функции управления периферийным устройством. Обычно выполнен в виде микросхемы и помещен на системную плату, может быть представлен отдельной платой. Иногда называется картой или контроллером. Адаптер графический — устройство, управляющее дисплеем и обеспечивающее вывод графических изображений. Определяет разрешающую способность дисплея (количество точек на единицу площади экрана), количество цветов. Адаптивная бинаризация (Adaptive Binarization — АВ) — способ обработки изображения; алгоритм, выбирающий порог бинаризации в зависимости от контрастности данного участка изображения. Дает возможность точно распознавать текст со сложных оригиналов, например, ветхих, истертых страниц. Адаптивная бинаризация используется ABBYY FineReader для повышения качества распознавания. Администратор базы данных (АБД) — лицо или группа, уполномоченные для ведения БД (модификация структуры и содержания БД, активизация доступа пользователей, выполнение других административных функций, которые затрагивают всех пользователей). С этой целью он идентифицирует объекты БД и моделирует базу, используя язык описания данных. Администратор решает также все вопросы, связанные с размещением БД в памяти, выбором стратегии доступа и ограничением доступа к данным. В функции АБД входят также организация загрузки, ведения и восстановления БД. Анализ документа — процедура обработки изображения, в ходе которой OCR-программа создает электронную редактируемую копию документа. Собственно распознавание текста — одна из составных частей анализа документа. Аналого-цифровой преобразователь (АЦП, ADC) — устройство, преобразующее аналоговый сигнал в цифровой, и обратно. Например, для 383
передачи данных по цифровой телефонной сети с помощью модема между модемом и цифровым телефонным каналом ставится аналого-цифровой адаптер. Архитектура документа — структурное описание документа, включающее в себя все входящие в него виды информации (текст, векторная и растровая графика, таблицы). Асинхронная передача данных — способ передачи и метод извлечения данных из непрерывного потока сообщений, при которых передающая сторона в каждый элемент данных вводит стартовый и столовый признаки, указывающие, где элемент начинается и заканчивается. Атрибут — поле данных, содержащее информацию об объекте. Аудиоадаптер (звуковая плата) — плата, которая позволяет записывать звук, воспроизводить и генерировать его программными средствами с помощью микрофона, наушников, динамиков, встроенного синтезатора и другого оборудования. База данных (БД) — именованная совокупность взаимосвязанных данных, отображающая состояние объектов и их отношений в некоторой предметной области, используемых несколькими пользователями и хранящимися с минимальной избыточностью. Базы данных предоставляют собой более жесткую среду для хранения нежели файловые системы ОС. Базы данных характеризуются многопользовательским интерфейсом, протоколированием, словарями данных для моделирования метаданных, определяемой пользователем структурой, жесткими типами данных и сложными языками запросов. Байт — машинное слово минимальной размерности, адресуемое в процессе обработки данных. Размерность байта (8 бит) принята не только для представления данных в большинстве компьютеров, но и в качестве стандарта для хранения данных на внешних носителях, для передачи данных по каналам связи, для представления текстовой информации. Безопасность — защита данных от преднамеренного или непреднамеренного доступа, модификации или разрушения. Библиографические данные (записи) — выходные данные (включают авторов, заголовок, классификационный индекс, место публикации и пр.), иногда реферат. Бит (от англ. Binary digiT — двоичная единица) — единица измерения количества информации, равная количеству информации, содержащемуся в опыте, имеющем два равновероятных исхода. Это наименьшая единица информации в цифровом компьютере, принимающая значения «О» или «1». Битрейт (bitrate) — ширина потока (битовая скорость). Для звукового сигнала термин обозначает общую ширину потока, безразлично к тому, монофонический или стереофонический сигнал он содержит, варьируется от наибольшего для МРЗ, равного 320 кбит/с (320 килобит в секунду), до 96 кбит/с и ниже. Браузер — прикладная программа клиента, которая позволяет просматривать, извлекать и показывать содержание документов, находящихся на серверах Всемирной паутины. Наиболее распространенные браузеры — Netscape Navigator и Internet Explorer. Валидация — автоматическая проверка распознанных данных на соответствие заданным правилам. Например, проверка на попадание численных данных в определенный интервал, проверка совпадение сумм, указанных цифрами и прописью, проверка на соответствие формату или заданному значению. Векторная графика — способ представления изображения как совокупности графических элементов (графических примитивов — отрезков, дуг и пр.), описанных любым способом, в том числе графическими командами. Величина аналоговая — величина, у которой значения изменяются непрерывно и ее конкретное значение зависит только от точности прибора, производящего измерение. Например, температура воздуха. 384
Величина дискретная — величина, значения которой изменяются скачкообразно. Например, величина, характеризующая наличие или отсутствие тока в электрической цепи, является дискретной и может принимать значения «да» или «нет» («0» или «1»). Верификация — проверка распознанных данных оператором. Производится путем сличения результатов распознавания с исходным изображением части документа. Технология верификации реализована в продуктах ABBYY с учетом основных психосоматических особенностей человека: выработки привычек, использования навыков, целостности и целенаправленности восприятия. Вид документа — элемент классификации множества документов, циркулирующих в организации. Видеоадаптер — электронная плата, которая обрабатывает видеоданные (текст и графику) и управляет работой дисплея. Содержит видеопамять, регистры ввода-вывода и модуль BIOS. Посылает в дисплей сигналы управления яркостью лучей и сигналы развертки изображения. Видеопамять — дополнительная память для обеспечения качественного изображения на дисплее. Является частью видеоадаптера, имеет объем до нескольких десятков мегабайт. В видеопамяти формируются изображения одного или нескольких экранов, которые затем подаются на дисплей. В некоторых компьютерах видеопамять выделяется из оперативной памяти. Внешние устройства (ВУ) — устройства ввода-вывода и хранения информации. ВУ подключаются к системе с помощью интерфейсов, реализующих определенные протоколы параллельного или последовательного обмена. К ВУ относятся — клавиатура, монитор, внешние запоминающие устройства, использующие гибкие или жесткие магнитные диски, оптические диски (CD-ROM), магнитные ленты и другие виды носителей информации, датчики и преобразователи информации (аналого-цифровые или цифроаналоговые), исполнительные устройства (индикаторы, принтеры, электродвигатели, реле и др.). Поскольку, как правило, они работают значительно медленнее остальных, управляющее устройство должно приостанавливать программу для завершения операции ввода-вывода с соответствующим устройством. Гигабайт (Гбайт) — единица измерения, содержащая 1024 Мбайт. В качестве альтернативной IEC предложила в 1998 г. GiB (Gibibyte) = = 1024 MiB (Mibibyte). Гипертекст — информационная система, состоящая из узлов, содержащих данные данных и смысловых связей между ними. Глобальная вычислительная сеть — сеть передачи данных, охватывающая значительное географическое пространство (регион, страну, ряд стран, континенты). Графика — наиболее общий способ визуального представления данных в компьютере, в котором объединяются текстовые данные и графические образы. Способы или форматы представления самого графического изображения на машинных носителях бывают двух типов: растровая и векторная графика. Данные — информация, обработанная и представленная в формализованном виде для дальнейшей обработки. Дескриптор — предназначенное для координатного индексирования документов и информационных запросов нормативное ключевое слово, по определенным правилам отобранное из основного словарного состава того или иного естественного языка. Диалоговый режим — режим непосредственного взаимодействия между человеком и компьютером, компьютерами в сети или между компьютером и периферийным устройством, при котором связь между взаимодействующими системами не прерывается. Часто называется интерактивным режимом или режимом «on-line». Дисплей (монитор) — устройство визуального отображения информации (в виде текста, таблицы, рисунка, чертежа и др.) на экране электронно-лучевого прибора. 385
Документ — агрегат данных в документальных системах (АИПС), имеющий иерархическую структуру и, кроме форматных полей (элементы или агрегаты данных фиксированной длины), обычно содержащий текстовые поля или символьные последовательности неопределенной длины, логически подразделяющиеся на параграфы (PAR, SEGM), предложения (SENT), слова (WORD). Драйвер (driver) — резидентный программный модуль, осуществляющий управление внешним устройством и связь с операционной системой и прикладными программами. Запись логическая — идентифицируемая (именованная) совокупность элементов или агрегатов данных, воспринимаемая прикладной программой как единое целое при обмене информацией с внешней памятью. Запись — это упорядоченная в соответствии с характером взаимосвязей совокупность полей (элементов) данных, размещаемых в памяти в соответствии с их типом. Запись физическая — совокупность данных, которая может быть считана или записана как единое целое одной командой ввода-вывода. Запоминающее устройство (ЗУ) — устройство для записи, хранения и выдачи данных. Различают устройства: долговременного и оперативного хранения данных, они же энергонезависимые и энергозависимые; только для чтения данных (постоянное запоминающее устройство — ПЗУ, компакт-диски) и как для чтения, так и для записи. В зависимости от физических принципов хранения данных различают магнитные, магнитооптические, оптические и полупроводниковые (схемные) устройства. Запрос (информационный) — сообщение, обычно неформатированное, информационнопоисковой системе со стороны абонента, содержащее его информационную потребность и подвергающееся автоматическому индексированию. Иерархическая модель данных. Использует представление предметной области БД в форме иерархического дерева, узлы которого связаны по вертикали отношением «предокпотомок». Навигация в БД представляет собой перемещение по вертикали и горизонтали в данной структуре. Одной из наиболее популярных иерархических СУБД была Information Management System (IMS) компании IBM, появившаяся в 1968 г. Импорт (загрузка, download) — утилита (функция, команда) СУБД, служащая для чтения файлов операционной системы, которые содержат данные из базы данных, представленные в некотором коммуникативном формате. Инвертированный файл (список) — файл, предназначенный для быстрого произвольного поиска записей по значениям ключей, организованный в виде независимых упорядоченных списков (индексов) ключей — значений определенных полей записей основного файла. Индекс — таблица ссылок на объекты, используемая для определения адреса записи. Индексирование — формирование описания документа как совокупности дескрипторов, выбираемых из заранее созданных словарей понятий либо из текстов документов. Интеллектуальная фильтрация фона (Intellectual Background Filtering — IBF) — способ обработки изображения; удаление фоновых текстур или картинок перед распознаванием текста. Применяется для повышения точности распознавания. Технология IBF реализована в OCR-системе FineReader. Интерфейс (от англ. inter — между и face — лицо) — 1) взаимодействие между элементами системы или системами; 2) совокупность средств, стандартов, сигналов, разъемов, обеспечивающая обмен данными между устройствами; 3) взаимодействие между человеком и компьютером. Информационная система — система, предназначенная для хранения, обработки, поиска, распространения, передачи и представления информации. Информационная технология — совокупность методов, производственных процессов и программно-технических средств, объединенных в технологический комплекс, 386
обеспечивающий сбор, создание, хранение, накопление, обработку, поиск, вывод, копирование, передачу и распространение информации. Информационные ресурсы — совокупность накопленной информации, зафиксированной на материальных носителях в любой форме, обеспечивающей ее передачу во времени и пространстве. В контексте автоматизированных информационных систем под информационными ресурсами обычно подразумевают информационные массивы и базы данных, рассматриваемые совместно с информационными технологиями, обеспечивающими их доступность. Информационный поиск — процесс отыскания в поисковом массиве таких записей, которые соответствуют признакам, указанным в информационном запросе. Килобайт (Кбзйт) — единица измерения количества данных или объема памяти, равная 103 = 1000 байтов. Альтернативой является предложенная IEC единица KiB (Kibibyte) — 210= 1024 байт. Расхождение составляет 2,4 %. Клиент—сервер — технология (архитектура) взаимодействия клиента и сервера. Клиент — программа, запрашивающая у сервера информацию или выполнение какого-либо задания на сервере от имени клиента. Сервер — прикладная программа, исполняющая запросы клиента. Клиент и сервер взаимодействуют по определенному протоколу. Программа клиента и программа сервера могут располагаться как на одной машине, так и на совершенно различных компьютерах произвольной сети. Ключевое поле — поле в структуре записи. Поле определяют как ключевое (или индексированное) для убыстрения или упрощения операций поиска и/или для модификации операций обработки данных. Ключевое слово — предметное слово, выбираемое из некоторого текста (документа) и используемое для координатного индексирования этого текста (документа). Код — система представления информации в виде данных, состоящая из набора условных знаков и правил присвоения им значений. Код ASCII (от англ. American Standard Code for Information Interchange — Американский стандартный код для обмена информацией) — стандарт кодирования символов латинского алфавита, цифр и вспомогательных символов или действий в виде однобайтового двоичного кода (1 байт = 8 бит). Первоначально стандарт определял только 128 символов, используя 7 битов (от 0 до 127). Использование всех восьми битов позволяет кодировать еще 128 символов. В этом случае говорят о расширенном ASCIIкоде. Дополнительные символы могут быть любыми, им отводятся коды от 128 до 255. Символы кириллицы кодируются именно в этой части ASCII-кода. Код Unicode — стандарт для представления символов с использованием 16-разрядных кодов (2 байта). Допускает 65 536 символов. Стандарт должен в перспективе заменить ASCII, так как удобнее пользоваться одним кодом для разных языков, чем менять перекодировочные таблицы в ASCII-коде. Кодек (от англ. Codec — COmpress-DECompress — сжимать — восстанавливать) — аппаратно-программный комплекс, обеспечивающий работу персонального компьютера с видеоинформацией. Кодек позволяет добиваться качества работы видеомагнитофона за счет использования аппаратных и программных методов сжатия данных. Кодирование (coding) — установление согласованного (узаконенного) соответствия между набором символов и сигналами или битовыми комбинациями, представляющими каждый символ для передачи, хранения или обработки данных. КОИ (ГОСТ 19768—74) — распространенная в РФ кодировка символьной информации на базе кода ASCII с расширением его до 256 символов: используется в ряде систем типа UNIX; в части кириллицы эта кодировка не отсортирована по алфавиту и, следовательно, не позволяет использовать большинство зарубежных программ без соответствующих модификаций. 387
Коммуникативные (обменные) форматы данных — соглашения о представлении агрегатов информации при передаче. Композитное видео (composite video) — видеосигналы, в которых сигналы яркости и цвета передаются вместе (смешиваются). Для домашних видеоустройств обычно используются сигналы форматов NTSC, PAL и SECAM. Находящиеся в цветной полосе несущий сигнал k Y (сигнал яркости) и сигнал цвета накладываются друг на друга, образуя результирующий сигнал. Компонентное видео (component video) — видеосигналы, в которых для улучшения качества передачи изображений сигналы яркости и цветности передаются раздельно. В телевидении высокой четкости (HDTV) это относится к изображениям, которые состоят из трех независимых сигналов — Y (сигнал яркости) и РЬ и Рг (цветоразностные сигналы). Контекстный поиск — разновидность операции поиска определенного набора символов, в ходе которой пользователь может указать, что просматривать нужно только некоторые файлы (выбранные по какому-то признаку). Контроллер (от англ. control — управлять) — устройство, которое связывает периферийное оборудование или каналы связи с центральным процессором, освобождая процессор от непосредственного управления функционированием данного оборудования. Контроллер выполняет интерпретацию команд процессора для отдельных устройств. Контрастность — параметр, показывающий, насколько самый темный участок изображения отличается от самого светлого. Влияет на качество распознавания. Курсор — светящийся участок на экране дисплея, указывающий позицию, на которой будет отображаться следующий вводимый с клавиатуры знак. Лемматизация — нахождение начальной формы слова по любой его словоформе. Например, дано слово «погоняемый» — найдено слово «погонять». Лемматизация реализована в ABBYY Retrieval & Morphology Engine, что позволяет этой системе значительно эффективнее проводить полнотекстовую индексацию документов, в том числе и многоязычных. Логическая структура БД — определение БД на физически независимом уровне. Логическая структура документа — в ODA предназначена для представления произвольных иерархических видов организации информации. Например, рубрикация документа, включение в текст таблиц и рисунков. Логический файл — файл в представлении прикладной задачи, состоящий из логических записей, структура которых может отличаться от структуры физических записей, представляющих информацию в памяти. Локальная вычислительная сеть (ЛВС) — коммуникационная система, поддерживающая в пределах одного здания или некоторой ограниченной территории один или несколько высокоскоростных каналов передачи цифровой информации, предоставляемых подключаемым устройствам для кратковременного монопольного использования. Манипулятор (от лат. manus — рука) — устройство, позволяющее управлять состоянием компьютера, в том числе и вводить данные с помощью рук. К манипуляторам относятся: джойстик, мышь, трекбол, сенсорная панель, перо, трекпойнт, J-клавиша. Массив дисков RAID (от англ. Redundant Arrays of Independent/ Inexpensive Disks — массив независимых дисков с избыточностью) — набор НЖМД, конструктивно объединенных в один блок с общим контроллером. Как правило, используется в серверах для обеспечения надежности за счет дублирования данных. Матричный принтер — принтер, у которого печатающий узел представляет собой металлическую пластину с отверстиями (матрицу), в которых свободно двигаются 388
штырьки (иголочки). Штырьки, управляемые магнитом, бьют по красящей ленте (такой же, как у пишущей машинки), и на бумаге точками создается символ. Мегабайт (Мбайт) — единица измерения количества данных или объема памяти, равная 106= 1000 000 байт. Альтернативой является предложенная IEC единица MiB (Mibibyte) — 1024 Kibibyte. Расхождение составляет более 4,8 %. Метаданные — информация, которая описывает другие данные с помощью таких атрибутов, как их структура, ассоциации, типы и диапазоны. Методы поиска — совокупность моделей и алгоритмов реализации отдельных технологических этапов, таких, как построение поискового образа запроса, отбор документов (сопоставление поисковых образов запросов и документов), расширение и реформулирование запроса, локализация и оценка выдачи. Механизмы поиска — реализованные в системе модели и алгоритмы процесса формирования выдачи документов в ответ на поисковый запрос. Микросекунда (мс) — 10-б с, 1000 наносекунд (не). Многоуровневый анализ документа (MDA) — разновидность анализа документа. При многоуровневом анализе OCR-система последовательно делит документ на блоки разного вида — текстовые, табличные, графические. Затем каждый из блоков также разделяется на составные части, те, в свою очередь, тоже подвергаются подобной обработке. В конце концов, система «добирается» до нижнего уровня — уровня отдельных символов и их составных частей. После распознавания символов начинается последовательная «сборка» электронного документа, результатом которой становится редактируемая копия, полностью соответствующая оригиналу. ABBYY FineReader реализует одну из разновидностей MDA, причем в процессе анализа система действует в соответствии с принципами IPA. На каждом уровне документа ABBYY FineReader использует информацию с других иерархических уровней, что позволяет достичь высочайшей точности распознавания. Модель данных — базовый инструментарий, обеспечивающий на формальном абстрактном уровне конкретные способы представления объектов и связей. Модель документа — понятие, охватывающее аспекты создания, преобразования, хранения, поиска, передачи и отображения документов. Морфологический поиск — поиск с учетом морфологии (всех возможных форм слова). Например, в строке поиска введено «хрюкать» — в результатах поиска присутствуют «хрюкающий», «хрюкало» и другие производные от заданного слова. Морфологический поиск реализован в системе электронных словарей ABBYY Lingvo. Мультимедиа — собирательное понятие для различных компьютерных технологий, при которых используется несколько информационных сред, таких, как графика, текст, видео, фотография, движущиеся образы (анимация), звуковые эффекты, высококачественное звуковое сопровождение. Мультимедиа-компьютер — это компьютер, снабженный аппаратными и программными средствами, реализующими технологию мультимедиа. Мэйнфрейм — компьютер высокой мощности, разработанный для решения наиболее интенсивных вычислительных задач. Обычно используется одновременно многими пользователями. Навигатор (обозреватель, browser) — программа навигации и просмотра, размещающаяся на рабочем месте пользователя, клиентская программа в сети Internet. Навигация — целенаправленная, определяемая стратегией последовательность использования методов, средств и технологий конкретной АИПС для получения и оценки результата поиска. Накопитель — устройство для записи /чтения данных на/с опреде-ленный(ого) носитель(я). Накопители относятся к внешним запоминающим устройствам. Различают накопители на дисках (МД, CD), лентах (МЛ), картах. Различают также накопители: со 389
съемными носителями (в этом случае носитель данных можно заменить, например, гибкие магнитные диски, магнитные ленты); с постоянными носителями (в этом случае носитель встроен в накопитель и его нельзя сменить, например, жесткий магнитный диск). Независимость данных логическая (физическая) — свойство системы, обеспечивающее возможность изменять логическую (физическую) структуры данных без изменения физической (логической). Носители информации (данных) — средства регистрации, хранения, передачи информации (данных). Операционная система (ОС) — общее название программ и программных комплексов, расширяющих функциональные возможности аппаратуры вычислительных машин, повышающих эффективность использования вычислительных средств и облегчающих взаимодействие пользователя с машиной. Открытая система — 1) система, имеющая возможность расширения за счет средств среды, в которой она функционирует; 2) система, независимая от изготовителей ИС, удовлетворяющая требованиям ряда международных стандартов. Отношение (relation) — агрегат данных, хранящийся в одной из таблиц (строка таблицы) табличной, реляционной БД или создаваемый виртуально в процессе выполнения операции над базой данных при выполнении запросов к данным. Парадигма — совокупность всех словоформ данного слова. Если дано некое существительное (например, «котенок»), его парадигму составят слова, образуемые при изменении по падежам и числам («котенок», «котята», «котенка», «котят» и т. д.). В том случае, когда исходное существительное не изменяется по числам (например, «сумерки»), парадигма будет состоять только из падежных форм («сумерки», «сумерек» и т. д.). В электронном словаре ABBYY Lingvo предусмотрены функции «Показать парадигму слова» и «Добавить парадигму слова». Поисковый образ документа (ПОД) — описание документа, выраженное средствами ИПЯ и характеризующее основное смысловое содержание или какие-либо другие признаки этого документа, необходимые для его поиска по запросу. Полнотекстовые документы (записи) — полный (или почти) исходный текст журнальной статьи или другого документа. Примитив (от англ. primitive — первичный, простой, основной) — один из простейших элементов, образующих векторные изображения. Базовыми примитивами являются такие геометрические объекты как точки и отрезки. Отрезок может быть как прямым, так и кривым. Прямые отрезки задаются координатами опорных точек, а для кривых отрезков задаются дополнительные параметры, которые определяют степень и форму кривизны. Иногда к примитивам относят и другие фигуры — квадрат, окружность, прямоугольник, эллипс и т. д. Прогрессивная развертка (progressive scanning) — метод сканирования изображения, при котором данные изображения сканируются последовательно сверху вниз, а не через строку, как это происходит при чересстрочной развертке. Протокол — совокупность определений (соглашений, правил), регламентирующих формат и процедуры обмена информацией между двумя или несколькими независимыми устройствами или процессами, т. е. описание того, как программы, компьютеры или иные устройства должны действовать, когда они взаимодействуют друг с другом. Протокольные определения охватывают диапазон от порядка следования битов по проводу до формата сообщения электронной почты. Стандартные протоколы позволяют компьютерам различных производителей связываться друг с другом. Компьютеры могут использовать совершенно различное программное обеспечение, лишь бы они поддерживали соглашение о том, как посылать и понимать принимаемые данные. 390
Протокол коммуникации — согласованный набор конкретных правил обмена информацией между разными устройствами передачи данных. Имеются протоколы для скорости передачи, форматов данных, контроля ошибок и др. Профиль документа — в ODA набор свойств документа, которые относятся к документу в целом. Рабочая станция — комбинация устройств ввода-вывода и вычислительных аппаратных средств, используемых отдельным пользователем. Однако чаще так называют мощный автономный компьютер для выполнения прикладных программ, требующих высокоэффективных, обычно дорогих средств обработки информации со значительными вычислительными или графическими возможностями. В последнее время так называют еще персональные компьютеры или терминалы вычислительной сети. Разметка — дополнительная информация, включаемая в документ и выполняющая функции выделения логических элементов данного документа и задания процедур обработки выделенных элементов. Разрешение дисплея (проектора) — физическое количество элементов (пикселей, pixel — picture element) в столбцах и строках изображения. Существуют стандартные типы разрешений, например VGA (640x480), SVGA (800x600), XGA (1024x768), SXGA (1200 x 1024), UXGA (1600 x 1200), QXGA (2048 x 1536). Разрешение оптическое — параметр сканера, характеризующий предельно достижимую детальность считывания информации с оригинала. Один из основных параметров; указывается в точках на дюйм (dots per inch, dpi). Распознавание документа — построение редактируемой электронной копии бумажного документа. Как правило, проводится в два этапа; сначала с помощью сканера получают электронную «фотографию» страницы, затем обрабатывают ее специальной OCRпрограммой. Результатом работы OCR-программы становится точная электронная копия документа, которую можно редактировать, сохранять в различных форматах, распечатывать и т. д. Распределенная база данных — совокупность баз данных, которые обрабатываются и управляются по отдельности, а также могут разделять информацию. Редактор — программа, обычно используемая для создания текстовых файлов или внесения изменений в существующий текстовый файл. Редактор обладает некоторыми возможностями текстового процессора, но уступает ему в мощности. Релевантность — свойство некоторой информации (документ, факт и пр.) удовлетворять информационную потребность пользователя АИС (relevant — относящийся к делу). Реляционная алгебра — алгебра (язык), включающая набор операций для манипулирования отношениями. Реляционная база данных — база данных, состоящая из отношений. Здесь вся информация, доступная пользователю, организована в виде таблиц, обычно имеющих уникальные имена, состоящих из строк и столбцов, на пересечении которых содержатся значения данных, а операции над данными сводятся к операциям над этими таблицами. Сетевая модель данных (модель CODASYL). Предложенная CODASYL модификация иерархической модели, в которой одна запись могла участвовать в нескольких отношениях предок/потомок. Сетевой сервер — сетевой (хост) компьютер, выполняющий системные функции отработки сетевых протоколов для связанных с сервером других сетевых компьютеров, обычно рабочих станций. Сетевой сервер обычно выполняет одну или несколько обслуживающих функций, таких, как файловый сервер, FTP-сервер, Web-сервер и др. Система управления базами данных (СУБД) — совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями. 391
Сканер — устройство для ввода в компьютер документов — текстов, чертежей, графиков, рисунков, фотографий. Создает оцифрованное изображение документа и помещает его в память компьютера. Словарь данных — исчерпывающий набор таблиц БД или файлов, представляющий собой каталог всех описаний данных (имен, типов). Может содержать также информацию о пользователях, привилегиях и т. д., доступную только администратору базы данных. Является центральным источником информации для СУБД, АБД и всех пользователей. Стратегия поиска — общий план (концепция, предпочтение, предрасположенность, установка) поведения пользователя для выражения и удовлетворения информационной потребности, обусловленный характером цели и типом поиска, архитектурой БД, а также методами и средствами поиска конкретной АИПС. Структура данных — атрибутивная форма представления свойств и связей предметной области, ориентированная на выражение описания данных средствами формальных языков, и таким образом учитывающая возможности и ограничения конкретных средств с целью сведения описаний к стандартным типам и регулярным связям. Структура данных с точки зрения программирования — это способ отображения значений в памяти — размер области и порядок ее выделения (который и определит характер процедуры адресациивыборки). Таблица — основная единица информации в системе управления реляционной базой данных. Состоит из одной или более единиц информации (строк), каждая из которых содержит значения некоторого вида (столбцы). Тег (таг, tag) — признак, метка. Часть элемента данных (обычно один или несколько разрядов), определяющих его тип. Тезаурус — семантическая сеть, в которой понятия связаны регулярными и устойчивыми семантическими отношениями — иерархическими (например, род—вид, целое—часть), ассоциативными, а также отношениями эквивалентности. Текстовый слой (PDF-документа) — часть документа, сохраненного в формате PDF, которая содержит часть текста или даже весь текст документа. ABBYY FineReader способен «читать» текстовые слои PDF, что резко повышает качество распознавания подобных документов. Терабайт (Тбайт) — единица количества данных, равная 1000 Гбайт. В качестве альтернативной IEC предложила в 1998 г. TiB (TibiByte) = = 1024 GiB (GibiByte). Терминал (terminal) — терминальное устройство, сочетание устройств ввода и вывода данных в ЭВМ. Технологии поисковые — унифицированные (оптимизированные в рамках конкретной АИПС) последовательности эффективного использования в процессе взаимодействия пользователя с системой отдельных средств поиска для устойчивого получения конечного и, возможно, промежуточных результатов. Типы данных — совокупность соглашений о программно-аппаратурной форме представления и обработки, а также ввода, контроля и вывода элементарных данных; к типам данных прежде всего, относятся классические типы — целое число, действительное число, булевское значение. Топология БД — схема распределения компонент базы данных по физическим носителям, в том числе различным узлам вычислительной сети. Точность распознавания — основной параметр, характеризующий качество работы OCR-программы. Численно равен отношению количества правильно распознанных символов к общему количеству символов в документе; выражается в процентах. Транзакция — последовательность операций над данными базы, переводящая БД из одного непротиворечивого состояния в другое, которое может быть представлено как одно «событие». 392
Триггер (включения, запросы, удаления и пр.) — группа команд языка запросов или программирования (в среде СУБД), которая испол няется при наступлении определенного условия/события (конец файла, считывание записи, изменение значения поля и пр.). Уровни представления данных— концептуальный, внутренний и внешний. Внутренний уровень — глобальное представление БД, определяет необходимые условия в первую очередь для организации хранения данных на внешних запоминающих устройствах. Представление на концептуальном уровне представляет собой обобщенный взгляд на данные с позиций предметной области. Внешний уровень представляет потребности пользователей и прикладных программ. Утилита СУБД — программа, которая запускается в работу командой операционной системы главного компьютера и выполняет какую-то функцию над базой данных (обычно на физическом уровне данных), либо команда (функция ядра СУБД, доступная только АБД), реализующая аналогичную операцию. Файл (file) — именованный организованный набор данных определенного типа и назначения, находящийся под управлением операционной системы. Это однородная по своему составу и назначению совокупность информации, хранящаяся на носителе информации и имеющая имя. Файл ASCII (ASCII-File) — файл, содержащий символьную информацию, представленную только ASCII-кодами «левой части» (первые 128 символов кодовой таблицы, или код Latin-1) и символьную разметку. Файл базы данных — физический файл ОС, используемый для размещения БД. Управление данными в таком файле производится совместно ОС и СУБД. Крайние варианты размещения БД по файлам — 1) все данные БД — в одном файле (файл DATA, СУБД ADABAS); 2) каждая таблица БД — в отдельном файле ОС (DBF-файлы, системы FoxPro). Промежуточный вариант размещения, например ORACLE — база данных состоит из одного или более табличных пространств, которые в свою очередь состоят из одного или более файлов базы данных. Файловая система (file management system) — динамически поддерживаемая информационная структура на устройствах прямого доступа (диски), обеспечивающая функцию управления данными ОС путем связи «имя—адрес». Формат — способ расположения и представления данных на носителе информации. Форматы файлов — представление информации на уровне взаимодействия операционной системы с прикладными программами. Цветоразностный сигнал (color differential signal) — передача сигналов по трем кабелям — Red-Bright (ярко-красный, R-Y), Bright (яркий, Y) и Blue-Bright (ярко-синий, B-Y). Это позволяет более четко проецировать композитные сигналы (RGB и сигналы их яркости передаются по одному кабелю). Целостность — свойство БД, при котором она удовлетворяет некоторым определенным ограничениям значений данных и сохраняет это свойство при всех модификациях (замена, добавление или удаление) данных. Централизованное управление данными, осуществляемое средствами, входящими в состав СУБД, обеспечивает: сокращение избыточности в хранимых данных; устранение несовместимости в хранимых данных многими приложениями; совместное использование хранимых данных, что достигается необходимой интеграцией данных; целостность данных, которая достигается с помощью процедур, предотвращающих внесение в БД неверных данных и ее восстановление после отказов системы; лучший учет противоречивых требований к использованию БД в различных приложениях, с соответствующим структурированием БД. 393
Чересстрочная развертка (interlaced scanning) — метод сканирования, при котором данные изображения разделяются на горизонтальные линии, которые воспроизводятся последовательно слева направо и сверху вниз по экрану. Четные и нечетные строки воспроизводятся поочередно. Численные данные — записи, содержат таблицы статистических, финансовых и других сведений. Шлюз — устройство для соединения разнотипных сетей, работающих по разным протоколам связи, в целях обеспечения передачи информации из одной сети в другую. Экспорт (выгрузка, upload) — утилита (функция, команда) СУБД, служащая для вывода информации из БД (обычно одной из таблиц) в файл(ы) операционной системы, организованные в некотором коммуникативном формате. Электронная почта — передача сообщений по компьютерной сети. Электронная почта представляет собой вариант почтовой службы, который предназначен для взаимодействия компьютеров (или терминалов). Дает пользователю возможность отправлять и принимать сообщения и (в некоторых случаях) изображения или речевые послания, предназначенные как индивидуальным адресатам, так и группам пользователей (конференции). Электронная таблица — прикладная программа, используемая обычно для составления бюджета, прогнозирования и других задач, связанных с финансами. Документ электронной таблицы состоит из ячеек, сформированных по строкам и колонкам. Каждая ячейка может содержать текст, числовые данные или формулу, использующую значения из других ячеек. Для облегчения расчетов в электронной таблице имеются встроенные функции стандартных вычислений. Элемент данных (элементарное данное) — неделимое именованное данное, характеризующееся типом (напр., символьный, числовой, логический и пр.), длиной (в байтах) и обычно рассчитанное на размещение в одном машинном слове соответствующей разрядности. Это минимальная адресуемая (идентифицируемая) часть памяти — единица данных, на которую можно ссылаться при обращении к данным. Ранние языки программирования (Алгол, Фортран) были рассчитаны на обработку элементарных данных или их простейших агрегатов — массивов (матрицы, векторы). С появлением ЯП Кобол появляется возможность представления и обработки агрегатов разнотипных данных (записей). В реляционных БД элементарное данное есть элемент таблицы. Иногда используется термин «поле записи» в качестве синонима. Элемент текста — часть текста, ограниченная начальной и конечной метками (при использовании SGML). Язык манипулирования данными (НМД). ЯМД обычно включает в себя средства запросов к базе данных и поддержания базы данных (добавление, удаление, обновление данных, создание и уничтожение БД, изменение определений БД, обеспечение запросов к справочнику БД). Язык описания данных (ЯОД) — средство внутрисистемного определения данных, представляющего обобщение внешних взглядов. Описание представляет собой модель данных и их отношений, т. е. структур, из которых образуется БД. Язык структурированных запросов (SQL). Основной интерфейс пользователя и АБД для запоминания и поиска информации в базе данных для ряда СУБД (Oracle, MS SQL Server и пр.). Включает в себя в качестве подмножеств следующие категории операторов: 1) язык описания данных (ЯОД). Эти операторы определяют (CREATE) ИЛИ удаляют (DROP) объекты базы данных. Примеры: CREATE TABLE, CREATE INDEX, DROP TABLE, RENAME TABLE; 2) язык управления данными (ЯУД). Эти операторы управляют доступом к данным и к базе данных. Примеры: GRANT CONNECT, GRANT SELECT, UPDATE ON, REVOKE DBA; 3) ЯЗЫК манипулирования данными (ЯМД). Эти операторы 394
запрашивают и обновляют реальные данные. Примеры: SELECT, INSERT, DELETE, UPDATE. Список сокращений АИПС — автоматизированная информационно-поисковая система АИС — автоматизированная информационная система БД — база данных ЕЯ — естественный язык ИД — информационная деятельность ИП — информационная потребность ИПП — информационная потребность пользователя ИПС — информационно-поисковая система ИР — информационный ресурс ИС — информационная система ИПЯ — информационно-поисковый язык ЛО — лингвистическое обеспечение ОД — основная деятельность ПО — поисковый образ ПОЗ — поисковый образ запроса ПОД — поисковый образ документа ПрО — предметная область 395