Книга посвящена языку сценариев JavaScripl и его использованию в Web-дизайие. Дан вводный курс по языку HTML. Рассматривается работа JavaScript-сценариев в составе Web-страниц: общие принципы написания сценариев; управление элементами страниц на основе объектной модели документа (DOM); организация взаимодействия с пользователем на основе событий; ввод-вывод при помощи Web-форм, диалоговых HTML-окон, Буфера обмена и технологии drag-n-drop; работа с базами данных; применение мультимедийных эффектов. Изложение сопровождается большим количеством примеров HTML-страниц с использованием JavaScript-сценариев. В приложениях к книге содержатся справочные сведения о HTML, CSS и DOM.
Основным понятием CSS является стиль – т. е. набор правил оформления и форматирования, который может быть применен к различным элементам страницы. В стандартном HTML для присвоения какому-либо элементу определенных свойств (таких, как цвет, размер, положение на странице и т. п.) приходилось каждый раз описывать эти свойства, даже если на одной страничке должны располагаться 10 или 110 таких элементов, ничуть не отличающихся один от другого. Вы должны были десять или сто десять раз вставить один и тот же кусок HTML-кода в страничку, увеличивая размер файла и время загрузки на компьютер просматривающего ее пользователя.
CSS действует другим, более удобным и экономичным способом. Для присвоения какому-либо элементу определенных характеристик вы должны один раз описать этот элемент и определить это описание как стиль, а в дальнейшем просто указывать, что элемент, который вы хотите оформить соответствующим образом, должен принять свойства стиля, описанного вами. Удобно, не правда ли?
Более того, вы можете сохранить описание стиля не в тексте вашей странички, а в отдельном файле – это позволит использовать описание стиля на любом количестве Web-страниц. Потрясающе удобно! И еще одно, связанное с этим, преимущество – возможность изменить оформление любого количества страниц, исправив лишь описание стиля в одном (отдельном) файле.
Кроме того, CSS позволяет работать со шрифтовым оформлением страниц на гораздо более высоком уровне, чем стандартный HTML, избегая излишнего утяжеления страниц графикой.
Давайте рассмотрим, как мы можем воплотить столь замечательные возможности в жизнь.
Прикладное программирование для Web начиналось с обработки запросов пользователя и динамической генерации страниц на стороне сервера. Эта же тенденция получила развитие и в языках программирования вставок в HTML-документы. Затем появились языки программирования элементов HTML-документов на стороне клиента. И те, и другие привязаны к модели данных HTML. Сегодня, когда Web мигрирует к стеку спецификаций XML, разработчики средств программирования должны это учесть и правильно отреагировать, позволив, например, манипулировать элементами XML-разметки. Стандарт, призванный обозначить и решить эту задачу, получил название Document Object Model - DOM.
Наверняка почти все читатели в той или иной степени знакомы с таким понятием как разгон, однако не все четко представляют себе как правильно и безболезненно разогнать свою видеокарту, и не знают некоторых тонкостей, встречающихся при разгоне. Этот материал предназначен как раз для новичков в разгоне, собравшихся разогнать свою видеокарту. Сейчас мы постараемся достаточно четко и понятно рассказать о многих проблемах, встречающихся при разгоне, способах их решения, и, конечно же, поделимся некоторыми полезными советами по разгону видеокарт.
Что такое разгон видеокарт?
Под разгоном видеокарт подразумевается увеличение рабочих частот видеокарты. Но также разгоном можно назвать и другие способы внештатного увеличения производительности, будь то разблокировка дополнительных конвейеров на Radeon 9500/9800SE, или включение HyperZ на Radeon LE.
Имеет ли это практический смысл?
Несомненно. Разгон видеокарты является, без преувеличения, самым эффективным средством увеличения производительности компьютера в играх и других 3D-приложениях, за исключением лишь тех случаев, когда производительность сдерживает скорость платформы (читай, связки процессор+память).
Опасно ли это?
Нет. Шанс сгорания видеокарты при разгоне гораздо меньше чем допустим процессора. Да и вообще видеокарта не может сгореть от самого разгона, зато может от перегрева, хотя в большинстве случаев, при перегреве графического процессора машина попросту зависнет.
С другой стороны, работа на внештатных частотах, равно как форсированная работа любого другого компонента компьютера значительно сокращает срок службы карты. И эта особенность могла бы быть весьма серьезным сдерживающим фактором, если бы не одно «но» - срок службы видеокарты составляет куда более восьми лет, и даже при разгоне он уж меньше, чем лет пять не будет. А если посмотреть на существующую гонку технологии, в игровых компах карты более лет двух не держатся, так что если Вы не планируете оставлять видеокарту лет эдак на шесть, Вы можете совершенно спокойно её разогнать.
Вопросы гарантии
Главным побочным эффектом является то, что теоретически Вы полностью теряете гарантию на приобретенную видеокарту. Но не следует расстраиваться, потому как даже если карточка выйдет из строя, то доказать, что это произошло из-за разгона очень и очень проблематично :)))
Младшие и старшие модели
Ни для кого не секрет, что новые модели видеокарт выпускают так называемыми «линейками». Происходит это следующим образом – выходит какой-либо чип, затем на его основе выпускают сразу несколько видеокарт с разными частотами, а в некоторых случаях и на разных дизайнах с разной шириной шины памяти.
Однако, в любом случае, младшая модель, имеющая значительно меньшие частоты, чем старшая будет построена на том же самом чипе, а следовательно, установленной на младшей модели чип в большинстве случаев сможет заработать на частоте старшего, а то и выше.
Но и здесь всё не так гладко, как хотелось бы это видеть нам. Дело в том, что при производстве видеокарт, чипы проходят предварительное тестирование, и часть чипов, которая не смогла пройти тесты на максимальных частотах, установленных для старшей модели, отправляется на производство младших. Но если учитывать тот факт, что современная технология производства достаточно тонка, подобный «брак» ныне встречается не так часто.
Что же до памяти, то тут всё немного хуже – младшие модели оснащается более медленными чем старшие чипами, и разогнать память на младшей модели до частот старшей удается далеко не всегда.
В целом же, если посмотреть на процентные показатели среднестатистического разгона младших моделей в сравнении со старшими, первые имеют значительное преимущество за счет изначального запаса по частотам. Старшие же модели работают практически на пределе, и выжать из них дополнительные мегагерцы будет сложнее.
Какой прирост можно получить при разгоне видеокарты?
Здесь все зависит от условий тестирования, ну и естественно от степени увеличения частот. Хуже всего с этим у noname-карт, произведенных китайскими умельцами и у флагманских моделей линеек (например, GeForce4 Ti4600 или RADEON 9700 PRO). В первом случае карты слабо разгоняются из-за некачественных компонентов, коими оснащают свои продукты китайские умельцы, во втором же случае, платы и без того работают почти на предельных частотах, как мы уже сказали в предыдущем абзаце.
Как правило, при разгоне таких карт можно достичь лишь 15-20% прироста частот. Со средними и младшими моделями в линейках ситуация обстоит получше, потенциал для повышения частот побольше и разгоном таких карт можно улучшить производительность на 20-40%.
Самый хороший вариант - всевозможные оверклокерские сэмплы. На них прирост может составить 35-50%, а порой и больше.
Теперь несколько слов о картах с пониженной структурой организации памяти. Бытует мнение, что на таких картах бессмысленно разгонять чип, однако лично я совершенно с этим не согласен. Дело в том, что пользователи таких карт, как правило, играют в режимах типа 800x600 или 1024x768, и низкая пропуская способность памяти в таких режимах несильно ограничивает производительность, а вот на графический процессор нагрузка, наоборот больше.
Что такое синхронные и асинхронные частоты?
Частоты чипа и памяти видеокарты могут быть синхронными, то есть одинаковыми, или же асинхронными, иначе говоря, различными. Но в чем разница?
При работе видеокарты и обмене данными между графическим процессором (чипом) и памятью видеокарты, происходит синхронизация сигналов. В случае, если чип и память работают на одинаковых частотах, сигналы проходят одновременно и не уходит дополнительного времени на их синхронизацию, если же частоты различны, перед обменом данных, видеокарта должна синхронизовать сигналы, на что, разумеется, уходит немного времени.
Из этого, недолго думая, можно сделать простое умозаключение о том, что на синхронных частотах видеокарта будет работать немного быстрее, нежели на асинхронных. Но есть один момент…
Синхронные частоты выгодно ставить лишь в том случае, если возможные асинхронные частоты не слишком сильно отличаются. Например, у нас есть возможность поставить максимальные частоты 450/460 и больше частоты выставить нельзя. В таком случае, намного эффективнее будет пожертвовать десятью мегагерцами памяти ради синхронности поставить 450/450 – в таком случае видеокарта почти наверняка будет быстрее. Однако если же у нас есть возможность поставить частоты, например 475/450 или 450/480, такие варианты будут предпочтительнее синхронных 450/450 за счет значительно больших результирующих частот.
Что такое технологический процесс чипа и время доступа памяти, как они влияют на разгон?
Любой оверклокер обязательно должен знать, что такое технологический процесс чипа и время доступа памяти. Знание этих двух определений значительно поморгает в примерном определении максимальных частот разгоняемой видеокарты.
Но что же это такое? При изготовлении любого чипа играет весьма важную роль размер элементов микросхемы, ведь степень интеграции может быть разной, в один чип можно «набить» два миллиона транзисторов, в другой – сто два. И когда физический размер кристалла микросхемы ограничен, играет очень большую роль размер элементов микросхемы и расстояние между элементами в кристалле. Этот размер и называют технологическим процессом, и чем он меньше, тем большее количество элементов поместить в чип, тем меньшие токи требуют элементы для питания, тем меньше энергии выделяет чип, и, наконец, на тем больших частотах он может работать.
В настоящий момент подавляющее большинство чипов выпускают по технологическому процессу 0,13 и 0,15 микрон, а на стадии активного освоения находится и 0,11 микрон.
Что же касается памяти, то здесь крайне важную роль играет время доступа. Любые чипы памяти имеют заявленное производителем время, в течение которого происходит считывание инфы из ячейки памяти, и чем это время меньше, тем соответственно, быстрее работает память, и тем больше ее рабочие частоты. Зависимость примерной рабочей частоты о т времени доступа памяти предельно проста, и ее можно описать следующими формулами:
Частота памяти DDR = (1000/время доступа) X 2
Частота памяти SDR = 1000/время доступа
Следующий вопрос заключается в том, как можно узнать время доступа памяти. Как правило, время доступа скрыто в конце первой строчки маркировки. Например, на микросхемах памяти Samsung в конце первой строчки можно найти надпись типа TC-33 или TC40. Это означает, что память имеет время доступа 3,3 и 4 наносекунд соответственно, хотя в некоторых случаях, время обозначается не цифрой, а специальной маркировкой, например чипы памяти Samsung со временем доступа 2,8 нс. обозначаются как GC2A.
Не забывайте также, что точную информацию о чипе памяти можно получить на сайте производителя, либо просто воспользовавшись поиском по строчке с маркировкой памяти в том же Google.
Вторая часть серии статей "Использование регулярных выражений в PHP" посвящена решению ряда проблем обработки сложных текстов с помощью "продвинутых" операторов регулярных выражений.
Несмотря на то, что термины данные и информация используются взаимозаменяемо, между ними есть существенная разница. Данные существуют реально. Данные — - это список температур, перечень недавних продаж или опись товара, имеющегося в наличии. Информация — это прогнозы. Информация — это предсказание погоды, прогноз прибылей и убытков и тенденции сбыта. Данные записываются в виде нулей и единиц, в то время как информация обрабатывается мозгом.
Между данными и информацией располагается приложение: механизм, который преобразует одно в другое и наоборот. Например, при покупке книги в Интернете это приложение преобразует вашу информацию — название книги, идентификатор, информацию о банковском счете — в данные: номер заказа, цену со скидкой, характеристики транзакции с использованием кредитной карточки и количество оставшихся в наличии экземпляров книги. Аналогичным образом, приложение преобразует данные в запрос на выборку со склада, отметку об отгрузке и номер отслеживания — информацию, необходимую для реализации продажи.
В действительности сложность создания приложения прямо пропорциональна преобразованиям, которые оно выполняет. Гостевая книга Web-сайта, передающая имя и адрес в поля базы данных, устроена элементарно. С другой стороны, онлайновый магазин, который передает большое количество видов информации в модель данных коммерческой сделки и преобразует данные в информацию для реализации процесса принятия решений, достаточно сложен с точки зрения разработки. Искусство программирования заключается в умелом манипулировании данными и информацией — мастерство, схожее с фиксацией света в живописи.
Как было сказано в первой части, регулярные выражения являются одним из самых мощных средств манипулирования данными. Регулярные выражения лаконично описывают форму данных и раскладывают их на составляющие. Например, следующее регулярное выражение можно использовать для обработки температуры, заданной в градусах по Цельсию или по Фаренгейту: /^([+-]?[0-9]+)([CF])$/.
Регулярное выражение сравнивает начало строки (отображается знаком "крышка" (^), за которым идет знак "+", знак "-", или ничего ([+-]?), за которым следует целое число ([0-9]+), обозначение шкалы — Цельсия или Фаренгейта ([CF]) — и заканчивается концом строки (обозначается знаком доллара $).
В данном регулярном выражении операторы начала строки и конца строки представляют собой примеры операторов нулевой ширины или совпадений по положению, а не по символам. Круглые скобки также не указывают на символы. Зато, если заключить шаблон в круглые скобки, то будет извлечен текст, соответствующий шаблону. Следовательно, если текст полностью сопоставим с шаблоном, то первая пара круглых скобок выдаст строку, представляющую собой положительное или отрицательное целое число, например, +49, а вторая пара круглых скобок - или букву C, или F.
В первой части серии представлено понятие регулярного выражения и были описаны PHP-функции для сравнения текста с шаблонами, а также для извлечения совпадений. А теперь давайте углубимся в изучение регулярных выражений и посмотрим на некоторые "продвинутые" операторы и средства.
Круглые скобки опять приходят на помощь
В большинстве случаев пара круглых скобок используется для описания части шаблона и получения текста, соответствующего этой части. Однако от круглых скобок не всегда требуется получение части шаблона. Как и в сложной арифметической формуле, круглые скобки можно использовать для группировки условий.
Приведу пример. Догадаетесь, какому типу данных соответствует данное выражение?
/[-a-z0-9]+(?:\.[-a-z0-9]+)*\.(?:com|edu|info)/i
Как можно догадаться, это регулярное выражение определяет имена Интернет-сайтов (только для доменов .com, .edu, и .info). Отличием является использование дополнительного оператора ?:. Квалификатор части шаблона ?: отключает функцию извлечения данных, и тем самым дает круглым скобкам возможность обозначать последовательность действий. Например, в данном случае фраза (?:\.[-a-z0-9]+)* соответствует нулю или более элементам строки, например, ".ibm." Аналогично, фраза \.(?:com|edu|info) обозначает последовательность символов, за которой идет одна из строк com, edu, или info.
Отключение функции извлечения информации может показаться бессмысленным, если не подумать о том, что извлечение информации требует дополнительной обработки. Если программа обрабатывает большое количество данных, то отказ от извлечения может быть целесообразным. Кроме того, если вы имеете дело со сложным регулярным выражением, то отключение функции извлечения информации в некоторых частях шаблона может упростить извлечение тех частей шаблона, которые реально нужны.
Примечание: Модификатор i в конце регулярного выражения делает все сопоставления с шаблоном нечувствительными к регистру. Следовательно, подмножество a-z будет сопоставимо со всеми буквами, независимо от регистра.
В PHP есть и другие модификаторы частей шаблона (subpattern). Используя отладчик регулярных выражений, показанный в первой части данной серии (повторно показан в листинге 1), попробуйте сопоставить регулярное выражение ((?i)edu) со строками "EDU," "edu," и "Edu." Если в начале части шаблона задать модификатор (?i), то сопоставление с шаблоном не будет зависеть от регистра. Чувствительность к регистру восстанавливается, как только заканчивается данная часть шаблона. (Сравните с модификатором / ... /i, который применяется ко всему шаблону.)
Листинг 1. Простой отладчик регулярных выражений
Еще один полезный модификатор части шаблона - это (?x). Он позволяет добавлять в шаблон пробелы, что упрощает чтение регулярных выражений. Таким образом, часть шаблона ((?x) edu | com | info) (обратите внимание на пробелы между операторами дизъюнкции, которые добавлены для удобочитаемости) аналогична (edu|com|info). Для того, чтобы добавлять пробелы и комментарии в регулярное выражение, можно использовать глобальный модификатор / ... /x, см. листинг ниже.
Листинг 2. Добавление пробелов и комментариев
Как видно из листинга, при необходимости модификаторы можно объединять. Если необходимо включить в регулярное выражение символ пробела при использовании модификатора (?x), используйте метасимвол \s для поиска любого пробельного символа и \ (обратный слеш с пробелом) для поиска одного пробела, например, ((?x) hello \ there).
Оглядываемся вокруг
В подавляющем большинстве случаев регулярные выражения используются для проверки или декомпозиции входной информации на отдельные "лакомые кусочки", которые записываются в архив данных или сразу же обрабатываются приложением. Общепринятыми сферами применения являются: обработка полей форм, парсинг XML-кода и анализ протоколов.
Еще одна область применения регулярных выражений - форматирование, нормализация или улучшение читаемости данных. Вместо того чтобы использовать регулярные выражения для поиска и извлечения текста, при форматировании они применяются для поиска и вставки текста в надлежащее местоположение.
Вот пример полезного применения форматирования. Предположим, что Web-форма передает приложению значение зарплаты с округлением до целого доллара. Так как зарплата хранится в виде числа целого типа, то перед сохранением переданных данных приложение должно удалять из них знаки пунктуации. Однако при извлечении данных из хранилища, возможно, понадобится изменить их формат и сделать удобочитаемыми с помощью разделителей. В листинге 3 показано, как простой PHP-запрос преобразует сумму в долларах в число.
Листинг 3. Преобразование суммы в долларах в число
Вызов функции preg_replace() заменяет знак доллара, любой пробельный символ и все запятые -- на пустую строку, возвращая то, что предположительно является целым числом. Если проверка функцией is_numeric() подтверждает правильность входных данных, их можно сохранить.
А теперь давайте выполним обратную операцию - добавим к числу знак денежной единицы и запятые-разделители сотен, тысяч и миллионов. Для добавления запятых в определенных позициях можно написать программу для поиска этих компонентов, а можно воспользоваться операторами посмотри вперед и посмотри назад. Модификатор части шаблона ?<= обозначает посмотри назад (то есть влево) от текущей позиции. Модификатор ?= означает "посмотри вперед" (то есть вправо) от текущей позиции.
[pagebreak]
Итак, какие позиции нам нужны? Любое место в строке, при условии, что есть как минимум один символ слева и одна или более групп по три символа справа, не считая десятичной точки и количества центов. Соблюдая это правило и используя два модификатора, анализирующих символы справа и слева от определенной позиции и являющихся операторами нулевой ширины, мы можем достичь цели с помощью следующей инструкции:
Как работает это регулярное выражение? Начиная с первого символа строки и обрабатывая каждый символ, регулярное выражение отвечает на вопрос: "Есть ли хотя бы один символ слева и одна или несколько групп из трех символов справа?" Если да, то наш оператор нулевой ширины заменяется запятой.
Большинство сложных сопоставлений можно реализовать, используя стратегию, аналогичную приведенной выше. Например, вот еще один вариант использования оператора "посмотри вперед", который решает широко распространенную дилемму.
Листинг 4. Пример использования оператора "посмотри вперед" ("предвидение")
Оператор preg_replace() преобразует строку данных, разделенных запятыми, в строку данных, разделенных знаком табуляции. Предусмотрительным образом, он не заменяет запятые в строке, заключенной в кавычки.
Это регулярное выражение при каждом обнаружении запятой (на это указывает запятая в самом начале регулярного выражения) проверяет утверждение: "Впереди не было кавычек или было четное количество кавычек". Если утверждение верно, то запятую можно заменить знаком табуляции (the \t).
Если Вам не нравятся операторы «посмотри вперед» и «посмотри назад» или вы работаете с таким языком, в котором их нет, можно добавить запятые в число и с помощью обычного регулярного выражения. Однако для реализации такого решения потребуется много итераций.
Листинг 5. Добавление запятых
Давайте пройдем по коду. Сначала параметр зарплаты очищается от знаков пунктуации для моделирования ситуации чтения целого числа из базы данных. Затем выполняется цикл в поисках позиций, где за одним числовым символом ((\d) идут три числовых символа ((\d\d\d\): если обнаруживается граница слова, заданная как \b, цикл прекращается. Граница слова -- это еще один оператор нулевой ширины, который соответствует следующим позициям:
* Перед первым символом строки, если это буква слова.
* За последним символом строки, если это буква слова.
* Между буквой слова и небуквенным символом, непосредственно за буквой слова.
* Между небуквенным символом и буквой слова, непосредственно за небуквенным символом.
Таким образом, примерами правильных границ слова являются пробел, точка и запятая.
Благодаря внешнему циклу регулярное выражение перемещается слева направо в поисках цифры, за которой идут три цифры и граница слова. При обнаружении совпадения между двумя частями шаблона добавляется запятая. Цикл должен продолжаться до тех пор, пока оператор preg_replace() находит совпадения, что задано в условии $old != $pretty_print.
Жадность и лень
Регулярные выражения обладают большими возможностями, иногда даже слишком большими. Например, давайте рассмотрим, что произойдет, если регулярное выражение ".*" будет обрабатывать строку "The author of 'Wicked' also wrote 'Mirror, Mirror.'" Вероятно, вы предполагаете, что preg_match() вернет два совпадения, и с удивлением обнаружите, что результат всего один: 'Wicked' also wrote 'Mirror, Mirror.'
Почему? Если не задать иное, то такие операторы как * (ноль или более) и + (один или более) -- "жадные". Если сопоставление с образцом может продолжаться, то они и будут его продолжать до тех пор, пока не будет возвращен максимальный результат из возможных. Для сохранения минимальных совпадений необходимо принудительно заставлять определенные операторы быть "ленивыми". "Ленивые" операторы находят самое короткое совпадение и на этом останавливаются. Чтобы сделать оператор более "ленивым", добавьте суффикс в виде знака вопроса. Пример показан в листинге 6.
Листинг 6. Добавление суффикса в виде знака вопроса
Регулярное выражение ".*?" расшифровывается следующим образом: "найти кавычку, за которой идет ровно столько символов с последующей кавычкой.
Однако иногда оператор * может быть слишком "ленивым". Например, посмотрите на следующий фрагмент кода. Что он делает?
Листинг 7. Простой отладчик регулярных выражений
Что вы загадали? "123"? "1"? Нет результата? На самом деле результатом будет Array ( [0] => [1] => ), означающий, что совпадение было найдено, но никаких данных извлечено не было. Почему? Вспомните, что оператор * ищет совпадения с нулем или более символов. В данном случае, выражение [0-9]* находит совпадение с нулем символов от начала строки, и обработка заканчиваетс.
Для решения данной проблемы добавьте оператор нулевой ширины для привязки совпадения, который заставляет регулярное выражение продолжать сопоставления; /([0-9]*\b/.
Советы и рекомендации
С помощью регулярных выражений можно решать как простые, так и сложные задачи при обработке текста. Начните с небольшой группы операторов и по мере того, как вы будете набираться опыта, расширяйте свой словарь. В качестве вознаграждения за ваши старания -- некоторые советы и рекомендации.
Создание переносимых регулярных выражений с помощью классов символов
Вам уже знакомы метасимволы, например, \s - соответствует любому пробельному символу. Кроме того, большинство реализаций регулярных выражений поддерживает предопределенные классы символов, которые более просты в использовании и переносимы с одного письменного языка на другой. Например, класс символов [:punct:] замещает все символы пунктуации в данном языке. Вместо [0-9] можно использовать [:digit:] и более переносимое замещение [:alpha:] вместо [-a-zA-Z0-9_]. Например, можно убрать все знаки пунктуации, используя:
Класс символов представляет собой более сжатую форму по сравнению с подробным описанием всех символов пунктуации. Полный перечень классов символов можно найти в документации по версии языка PHP.
Как исключить то, что вы не ищете
Как показано в примере с данными, разделенными символом табуляции, в качестве значений, разделенных запятыми (CSV), иногда проще и точнее задать список тех вариантов, которые не нужно находить (сопоставлять). Последовательность, начинающаяся со знака "крышка" (^) будет соответствовать любому символу, не принадлежащему данной последовательности. Например, для проверки правильности телефонных номеров для США можно использовать регулярное выражение /[2-9][0-9]{2}[2-9][0-9]{2}[0-9]{4}/. Используя набор ограничений можно написать регулярное выражение в более явном виде /[^01][0-9]{2}[^01][0-9]{2}[0-9]{4}/. Оба регулярных выражения работают, хотя смысл последнего, вероятно, более понятен.
Пропуск новой строки
Если во входных данных несколько строк, стандартного регулярного выражения будет недостаточно, так как сканирование прекращается на начале новой строки, которая обозначается $. Однако, если воспользоваться модификаторами s или m, то регулярное выражение будет обрабатывать входные данные по-другому. Первый модификатор рассматривает строковую последовательность как одну строку, где точка указывает на начало новой строки (обычно она этого не делает). Второй рассматривает строковую последовательность как несколько строк, где ^ и $ соответствуют началу и концу любой строки, соответственно. Приведем пример. Если задать $string = "Hello,\nthere";, то оператор preg_match( "/.*/s", $string, $matches) параметру $matches[0] присвоит значение Hello,\nthere. (При удалении s будет выдано Hello.)
Компоненты Delphi для работы с базами данных были созданы в расчете на работу с SQL и архитектурой клиент/сервер. При работе с ними вы можете воспользоваться характеристиками расширенной поддержки удаленных серверов. Delphi осуществляет эту поддержку двумя способами.
1. Введение
Во-первых, непосредственные команды из Delphi позволяют разработчику управлять таблицами, устанавливать пределы, удалять, вставлять и редактировать существующие записи.
Второй способ заключается в использовании запросов на языке SQL, где строка запроса передается на сервер для ее разбора, оптимизации, выполнения и передачи обратно результатов.
Данный документ делает акцент на втором методе доступа к базам данных, на основе запросов SQL (pass-through). Авторы не стремились создать курсы по изучению синтаксиса языка SQL и его применения, они ставили перед собой цель дать несколько примеров использования компонентов TQuery и TStoredProc. Но чтобы сделать это, необходимо понимать концепцию SQL и знать как работают selects, inserts, updates, views, joins и хранимые процедуры (stored procedures). Документ также вскользь касается вопросов управления транзакциями и соединения с базой данных, но не акцентирует на этом внимание. Итак, приступая к теме, создайте простой запрос типа SELECT и отобразите результаты.
2. Компонент TQuery
Если в ваших приложениях вы собираетесь использовать SQL, то вам непременно придется познакомиться с компонентом TQuery. Компоненты TQuery и TTable наследуются от TDataset. TDataset обеспечивает необходимую функциональность для получения доступа к базам данных. Как таковые, компоненты TQuery и TTable имеют много общих признаков. Для подготовки данных для показа в визуальных компонентах используется все тот же TDatasource. Также, для определения к какому серверу и базе данных необходимо получить доступ, необходимо задать имя псевдонима. Это должно выполняться установкой свойства aliasName объекта TQuery.
Свойство SQL
Все же TQuery имеет некоторую уникальную функциональность. Например, у TQuery имеется свойство с именем SQL. Свойство SQL используется для хранения SQL-запроса. Ниже приведены основные шаги для составления запроса, где все служащие имеют зарплату свыше $50,000.
Создайте объект TQuery
Задайте псевдоним свойству DatabaseName. (Данный пример использует псевдоним IBLOCAL, связанный с демонстрационной базой данных employee.gdb).
Выберите свойство SQL и щелкните на кнопке с текстом - '...' (три точки, Инспектор Объектов - В.О.). Должен появиться диалог редактора списка строк (String List Editor).
Введите:
. Нажмите OK.
Выберите в Инспекторе Объектов свойство Active и установите его в TRUE.
Разместите на форме объект TDatasource.
Установите свойство Dataset у TDatasource в Query1.
Разместите на форме TDBGrid.
Установите его свойство Datasource в Datasource1.
Свойство SQL имеет тип TStrings. Объект TStrings представляет собой список строк, и чем-то похож на массив. Тип данных TStrings имеет в своем арсенале команды добавления строк, их загрузки из текстового файла и обмена данными с другим объектом TStrings. Другой компонент, использующий TStrings - TMemo. В демонстрационном проекте ENTRSQL.DPR (по идее, он должен находится на отдельной дискетте, но к "Советам по Delphi" она не прилагается - В.О.), пользователь должен ввести SQL-запрос и нажать кнопку "Do It" ("сделать это"). Результаты запроса отображаются в табличной сетке. В Листинге 1 полностью приведен код обработчика кнопки "Do It".
Листинг 1
Свойство Params
Этого должно быть достаточно для пользователя, знающего SQL. Тем не менее, большинство пользователей не знает этого языка. Итак, ваша работа как разработчика заключается в предоставлении интерфейса и создании SQL-запроса. В Delphi, для создания SQL-запроса на лету можно использовать динамические запросы. Динамические запросы допускают использование параметров. Для определения параметра в запросе используется двоеточие (:), за которым следует имя параметра. Ниже приведе пример SQL-запроса с использованием динамического параметра:
Если вам нужно протестировать, или установить для параметра значение по умолчанию, выберите свойство Params объекта Query1. Щелкните на кнопке '...'. Должен появиться диалог настройки параметров. Выберите параметр Dept_no. Затем в выпадающем списке типов данных выберите Integer. Для того, чтобы задать значение по умолчанию, введите нужное значение в поле редактирования "Value".
Для изменения SQL-запроса во время выполнения приложения, параметры необходимо связать (bind). Параметры могут изменяться, запрос выполняться повторно, а данные обновляться. Для непосредственного редактирования значения параметра используется свойство Params или метод ParamByName. Свойство Params представляет из себя массив TParams. Поэтому для получения доступа к параметру, необходимо указать его индекс. Для примера,
Query1.params[0].asInteger := 900;
Свойство asInteger читает данные как тип Integer (название говорит само за себя). Это не обязательно должно указывать но то, что поле имеет тип Integer. Например, если тип поля VARCHAR(10), Delphi осуществит преобразование данных. Так, приведенный выше пример мог бы быть записан таким образом:
Query1.params[0].asString := '900';
или так:
Query1.params[0].asString := edit1.text;
Если вместо номера индекса вы хотели бы использовать имя параметра, то воспользуйтесь методом ParamByName. Данный метод возвращает объект TParam с заданным именем. Например:
Query1.ParamByName('DEPT_NO').asInteger := 900;
В листинге 2 приведен полный код примера.
Листинг 2
Обратите внимание на процедуру, первым делом подготовливающую запрос. При вызове метода prepare, Delphi посылает SQL запрос на удаленный сервер. Сервер выполняет грамматический разбор и оптимизацию запроса. Преимущество такой подготовки запроса состоит в его предварительном разборе и оптимизации. Альтернативой здесь может служить подготовка сервером запроса при каждом его выполнении. Как только запрос подготовлен, подставляются необходимые новые параметры, и запрос выполняется.
[pagebreak]
Источник данных
В предыдущем примере пользователь мог ввести номер отдела, и после выполнения запроса отображался список сотрудников этого отдела. А как насчет использования таблицы DEPARTMENT, позволяющей пользователю легко перемещаться между пользователями и отделами?
Примечание: Следующий пример использует TTable с именем Table1. Для Table1 имя базы данных IBLOCAL, имя таблицы - DEPARTMENT. DataSource2 TDatasource связан с Table1. Таблица также активна и отображает записи в TDBGrid.
Способ подключения TQuery к TTable - через TDatasource. Есть два основных способа сделать это. Во-первых, разместить код в обработчике события TDatasource OnDataChange. Например, листинг 3 демонстрирует эту технику.
Листинг 3 - Использования события OnDataChange для просмотра дочерних записей
Техника с использованием OnDataChange очень гибка, но есть еще легче способ подключения Query к таблице. Компонент TQuery имеет свойство Datasource. Определяя TDatasource для свойства Datasource, объект TQuery сравнивает имена параметров в SQL-запросе с именами полей в TDatasource. В случае общих имен, такие параметры заполняются автоматически. Это позволяет разработчику избежать написание кода, приведенного в листинге 3 (*** приведен выше ***).
Фактически, техника использования Datasource не требует никакого дополнительного кодирования. Для поключения запроса к таблице DEPT_NO выполните действия, приведенные в листинге 4.
Листинг 4 - Связывание TQuery c TTable через свойство Datasource
Выберите у Query1 свойство SQL и введите:
Выберите свойство Datasource и назначьте источник данных, связанный с Table1 (Datasource2 в нашем примере)
Выберите свойство Active и установите его в True
Это все, если вы хотите создать такой тип отношений. Тем не менее, существуют некоторые ограничения на параметризованные запросы. Параметры ограничены значениями. К примеру, вы не можете использовать параметр с именем Column или Table. Для создания запроса, динамически изменяемого имя таблицы, вы могли бы использовать технику конкатенации строки. Другая техника заключается в использовании команды Format.
Команда Format
Команда Format заменяет параметры форматирования (%s, %d, %n и пр.) передаваемыми значениями. Например,
Format('Select * from %s', ['EMPLOYEE'])
Результатом вышеприведенной команды будет 'Select * from EMPLOYEE'. Функция буквально делает замену параметров форматирования значениями массива. При использовании нескольких параметров форматирования, замена происходит слева направо. Например,
Результатом команды форматирования будет 'Select * from EMPLOYEE where EMP_ID=3'. Такая функциональность обеспечивает чрезвычайную гибкость при динамическом выполнении запроса. Пример, приведенный ниже в листинге 5, позволяет вывести в результатах поле salary. Для поля salary пользователь может задавать критерии.
Листинг 5 - Использование команды Format для создания SQL-запроса
В этом примере мы используем методы Clear и Add свойства SQL. Поскольку "подготовленный" запрос использует ресурсы сервера, и нет никакой гарантии что новый запрос будет использовать те же таблицы и столбцы, Delphi, при каждом изменении свойства SQL, осуществляет операцию, обратную "подготовке" (unprepare). Если TQuery не был подготовлен (т.е. свойство Prepared установлено в False), Delphi автоматически подготавливает его при каждом выполнении. Поэтому в нашем случае, даже если бы был вызван метод Prepare, приложению от этого не будет никакой пользы.
Open против ExecSQL
В предыдущих примерах TQuerie выполняли Select-запросы. Delphi рассматривает результаты Select-запроса как набор данных, типа таблицы. Это просто один класс допустимых SQL-запросов. К примеру, команда Update обновляет содержимое записи, но не возвращает записи или какого-либо значения. Если вы хотите использовать запрос, не возвращающий набор данных, используйте ExecSQL вместо Open. ExecSQL передает запрос для выполнения на сервер. В общем случае, если вы ожидаете, что получите от запроса данные, то используйте Open. В противном случае допускается использование ExecSQL, хотя его использование с Select не будет конструктивным. Листинг 6 содержит код, поясняющий сказанное на примере.
Листинг 6
Все приведенные выше примеры предполагают использования в ваших приложениях запросов. Они могут дать солидное основание для того, чтобы начать использовать в ваших приложениях TQuery. Но все же нельзя прогнозировать конец использования SQL в ваших приложених. Типичные серверы могут предложить вам другие характеристики, типа хранимых процедур и транзакций. В следующих двух секциях приведен краткий обзор этих средств.
[pagebreak]
3. Компонент TStoredProc
Хранимая процедура представляет собой список команд (SQL или определенного сервера), хранимых и выполняемых на стороне сервера. Хранимые процедуры не имеют концептуальных различий с другими типами процедур. TStoredProc наследуется от TDataset, поэтому он имеет много общих характеристик с TTable и TQuery. Особенно заметно сходство с TQuery. Поскольку хранимые процедуры не требуют возврата значений, те же правила действуют и для методов ExecProc и Open. Каждый сервер реализует работу хранимых процедур с небольшими различиями. Например, если в качестве сервера вы используете Interbase, хранимые процедуры выполняются в виде Select-запросов. Например, чтобы посмотреть на результаты хранимой процедуры, ORG_CHART, в демонстрационной базе данных EMPLOYEE, используйте следующих SQL-запрос:
При работе с другими серверами, например, Sybase, вы можете использовать компонент TStoredProc. Данный компонент имеет свойства для имен базы данных и хранимой процедуры. Если процедура требует на входе каких-то параметров, используйте для их ввода свойство Params.
4. TDatabase
Компонент TDatabase обеспечивает функциональность, которой не хватает TQuery и TStoredProc. В частности, TDatabase позволяет создавать локальные псевдонимы BDE, так что приложению не потребуются псевдонимы, содержащиеся в конфигурационном файле BDE. Этим локальным псевдонимом в приложении могут воспользоваться все имеющиеся TTable, TQuery и TStoredProc. TDatabase также позволяет разработчику настраивать процесс подключения, подавляя диалог ввода имени и пароля пользователя, или заполняя необходимые параметры. И, наконец, самое главное, TDatabase может обеспечивать единственную связь с базой данных, суммируя все операции с базой данных через один компонент. Это позволяет элементам управления для работы с БД иметь возможность управления транзакциями.
Транзакцией можно считать передачу пакета информации. Классическим примером транзакции является передача денег на счет банка. Транзакция должна состоять из операции внесения суммы на новый счет и удаления той же суммы с текущего счета. Если один из этих шагов по какой-то причине был невыполнен, транзакция также считается невыполненной. В случае такой ошибки, SQL сервер позволяет выполнить команду отката (rollback), без внесения изменений в базу данных. Управление транзакциями зависит от компонента TDatabase. Поскольку транзакция обычно состоит из нескольких запросов, вы должны отметить начало транзакции и ее конец. Для выделения начала транзакции используйте TDatabase.BeginTransaction. Как только транзакция начнет выполняться, все выполняемые команды до вызова TDatabase.Commit или TDatabase.Rollback переводятся во временный режим. При вызове Commit все измененные данные передаются на сервер. При вызове Rollback все изменения теряют силу. Ниже в листинге 7 приведен пример, где используется таблица с именем ACCOUNTS. Показанная процедура пытается передать сумму с одного счета на другой.
Листинг 7
И последнее, что нужно учесть при соединении с базой данных. В приведенном выше примере, TDatabase использовался в качестве единственного канала для связи с базой данных, поэтому было возможным выполнение только одной транзакции. Чтобы выполнить это, было определено имя псевдонима (Aliasname). Псевдоним хранит в себе информацию, касающуюся соединения, такую, как Driver Type (тип драйвера), Server Name (имя сервера), User Name (имя пользователя) и другую. Данная информация используется для создания строки соединения (connect string). Для создания псевдонима вы можете использовать утилиту конфигурирования BDE, или, как показано в примере ниже, заполнять параметры во время выполнения приложения.
TDatabase имеет свойство Params, в котором хранится информация соединения. Каждая строка Params является отдельным параметром. В приведенном ниже примере пользователь устанавливает параметр User Name в поле редактирования Edit1, а параметр Password в поле Edit2. В коде листинга 8 показан процесс подключения к базе данных:
Листинг 8
Этот пример показывает как можно осуществить подключение к серверу без создания псевдонима. Ключевыми моментами здесь являются определение DriverName и заполнение Params информацией, необходимой для подключения. Вам не нужно определять все параметры, вам необходимо задать только те, которые не устанавливаются в конфигурации BDE определенным вами драйвером базы данных. Введенные в свойстве Params данные перекрывают все установки конфигурации BDE. Записывая параметры, Delphi заполняет оставшиеся параметры значениями из BDE Config для данного драйвера. Приведенный выше пример также вводит такие понятия, как сессия и метод GetTableNames. Это выходит за рамки обсуждаемой темы, достаточно упомянуть лишь тот факт, что переменная session является дескриптором database engine. В примере она добавлена только для "показухи".
Другой темой является использование SQLPASSTHRU MODE. Этот параметр базы данных отвечает за то, как натив-команды базы данных, такие, как TTable.Append или TTable.Insert будут взаимодействовать с TQuery, подключенной к той же базе данных. Существуют три возможных значения: NOT SHARED, SHARED NOAUTOCOMMIT и SHARED AUTOCOMMIT. NOT SHARED означает, что натив-команды используют одно соединение с сервером, тогда как запросы - другое. Со стороны сервера это видится как работа двух разных пользователей. В любой момент времени, пока транзакция активна, натив-команды не будут исполняться (committed) до тех пор, пока транзакция не будет завершена. Если был выполнен TQuery, то любые изменения, переданные в базу данных, проходят отдельно от транзакции.
Два других режима, SHARED NOAUTOCOMMIT и SHARED AUTOCOMMIT, делают для натив-команд и запросов общим одно соединение с сервером. Различие между двумя режимами заключаются в передаче выполненной натив-команды на сервер. При выбранном режиме SHARED AUTOCOMMIT бессмысленно создавать транзакцию, использующую натив-команды для удаления записи и последующей попыткой осуществить откат (Rollback). Запись должна быть удалена, а изменения должны быть сделаны (committed) до вызова команды Rollback. Если вам нужно передать натив-команды в пределах транзакции, или включить эти команды в саму транзакцию, убедитесь в том, что SQLPASSTHRU MODE установлен в SHARED NOAUTOCOMMIT или в NOT SHARED.
5. Выводы
Delphi поддерживает множество характеристик при использовании языка SQL с вашими серверами баз данных. На этой ноте разрешите попрощаться и пожелать почаще использовать SQL в ваших приложениях.
В последние время в сети все чаще и чаще появляются некие калькуляторы. Например, многие хостинговые компании предлагает вам калькулятор для расчета стоимости услуг размещения сайта. Все что вам необходимо - выбрать тариф, дополнительные услуги, ввести продолжительность хостинга и нажать кнопку "Рассчитать". После чего вы моментально получаете результат прямо на странице сайта хостера. Причем сама страница не обновляется! Это простой пример динамического изменения кода.
Ладно, хватит разговоров, давайте перейдем непосредственно к примерам. Для начала самый простой. Создайте новый HTML файл и пропишите в нем следующий код:
Код:
Теперь сохраните файл и откройте его браузером. Вы увидите кнопку с надписью "Нажми на меня". Нажимайте, не бойтесь, баннеры не появятся ?. Что мы видим? Код изменился. Под кнопкой появилась надпись "Спасибо!". Содержание страницы изменилось. Но если вы загляните в файл с кодом, он неизменен. Как такое возможно? Все очень просто. Дело в том, что JS является client-side технологией. Т.е. он исполняется на машине посетителя, а не на сервере. А теперь давайте разберемся с кодом. Итак, с начала ничего нового не видим: форма с кнопкой, при клике на которую исполняется функция “test_change”. Сама функция содержит одну - единую строчку:
Код:
Это и есть команда JS на вставку. Все что остается добавить это место, куда делать вставку. Место мы обозначили идентификатором "resultat". Идентификатор вы можете изменять вольно по своему усмотрению. Теперь создаем новый слой и связываем его с идентификатором "resultat":
Код:
Ну как, неплохо? Сразу хочу вас обрадовать, динамически можно вставлять не только простой текст, но и HTML теги! А теперь рассмотрим более сложный пример. Создадим калькулятор, который по веденным данным подсчитает вашу месячную зарплату ?. Итак создайте новый HTML файл и наберите следующее:
Код:
Сохраняем файл и открываем его браузером. Что мы видим? Три поля для ввода и кнопку с надписью "Подсчитать", при клике на которую запускается функция "getmoney". Она получает введенные значения, вычисляет месячную зарплату и выводит ее в браузере. Введите значения и нажмите кнопку "Подсчитать". Обратите внимание на значение месячной зарплаты. А теперь измените одно или несколько введенных значений и снова нажмите кнопку "Подсчитать". Как вы видите новое значение заменило старое. Очень удобно. А можно, например, выводить новое значение под старым, для этого нужно изменить строчку
Код:
на
Код:
Теперь новые данные будут прибавляться к более ранним, и все они вместе будут выведены на экран. Обратите внимание на добавленный HTML тег в конце кода. Это перевод строки. Вот мы и протестировали использование HTML кода в динамически изменяемых страницах.
Конечно, калькуляторы нужны далеко не каждому сайту. И правильно, не стоит на одном зацикливаться. Подключите свое воображение. Возможность динамически добавлять HTML код открывает воистину огромный потенциал для разработчика. Конечно, меню на таком коде вряд ли сможет превзойти выпадающее меню JS - кликать надоест. А вот для экономии места и для организации пояснений к разным элементам сайта такие возможности JS идеально подходят. Простой пример - страница контактов на сайте компании. Там, как правило, размещена контактная информация компании, дистрибьюторов, представителей, разработчика сайта. Куча адресов, телефонов и e-mail'ов. Так и заблудиться можно. А вот если разместить ссылки "Компания", "Дистрибьюторы", "Представители", "Разработчик", посетитель быстро сориентируется и выберет нужную ссылку. Осталось только написать JS код, который при клике на ссылку выводит под ссылкой соответствующую информацию и убирал ранее выведеную. Многие могут возразить, мол можно сделать просто ссылку на нужный файл и не нужно динамическое изменение текущего. Но, во-первых, возможно посетитель заинтересован не одной ссылкой - ему придется возвращаться, а во-вторых, намного приятнее кликнуть и моментально (!!!) увидеть нужную информацию (загруженную вместе со страницей), чем ожидать загрузку очередной страницы. Давайте я дам простой примерчик, а разработка подобного кода останется вам как домашнее задание для закрепления материала. Итак, код:
Код:
При открытии файла, содержащего вышеуказанный код, в окне браузера можно будет увидеть две кнопки: "Включить" и "Выключить". При клике на первую из них функции "test_on_off" передается значение 1, а при клике на вторую - 0. В зависимости от полученного значения функция "test_on_off" либо выводит таблицу, либо убирает ее. Это лишь простой пример. Его можно немного улучшить, убрав одну кнопку и подправив код:
Код:
Теперь кнопка работает как выключатель: кликнул - включил, еще раз кликнул - выключил, снова кликнул - опять включил...
Если кто чего недопонимает - смело пишите. Ну, а если кому облом код набивать, тоже пишите, вышлю.
В общем теперь вы имеете немалый арсенал средств для сайтостроителя, так что удачной работы!
Те, кто хорошо умеет работать с графическим редактором Photoshop, могут сделать анимированный GIF непосредственно в этой программе. Но создания баннера или анимированной кнопки совсем не обязательно каждому изучать Photoshop. Есть множество специализированных программ для создания анимированной графики, которые в свою очередь имеют множество специальных инструментов и шаблонов, благодаря которым создание рекламного объявления или анимированного логотипа для сайта становится делом нескольких минут.
Программы создающие GIF-анимацию.
Те, кто хорошо умеет работать с графическим редактором Photoshop, могут сделать анимированный GIF непосредственно в этой программе. Но создания баннера или анимированной кнопки совсем не обязательно каждому изучать Photoshop. Есть множество специализированных программ для создания анимированной графики, которые в свою очередь имеют множество специальных инструментов и шаблонов, благодаря которым создание рекламного объявления или анимированного логотипа для сайта становится делом нескольких минут.
GIF Construction Set Professional.
На первый взгляд кажется, что эта программа проста но это не так. Возможности ее очень широки, и, в отличие от многих аналогичных программ, она позволяет компилировать анимационные файлы не только в формате GIF. GIF Construction Set Professional может преобразовывать созданную в ней анимацию или уже готовый GIF-файл в формат Macromedia Flash (SWF). Файл Macromedia Flash имеет свои преимущества и недостатки перед GIF. Так, например, степень сжатия изображения в GIF ниже, и файл SWF может включать в себя не только анимацию, но и звук.
При экспорте созданной анимации в файл Macromedia Flash, следует помнить о том, что если в анимированном GIF можно указать время отображения каждого кадра по отдельности, в файле SWF частота смены изображений будет фиксированной. Кроме этого, файлы SWF, в отличие от GIF не поддерживают прозрачности.
Экспортировать в формат Macromedia Flash циклическую анимацию не получится – файл можно проиграть только один раз. Для имитации многократно повторяющейся анимации необходимо вносить дополнительные изменения в HTML-код страницы, на которой будет расположен SWF файл.
Принцип создания анимированного GIF-файла такой же, как и разработка рисованного мультфильма. Создается группа изображений с несколько измененным рисунком, после чего указывается их последовательность, и все они экспортируются в единый файл. Изображения, из которых будет состоять GIF-анимация, в GIF Construction Set Professional отображены в виде столбца кадров. Инструменты для выполнения различных манипуляций с кадрами «спрятаны» в контекстном меню. Они дают возможность вращать, обрезать, выполнять цветокоррекцию, добавлять эффект тени, выполнять объединение и удаление кадров.
Для файлов, которые помещаются на интернет-странице, очень важно, чтобы их размер был как можно меньше. В утилите GIF Construction Set Professional имеется специальная функция «суперсжатия», благодаря которой программа анализирует код GIF файла и делает размер анимации несколько меньше.
Easy GIF Animator Pro
Эта программа сделана, так чтобы любая задача могла быть выполнена в ней буквально за несколько минут. Реализовано это за счет продуманного процесса создания нового анимационного файла. В программе имеется свои мастера настроек - мастер создания нового баннера и мастер создания новой кнопки. Удобство таких предварительных заготовок еще и в том, что в программе уже заложены стандартные основные размеры баннеров, которые не всегда можно запомнить. В программе содержатся небольшой набор шаблонов кнопок с разными текстурами: мраморные, стеклянные, деревянные и пр.
Чтобы несколько разнообразить монотонное «слайд-шоу» сменяющихся кадров на баннере или на другом графическом элементе интернет-страницы, Easy GIF Animator Pro предлагает использовать анимационные эффекты перехода от одного изображения к другому. Вторая картинка может, например, выезжать из угла кадра или медленно проступать поверх предыдущей. Easy GIF Animator Pro имеет скромный набор инструментов для редактирования каждого изображения в анимации. Однако, несмотря на то, что этот «арсенал» напоминает палитру инструментов программы Microsoft Paint, на практике оказывается, что его вполне достаточно даже для того чтобы сделать текстовый баннер «с нуля». Здесь можно создавать геометрические фигуры, выполнять заливку, добавлять текст и делать заливку изображения градиентным цветом или даже выбранной текстурой.
GIF Movie Gear
В этой программе практически полностью отсутствует возможность редактирования изображений. Единственный способ это сделать – изменять рисунок по пикселам, что не далеко не всегда удобно. Из этого можно сделать вывод, что программа GIF Movie Gear позиционируется не как самостоятельный инструмент для работы с форматом GIF, а как вспомогательная утилита, которую будет уместно использовать в паре с каким-нибудь графическим редактором. В программе даже имеется возможность указать путь на диске к утилите, которая будет запускаться всякий раз, когда возникнет необходимость изменить рисунок кадра.
В GIF Movie Gear хорошо реализована оптимизация выходного файла. Во-первых, с ее помощью можно управлять количеством цветов в индексированной палитре GIF-файла, а также вручную подбирать цвета индексированной палитры и сохранять ее в отдельный файл для повторного использования. Во-вторых, в программе есть целая группа настроек для уменьшения размера файла без потери качества изображения. Среди них – максимально возможная обрезка кадров, устранение ненужных кадров (например, повторяющихся), замена дублирующихся точек изображения с прозрачностью. Эффективность выбранных настроек может быть мгновенно просчитана программой и оценена в процентах сжатия от общего размера анимационного файла.
В GIF Movie Gear можно использовать не только для создания GIF анимации. С помощью программы можно также создавать иконки *.ico (вот тут и пригодится возможность точечного рисунка), обычные и анимированные курсоры (*.cur, *.ani). Кроме вышеперечисленных форматов, изображения могут быть сохранены в виде многослойного файла PSD или в виде секвенции изображений в других графических форматах.
Если необходимо особым образом пометить создаваемый файл GIF, в него можно внедрить комментарий. При этом внешне файл останется прежним, лишь слегка увеличится его размер.
Selteco Bannershop GIF Animator
Эта программа нацелена, в основном на создание баннеров. В списке наиболее часто встречаемых разрешений можно найти все популярные сегодня типы баннеров, от стандартного 468x60 до «небоскреба» (skyscraper). Bannershop GIF Animator имеет специальный режим для быстрого создания анимированного изображения. Работая в нем, достаточно составить список графических файлов, задать задержку перед выводом на экран следующего кадра и все, файл можно сохранять в формате GIF. По такому же принципу работает и мастер создания слайд-шоу из отдельных картинок.
В Bannershop GIF Animator можно использовать анимационные эффекты, которые разделены на три группы – Intro Animation, Animation и Outro Animation. В первом случае можно получить эффект появления выделенного кадра, в последнем – его исчезновение. Отчасти, эти эффекты напоминают эффекты перехода, однако их область применения шире. Они также могут использоваться как видеофильтры. Эффекты еще одной группы, Animation, заставляют изображение двигаться особым образом – скользить, дрожать и переливаться светом.
Если составленная цепочка кадров включает в себя изображения разного разрешения, можно воспользоваться функцией Autosizing Frames, которая будет увеличивать рабочее пространство до тех пор, пока его площади не будет достаточно, чтобы отобразить самый большой кадр.
Нередко при создании текстового баннера приходится использовать символьный шрифт. Для того чтобы отыскать нужный значок, приходится тратить довольно много времени или использовать специальные программы-менеджеры установленных в системе шрифтов.
Создавая текст на баннере, отыскать нужный символ в Bannershop GIF Animator очень просто. Команда Inserт Symbol откроет таблицу со всеми элементами выбранного шрифта. Перебирая названия в списке установленных в системе шрифтов и наблюдая за таблицей, можно легко найти то, что нужно.
Готовую анимацию можно сразу сохранять в виде HTML страницы, в коде которой уже указано название графического файла.
Среди прочих особенностей программы стоит отметить возможность экспорта подготовленной анимации в AVI и поддержку векторного формата WMF, изображение которого растрируется при импорте в программу.
Active GIF Creator
Если необходимо сделать большое количество похожих баннеров, анимированных кнопок или логотипов, стоит задуматься о том, как упростить процесс. В Active GIF Creator это можно сделать с помощью специальных скриптов.
Модуль для работы со скриптами Script Editor является главной "изюминкой" программы. Он дает возможность автоматизировать рутинную работу, записав последовательность действий в отдельный скрипт. Анимационные скрипты – это файлы с расширением *.agif, которые сохраняются внутри проекта и могут многократно использоваться во время работы над ним. Таким образом, можно автоматически перемещать объекты, изменять их размер, управлять их отображением.
Active GIF Creator может оптимизировать размер анимационного файла, в зависимости от указанной скорости модема. В программе можно сохранять Gif анимацию сразу с HTML кодом и при этом подбирать в окне предварительного просмотра цвет фона и текста.
Кроме этого, программа умеет создавать GIF-файлы из командной строки в пакетном режиме. Самостоятельно разобраться с этой возможностью достаточно тяжело, но, тем не менее, ответы, на все вопросы, касающиеся работы с командной строкой, можно найти в технической документации Active GIF Creator.
CoffeeCup GIF Animator
CoffeeCup GIF Animator - это отличный выход для тех, у кого нет никакого желания и времени разбираться со сложными настройками Photoshop только ради того, чтобы сделать аватар. Программа несложна в использовании и при этом имеет все необходимые инструменты для решения такой задачи. Так, например, программа поддерживает импорт видео-файлов, может задавать время задержки для всех кадров GIF-анимации сразу или по отдельности, устанавливать для каждого кадра свое время отображения, задавать цвет, который должен быть прозрачным на изображении. Настроек в программе минимум, и все они помещаются в небольшом окне программы, в котором происходит сборка и предварительный просмотр анимации.
Мастер оптимизации также практически не требует от пользователя никакого вмешательства – достаточно следовать его простым инструкциям, и размер файла будет уменьшен настолько, насколько это возможно, без потери качества изображения. Это достигается за счет ограничения индексированной палитры и устранения присутствующих в файле GIF внутренних комментариев. CoffeeCup GIF Animator также сохраняет сделанную анимацию в SWF, и при этом выводит на экран код, который нужно будет вставить, чтобы файл отображался на веб-странице.
Ulead GIF Animator
Компания Ulead известна, прежде всего, своим программным обеспечением для работы с цифровым видео, поэтому неудивительно, что ее утилита GIF Animator унаследовала черты настоящего видеоредактора. Так, например, программа изобилует всевозможными эффектами, большинство которых перекочевали в GIF Animator из стандартного набора эффектов перехода приложений для обработки видео - Video Studio и Media Studio Pro.
Количество встроенных эффектов можно и увеличить. Для этого в настройках Ulead GIF Animator можно указать расположение фильтров Photoshop и дополнительных фильтров, совместимых с графическим редактором от Adobe. Тут, впрочем, следует вспомнить о том, что со времени выхода последней версии GIF Animator, прошло довольно много времени, и новые фильтры программой от Ulead не поддерживаются.
В режиме, предназначенном для оптимизации файла, рабочая область для наглядности разделена на две части – в одной показываются кадры проекта до сжатия в формат GIF, во второй – после. Изменение настроек сжатия мгновенно отображается на конечном результате. Подбирать «золотую середину» в соотношении размер-качество можно используя ограничение цветовой палитры. Кроме этого, досутпно еще два параметра – Dither, определяющий точность передачи градиентного перехода цвета, и Lossy, отвечающий за количество потерь при сжатии изображения. Управлять кадрами анимации можно либо с помощью панели кадров, где они показаны в виде слайдов, либо с панели настроек, где эта же анимация отображена в виде группы слоев, каждый из которых означает отдельный кадр.
Среди различных форматов экспорта присутствует совершенно неожиданная функция – упаковка созданной анимации в исполнительный EXE-файл. В этом случае на выходе вы получаете один файл, при запуске которого происходит примерно следующее – на экран поверх открытых окон программ выплывает созданное в GIF Animator изображение, а затем воспроизводится анимация. Трудно сказать, какое применение можно найти для этой возможности программы, скорее всего, ее можно использовать для необычного оформления презентации, которая будет начинаться таким неожиданным появлением изображения, либо это может быть просто способ пошутить над коллегой по работе.
Программ GIF-анимации обязательно нужно держать под рукой – чтобы в один прекрасный момент проблема создания анимированного баннера не затормозила всю остальную работу. Для тех, кто постоянно создает анимационные баннеры в больших количествах, следует попробовать в работе редактор скриптов Active GIF Creator, для тех, кому нужно быстро сделать свой аватар или оригинальный юзербар лучше подойдет CoffeeCup GIF Animator. Ну, а если нужен просто универсальный и надежный GIF-аниматор, «на все случаи жизни», советуем присмотреться к хорошо зарекомендовавшей себя программе от Ulead.
В этой статье будет рассмотрен скрипт, который создает анимацию в виде падающего снега. Анимация воспроизводится в заданной области web-страницы. Анимационный эффект, создаваемый данным скриптом выглядит весьма привлекательно, поэтому скрипт вполне может быть использован для создания анимированных логотипов, или блоков новогодних объявлений и поздравлений на сайте.
Область web-страницы, в которой производится анимация, задается элементом DIV с идентификатором ID_ANIMATE. Принцип работы скрипта заключается в вертикальном перемещении (с небольшими стохастическими перемещениями по горизонтали) элементов IMG, представляющих изображение снежинки в пределах этого элемента (элемент DIV с идентификатором ID_ANIMATE является элементом-контейнером для элементов IMG).
Элемент-контейнер DIV с идентификатором ID_ANIMATE определяется при помощи HTML-разметки в документе, в котором содержится скрипт. В этот элемент может быть помещено произвольное гипертекстовое содержимое, которое будет располагаться "на фоне" падающих снежинок, либо на фоне которого будут падать снежинки (это зависит от значения позиционного уровня этого содержимого). Код фрагмента HTML-разметки, определяющей элемент-контейнер DIV и его содержимое в демо-примере, приложенном к статье (см. демо-пример), приведен далее:
Параметры элемента-контейнера DIV (его размеры, схема позиционирования, значение свойства переполнения, цвет фона, параметры границы), а также перемещаемых в нем элементов IMG (схема позиционирования, размер, значение позиционного уровня), определяются правилами внедренной в документ таблицы слилей CSS:
Как можно видеть из листинга, элементам IMG, являющимся потомками элемента DIV с идентификатором ID_ANIMATE, назначается значение позиционного уровня 1. Поэтому, если вы хотите, чтобы "снежинки" двигались "под" остальным содержимым этого элемента, содержимому следует задать значение позиционного уровня больше 1 (как это сделано в демо-примере). Обратите также внимание на то, что элементам IMG назначена схема абсолютного позиционирования.
Теперь рассмотрим непосредственно работу скрипта. Полный листинг кода скрипта приведен далее.
Как можно видеть из листинга, в начале скрипта производится инициализация нескольких переменных. В переменную oAnimate заносится ссылка на DOM-объект элемента DIV с идентификатором ID_ANIMATE. Переменные nWidth и nHeight инициализируются значениями значения ширины и высоты этого элемента. Переменная nFSize должна содержать значение высоты (в пикселях) элементов изображений-снежинок (оно должно быть таким же, как задано в таблице стилей). Переменная strFlakeURL содержит URI ресурса изображения снежинки. Значение переменной nCount определяет общее количество движущихся изображений. Массив aoFlakes предназначен для хранения ссылок на DOM-объекты элементов изображений-снежинок.
Создание элементов изображений, добавление их в дерево документа, ссылок на DOM-объекты этих элементов в массив aoFlakes производится в процессе инициализации скрипта (см. окончание листинга кода скрипта). Значению свойства src DOM-объектов элементов изображений при этом присваивается значение переменной strFlakeURL. Для установки параметров движения каждого созданного элемента, вызывается функция ResetFlake. Для позиционирования соответствующего элемента IMG относительно элемента-контейнера DIV - UpdateFlakePos.
Функция ResetFlake устанавливает значения свойствам m_nX, m_nY и m_nSpeed DOM-объекта элемента, ссылка на который содержится в элементе массива aoFlakes с индексом, равным значению первого параметра ResetFlake. Свойство m_nX объекта хранит текущую координату по оси X, а свойство m_nY - по оси Y соответствующего элемента относительно контейнера. Свойство m_nSpeed определяет "скорость" движения элемента (величину его вертикального смещения на каждом шаге анимации). Функция ResetFlake устанавливает случайные значения свойствам m_nX и m_nSpeed. Свойству m_nY случайное значение устанавливается только в том случае, если параметр bRandY функции вычисляется в true (в этом случае элемент изображения снежинки будет иметь случайную позицию по вертикали). Иначе свойству m_nY устанавливаетя значение -nFSize (при этом изображение будет позиционироваться так, что оно будет полностью скрыто за верхней границей элемента-контейнера). При создании элементов изображений в процессе инициализации скрипта, ResetFlake вызывается со значением параметра bRandY, равным true.
Функция UpdateFlakePos принимает в качестве единственного параметра значение индекса в массиве aoFlakes и производит позиционирование элемента, ссылка на DOM-объект которого содержится в элементе массива aoFlakes с данным индексом в соответствии со значениями его свойств m_nX и m_nY.
Перемещение всех изображений-снежинок осуществляется функцией OnTimer, которая является обработчиком событий таймера, запускаемого в процессе инициализации скрипта.
Как можно видеть из приведенного ранее листинга кода скрипта, в функции OnTimer производится перебор всех DOM-объектов элементов изображений снежинок. Значение свойства m_nY каждого из этих объектов наращивается на величину его свойства m_nSpeed. Значение свойства m_nX изменяется на случайную величину, которая находится в диапазоне [-1..1] (так достигается случайное горизонтальное движение "снежинок"). В случае, если элемент изображения вышел за нижнюю границу элемента-контейнера, вызывается функция ResetFlake, которая устанавливает случайные значения свойств m_nX и m_nSpeed соответствующего объекта, а значение его свойства m_nY устанавливаетт в -nFSize. Затем вызывается функция UpdateFlakePos для перемещения конкретного элемента IMG в нужную позицию.
В этом разделе вы создадите два новых приложения OLE. Первое - простая программа-сервер OLE, второе - пример простого контейнера OLE. Эти программы предназначены для демонстрации минимальных затрат программирования, необходимых для создания приложений OLE 2.
В любом случае, для создания оболочки программы следует воспользоваться приложением AppExpert. Сначала необходимо сгенерировать основу приложения в AppExpert, затем модифицировать созданные файлы для создания законченного рабочего примера.
При написании своих версий этих программ необходимо иметь в виду несколько моментов. Во-первых, в этой главе приводятся листинги только исходных, немодифицированных файлов.
Во-вторых, CLSID этих программ будет отличаться от CLSID программ, которые вы сгенерируете с помощью AppExpert. Это нормально и даже необходимо, поскольку с помощью CLSID одни серверные приложения в Windows отличаются от других.
В-третьих, эти примеры содержат минимум необходимых средств для того, чтобы начать программировать с OLE. Вы можете использовать эти примеры в качестве начального кода для создания своего действительно полезного сервера или контейнера. В этой главе просто не хватает места для описания реализации функциональных сервера и контейнера - в этом случае вам понадобился бы грузоподъемник, чтобы положить эту книгу на стол.
Создание сервера OLE
Первое приложение OLE в этой главе - сервер. В этом примере вы построите полный сервер - сервер, который может использоваться и как автономное приложение, и как сервер. Создавая автономный сервер (т.е. в виде исполняемой программы .ЕХЕ, а не в виде динамически подключаемой библиотеки DLL), вы упрощаете процесс регистрации сервера в Windows.
Начальный процесс разработки сервера прост. Сначала из интегрированной среды Borland C++ версии 4.5 запустите AppExpert. Задайте каталог и имя вашего проекта. Я поместил свой проект в каталог \BC45\SOURCE\OLESVR. Проект я назвал OLESVR (я всегда называю проекты и каталоги проектов одним и тем же именем, это облегчает запоминание). Ниже приводится последовательность действий, в результате которых был создан проект OLESVR.
Запустите AppExpert. В первом диалоговом окне следует задать имя и каталог проекта. Как уже отмечалось, я использовал OLESVR для задания обоих.
После выбора ОК в диалоговом окне имени и каталога проекта следующий раздел АррЕхреrt - диалоговое окно Application General Options (основные опции приложения). Это диалоговое окно позволяет задать конфигурацию приложения, генерируемого AppExpert. Вам придется модифицировать несколько опций для проекта OLESVR.
Первая опция, которую необходимо изменить, находится в блоке Application: Summary. Замените параметр по умолчанию Multiple document interface на Single document interface. Это изменение согласуется с призывом Microsoft делать ставку на однодокументные приложения для Windows. На рис. 21.1 демонстрируется модифицированный блок Application: Summary.
Второе изменение, которое необходимо внести, - указать AppExpert, что ваша программа будет сервером OLE. Это изменение вносится в пункт Application: OLE 2 Options, имеющий ряд опций OLE 2, которые можно задавать. Поскольку вы создаете сервер OLE, вы будете оперировать только элементами блока группы OLE 2 Server: (поищите его в правой верхней части диалога). Выберите кнопку ячейки пометки Server EXE. На рис. 21.2 демонстрируются изменения, проведенные в пункте Application:OLE 2 Options.
При желании вы можете заполнить элементы пункта Application: Admin Options блока диалога AppExpert. С его помощью вы можете задать в приложении заметку об авторском праве, имя и информацию о версии. Все элементы в Application: Admin Options необязательны, и вы можете их не задавать.
Подпункты пункта Main Window не нуждаются в модификациях, их следует оставить заданными значениями по умолчанию. Для данного приложения нет необходимости менять что-либо в этих подпунктах. Пункт MDI Child/View неприменим для этого проекта, поэтому нет нужды в нем что-нибудь менять.
После задания всех необходимых модификаций следует выбрать кнопку Generate в нижней части блока диалога AppExpert Application General Options. AppExpert запросит у вас подтверждение, действительно ли вы собираетесь создать проект; после принятия подтверждения AppExpert сгенерирует приложение. На рис. 21.3 приводится конечный проект, загруженный в интегрированную среду Borland C++ версии 4.5.
Теперь, когда программа сгенерирована, в нее следует добавить код, задающий функциональность сервера OLE. Необходимо включить код, рисующий изображение, а также провести другие незначительные изменения.
К счастью, помимо Borland C++ версии 4.5 можно воспользоваться программой ClassExpert, что облегчит внесение большей части изменений. Предположим, вы хотите сперва заняться вопросами отображения. Как и в любой созданной с помощью AppExpert программе, основная часть рисования выполняется классом отображения, производным от класса OWL TOleView. Файл, в котором содержится реализация отображения, имеет имя LSVROLVW.CPP. В листинге 21.1 приводится первоначальный файл OSROLVW.CPP.
Листинг (файл реализации класса отображения OLESVR, OSVROLVW.CPP)
Такие типы данных, как int, float, char и long, являются неотъемлемой частью C/C++ и вам не нужно писать никакого кода, чтобы сообщить компилятору о том, что означают эти слова. C/C++ позволяет вам также объ-являть свои собственные, специальные типы данных. В следующем разделе вы узнаете, как объявлять структуры, которые можно отнести к специальным типам данных.
Как вы уже знаете, переменная в C/C++ объявляется следующим образом:
В приведенном операторе iMyVariable объявлена как целая переменная. А вот объявление переменной типа char:
Напишите следующий исходный код:
В коде, который вы написали, имеются два оператора #include:
Файл iostream.h включен в код, поскольку в main(void) используется cout. Файл string.h включается потому, что в main(void) используется функция strcpy() (объявленная в файле string.h). Затем вы объявляете структуру:
Обратите внимание на синтаксис объявления структуры. Оно начинается с ключевого слова struct, за которым следует имя типа-структуры. В этой программе типу структуры присвоено имя MYSTRUCTURE. Затем следует собственно определение структуры, заключенное в фигурные скобки. Не забудьте поставить точку с запятой после закрывающей фигурной скобки. Теперь посмотрите на код внутри фигурных скобок:
Это означает, что MYSTRUCTURE состоит из строки с именем sName и целого с именем iAge, sName и iAge называются элементами данных структуры; Вы объявили их "Внутри" cтруктуры MYSTRUCTURE. Код в main(void) объявляет переменную с именем MyStructure типа MYSTRUCTURE:
Вспомните, что в объявляли переменную iNum1 следующим образом:
Когда вы объявляете MyStructure , которая будет структурой типа MYSTRUCTURE, рассматривайте переменную MyStructure аналогично переменной iNum1. MyStructure - это имя переменной, а ее типом является MYSTRUCTURE точно так же, как типом переменной iNum1 является int. (Обратите внимание, что по традиции имя структуры составлено из символов нижнего регистра или в нем смешаны символы нижнего и верхнего регистров, как, например, в имени MyStructure, но в имени типа структуры используются только символы верхнего регистра, как, например, в MYSTRUCTURE.)
Следующий оператор в main(void) копирует строку 'Andy' в элемент данных MyStructure.sName:
В этом операторе обращение к элементу данных sName записано как MyStructure.sName Следующий оператор присваивает значение 13 элементу данных iAge cтруктуры MyStructure: MyStructure.iAge - 13; Затем выполняется ряд операторов вывода cout:
Сложив все вместе, мы видим, что программа MyStruct выводит сообщение My name is Andy and I am 13 years old. (Меня зовут Andy и мне 13 лет)
В кабельной инфраструктуре традиционным решением по организации кабельных трасс является прокладка кабелей и проводов в системах кабельных каналов, при этом все большее внимание производители уделяют технологичности монтажа.
Ни одно современное здание нельзя представить без кабельной канализации, куда укладываются кабели для различных типов сетей (электрических, телефонных, компьютерных, телевизионных, систем оповещения, сигнализации и др.). Она должна обеспечивать простоту прокладки и обслуживания, надежную и удобную коммутацию, простое наращивание кабельных систем, их последующую модернизацию и реконфигурацию, а также обладать достаточной емкостью для размещения резервных кабельных линий. Кроме того, необходимо соответствие нормам пожарной безопасности, госстандарта, эпидемиологической службы.
Для решения этих задач разработчики совершенствуют системы укладки кабелей с использованием гофрированных и жестких труб, кабель-каналов и коробов, а первостепенными требованиями становятся удобство и быстрота монтажа СКС, электропроводки и кабеленесущих систем. Поставщики кабеленесущих систем адаптируют свои продукты к изменениям в технологиях СКС и нуждам заказчиков, пытаясь найти оптимальное соотношение между себестоимостью и качеством продукции.
Современные кабеленесущие системы позволяют быстро добавлять электроустановочные изделия и кабель, а специальные решения помогают в несколько раз ускорить монтаж силовых розеток. По данным «Остек-Ком», время монтажа кабеленесущих систем от разных поставщиков может различаться в полтора раза.
Между тем российские потребители становятся все более требовательными к качеству изделий, пожаростойкости, долговечности, а отечественные нормы пересматриваются с целью их унификации в соответствии с международными стандартами. В числе первоочередных требований к кабеленесущим системам на российском рынке в «Остек-Ком» называют невысокую стоимость (особенно для регионов) и наличие большого складского запаса, а также полноту системы — ассортимент необходимых аксессуаров для построения и монтажа кабельной трассы. Среди качественных параметров системы наиболее существенными являются удобство, надежность и быстрота организации кабельной проводки, поскольку это непосредственно отражается на экономичности решения. Как отмечают в компании ДКС, сегодня эталон кабеленесущей системы — удобный в монтаже и эксплуатации продукт, эстетичный, долговечный, соответствующий нормам пожарной и экологической безопасности. По мнению специалистов DNA Trading, легкость и быстрота монтажа кабеленесущих систем, прочность и долговечность материала, разнообразие и совместимость решений — все, что позволяет снизить стоимость и повысить надежность системы, — остаются насущными требованиями.
Многие работающие на рынке инженерных коммуникаций российские компании и системные интеграторы, занимающиеся монтажом СКС и локальных сетей, дополняют спектр предлагаемых решений в области СКС кабеленесущими и электроустановочными изделиями известных зарубежных и российских поставщиков, а также собственных производственных подразделений.
ОТ СИСТЕМЫ К СИСТЕМЕ
Скрытая проводка электрических силовых, а иногда и слаботочных систем осуществляется при помощи гофрированных труб. Они обеспечивают не только защиту от механических повреждений, проникновения влаги и возгорания, но и удобство монтажа, позволяя впоследствии проложить дополнительную проводку или заменить ее. В отличие от металлорукава, гофротруба не подвержена коррозии, не требует заземления, монтируется намного быстрее, существенно дешевле и легче. Для крепежа труб выпускается широкий ассортимент коробок и компонентов. Вместе с аксессуарами такие изделия образуют систему, куда входит все необходимое для монтажа на объектах. Цель разработки подобных систем — создание надежного комплекса для прокладки электропроводки с гарантированной экономией за счет удешевления материалов и сокращения времени монтажа, ведь, по данным ДКС, затраты на монтажные работы составляют до 70% от стоимости системы.
Гофрированная труба — массовый продукт, широко применяемый при прокладке силовой проводки и слаботочных кабелей. Трубы из ПНД «Октопус» серии 7’’ компании ДКС при сохранении прочностных и изоляционных свойств не содержат дорогостоящих добавок, препятствующих горению, и чаще всего используются при монолитном строительстве.
Для скрытой проводки внутри жилых и рабочих помещений ДКС предлагает систему «Октопус». Это гофротрубы нескольких серий, корпуса встраиваемых щитков и транзитных коробок, а также аксессуары для монтажа. Материал труб различается по цвету: в голубой окрашены полипропиленовые трубы (ПП) с повышенной эластичностью и устойчивостью к воздействию низких и высоких температур (от –40 до +100°C), в серый — негорючие трубы из поливинилхлорида (ПВХ), а в оранжевый и черный — трубы из полиэтилена низкого давления (ПНД). Компания планирует расширить спектр продукции и уже в этом году представить систему двустенных труб для прокладки кабельных трасс в грунте.
Предприятие «Экопласт» ориентируется на профессиональный рынок. Гофрированные трубы из композиций ПВХ и ПНД легкого и тяжелого типов изготавливаются на оборудовании немецких и итальянских производителей. Под системой в компании понимают весь спектр оборудования, необходимого для монтажа кабельной трассы, с дополнительными элементами. Она должна быть универсальна и обеспечивать реализацию всевозможных вариантов кабельной проводки. Системы «Экопласт» включают гофротрубы для прокладки кабелей в различных помещениях и средах, в том числе серию FL (легкая) и FH (тяжелая) с внешним диаметром от 16 до 50 мм, наружные и внутренние распределительные коробки и щитки. Они имеют степень защиты IP55 (по ГОСТ 14254/МЭК 529).
По данным статистики, до 95% пожаров происходит из-за электропроводки, поэтому особое внимание уделяется требованиям безопасности и качеству материалов. Чтобы исключить возгорание кабеля от короткого замыкания в силовой проводке и распространение пламени по трубе и кабелю, применяются самозатухающие композиции ПВХ, однако в соответствии с действующими в России нормативами при скрытой установке каналов в стенах и потолках из горючих материалов монтажники нередко вынуждены использовать металлические трубы.
Тем не менее, как отмечают в ДКС, сфера применения гофротруб очень широка: они могут использоваться при заливке в бетон или укладке под штукатурку, в конструкциях теплых полов, в длинных трассах. Гофротрубы из полиэтилена высокого давления (ПВД) прокладывают под землей и на наружных негорючих поверхностях. В тяжелом варианте (для заливки в бетон) они имеют утолщенную стенку.
Традиционное практичное решение — система гладких пластиковых жестких труб. По данным «Экопласт», фитинги (соединительные элементы) обеспечивают степень защиты от IP54 до IP65. Гладкие жесткие трубы из ПВХ широко применяются для магистральной прокладки кабеля, скрытой и открытой электропроводки в стенах жилых, административных и промышленных помещений. Такие решения тяжелее гофрированных труб на 40%, но их вес можно назвать средним, а значит, удобным для монтажа и транспортировки. Прокладка кабеля в гладкой трубе не представляет особых трудностей, времени затрачивается меньше, а негорючий материал исключает распространение пламени по трубе. Удобство и скорость монтажа системы гладких труб нашли отражение в названиях несущих систем ДКС — «ЭКСПРЕСС 4» (IP40) и «ЭКСПРЕСС 6» (IP65). В число аксессуаров входят корпуса для наружного монтажа электроустановочных изделий ВИВА от ДКС. Система гладких труб серии RIG от «Экопласт» обычно используется для электропроводки в подвалах и гаражах зданий, в промышленных цехах и на открытых площадках.
Иногда система должна быть не только прочной, но и гибкой. В этом случае используются гибкие армированные трубы из модифицированного пластиката. Трубы от «Экопласт», армированные спиралью из ПВХ, применяются для защиты кабелей машин, станков и промышленного оборудования с подвижными частями. Они устойчивы к агрессивным средам и влаге (IP64), выдерживают динамические нагрузки. ДКС выпускает гибкие армированные трубы с прочным спиралевидным каркасом, залитым пластикатом ПВХ для герметизации. В комплексе с гладкой жесткой трубой и аксессуарами для монтажа такие изделия позволяют строить информационные и силовые сети на любых сложных участках.
Гофротрубы из ПВХ, ПНД и полиэтилена высокого давления (ПВД) выпускает также завод «Рувинил». Это жесткие и гладкие трубы 16—63 мм, а также двустенные трубы (ПНД/ПВД), цвет которых указывает на область их применения (прокладка электрокабеля, системы связи и телекоммуникаций или кабельные линии общего назначения). Аналогичную продукцию производит и ряд других предприятий. Поставщики стараются учитывать требования, предъявляемые российскими компаниями к кабеленесущим системам, и стремятся быть в курсе зарубежных технологий, дабы предложить качественную продукцию с улучшенными монтажными свойствами, тем более что на их заводах установлено высокотехнологичное европейское оборудование. Освоив технологии производства пластиковых изделий, они переходят к выпуску более сложных видов продукции — системам пластиковых кабель-каналов.
КАЖДОМУ ПО ПОТРЕБНОСТЯМ
Способы прокладки кабелей в административных и офисных помещениях различны. Они могут располагаться в подвесных потолках, фальшполах или в залитых в бетон желобах и разводиться до рабочих мест с помощью лючков и мини-колонн. Однако с начала 90-х гг. на отечественном рынке наиболее широкое распространение получила открытая проводка информационных, телефонных, оптических, силовых и видеокабелей в настенных коробах, что упрощает обслуживание и реорганизацию кабельной системы.
Короб — замкнутый профиль с плоским основанием и с защелкивающейся крышкой — предназначен для монтажа на поверхность (стены, пола или потолка). Системные изделия имеют в своем составе набор совместимых аксессуаров для прокладки трасс различной сложности, включая настенные каналы (короба), соединительные и ответвительные аксессуары, элементы крепления электроустановочных изделий, телефонные и компьютерные розетки.
Кроме соответствия ГОСТам и ТУ, а также стандартам на проводку электрических силовых и слаботочных кабелей, рынок диктует и другие требования, а именно — широкий спектр аксессуаров, конкурентная цена и эстетичный вид. Дополнение системы коробов полным набором аксессуаров вкупе с продуманностью конструкции помогает быстро и легко монтировать их и прокладывать кабельные сети. Как отмечают в DNA Trading, наряду с традиционными требованиями к дизайну, долговечности самого пластика и его окраски, разнообразию типоразмеров и фитингов для всевозможных вариантов соединения, производители выпускают все более удобные и разнообразные решения. Это фитинги с изменяемым углом поворота короба и автоматическим обеспечением необходимого радиуса изгиба кабеля; короба со специальной конструкцией, чтобы кабель не приходилось фиксировать при монтаже; розетки, установку которых можно осуществить без специальных инструментов и навыков и т. д. Накладные аксессуары с защелками (без винтов) упрощают монтаж, к тому же они дешевле сборных.
Среди других требований — возможность различных соединений с переходом от короба одного сечения к другому для создания разветвленной сети, модульная конструкция в расчете на установку розеток различных типов, наличие креплений, например суппортов быстрой фиксации, простой и удобный доступ к проводке. Кабельные каналы должны быть устойчивыми к агрессивным средам и загрязнению, легко очищаться от пыли, обладать такими свойствами, как высокая гибкость и пластичность, способность выдерживать механические нагрузки, химическая стабильность в цветности, негорючесть.
Короба используют не только для подвода комбинированных сетей к рабочим местам, но и для создания магистральных каналов. Кабели прокладывают с учетом 30—50% запаса по сечению (на случай модернизации и развития кабельной системы), с соблюдением необходимого расстояния между информационной и силовой проводкой.
На российском рынке популярны пластиковые установочные короба. Этот материал отличается хорошими диэлектрическими параметрами, прочностью, химической стойкостью, а главное — ценой. При необходимости некоторые виды коробов можно окрасить. Выпускаются и цветные их модели, но стоят они значительно дороже — производители относят такие решения к категории эксклюзивных. По оценке «Экопласт» около 90% рынка составляют короба белого цвета.
[pagebreak]
Алюминиевые и стальные короба, как считают в ДКС, — специфическая продукция, применяемая там, где к электроустановке предъявляются особые требования. Они тяжелее, в три-четыре раза дороже пластиковых, их труднее монтировать. Поэтому до 90% уже установленных коробов изготовлены из композиций ПВХ с добавлением различных модификаторов. Такие системы не требуют заземления, обладают высокими электроизолирующими свойствами, малым весом и гибкостью. Вместе с тем, системным интеграторам подчас приходится сталкиваться с проектами, где требуется применение алюминиевых коробов. В «Сонет Текнолоджис» отмечают такие их качества и свойства, как пожаробезопасность, прочность и износостойкость. По мнению специалистов «Остек-Ком», спрос на подобные короба, весьма распространенные за рубежом, может вырасти, однако в DNA Trading полагают, что электропроводящие короба вряд ли составят конкуренцию пластиковым по причине дороговизны, сложности монтажа и требований к заземлению.
Сегодня на российском рынке представлено большое число популярных зарубежных марок кабельных каналов — Aesma, Efapel, GGK, Iboco, LAP, Marshall Tufflex, MITA, MK Electric, Quintela, Niedax, Rehau, Thorsman, Panduit и ряда других. Аналогичную продукцию выпускают и российские производители — ДКС, «Экопласт», «Электропласт», «Техпласт», «Рувинил» и др. Несмотря на внешнее сходство, изделия различаются стоимостью, качеством, долговечностью, удобством монтажа и эксплуатации, дизайном, разнообразием аксессуаров и типоразмеров. Экономия времени и затрат во многом зависит от применяемых технологических подходов и конструктивного исполнения продукции.
На отечественном рынке пластиковых коробов по-прежнему наиболее известна продукция французской компании Legrand. Она начала поставки этой продукции в Россию одной из первых, и ее марка стала здесь синонимом кабельного канала. Компания и сегодня предлагает одну из самых полных и удобных систем коробов DLP с широким выбором типоразмеров для монтажа СКС любой сложности, но ее продукция не относится к разряду дешевых решений, поэтому системные интеграторы и компании, специализирующиеся на проектных решениях, часто пытаются найти альтернативные продукты, оптимальные по соотношению цена/качество.
Некоторые поставщики дополняют зарубежную продукцию недорогой отечественной. Как отмечают в «Остек-Ком», изделия Thorsman и MITA способны удовлетворить любые требования, но довольно дороги, поэтому компания расширила продуктовую линейку кабель-каналами из ПВХ от «Экопласт», обладающими надлежащим качеством и привлекательной ценой. «Веритек Дистрибьюшн» и «Сонет Текнолоджис» в качестве поставщика кабельных каналов выбрали португальскую компанию Efapel, продукция которой, по их мнению, в своем ценовом сегменте выгодно отличается от конкурентов качеством пластика, большим выбором аксессуаров и полным соответствием распространенным в России стандартам. При сопоставимой с другими известными марками цене за короб, стоимость аксессуаров Efapel заметно ниже, поэтому и готовое решение оказывается дешевле. Среди наиболее интересных новинок — модульные короба Efapel серии 16 с возможностью установки модулей типа 45х45 непосредственно в короб, что помогает быстро расширять кабельные сети. Подобное удобство представляют и короба Consort от MITA, их жесткая конструкция с двойной боковой стенкой позволяет монтировать электроустановочные изделия прямо в короб, а затем устанавливать крышку нужной длины. Тем самым экономится и время, и деньги.
Серию DLP продолжает совершенствовать и Legrand. Новинка года — кабель-каналы с гибкой крышкой. Такое решение обеспечивает быстроту и удобство монтажа короба, поскольку крышку не нужно резать при обходе углов. Среди других решений, нацеленных на сокращение сроков работ, — заранее нарезанные отверстия в задней стенке, благодаря чему короб не нужно сверлить, и защелкивающиеся в кабель-канал суппорты, на которые крепятся лицевые панели и рамки. Для системы DLP разработаны розетки Mosaic с боковым подключением провода. Это экономит не только время, но и место, отведенное для прокладки кабеля. В системе INLINER от ДКС с этой целью применяют электроустановочные изделия ВИВА, где кабель присоединяется к боковой части розеток, а также «выдвинутые» наружу рамки. В результате высвобождается пространство внутри короба, что дает возможность использовать короб меньшего сечения.
В короба Legrand иногда устанавливают электротехнические изделия других производителей. Такой подход удешевляет решения, практически не ухудшая параметров качества и надежности. В частности, один из крупнейших в России производителей электроустановочных изделий компания WESSEN предлагает для установки в кабельные каналы продукцию серии Wessen45. Она состоит из универсальных модулей типоразмера 45х45 мм, включая информационные (Категории 5е), телефонные, силовые розетки, розетки для защищенного питания, одно- и двухклавишных выключателей и выключателей-переключателей (скоро к ним должны добавиться светорегуляторы). Все изделия серии монтируются в кабель-каналы с помощью суппорта. В системе INSTA от «Экопласт» применяются решения для крепления розеток евростандарта (60 мм) или модульных систем 45х45 от WESSEN, Legrand и SOLERA.
У испанской компании Quintela (входит в концерн Legrand) установочные короба EUROQUINT снабжены скобами для фиксации кабеля. От двух до четырех разделительных перегородок крепятся на рейку DIN на дне короба. Такой подход используют большинство производителей. В компании «Кросс Линк» отличительной особенностью EUROQUINT считают систему соединяемых в ряд суппортов, позволяющую организовать рабочие места на любое число пользователей. Для монтажа слаботочных розеток разных производителей предусмотрены адаптеры и переходники. В частности, как отмечают в компании «Тайле», при использовании переходников MMI и MMI/B со стандарта 47х47 на стандарт Mosaic (45х45) возможна установка в коробах Quintela любых модулей 45х45 для компьютерных и электрических розеток, что помогает подобрать экономичные варианты.
Американская компания Panduit применяет для установки коммуникационных и силовых розеток разных поставщиков лицевые панели, защелкивающиеся на основании короба или устанавливаемые на выносные коробки. Розетки могут монтироваться и непосредственно в канал. Конструкция короба обеспечивает защиту от несанкционированного доступа и возможность добавления, перемещения и замены элементов. Panduit предлагает системы кабель-каналов четырех цветов (белый, кремовый, бежевый и серый).
Специалисты DNA Trading в отношении кабельных каналов Panduit отмечают ограничение минимального радиуса изгиба кабеля, возможность использования для СКС других производителей, наличие лицевых панелей для модулей Keystone. У коробов малого сечения LD крышка соединяется с базой при помощи пластичного шарнира, поэтому при прокладке удерживаемый ею кабель не выпадает из короба, что облегчает монтаж. Panduit расширяет ассортимент принадлежностей и выпускает новые серии коробов. Среди новинок — потолочные короба. Интерес представляет и система коробов для офисных перегородок.
По мере создания все более сложных сетей, где кабеля требуется очень много, появляются короба увеличенного сечения. Если средние имеют сечение от 50х50 до 100х50 мм, то большие — от 50х170 до 50х254 мм. Quintela предлагает сдвоенные установочные каналы NETQUINT. Они изготавливаются как из ПВХ, так и из алюминия и допускают использование установочных механизмов Quintela, Legrand, BTicino и др.
Одна из новинок Efapel — расширяемые модульные короба со специальной конструкцией основания. С помощью соединителей несколько коробов стыкуется параллельно, что можно делать и при первоначальной установке, и в ходе эксплуатации в случае расширения сетей. Однако, по данным «Сонет Текнолоджис», популярность такого решения невелика, поскольку трассировка кабельного канала обычно рассчитывается с запасом.
MK Electric производит серию двухсекционных разноцветных коробов Prestige 2Com, обеспечивающих максимальную вместимость: углы фиксируют радиус изгиба кабеля, а сам короб, подобно системе Quintela, состоит из основы и двух крышек. У MK Electric имеется и серия трехсекционных коробов Prestige трех видов из ПВХ и алюминия. Legrand выпускает двухсекционные (65х195) и трехсекционные короба DLP (65x220) с гибкими крышками и внутренними разделителями по длине короба и в углах. Для удобства монтажа на коробах защелкиваются углы и отводы.
Недавно компания Trale приступила к поставкам новых кабельных каналов MK Electric, в большей степени адаптированных для нужд инсталляторов СКС и отвечающих эстетическим запросам требовательных заказчиков. Новая серия коробов Prestige Compact — усовершенствование серии Prestige Plus. Она включает в себя компактные и технологичные трехсекционные короба, специальные регулируемые углы, а монтаж кабеля упрощается благодаря использованию одинарного и двойного установочных мест без дна с двумя боковыми стенками, что позволяет обойтись без дополнительных отверстий. Специальный фиксатор дает возможность соблюсти радиус изгиба.
Гибкость и пластичность коробов из ПВХ облегчают монтаж на неровных поверхностях стен. Угловые соединения (внешние и внутренние) предусматривают различные варианты — от 60—80 до 120°. Регулируемые углы выпускают не только известные зарубежные поставщики, например Legrand и Thorsman, но и отечественные ДКС, «Экопласт» и «Рувинил». У Thorsman подобное решение предусмотрено и для коробов из алюминия.
Британская компания MITA предлагает двухсекционный короб Cableline Duo с возможностью прокладки заземления, а также парапетные короба серии CONSORT SOLO и AMBASADOR. В трехсекционном коробе SOLO съемные крышки имеются только у центральной секции, а перегородки можно снять, создав одно большое пространство. Короб изготовлен из высокопрочного пластика, углы крепятся на защелках. Декоративные короба MITA большого сечения известны на мировом рынке, однако пока мало востребованы в России из-за их высокой стоимости. В «Остек-Ком» отмечают исключительную белизну кабельных каналов MITA из ПВХ — по чистоте и устойчивости цвета эти изделия превосходят продукты многих известных марок.
MITA производит и специальные короба для оптического кабеля FOCUS с выступами на угловых соединениях для обеспечения большего радиуса изгиба кабеля. Для прокладки и распределения массивного пучка оптических кабелей разработан короб серии YS. Набор переходов, аксессуаров и фитингов обеспечивает быструю инсталляцию благодаря специальной системе соединения (clip together). В DNA Trading полагают, что спрос на короба для прокладки оптики в России будет расти. Не так давно новая серия подобных изделий появилась у Panduit, дополнившей серию FiberDuct системой FiberRunner с более широкими возможностями комплектации.
По данным «Кросс Линк», новое решение в этой области разрабатывает и Quintela.
Кабельные короба TWT из ПВХ предлагает российская компания LANMASTER. Это восемь видов коробов с сечением от 15х10 до 100х100 мм, стыкуемых друг с другом с помощью переходников. Они могут использоваться для разводки кабельных сетей по комнатам и рабочим местам или в качестве магистральных (серии больших сечений) и позиционируются как бюджетное решение с хорошим качеством. В компании считают, что эти типоразмеры практически полностью удовлетворяют требованиям рынка. Изделия других типоразмеров поставляются под заказ. В настоящее время в разработке находятся напольные и плинтусные короба, а также короба размера 100х50, повышенной прочности с возможностью установки нескольких разделительных перегородок. В ассортименте продукции TWT есть настенные розетки для установки модуля Mosaic 45x45, что позволяет использовать любые установочные изделия данного типа. Компанией рассматривается и возможность выпуска цветных коробов серого и коричневых цветов, а также расцветок «под дерево».
С зарубежными поставщиками кабель-каналов конкурируют ведущие российские производители, позиционирующие свои продукты как оптимальные по цене решения европейского качества. Например, в ДКС считают, что ее продукция не уступает решениям Legrand и Marshall Tufflex. В компании анализируют тенденции в электротехнической сфере и стараются соответствовать ожиданиям рынка.
Система INLINER от ДКС специально разработана для применения в составе СКС и позволяет монтировать телекоммуникационные розетки большинства поставщиков. Монтажные коробки устанавливаются простым защелкиванием, а далее без дополнительного крепежа в них размещают — опять-таки путем защелкивания — электроустановочные изделия. Экономия времени достигается и за счет широкого спектра аксессуаров. INLINER предусматривает перфорацию на коробе (его не нужно сверлить) и совместима с другими системами ДКС. По данным производителя, ее эксплуатационные характеристики сохраняются в течение длительного времени, а по цене она дешевле зарубежных аналогов.
В ответ на возрастающие требования рынка ДКС выпустила новую систему пластиковых коробов INLINER Front, разработанную и спроектированную с учетом пожеланий монтажников и российской специфики. Линейки продуктов компании развиваются в направлении улучшения функциональности, сервисного обслуживания, удобства использования и простоты инсталляции (в частности, за счет доработки и предложения дополнительных аксессуаров), снижения себестоимости, в том числе благодаря переводу производства большей части продукции в Россию. Сейчас компания импортирует около 20% изделий (в основном аксессуары).
«Экопласт» разрабатывает свои системные решения совместно с ведущими системными интеграторами и электромонтажными организациями, адаптируя их к условиям инсталляции слаботочной и силовой проводки. Ее серия коробов INSTA производится из российского ПВХ, а устойчивость к выцветанию обеспечивают специальные добавки, поставляемые немецкими партнерами. Кроме того, короба не подвержены горению. В «Экопласт» считают, что созданная модульная система хорошо адаптирована к требованиям российского рынка, где популярны модули 45х45, и отвечает евростандарту с посадочным местом 60 мм. Собирается она подобно конструктору, а монтаж розеток не отнимает много времени. Уже установленные розетки легко дополняются новыми или перемещаются. Система укомплектована различными аксессуарами (также российского производства), а замок позволяет многократно открывать и закрывать короб. Короб допускает размещение до трех внутренних разделителей. К концу этого года завод собирается выпустить два новых типоразмера изделий INSTA для малых офисов и муниципальных учреждений. Все компоненты систем каналов и труб «Экопласт» производятся в России.
[pagebreak]
Для открытой проводки в административных, жилых и промышленных помещениях компания выпускает систему пластиковых магистральных каналов TEC с сечением от 60х40 до 230х60 мм и повышенной ударопрочностью (8 Дж). Конструкция замка крышки выполнена в соответствии с немецким стандартом — в нахлест; фиксацию торцевых сторон обеспечивает кабельная скоба, которая одновременно служит распоркой и позволяет многократно открывать и закрывать короб без деформации крышки. Система TEC разработана для применения главным образом в промышленных помещениях или административных зданиях при прокладке кабелей на большие расстояния.
Системы кабель-каналов компании «Рувинил» белого и коричневого цвета изготавливаются на итальянском оборудовании с полным набором аксессуаров сочетаются с различными сериями розеток, устанавливаемых посредством суппорта. Компания готовится выпустить продукты новых типоразмеров. Производство кабельных каналов двух цветов наладил опытно-экспериментальный завод «Техпласт». Они изготавливается на импортном оборудовании с контролем качества; компоненты исходной смеси, кроме ПВХ, закупаются за рубежом.
МИНИ И МИКРО
Когда электропроводка и кабельная сеть уже смонтированы и нужно организовать еще одно рабочее место, подведя к нему телефонную и информационную сеть, часто используют мини- и микроканалы с откидывающейся или полностью открывающейся крышкой. Они позволяют организовать рабочие места там, куда невозможно подвести большой короб. Широкий выбор типоразмеров и полная гамма аксессуаров помогают подобрать наилучший вариант для конкретного случая. К мини-каналам (мини-коробам) обычно относят короба сечением от 8х10 до 40х60.
Интересное решение — микроканалы на самоклеющейся основе. Такую продукцию, предлагают, в частности, Quintela, MITA, MK Electric, Panduit, Aemsa, Niedax и ряд других компаний. Технологию производства мини-каналов с адгезивной пленкой 3М освоил «Экопласт». ДКС также планирует выпуск мини-каналов 10х10 с возможностью использования самоклеющейся ленты. Они легко и быстро монтируются там, где позволяет поверхность.
Мини-каналы отличаются более широким ассортиментом и могут снабжаться встроенными перегородками, однако название зависит от терминологии производителя. MITA предлагает еще и так называемые короба миди размером 50х30 и 50х50 мм. Кроме мини-коробов для телекоммуникаций и охранных сигнализаций стандартного и суперпрочного типа эта компания выпускает мини-канал-трансформер. Он поставляется в рулоне в виде плоской пластиковой ленты. Она легко прибивается или привинчивается к стене, а затем края отгибаются вверх и закрываются крышкой, образуя мини-короб.
Для компактной укладки кабельной проводки в малых сетях компания AESP предлагает в составе системы SignaMax Trunking System серию компактных односекционных коробов Mini, дополняющих полноразмерные серии Office и Solo. Розетки устанавливаются в наружные подрозетники. MK Electric выпускает мини-каналы серии Ega Mini белого и черного цветов. Электроустановочные изделия монтируются с помощью настенных подрозетников, стыкуемых с мини-коробом через адаптеры. Короба серии Ega Communication разработаны для прокладки кабелей малого диаметра (обычно для телефонии и сигнализации). Legrand выпускает мини-каналы (мини-плинтусы) трех цветов (серый, белый, коричневый); мини-плинтусы DLPlus можно монтировать на уровне пола, по стене или под потолком. Благодаря специальному держателю-мембране провод не выпадает из канала. Panduit производит три серии мини-каналов (LD, LDP и LDS) для слаботочной и силовой проводки, сопрягаемых с коробами T45, T70, TG70, Twin-70 и новой серией потолочных коробов.
Трансформируемые углы для мини-каналов Quintela дают возможность по-разному использовать один и тот же элемент. Например, L-образное соединение заменяет четыре детали, что упрощает подбор аксессуаров: путем нескольких простых манипуляций деталь собирается как элемент конструктора. По данным Quintela, такой подход сокращает время монтажа и стоимость проекта, а также позволяет решить многие проблемы несоответствия первоначального проекта с реальными задачами монтажа. Как и у большинства поставщиков, для стыковки с другими типами коробов имеются переходники и адаптеры. Возможность соединения всех серий коробов и мини-каналов INLINER предусматривает и ДКС. Система INLINER включает девять типоразмеров мини-каналов. У «Экопласт» микро- и мини-каналы для слаботочных сетей имеют отдельную или открывающуюся крышку и основу с отверстиями для крепления к стене. Недорогую серию мини-каналов выпускает предприятие «Электропласт». Это бюджетное решение для не очень сложной сети. Белые и коричневые мини-короба предлагает и «Рувинил».
КОРОБ НЕТРАДИЦИОННОЙ ОРИЕНТАЦИИ
Многие производители кабельных коробов выпускают специальные серии для жилых помещений, частных домов, школ и т. д. Они отличаются высоким качеством изготовления и привлекательным дизайном, отвечающим требованиям интерьера. Такие специализированные короба (плинтусные, карнизные, для установки на рабочий стол и проч.) нередко имеют нетрадиционную форму. Как отмечают в «Сонет Текнолоджис», «нетрадиционные» решения пользуются ограниченным спросом, но имеют свой четко выделенный сегмент. Это, например, крупные банки и офисы компаний, специализирующихся на дорогостоящих товарах и услугах, где престиж и дизайн интерьера играют большую роль.
У компании Efapel данная линейка представлена кабельным плинтусом, коробами для внутренней установки розеток, мини-каналами и напольными коробами. Разнообразные аксессуары позволяют устанавливать любые типы механизмов (розетки, выключатели и т. п. в терминологии компании). MK Electric производит короба-наличники и плинтусные короба Lincoln, а также оригинальные короба треугольного сечения Pinnacle, монтируемые в углах помещений и допускающие окрашивание. Для монтажа в качестве карниза (в стыке между стеной и потолком) MK Electric разработала серию коробов Ega Carnice, совместимых с Ega Mini и Lincoln. Похожая продукция треугольного сечения (DLP 3D 80x80) имеется и у Legrand.
Иногда заказчики предпочитают традиционному пластику короба из стали и алюминия. Они обеспечивают дополнительное экранирование, обладают высокой пожаростойкостью и могут окрашиваться. Например, Niedax выпускает такие офисные короба из стали с конца 70-х. Thorsman дополняет собственную систему пластиковых коробов металлическими (стальными и алюминиевыми) и даже деревянными. Marshall Tufflex, наряду с обширным спектром настенных, плинтусных и потолочных коробов из ПВХ, предлагает деревянные системы для организации кабельных трасс. Так, короб Real Wood Trunking способен удовлетворить самый взыскательный вкус. Он поставляется в прямоугольном (панельном) и плинтусном вариантах с совместимыми электрическими компонентами и изготавливается из дуба, бука, вишни, клена или ореха.
Требования к дизайну изделий заставляют производителей расширять спектр продукции за счет цветных изделий или коробов под окраску. Иногда кабельные каналы, короба или плинтусы выпускают в ограниченной цветовой гамме (двух-трех цветов), а под заказ производят окрашенные. По такому пути пошла компания Quintela.
При всем удобстве открытая проводка в настенных коробах не способствует уюту, поэтому в жилых помещениях нередко используются кабельные плинтусы. Они достаточно функциональны и позволяют организовать рабочие места любой сложности. Кабельный плинтус Quintela, включая цветную серию RODAQUINT для жилых помещений, снабжен перегородками, поставляется с аксессуарами и установочными коробками (такими же, как для мини-каналов). Серию кабельных плинтусов CARLTON выпускает MITA, а ее короба AMBASSADOR производятся в цветном варианте. Legrand предлагает декоративные плинтусы округлого сечения в четырех вариантах цветовой отделки. Трехсекционный короб с выносными розетками от Marshall Tufflex хорошо смотрится в городских квартирах и пригоден для прокладки телекоммуникаций и электрики внутри помещений, а короба Sovereign Plus Skirting Trunking этой же компании устанавливаются вместо плинтуса.
ДКС разработала для открытой проводки в административных и жилых зданиях систему EVOLUTION/ART, исполнение которой отличается особой эстетичностью. Она состоит из пластиковых каналов (настенных, напольных и плинтусных), соединительных и ответвительных аксессуаров, элементов крепления электроустановочных изделий, телефонных и компьютерных розеток и предлагается в трех цветовых решениях. Новую линию плинтусной системы с изменяемыми углами и модульными коробками для офисных помещений и квартир внедряет «Экопласт».
По данным «Остек-Ком», популярность приобретают напольные лючки и сервисные стойки, обладающие удобной функциональностью и привлекательным видом. Лючки и мини-колонны системы FrontLine предлагает, в частности, Thorsman, эту компанию на российском рынке представляет концерн Schneider Electric. Мини-колонны часто используются для организации рабочих мест в открытых интерьерах и больших
Очевидно, что администрирование работы сетевых служб подразумевает выполнение некоторых дополнительных процедур, направленных на обеспечение корректной работы всей системы. Вовсе не обязательно, чтобы эти функции выполнял один человек. Во многих организациях работа распределяется между несколькими администраторами. В любом случае необходим хотя бы один человек, который понимал бы все поставленные задачи и обеспечивал их выполнение другими людьми.
1. Введение
Идея создания сетей для передачи данных на большие и не очень большие расcтояния витала в воздухе с той самой поры, как человек впервые задумался над созданием телекоммуникационных устройств. В разное время и в различных ситуациях в качестве «устройств передачи информации» использовались почтовые голуби, бутылки с сообщениями «SOS» и наконец, люди — гонцы и нарочные.
Конечно, с тех пор прошло немало лет. В наши дни для того, чтобы передать от одного человека к другому приглашение на субботний футбольный матч, множество компьютеров обмениваются электронными сообщениями, используя для передачи информации массу проводов, оптических кабелей, микроволновых передатчиков и прочего.
Компьютерные сети сегодня представляют собой форму сотрудничества людей и компьютеров, обеспечивающего ускорение доставки и обработки информации.
Сеть обеспечивает обмен информацией и ее совместное использование (разделение). Компьютерные сети делятся на локальные (ЛВС, Local Area Network, LAN), представляющие собой группу близко расположенных, связанных между собой компьютеров, и распределенные (глобальные, Wide Area Networks, WAN)
Соединенные в сеть компьютеры обмениваются информацией и совместно используют периферийное оборудование и устройства хранения информации.
Очевидно, что администрирование работы сетевых служб подразумевает выполнение некоторых дополнительных процедур, направленных на обеспечение корректной работы всей системы. Вовсе не обязательно, чтобы эти функции выполнял один человек. Во многих организациях работа распределяется между несколькими администраторами. В любом случае необходим хотя бы один человек, который понимал бы все поставленные задачи и обеспечивал их выполнение другими людьми.
Основные задачи системного администратора
2.1. Подключение и удаление аппаратных средств
Любая компьютерная сеть состоит из трех основных компонентов:
1. Активное оборудование (концентраторы, коммутаторы, сетевые адаптеры и др.).
2. Коммуникационные каналы (кабели, разъемы).
3. Сетевая операционная система.
Естественно, все эти компоненты должны работать согласованно. Для корректной работы устройств в сети требуется их правильно инсталлировать и установить рабочие параметры.
В случае приобретения новых аппаратных средств или подключения уже имеющихся аппаратных средств к другой машине систему нужно сконфигурировать таким образом, чтобы она распознала и использовала эти средства. Изменение конфигурации может быть как простой задачей (например, подключение принтера), так и более сложной (подключение нового диска).
Для того чтобы принять правильное решение о модернизации системы, как системному администратору необходимо проанализировать производительность системы. Конечными узлами сети являются компьютеры, и от их производительности и надежности во многом зависят характеристики всей сети в целом. Именно компьютеры являются теми устройствами в сети, которые реализуют протоколы всех уровней, начиная от физического и канального (сетевой адаптер и драйвер) и заканчивая прикладным уровнем (приложения и сетевые службы операционной системы). Следовательно, оптимизация компьютера включает две достаточно независимые задачи:
* Во-первых, выбор таких параметров конфигурации программного и аппаратного обеспечения, которые обеспечивали бы оптимальные показатели производительности и надежности этого компьютера как отдельного элемента сети. Такими параметрами являются, например, тип используемого сетевого адаптера, размер файлового кэша, влияющий на скорость доступа к данным на сервере, производительность дисков и дискового контроллера, быстродействие центрального процессора и т.п.
* Во-вторых, выбор таких параметров протоколов, установленных в данном компьютере, которые гарантировали бы эффективную и надежную работу коммуникационных средств сети. Поскольку компьютеры порождают большую часть кадров и пакетов, циркулирующих в сети, то многие важные параметры протоколов формируются программным обеспечением компьютеров, например начальное значение поля TTL (Time-to-Live) протокола IP, размер окна неподтвержденных пакетов, размеры используемых кадров.
Тем не менее выполнение вычислительной задачи может потребовать участия в работе нескольких устройств. Каждое устройство использует определенные ресурсы для выполнения своей части работы. Плохая производительность обычно является следствием того, что одно из устройств требует намного больше ресурсов, чем остальные. Чтобы исправить положение, вы должны выявить устройство, которое расходует максимальную часть времени при выполнении задачи. Такое устройство называется узким местом (bottleneck). Например, если на выполнение задачи требуется 3 секунды и 1 секунда тратится на выполнение программы процессором, а 2 секунды — на чтение данных с диска, то диск является узким местом.
Определение узкого места — критический этап в процессе улучшения производительности. Замена процессора в предыдущем примере на другой, в два раза более быстродействующий процессор, уменьшит общее время выполнения задачи только до 2,5 секунд, но принципиально исправить ситуацию не сможет, поскольку узкое место устранено не будет. Если же мы приобретем диск и контроллер диска, которые будут в два раза быстрее прежних, то общее время уменьшится до 2 секунд.
Если вы всерьез недовольны быстродействием системы, исправить положение можно следующими способами:
* обеспечив систему достаточным ресурсом памяти. Объем памяти — один из основных факторов, влияющих на производительность;
* устранив некоторые проблемы, созданные как пользователями (одновременный запуск слишком большого количества заданий, неэффективные методы программирования, выполнение заданий с избыточным приоритетом, а также объемных заданий в часы пик), так и самой системой (квоты, учет времени центрального процессора);
* организовав жесткие диски и файловые системы так, чтобы сбалансировать нагрузку на них и таким образом максимально повысить пропускную способность средств ввода-вывода;
* осуществляя текущий контроль сети, чтобы избежать ее перегрузки и добиться низкого коэффициента ошибок. Сети UNIX/Linux можно контролировать с помощью программы netstat. Если речь идет об сетевых операционных системах семейства Windows, то вам поможет утилита PerformanceMonitor.
* откорректировав методику компоновки файловых систем в расчете на отдельные диски;
* выявив ситуации, когда система совершенно не соответствует предъявляемым к ней требованиям.
Эти меры перечислены в порядке убывания эффективности.
2.2. Резервное копирование
Процедура резервного копирования довольно утомительна и отнимает много времени, но выполнять ее необходимо. Ее можно автоматизировать, но системный администратор обязан убедиться в том, что резервное копирование выполнено правильно и в соответствии с графиком. Практически любая сетевая операционная система содержит механизмы для создания резервных копий или зеркального ведения дисков. Например, в UNIX-системах самое распространенное средство создания резервных копий и восстановления данных — команды dump и restore. В большинстве случаев информация, хранящаяся в компьютерах, стоит дороже самих компьютеров. Кроме того, ее гораздо труднее восстановить.
Существуют сотни весьма изобретательных способов потерять информацию. Ошибки в программном обеспечении зачастую портят файлы данных. Пользователи случайно удаляют то, над чем работали всю жизнь. Хакеры и раздраженные служащие стирают данные целыми дисками. Проблемы c аппаратными средствами и стихийные бедствия выводят их строя целые машинные залы. Поэтому ни одну систему нельзя эксплуатировать без резервных копий.
При правильном подходе создание резервных копий данных позволяет администратору восстанавливать файловую систему (или любую ее часть) в том состоянии, в котором она находилась на момент последнего снятия резервных копий. Резервное копирование должно производиться тщательно и строго по графику.
[pagebreak]
Поскольку многие виды неисправностей способны одновременно выводить из строя сразу несколько аппаратных средств, резервные копии следует записывать на съемные носители, CD-диски, ZIP-дискеты и т.д. Например, копирование содержимого одного диска на другой, конечно, лучше, чем ничего, но оно обеспечивает весьма незначительный уровень защиты от отказа контроллера.
2.3. Инсталляция новых программных средств
После приобретения нового программного обеспечения его нужно инсталлировать и протестировать. Если программы работают нормально, необходимо сообщить пользователям об их наличии и местонахождении.
Как правило, самой ответственной и самой сложной задачей системного администратора являются инсталляция и конфигурирование операционной системы. От правильности ваших действий зависит, будете ли вы играть в Quake и просматривать любимые сайты или вам придется бегать между пользователями системы и заниматься рутинной работой.
Во многих современных операционных системах разработчики идут по пути исключения многих непродуктивных параметров системы, с помощью которых администраторы способны влиять на производительность ОС. Вместо этого в операционную систему встраиваются адаптивные алгоритмы, которые определяют рациональные параметры системы во время ее работы. С помощью этих алгоритмов ОС может динамически оптимизировать свои параметры в отношении многих известных сетевых проблем, автоматически перераспределяя свои ресурсы и не привлекая к решению администратора.
Существуют различные критерии оптимизации производительности операционной системы. К числу наиболее распространенных критериев относятся:
* Наибольшая скорость выполнения определенного процесса.
* Максимальное число задач, выполняемых процессором за единицу времени. Эта характеристика также называется пропускной способностью компьютера. Она определяет качество разделения ресурсов между несколькими одновременно выполняемыми процессами.
* Освобождение максимального количества оперативной памяти для самых приоритетных процессов, например процесса, выполняющего функции файлового сервера, или же для увеличения размера файлового кэша.
* Освобождение наибольшего количества дисковой памяти.
Обычно при оптимизации производительности ОС администратор начинает этот процесс при заданном наборе ресурсов. В общем случае одновременно улучшить все критерии производительности невозможно. Например, если целью является увеличение доступной оперативной памяти, то администратор может увеличить размер страничного файла, но это приведет к уменьшению доступного дискового пространства.
После инсталляции и оптимальной настройки операционной системы начинается практически бесконечный процесс установки программного обеспечения. И здесь на первый план выходят проблемы совместимости различных программ, а если вы устанавливаете серверное программное обеспечение, — то еще и о безопасности.
Если вы начинающий системный администратор — устанавливайте на свой сервер более простые программы — в них меньше ошибок. В UNIX — избавьтесь от sendmail, поставьте другой SMTP-демон, внимательно анализируйте исходный код всех устанавливаемых на сервер программ, особенно если имя производителя вам ничего не говорит. В Windows NT не стоит использовать монстры типа Microsoft Exchange Server, и желательно избегать установки на сервер всевозможных freeware-программок.
2.4. Мониторинг системы
Существует великое множество обязательных для исполнения ежедневных операций. Например, проверка правильности функционирования электронной почты и телеконференций, просмотр регистрационных файлов на предмет наличия ранних признаков неисправностей, контроль за подключением локальных сетей и за наличием системных ресурсов.
Все многообразие средств, применяемых для мониторинга и анализа вычислительных сетей, можно разделить на несколько крупных классов:
Системы управления сетью (NetworkManagementSystems) — централизованные программные системы, которые собирают данные о состоянии узлов и коммуникационных устройств сети, а также данные о трафике, циркулирующем в сети. Эти системы не только осуществляют мониторинг и анализ сети, но и выполняют в автоматическом или полуавтоматическом режиме действия по управлению сетью — включение и отключение портов устройств, изменение параметров мостов адресных таблиц мостов, коммутаторов и маршрутизаторов и т.п. Примерами систем управления могут служить популярные системы HPOpenView, SunNetManager, IBMNetView.
Средства управления системой (SystemManagement). Средства управления системой часто выполняют функции, аналогичные функциям систем управления, но по отношению к другим объектам. В первом случае объектами управления являются программное и аппаратное обеспечение компьютеров сети, а во втором — коммуникационное оборудование. Вместе с тем некоторые функции этих двух видов систем управления могут дублироваться, например средства управления системой могут выполнять простейший анализ сетевого трафика.
Встроенные системы диагностики и управления (Embeddedsystems). Эти системы выполняются в виде программно-аппаратных модулей, устанавливаемых в коммуникационное оборудование, а также в виде программных модулей, встроенных в операционные системы. Они выполняют функции диагностики и управления единственным устройством, и в этом их основное отличие от централизованных систем управления. Примером средств этого класса может служить модуль управления концентратором Distrebuted 5000, реализующий функции автосегментации портов при обнаружении неисправностей, приписывания портов внутренним сегментам концентратора, и ряд других. Как правило, встроенные модули управления «по совместительству» выполняют роль SNMP-агентов, поставляющих данные о состоянии устройства для систем управления.
Анализаторы протоколов (Protocolanalyzers). Представляют собой программные или аппаратно-программные системы, которые ограничиваются, в отличие от систем управления, лишь функциями мониторинга и анализа трафика в сетях. Хороший анализатор протоколов может захватывать и декодировать пакеты большого количества протоколов, применяемых в сетях, — обычно несколько десятков. Анализаторы протоколов позволяют установить некоторые логические условия для захвата отдельных пакетов и выполняют полное декодирование захваченных пакетов, то есть показывают в удобной для специалиста форме вложенность друг в друга пакетов протоколов разных уровней с расшифровкой содержания отдельных полей каждого пакета.
Оборудование для диагностики и сертификации кабельных систем. Условно это оборудование можно поделить на четыре основные группы: сетевые мониторы, приборы для сертификации кабельных систем, кабельные сканеры и тестеры (мультиметры).
Экспертные системы. Этот вид систем аккумулирует человеческие знания о выявлении причин аномальной работы сетей и возможных способах приведения сети в работоспособное состояние. Экспертные системы часто реализуются в виде отдельных подсистем различных средств мониторинга и анализа сетей: систем управления сетями, анализаторов протоколов, сетевых анализаторов. Простейшим вариантом экспертной системы является контекстно-зависимая help-система. Более сложные экспертные системы представляют собой так называемые базы знаний, обладающие элементами искусственного интеллекта. Примером такой системы является экспертная система, встроенная в систему управления Spectrum компании Cabletron.
Многофункциональные устройства анализа и диагностики. В последние годы в связи с повсеместным распространением локальных сетей возникла необходимость разработки недорогих портативных приборов, совмещающих функции нескольких устройств: анализаторов протоколов, кабельных сканеров и даже ряд возможностей ПО сетевого управления.
Однако в отдельной сети Ethernet формальные процедуры управления сетью внедрять, как правило, не стоит. Достаточно провести тщательное тестирование сети после инсталляции и время от времени проверять уровень нагрузки. Сломается — почините.
Если у вас задействованы глобальная сеть или сложные ЛВС, рассмотрите вопрос приобретения выделенных станций управления сетью со специальным программным обеспечением.
2.5. Поиск неисправностей
Операционные системы и аппаратные средства, на которых они работают, время от времени выходят из строя. Задача администратора — диагностировать сбои в системе и в случае необходимости вызвать специалистов. Как правило, найти неисправность бывает намного сложнее, чем устранить ее.
Если вы обнаружили, что какой-то из узлов сети работает некорректно или вовсе отказывается работать, вам стоит обратить внимание на светодиодные индикаторы при включенном концентраторе и компьютерах, соединенных кабелями. Если они не горят, то очень вероятно, что причина заключается в следующем:
* Адаптеры некорректно сконфигурированы. Чаще всего при инсталляции сети проблем не возникает до тех пор, пока не будут подключены кабели, а иногда и до попытки получить доступ к сетевым ресурсам. Обычно источником проблемы является конфликт IRQ (два устройства используют одно прерывание). Такие ситуации не всегда легко обнаружить программными средствами, поэтому внимательно проверьте установки прерываний для всех устройств компьютера (звуковые платы, параллельные и последовательные порты, приводы CD-ROM, другие сетевые адаптеры и т.п). Иногда в определении доступного прерывания может помочь программа конфигурирования и/или диагностики адаптера. В некоторых случаях проблемы возникают при использовании на современных компьютерах с шиной PCI для сетевого адаптера IRQ 15, даже если это прерывание не используется.
* Адаптер не отвечает на запросы. Если после включения компьютера программа диагностики не может обнаружить адаптер или детектирует сбой при внутреннем тесте, попробуйте заменить адаптер или обратитесь к его производителям.
* Если проверка адаптеров и кабелей доказала их работоспособность, причиной возникновения проблем могут быть некорректные параметры драйвера сетевого адаптера. Проверьте корректность параметров и сам драйвер (он должен быть предназначен для используемого вами адаптера). Дополнительную информацию можно найти в описании адаптера.
* Концентраторы редко являются источником проблем, однако одной из наиболее распространенных проблем такого рода является отсутствие питания. Иногда неисправный сетевой адаптер может нарушить работу порта в концентраторе. Для проверки адаптера пользуйтесь диагностическими программами из комплекта адаптера.
[pagebreak]
2.6. Ведение локальной документации
Настраивая конфигурацию под конкретные требования, вы вскоре обнаружите, что она значительно отличается от той, что описана в документации (базовой конфигурации). Скорее всего, вы не вечно будете занимать место системного администратора и рано или поздно на ваше место придет другой человек. Известно, что бывших супругов и бывших системных администраторов редко вспоминают добрым словом. Но, чтобы уменьшить количество «камней в ваш огород» и, что важнее, оградить себя от звонков и вопросов с места бывшей работы, системный администратор должен документировать все инсталлируемые программные средства, не входящие в стандартный пакет поставки, документировать разводку кабелей, вести записи по обслуживанию всех аппаратных средств, регистрировать состояние резервных копий и документировать правила работы с системой.
Также следует учитывать, что система учета, ядро, различные утилиты — все эти программы выдают данные, которые регистрируются и в конце концов попадают на ваши диски. Эти данные тоже являются локальной документацией, характеризующей работу конкретной системы. Однако срок полезной службы большинства данных ограничен, поэтому их нужно обобщать, упаковывать и наконец, выбрасывать.
Процедура ведения файлов регистрации в любой операционной системе представляет собой набор процедур, которые повторяются через определенное время в одном и том же порядке. Следовательно, ее необходимо автоматизировать.
В UNIX-системах для этой цели используется процесс cron. А программа syslog может удачно применяется в качестве полной системы регистрации. Она отличается высокой гибкостью и позволяет сортировать сообщения системы по источникам и степени важности, а затем направлять их в разные пункты назначения: в файлы регистрации, на терминалы пользователей и даже на другие машины. Одной из самых ценных особенностей этой системы является ее способность централизовать регистрацию для сети.
Администраторы Windows NT могут для тех же целей использовать утилиту PerformanceMonitor, разработанную для фиксации активности компьютера в реальном масштабе времени. С ее помощью можно определить большую часть узких мест, снижающих производительность. Эта утилита включена в Windows NT Server и Windows NT Workstation.
PerformanceMonitor основан на ряде счетчиков, которые фиксируют такие характеристики, как число процессов, ожидающих завершения операции с диском, число сетевых пакетов, передаваемых в единицу времени, процент использования процессора и другие. PerformanceMonitor генерирует полезную информацию посредством следующих действий:
* наблюдения за производительностью в реальном времени и в исторической перспективе;
* определения тенденций во времени;
* определения узких мест;
* отслеживания последствий изменения конфигурации системы;
* наблюдения за локальным или удаленными компьютерами;
* предупреждения администратора о событиях, связанных с превышением некоторыми характеристиками заданных порогов.
2.7 Контроль защиты
Основной особенностью любой сетевой системы является то, что ее компоненты распределены в пространстве, а связь между ними осуществляется физически — при помощи сетевых соединений (коаксиальный кабель, витая пара, оптоволокно и т.д.) и программно — при помощи механизма сообщений. К сетевым системам наряду с обычными (локальными) атаками, осуществляемыми в пределах одной операционной системы, применим специфический вид атак, обусловленный распределенностью ресурсов и информации в пространстве, — так называемые сетевые (или удаленные) атаки. Они характеризуются тем, что, во-первых, злоумышленник может находиться за тысячи километров от атакуемого объекта, а во-вторых, нападению может подвергнуться не конкретный компьютер, а информация, передающаяся по сетевым соединениям.
Системный администратор должен реализовывать стратегию защиты и периодически проверять, не нарушена ли защита системы.
Естественно, абсолютная защита сети невозможна, однако задача каждого администратора — сделать все возможное для максимального ее улучшения. При построении системы защиты разумно придерживаться следующих принципов:
* Актуальность. Защищаться следует от реальных атак, а не от фантастических или же архаичных.
* Разумность затрат. Поскольку 100% защиты вы все равно не обеспечите, необходимо найти тот рубеж, за которым дальнейшие траты на повышение безопасности превысят стоимость той информации, которую может украсть злоумышленник.
Конечно же, действия, которые вы должны предпринять для защиты своего сервера очень зависят от того, какую операционную систему вы используете. Однако есть ряд простых правил, которые пригодятся любому системному администратору.
* Внимательно прочитайте руководство по администрированию системы, вы наверняка найдете там полезные советы, которыми захотите воспользоваться.
* Запустите программу автоматизированного контроля вашего хоста — типа Internet Scanner. Система Internet Scanner может быть запущена на одной из платформ (Windows NT, Windows 2000, HP/UX, AIX, Linux, Sun OS, Solaris). Используется она для анализа защищенности систем.
* Загляните на серверы CERT (http://www.cert.org/) или CIAC (http://ciac.llnl.gov/) и внимательно прочитайте относящиеся к вашей ОС бюллетени за последнее время. Установите все рекомендуемые заплатки и сконфигурируйте систему, как полагается.
* Правильно настройте (или установите) межсетевой экран. Поставьте монитор всех входящих соединений (например, tcp_wrapper).
* Запустите последний взломщик паролей. Здесь у вас большое преимущество перед хакерами — у вас уже есть файл с хэшированными паролями.
* Проверьте настройки основных Интернет-служб (http, ftp). Максимально используйте анонимный доступ, чтобы предотвратить передачу паролей по сети в открытом виде. При необходимости разграничения доступа используйте стойкие протоколы типа SSL.
* У всех остальных сетевых служб также по возможности используйте аутентификацию, не включающую передачу пароля открытым текстом.
* Выбросьте некоторые малоиспользуемые службы. Особенно это касается администраторов UNIX-серверов: давно не используемый, но существующий на вашем сервере сервис типа finger, talk, rpc может стать той самой «дырой» в системе безопасности, через которую сможет проникнуть (или уже проник) хакер.
* Поставьте proxy-сервер для дополнительной аутентификации извне, а также для скрытия адресов и топологии внутренней подсети.
* Поставьте защищенную версию UNIX или другой операционной системы.
2.8. Подключение и удаление пользователей. Оказание им помощи
Создание бюджетов для новых пользователей и удаление бюджетов тех пользователей, которые уже не работают, — обязанность системного администратора. Процесс включения и удаления пользователей можно автоматизировать, но некоторые решения, от которых зависит включение нового пользователя, должен принимать администратор.
Очень часто сотрудники предприятия оказываются самым слабым звеном в системе его безопасности, поэтому системному администратору следует уделять больше внимания работе с пользователями системы. Иначе простой листочек бумаги с паролем, лежащий на рабочем месте забывчивой сотрудницы, сделает бесполезной выверенную настройку вашего межсетевого экрана.
Для усиления безопасности компьютерных систем компании разумными могут считаться следующие шаги:
* Привлечение внимания людей к вопросам безопасности.
* Осознание сотрудниками всей серьезности проблемы и принятие в организации политики безопасности.
* Изучение и внедрение необходимых методов и действий для повышения защиты информационного обеспечения.
Если вы работаете в крупной (более 100 человек) организации, то для определения уровня ее защищенности можно провести тест на проникновение. Этот метод позволяет выявить недостатки безопасности с точки зрения постороннего человека. Он позволяет протестировать схему действий, которая раскрывает и предотвращает внутренние и внешние попытки проникновения и сообщает о них.
Тест должен разрешить два основных вопроса:
* Все ли пункты политики безопасности достигают своих целей и используются так, как было задумано.
* Существует ли что-либо, не отраженное в политике безопасности, что может быть использовано для достижения злоумышленником своих целей.
Все попытки должны контролироваться обеими сторонами — как взломщиком, так и «клиентом». Это поможет протестировать систему гораздо более эффективно. Необходимо также свести к минимуму количество людей, знающих о проведении эксперимента.
Требуется создать и разработать различные варианты политики безопасности, определить правила корректного использования телефонов компьютеров и другой техники. Необходимо учитывать и неосведомленность в области безопасности, поскольку любые средства технического контроля могут быть использованы ненадлежащим образом. В итоге тестирование системы безопасности должно обеспечить вам защиту от проникновения.
3. Почему давят на системного администратора
Сети имеют тенденцию разрастаться, следовательно, вы будете вынуждены тратить все больше и больше времени на выполнение функций администратора. Вскоре окажется, что вы — единственный человек в своей организации, который знает, как решить целый ряд важнейших проблем.
Поскольку круг обязанностей системного администратора четко ограничить нельзя, от вас, скорее всего, потребуют, чтобы вы были не только штатным администратором, но и штатным инженером, писателем, а также секретарем.
Вместо этого мы предлагаем вам следующее: ведите работу на должном уровне, параллельно регистрируя время, затрачиваемое на системное администрирование. Собирайте доказательства, которые могут вам пригодиться, когда вы попросите руководство взять в штат еще одного администратора или освободить вас от «лишних» обязанностей.
С другой стороны, вы можете обнаружить, что системное администрирование вам нравится. В этом случае проблем с поиском работы у вас не будет.
Можно сказать, что современная корпорация буквально "пропитана" данными. Они повсюду и, более того, очень часто одни и те же данные могут находиться в нескольких местах. Корпорация должна иметь возможность идентифицировать источник, происхождение, семантику и пути доступа к данным. Метаданные или, как их обычно называют, "данные о данных", являются ключом для получения этой информации. Но, как это ни удивительно, у большинства корпораций нет отчетливой стратегии относительно метаданных. Различные подразделения организации используют разные наборы инструментов для поддержки своих данных.
Каждому такому набору соответствуют определенные метаданные. Поэтому картина, типичная для многих корпораций, - это так называемые "острова метаданных", т.е. некоторые объемы информации, которые невозможно связать друг с другом. Для решения этой проблемы некоторые организации начинают крупные проекты по интеграции метаданных, тратя на это значительные средства и время. Но, к сожалению, в большинстве проектов отсутствует структурный подход, поэтому временные и финансовые затраты не окупаются.
В предлагаемой статье обсуждаются подходы к управлению метаданными, в том числе то, какие метаданные необходимо собирать, как их можно моделировать, как создать требуемое архитектурное решение и как обеспечить простоту поддержки метаданных в долгосрочной перспективе. Большинство этих подходов уже существуют в той или иной форме в различных организациях. В данной статье сделана попытка собрать и обобщить имеющийся опыт.
Классификация метаданных
На самом высоком уровне метаданные могут быть разделены на две категории:
Элементы общих метаданных должны иметь совместные (непротиворечивые) определения и семантику в масштабах всей корпорации. Например, определение понятия "клиент" должно быть единым для всей компании.
Метаданные могут быть классифицированы и по другим параметрам:
Метаданные бизнеса включают определения объектов, относящихся к корпоративным пользователям, логическим картам данных и словарям Хранилищ данных. Технические метаданные включают данные о физических объектах: названия таблиц и столбцов, ограничения и правила физического преобразования между различными зонами. В метаданных процессов отражается статистическая информация о различных процессах: статистика загруженности, информация о календарном планировании и обработка исключений.
Создание решения для управления метаданными
Для создания успешного решения по управлению корпоративными метаданными автор рекомендует следовать определенной последовательности шагов:
1. собрать все требования, предъявляемые к метаданным;
2. выбрать соответствующую модель метаданных;
3. определить общие подходы к архитектуре;
4. внедрить выбранное решение и осуществлять его поддержку.
Сбор требований, предъявляемых к метаданным
Определение требований, предъявляемых к метаданным, может оказаться непростой задачей. Ключевые стороны, которым могут быть нужны метаданные, разнообразны и пространственно разобщены. Это могут быть как конечные пользователи или аналитики, так и приложения или наборы инструментов. Процесс сбора стандартных требований не должен слишком расплываться. Автор предлагает следующий подход, учитывающий специфическую природу метаданных:
* определение ключевых сторон для каждого элемента метаданных;
* отнесение каждого элемента метаданных к определенной категории: метаданным бизнеса, техническим или метаданным процессов;
* отнесение каждого элемента метаданных к категории общих или уникальных на основе их использования в тех или иных процессах.
Следующий шаг - идентификация источника элемента метаданных. Обычно они называются "официальными метаданными" или "метаданными записи"1. Метаданные записи указывают на официальную версию определенного элемента для какого-либо события, в котором может быть несколько источников одних и тех же данных. Для того чтобы назвать определенный элемент метаданных официальным, важно понимать различные процессы, которые могут привести к созданию этого элемента. Эта информация помогает определить официальный источник метаданных. Например, компания розничной торговли создает корпоративное Хранилище данных, при этом элементы, содержащие информацию о клиентах, появляются в нескольких местах, таких как Хранилище данных о потребителях, система управления отношениями с клиентами (Customer Relationship Management, сокр. CRM) и система сбыта. При этом важно проводить анализ надежности и полноты каждого источника и оценивать, какие именно определения могут использоваться в качестве официальной версии. В данном случае уже может существовать Хранилище данных о потребителях, определяющее соответствующее измерение, поэтому можно будет считать словарь данных этого Хранилища официальными метаданными записей. После того как этот процесс будет закончен для всех элементов метаданных, можно будет сказать, что организация требований к метаданным завершена.
Выбор метамодели
Следующий шаг после формализации требований к метаданным - создание модели. Моделирование метаданных важно, поскольку оно может стать элементом, который используется во всей корпорации. Существует несколько способов выбора модели метаданных:
* создание специальной модели данных для работы с метаданными;
* использование имеющихся стандартных моделей;
* оснащение доступного репозитория метаданных инструментами, позволяющими использовать его как источник интеграции.
Для создания специальной модели метаданных важно иметь корректные определения элементов, их атрибутов и связей с другими элементами. Такая модель может быть объектно-ориентированной или моделью типа объект-отношение. Что касается стандартных моделей, то тут существует два варианта: модель открытой информации (Open Information Model, сокр. OIM) и общая метамодель Хранилища данных (Common Warehouse Meta-Model, сокр. CWM). CWM описывает обмен метаданными между Хранилищами данных, средствами Business Intelligence и управления знаниями и портальными технологиями. Согласно компании Meta Data Coalition, OIM - это набор спецификаций метаданных для облегчения их совместного и многократного использования в области разработки приложений и Хранилищ данных. OIM описывается с помощью универсального языка моделирования (Unified Modeling Language, сокр. UML) и организуется по предметным областям, которые могут быть легко использованы и при необходимости расширены. Эта модель данных основана на отраслевых стандартах, таких как UML, XML и SQL.
Выбор подходящей метамодели является непростой задачей. Хотя специальные модели бывают гораздо более гибкими, создание надежной модели на корпоративном уровне и ее долгосрочная поддержка могут оказаться довольно обременительными. Для решения такой задачи нужен хорошо продуманный план. С другой стороны, стандартные модели довольно широкие: они охватывают большинство требований, предъявляемых на корпоративном уровне. Но настройка таких моделей под специфические нужды корпорации может оказаться проблематичной. Для тех корпораций, где существуют наборы инструментов и связанные с ними метаданные, хорошим решением будет использование метамоделей от любого поставщика. При этом, безусловно, понадобятся существенные интеграционные усилия. С другой стороны, если корпорация только начинает работать с метаданными и у нее нет несовместимых наборов инструментов, то хорошим решением может быть создание собственной специальной метамодели.
После завершения моделирования метаданных важно определить репозиторий для хранения данных. Это может быть реляционное или объектно-ориентированное Хранилище.
[pagebreak]
Определение архитектуры высокого уровня
Для внедрения решений по работе с метаданными существует целый ряд архитектурных возможностей. Одно из решений - централизованный репозиторий, где хранятся все метаданные.
Основные элементы метаданных, которые будут храниться в таком центральном репозитории, - это метаданные приложений, систем управления базами данных, бизнеса и метаданные, связанные с различными процессами. Создание и модификация элементов метаданных должны осуществляться с помощью общего интерфейса. Для такого решения можно разработать специальную метамодель или использовать одну из стандартных. Данная архитектура имеет несколько преимуществ:
* сравнительно простая поддержка метаданных;
* упрощенные процедуры взаимодействия между компонентами;
* простые процедуры подготовки отчетности.
Некоторые корпорации пытаются создавать очень небольшие решения для работы с метаданными. Это означает, что каждое подразделение организации конструирует свое собственное решение.
Для облегчения обмена метаданными в качестве основы для их передачи используется XML. Каждое приложение, система управления базами данных или инструмент вступает в контакт с репозиторием с помощью XML. Парсер репозитория преобразует формат XML в формат метамодели и обновляет содержимое репозитория.
Наконец, третье архитектурное решение известно под названием распределенной архитектуры. Это тот случай, когда корпорация уже потратила значительное количество ресурсов на создание локального решения для работы с метаданными, а интеграция в масштабах всей корпорации оказывается слишком дорогостоящей. В результате локальное решение продолжает существовать, а в тех случаях, когда это оправдано и выгодно, происходит совместное пользование метаданными из нескольких источников.
Внедрение и поддержка решения для работы с метаданными
После завершения разработки архитектуры и выбора метамоделей можно приступать к внедрению решения. При этом надо иметь в виду следующее:
1. природу репозитория метаданных (реляционная база данных, система файлов, объектно-ориентированная база данных или репозиторий XML);
2. вопросы безопасности репозитория метаданных (кто управляет репозиторием; кто имеет право читать информацию репозитория или обновлять ее);
3. механизмы создания, чтения и добавления компонентов метаданных;
4. инфраструктуру отчетности для метаданных.
После разработки плана и обеспечения соответствующих инструментальных средств можно приступать к внедрению решения для работы с метаданными.
Но собственно внедрение еще не обеспечивает решения всех проблем. Важно обеспечить достаточно продолжительное функционирование созданной системы и ее соответствующее обслуживание. Одно из основных требований при этом - правильное распределение ролей и ответственности в корпорации.
После распределения ролей и ответственности необходимо создать процесс, определяющий жизненный цикл метаданных. Этот цикл задает следующие параметры: кто создает метаданные, кто использует их компоненты и кто отвечает за поддержку этих компонентов. Один из главных критериев долгосрочного успеха решения для работы с метаданными - это его расширяемость. Архитектура должна позволять легко добавлять новые требования к метаданным. Для этого необходим специальный процесс, обеспечивающий добавление новой информации о метаданных. При этом необходимо получить ответы на следующие важные вопросы:
* нужно ли хранить новые метаданные в общем репозитории (если таковой имеется);
* каковы методы доступа к элементам этих метаданных (только чтение или чтение и запись);
* являются ли эти метаданные уникальными или будут использоваться несколькими приложениями.
На основе ответов на эти вопросы принимаются соответствующие решения о хранении компонентов новых метаданных.
Пример решения для работы с метаданными
В качестве примера автор приводит розничную компанию, имеющую несколько Хранилищ данных для обеспечения различных видов бизнес-отчетности. Компания имеет Хранилище для составления отчетов по каналам поставок, Хранилище для CRM, Хранилище для данных о продажах и отдельное Хранилище для финансовой информации. Компания хочет создать единое корпоративное Хранилище данных с помощью консолидации информации в масштабах всей организации. Это хранилище будет центральным репозиторием для всех корпоративных данных, а отдельные подразделения будут создавать себе витрины данных на его основе. В процессе реализации этого проекта пришло понимание того, что также необходимо выработать стратегию консолидации метаданных.
Для этого можно использовать подход, описанный выше, который включает четыре основных действия. Первое действие - определение требований к метаданным. Этот процесс включает идентификацию заинтересованных сторон и классификацию метаданных. Поскольку это проект консолидации Хранилища данных, то типы метаданных будут достаточно простыми. Основные элементы - это некоторые корпоративные измерения, которые должны быть определены, и корпоративные факты. Оба этих элемента связаны с одними и теми же метаданными бизнеса. Следующий набор метаданных - это список таблиц и граф, использующих данные измерения и факты, т.е. это технические метаданные. Наконец, для документирования процессов ETL (extraction, transformation, loading - извлечение, преобразование и загрузка) и создания витрин данных необходима информация о тех шагах, из которых они состоят, т.е. это метаданные о процессах.
Для этих метаданных заинтересованными сторонами являются те, кто занимаются моделированием данных, а также разработчики ETL, витрин данных и отчетов. Помимо этого, такие метаданные нужны для работы с инструментами ETL и отчетности. Для консолидации метаданных требуются все элементы метаданных, их классификация, а также информация о том, кто и какие именно данные использует.
Следующий шаг - моделирование решения для работы с метаданными. В организации было принято решение создать свою метамодель, которая бы учитывала требования к модели данных, процессу ETL, витринам данных и инструментам отчетности.
После создания метамодели необходимо определить общую архитектуру. Было решено создать единый репозиторий для метаданных и определить процесс, который обеспечит его наполнение из всех систем. Например, после определения измерений и фактов метаданные экспортируются из инструментов моделирования данных и сохраняются в репозитории. Информация о процессах ETL создается вручную и также сохраняется в репозитории. Репозиторий инструментов отчетности наполняется с помощью заранее определенной технологии. Для выполнения требований отчетности, предъявляемых к метаданным, была создана система отчетности на основе интернета, которая создает запросы к репозиторию для получения информации.
После создания такого решения консолидация метаданных может считаться практически законченной. Следующая проблема - обеспечение долговременной работы данного решения. Например, как должен обрабатываться новый элемент или измерение, созданные в модели данных? Как вносится информация о новом процессе ETL или новом отчете? Все это определяется процессом поддержки метаданных. Для моделей данных периодически используется процесс синхронизации репозиториев инструментов и метаданных. Для ETL и отчетности существуют аналогичные процессы.
Заключение
Важность метаданных для корпораций уже общепризнанна. При работе с метаданными очень важно предварительно выработать соответствующую стратегию. Также важно понимать, что метаданные не являются универсальным средством для управления данными. Это мощное средство, которое может существенно улучшить качество анализа данных в корпорации, тем самым способствуя росту эффективности ее работы. При этом важно не распыляться в поисках абсолютно совершенного решения, а создавать решение, наиболее оптимальное для конкретного бизнеса.
Волоконная оптика дороже кабелей с медными жилами, но с каждым годом спрос на нее растет. Отчасти это происходит из-за того, что технология монтажа стала намного проще, а стоимость необходимого инструментария постоянно снижается. Без преувеличения можно сказать, что оптическое волокно получило массовое распространение в телекоммуникациях.
Одно из серьезных ограничений в использовании волоконно-оптических кабелей — необходимость особого, аккуратного отношения к их укладке, разделке, соединению и оконцовке, т. е. абсолютно ко всем элементам технического процесса монтажа кабельной линии. Ошибки обходятся весьма дорого — от замены испорченного соединителя до установки соединительной муфты на месте поврежденного кабеля. Тем не менее оптическое волокно активно вытесняет медь не только на магистральных участках сетей связи общего пользования, где почти все новые линии строятся на основе волоконно-оптических линий связи, но даже и на магистральных (вертикальных) участках СКС.
Некоторые особенности работы с волоконно-оптическими кабелями (ВОК) рассматривались в предыдущих номерах, в разделах, посвященных вопросам укладки кабеля. В основном они сводились к набору специальных приемов для захвата кабеля при втягивании в канал, чтобы обеспечить равномерность приложенного тягового усилия, ограничить его максимально допустимым уровнем, а также строго выдержать норму минимального радиуса изгиба. Для успешного выполнения этих задач создан целый набор монтажных приспособлений: кабельные чулки и захваты, электрические и гидравлические тяговые лебедки с электронным управлением и ограничителем усилия, а также защитные устройства, смазка и т. п. «мелочи». Теперь настал черед уделить внимание инструментарию для всех прочих операций.
Основные трудности, которые приходится преодолевать при резке волоконно-оптических кабелей, — броневой покров (стальная лента или стальная проволока) и внутренние силовые элементы (стальной трос). Поскольку оптическое волокно чувствительно к осевым и радиальным деформациям, то волоконно-оптические кабели имеют их в большем количестве, чем медножильные. Это касается не только кабелей для внешней прокладки, но и тех, что предназначены для укладки в зданиях. Правда, последние не всегда содержат силовой элемент из стали. Бронирование, если таковое имеется, осуществляется тонкой стальной или алюминиевой гофрированной фольгой. А так называемые мини-кабели, которые используются для изготовления коммутационных шнуров и выполнения горизонтальных участков СКС, представляют собой одиночное или двойное оптическое волокно в буферном покрытии с одним или двумя защитными слоями полимерной изоляции. Так или иначе, но для большинства волоконно-оптических кабелей недорогие кабелерезы для медных кабелей непригодны. Для них требуется более дорогой инструмент, лезвия которого рассчитаны на резку стали. Впрочем, такой же инструмент необходим и для резки бронированных медножильных.
Первые этапы разделки волоконно-оптических кабелей (удаление верхнего слоя защитных и броневых покровов) выполняются теми же инструментами, что и разделка медножильных кабелей. Никаких особенностей здесь нет — полимерная изоляция и фольга вскрываются резаками, а стальная проволока выкусывается бокорезами. Однако без применения нескольких специальных инструментов не обойтись. Во-первых, это ножницы с керамическими лезвиями или кусачки для удаления нитей из кевлара, которые часто применяются для упрочнения кабеля. Обычные ножницы эти тонкие, гибкие и прочные волокна не режут, а выдавливают или гнут. Во-вторых, это приспособление для снятия полимерной изоляции с мини-кабелей. При выполнении работы не универсальным, а специализированным инструментом риск повреждения оптического волокна существенно снижается, так как его рабочие поверхности имеют фиксированную настройку.
Стоит отметить, что важно хорошо знать конструкцию разделываемого кабеля, так как последний слой защитного покрытия кабеля или изоляцию модулей (групповых элементов, содержащих несколько волокон) нужно удалять с особенной аккуратностью. После удаления всех защитных слоев открывается доступ к одиночным оптическим волокнам в буферном покрытии. На этом сходство заканчивается, и далее работать с волоконно-оптическими кабелями можно только специальным инструментом.
Разделка кабеля может выполняться для оконцовки (монтажа разъемных соединителей) или сращивания (сварки или монтажа неразъемных соединителей).
Разъемные соединители монтируются на мини-кабели или на оптическое волокно в буферном покрытии; для оптического волокна их существует великое множество (ST, SC, SMA, FC, LC, FJ, MT и др.). Некоторые из них выпускаются еще и в нескольких разновидностях, предназначенных для оконцовки различного оптического волокна (многомодового, одномодового, разного диаметра, с различной толщиной оболочки) и отличающихся некоторыми деталями конструкции и технологии монтажа. Такое разнообразие не слишком осложняет работу монтажников. Грамотная техническая политика позволяет резко уменьшить число разновидностей кабелей и соединителей для волоконно-оптических линий связи. Иногда ограничения вытекают из особенностей применяемого оборудования, иногда — оформляются в виде внутреннего стандарта организации. Подобные ограничения и правила просто необходимы, если помнить, что существенная часть достаточно дорогого инструмента и приспособлений предназначена только для оптического волокна или соединителей определенного вида. А в силу высочайших требований к точности обработки и монтажа использование непредусмотренного технологией инструментария почти всегда заканчивается браком в работе. В значительной степени результат зависит и от качества расходных материалов: клеев, растворителей, безворсовых салфеток, шлифовальной и полировальной бумаги.
Итак, после разделки кабеля по шаблону до оптического волокна в буферном покрытии наступает наиболее ответственный момент. С помощью особого инструмента, рассчитанного на оптическое волокно определенного размера, с него удаляют буферное покрытие. Основная проблема — не повредить при этом само волокно, так как при небольшом задире или сколе всю работу придется выполнять еще раз. Поскольку внешне инструменты для этой операции выглядят абсолютно одинаково, производители используют для их маркировки различные цвета.
Затем производится сборка соединителя. Оптическое волокно продевается сквозь отверстие наконечника соединителя и фиксируется с помощью различных видов клея: термоклея (становится пластичным при нагреве), эпоксидного компаунда (полимеризуется благодаря реакции между двумя смешанными компонентами), универсального клея (твердеет после испарения растворителя) или клея с отвердением под воздействием ультрафиолета. Отверстие заполняется клеем с помощью шприца (исключение составляет термоклей, который наносится в процессе производства разъемов). Однокомпонентный клей поставляется уже расфасованным в шприцы, а двухкомпонентный — в отдельной таре. Полученная сборка нагревается в печке (для ускорения процесса отвердения эпоксидного компаунда или разогрева термоклея) или облучается ультрафиолетом.
После склеивания излишки оптического волокна удаляются, а торец сердечника шлифуется и полируется. Для удаления излишков на поверхности волокна резаком (скрайбером) наносится царапина. Резаки могут иметь различный профиль: лезвие (металл, карбид или керамика) либо конус (алмаз или корунд). После нанесения риски волокно отламывается.
Дальнейшая обработка торца выполняется на мате или стекле на нескольких листах наждачной бумаги с убывающим размером абразивного элемента (шлифовальная, полировальная, доводочная). Для фиксации сердечника строго перпендикулярно к поверхности наждака применяется оправка, в которую устанавливается обрабатываемый соединитель. При больших объемах эта операция может быть автоматизирована за счет использования шлифовальной машины.
Качество обработки проверяется с помощью микроскопа. Выпускаемые модели контрольных микроскопов отличаются степенью увеличения и конструкцией. Особенно удобен защитный фильтр для глаз — для блокирования излучения на случай, если оно окажется в подключенном волокне.
Все инструменты для работы с волоконно-оптическими кабелями можно приобрести по отдельности, но чаще всего они поставляются в специально составленных комплектах, куда входит не только инструмент, но и вся необходимая для проведения работ тара, дозаторы, распределители, расходные материалы и защитные средства. Для удобства хранения все это упаковано в органайзер (сумку или чемодан). Восполнение расходных материалов также осуществляется подобранными комплектами.
В зависимости от поставленных задач предлагается как скромный набор минимально необходимых для обработки одного типа оптического волокна средств, так и полный набор для работы с любым оптическим волокном. А вот комплектов, универсальных с точки зрения обрабатываемых разъемных соединителей, очень мало. Объясняется это просто — часть инструмента для их монтажа поставляется только производителями самих соединителей.
Несколько слов тем, кому придется выполнять работы с волоконно-оптическими кабелями на улице. Для защиты от пыли и осадков, а также создания необходимого микроклимата используются теплоизолированные палатки и боксы. Первые легко переносятся и собираются в любом месте; вторые устанавливаются на шасси автомобиля и прицепа.