В данной книге рассматривается разработка и реализация практически применимых сетевых приложений с использованием объектно- ориентированных средств языка программирования Perl. Приведены сведения, необходимые для первого знакомства с объектами Perl. В книге представлены сетевые средства связи протокола TCP/IP, рассмотрены лучшие модули независимых разработчиков, которые внесены в Полный сетевой архив Perl (CPAN), описаны возможности проектирования систем типа клиент/сервер на основе протокола TCP и новые области применения протокола UDP. Книга предназначена для программистов Perl начального и среднего уровня.
В данной статье приведены общие сведения об организации работы системы 1С:Предприятие с распределенной информационной базой (ИБ). Также описаны внутренние особенности организации механизма работы с распределенными данными для того, чтобы специалисты, осуществляющие конфигурирование и администрирование распределенных систем могли лучшее понимать выполняемые системой действия. Данная информация может также быть использована для оценки дополнительных затрат ресурсов системы, расходуемых на поддержание распределенной информационной базы.
Так как средства системы 1С:Предприятие для работы с распределенными информационными базами поставляются отдельно, сначала кратко остановимся на назначении и основных принципах организации работы системы 1С:Предприятие с территориально удаленными подразделениями.
Назначение и основные принципы
В тех случаях, когда предприятие представляет собой территориально распределенную структуру, зачастую сохраняется потребность в ведении единой системы учета. То есть необходимо иметь возможность работать в едином пространстве документов, получать отчеты, отражающие состояние дел как в территориально удаленных подразделениях предприятия, так и на предприятии в целом и т.п. При этом не всегда имеется возможность организовать работу всех подразделений с единой информационной базой в режиме он-лайн.
Для решения подобных задач предназначена компонента "Управление распределенными ИБ". С помощью указанной компоненты можно организовать двухуровневую структуру информационных баз (ИБ) системы 1С:Предприятие, состоящую из одной центральной и нескольких периферийных информационных баз, работающих с единой конфигурацией. При этом система будет стремиться поддерживать одинаковое состояние объектов данных во всех узлах распределенной ИБ.
Содержимое информационных баз синхронизируется путем переноса измененных объектов данных между каждой из периферийных и центральной ИБ. Для переноса данных используются так называемые файлы переноса данных. Перенос изменений выполняется только между центральной и периферийными ИБ. Перенос данных непосредственно между периферийными ИБ невозможен. Поэтому изменения данных, произведенные в одном из периферийных узлов распределенной ИБ попадают в другие периферийные узлы только через центральную ИБ.
В простейшем случае (по умолчанию) областью распространения изменений для всех объектов является вся распределенная ИБ. Таким образом, в случае если в течение какого-то времени изменения данных системы не будут производиться, и, в то же время, будут произведены все необходимые действия по обмену изменениями между узлами распределенной ИБ, то все узлы будут содержать абсолютно одинаковые данные.
В некоторых случаях может возникнуть необходимость в том, чтобы объекты того или иного типа никогда не попадали в те или иные узлы распределенной ИБ или никогда не покидали места своего создания. Для обеспечения такой возможности предназначен механизм настройки параметров миграции объектов. С его помощью можно ограничить распространение изменений объектов того или иного вида. Кроме того, в версии 7.7 системы 1С:Предприятие можно создавать периферийные ИБ, которые будут принимать информацию о измененных объектах из центральной ИБ, но не будут передавать изменения, сделанные в них самих.
Механизмы распространения изменений объектов работают полностью автоматически. Разработчик конфигурации лишен возможности вмешиваться в функционирование этих механизмов. Для того, чтобы механизмы распределенной ИБ начали работать, не нужно производить никаких специальных действий по конфигурированию системы.
Однако, для того, чтобы документы, элементы справочников и другие объекты, созданные в разных узлах распределенной ИБ, имели заведомо непересекающиеся пространства номеров, кодов и т. п., может потребоваться внести в конфигурацию некоторые изменения. Также изменения в конфигурации должны вноситься при необходимости обеспечить специальные ограничения работы пользователей на периферийных информационных базах.
Для переноса измененных объектов в распределенной ИБ и для первичного создания периферийной ИБ используется файл переноса данных. Он представляет собой упакованный (сжатый) файл, содержащий объекты информационной базы (все при создании периферийной ИБ или измененные при передаче изменений) в специальном формате. Формат данного файла не предназначен для использования его способами отличными от тех, которые предусмотрены механизмами выгрузки/загрузки и передачи изменений. Файл переноса фактически отражает содержимое объектов информационной базы в формате, не зависящем от формата базы данных. Это позволяет использовать в распределенной информационной системе в различных узлах различные форматы хранения данных, поддерживаемые системой 1С:Предприятие (DBF/CDX и MS SQL Server).
Регистрация изменений
Перенос измененных данных производится "пообъектно". То есть единицей переноса данных является так называемый ведущий объект. С точки зрения работы в распределенной информационной базе в 1С:Предприятии существуют следующие типы ведущих объектов:
константа,
элемент справочника,
документ,
календарь,
счет бухгалтерского учета,
типовая операция.
Вместе с документами переносятся все действия, выполняемые ими в процессе проведения: движения регистров, акты расчета, бухгалтерская операция, проводки. В случае, если при проведении документа производятся изменения периодических реквизитов элемента справочника, то производится перенос всего элемента справочника.
Регистрация изменений объектов производится автоматически при любом изменении объекта, независимо от того каким способом это изменение производилось (интерактивно или из встроенного языка). Кроме того в версии 7.7 системы 1С:Предприятие для таких объектов как элементы справочников и документы появилась возможность управления регистрацией изменений. Для этого у соответствующих объектов метаданных введен признак "Автоматическая регистрация изменений". Если этот признак установлен (значение по умолчанию), то автоматическая регистрация производится, а если признак сброшен, то регистрация не производится и изменения объектов в распределенной ИБ не распространяются. Но и в данном случае, при выполнении записи изменений объектов из встроенного языка можно управлять регистрацией изменений с помощью метода встроенного языка РегистрацияИзменений().
Регистрация изменений ведущих объектов производится в специальной служебной таблице. При этом фиксируются следующие данные об изменении объекта:
Сам ведущий объект;
Идентификатор той ИБ, в которую должно быть передано изменение;
Идентификатор ИБ, в которую должно быть передано изменение, служит для отслеживания переноса данных в каждую из ИБ, с которой данная ИБ обменивается данными. Таким образом, при изменении какого-либо объекта в центральной ИБ в таблицу будет помещено по одной записи для каждой из зарегистрированных периферийных информационных баз. Если же изменение объекта происходит в периферийной ИБ, то в таблицу будет занесена только одна запись, соответствующая центральной ИБ, так как каждая из периферийных ИБ непосредственно взаимодействует только с центральной.
Заметим, что удаление объекта является частным случаем изменения. Оно также помечается в таблице регистрации изменений и передается при выгрузке.
Выгрузка и загрузка изменений
Каждая выгрузка изменений осуществляется в адрес конкретной ИБ. В файл переноса, создаваемый при выгрузке попадают все объекты, записи об изменениях которых содержатся в таблице регистрации изменений для данной ИБ.
Заметим, что выгружаются не изменения объектов, а сами измененные объекты. То есть, если в документе изменилось значение одного реквизита, то будет передаваться весь документ и он будет полностью перезаписан на той ИБ, в которую переносится. Как уже отмечалось, вместе с документом будут перенесены и сделанные им движения регистров, операция и проводки. Если изменяется любой реквизит справочника, то передается полностью весь элемент. При этом история периодических реквизитов передается целиком. Последнее означает, что изменения сделанные в истории периодического реквизита элемента на в двух ИБ не будут сливаться вместе.
В процессе выгрузки в таблице регистрации изменений отмечается выгрузка изменений объектов.
При загрузке файла переноса данных помимо загрузки измененных данных выполняется так называемый прием подтверждений.
В случае, когда пришло подтверждение на получение выгрузки, содержащей последнее изменение объекта, запись об изменении удаляется из таблицы регистрации. То есть записи об изменении объектов данных хранятся в таблице регистрации до тех пор, пока не будет получено подтверждение о доставке измененного объекта по назначению.
Причем выгрузка измененного объекта будет производиться до тех пор, пока не будет получено подтверждение, о доставке изменения. Это значит, что если выполнять перенос все время в одном направлении и не выполнять обратного переноса то объем файла переноса данных будет все время расти, так как каждый раз будут передаваться все объекты, измененные после последнего полученного подтверждения.
При загрузке изменений объектов из периферийной ИБ в центральную, в таблицу регистрации изменений (если, конечно, параметры миграции настроены соответствующим образом) заносятся записи, указывающие, что загруженные из периферийной ИБ изменения объектов должны быть переданы в другие периферийные ИБ.
Изменения конфигурации
Как уже отмечалось, при работе с распределенной ИБ, конфигурация системы может быть изменена только в центральном узле.
Для регистрации изменений конфигурации и передачи ее на периферийные ИБ используется тот же механизм, что и для объектов данных. При записи измененной конфигурации, в таблицу регистрации изменений объектов по числу известных периферийных ИБ заносятся записи, фиксирующие факт изменения конфигурации.
После записи измененной конфигурации в распределенной ИБ складывается такая ситуация, что центральная и периферийные ИБ работают фактически с разными конфигурациями. В таком состоянии созданные на периферийной ИБ файлы переноса данных не могут быть загружены на центральной ИБ по той причине, что в условиях различных конфигураций содержащаяся в файле информация не может быть правильно интерпретирована. Обмен будет восстановлен только после того, как в периферийную ИБ будет загружена измененная конфигурация с центральной ИБ. То есть после изменения конфигурации требуется выполнить перенос из центральной ИБ в каждую из периферийных, а уже затем выполнять перенос из периферийных ИБ в центр.
Перенос измененной конфигурации в периферийные ИБ осуществляется тем же способом, что и перенос измененных объектов данных. В процессе очередной выгрузки из центральной ИБ, в файл переноса данных целиком включается измененная конфигурация, если, конечно, в таблице регистрации изменений содержится запись о том, что измененную конфигурацию следует передать в соответствующую периферийную ИБ. Выгрузка конфигурации также будет производиться до получения извещения о приеме измененной конфигурации.
Заметим, что конфигурация считается измененной при любых изменениях метаданных, форм, модулей, таблиц конфигурации, наборов прав, пользовательских интерфейсов, описаний. В состав конфигурации не входит список пользователей, а также внешние по отношению к файлу конфигурации (1CV7.MD) файлы (внешние отчеты, отдельно записанные таблицы и тексты). И эти внешние файлы не переносятся механизмом управления распределенной ИБ. Поэтому при конфигурировании распределенной системы не рекомендуется использовать в конфигурации находящиеся в отдельных файлах модули, таблицы и отчеты.
Для изменения уже работающей конфигурации можно рекомендовать использовать механизм загрузки измененной конфигурации. Он позволяет специалисту скопировать конфигурацию, выполнить в ней все необходимые изменения, отладить внесенные изменения (этот процесс может занять и несколько дней), а затем загрузить измененную конфигурацию в центральную ИБ, после чего изменения будут распространены на все периферийные ИБ с очередной передачей изменений. Такая последовательность позволит избежать многократной передачи измененной конфигурации в периферийные ИБ в процессе ее модернизации.
При загрузке файла переноса данных на периферийной ИБ, этап загрузки измененной конфигурации (если, конечно, она содержится в файле переноса данных) предшествует этапу загрузки измененных объектов данных. В случае неудачного завершения загрузки конфигурации, загрузка объектов данных производиться не будет и информационная база останется в том же состоянии, что и была до начала загрузки.
Загрузка измененной конфигурации может завершиться неудачей, если измененная конфигурация не соответствует существующим данным. Например, было уменьшено число уровней справочника, а новое число уровней оказывается меньшим, чем фактически содержащееся в справочнике или в других подобных случаях. Если такое произошло, то следует привести данные в соответствие с новой конфигурацией или изменить конфигурацию в центральной ИБ и заново произвести выгрузку, чтобы ликвидировать возникшее противоречие.
Коллизии
При работе в реальных распределенных ИБ один и тот же объект может изменяться одновременно в различных узлах распределенной ИБ. И при переносе измененных объектов из одной ИБ в другую может случиться так, что в какую-либо ИБ будет загружаться объект, зарегистрированный в самой этой ИБ как измененный. Такая ситуация носит название коллизии. Приведем описание действий системы в наиболее типовых вариантах коллизий.
Один и тот же объект изменен более чем в одной ИБ.
Общий принцип здесь состоит в том, что "главным" считается изменение, произведенное в центральной ИБ. Отработка ситуации различается в зависимости от того, на какой ИБ - центральной или периферийной коллизия обнаружена. Если коллизия обнаружена на центральной ИБ, то есть при загрузке файла переноса из периферийной ИБ обнаружено, что один из измененных объектов также изменен и в центральной ИБ, то изменения объекта в центральную ИБ не загружаются. При этом гарантируется, что при очередной выгрузке в адрес периферийной ИБ будет передано состояние объекта как оно есть в центральной ИБ. Если же коллизия обнаружена на периферийной ИБ, то изменения объекта, прибывшие из центральной ИБ загружаются.
Объект, измененный в одной ИБ, удален в другой.
В данном случае принцип заключается в том, что изменение всегда "главнее" удаления. В случае, если на центральную ИБ прибывает файл переноса, в котором содержится информация, что некоторый объект удален на периферийной ИБ, то в центральной ИБ объект не удаляется, а в записи таблицы регистрации изменений данный объект помечается как измененный. То есть при очередном обмене объект будет восстановлен в той ИБ, в которой он был удален, причем само содержание объекта будет соответствовать той ИБ, которая "отвергла" удаление.
Аналогичные действия производятся, если коллизия обнаружена на периферийной ИБ.
Объект, удаленный в одной ИБ, не может быть удален в другой по причине наличия ссылок на него.
При загрузке изменений, если загружается информация об удалении объектов, автоматически включается механизм контроля ссылочной целостности и выполняется проверка наличия ссылок в данной ИБ на объекты, которые переданы как удаленные.
В случае обнаружения коллизии такого рода, вне зависимости от того на какой из ИБ она была обнаружена, выполняется следующее: удаление не выполняется, а в таблицу регистрации изменений заносится запись о том, что объект должен быть перенесен в адрес той ИБ, из которой была прислана информация о его удалении.
При очередном обмене объект восстанавливается в той ИБ, в которой он был удален, однако само содержание объекта будет соответствовать той ИБ, которая "отвергла" удаление.
Таким образом, управление распределенной информационной базой имеет определенную стратегию автоматического разрешения любых коллизий с описанными приоритетами. Однако, в реальных условиях рекомендуется средствами конфигурации определить возможные действия пользователей на различных узлах таким образом, чтобы исключить или минимизировать вероятность возникновения коллизий. Основным путем является определения средствами конфигурации "ответственного" узла за каждый ведущий объект в распределенной ИБ и ограничение всем остальным возможности его редактирования и удаления. Определение "ответственных" должно происходить исходя из логики работы предприятия. Очевидно, что многие виды объектов можно разрешить изменять только в центральной ИБ (например, список складов). Для многих объектов можно рекомендовать средствами встроенного языка установить возможность изменения только на той ИБ, на которой они созданы, например для документов.
Параметры миграции
С помощью настройки параметров миграции можно ограничивать области распространения изменений объектов. Настройка параметров миграции происходит по видам "ведущих" объектов. То есть для каждого вида "ведущих" объектов можно определить конкретную настройку параметров миграции. В настройке параметров миграции объектов ведущую роль играет выбор того или иного варианта области распространения изменений объектов данного вида. Существуют три варианта настройки области распространения:
Все информационные базы. Данный вариант настройки используется по умолчанию для всех объектов. В этом случае любые изменения объектов данного типа будут распространяться по всем узлам распределенной ИБ. Этот вариант обеспечивает полную синхронизацию объектов данного вида во всей распределенной ИБ. Очевидно, что этот вариант наиболее прост для конфигурирования.
Место создания. Данный вариант настройки также является довольно простым. В этом случае изменения объекта не передаются в другие ИБ. При такой настройке параметров миграции, объект данного вида никогда не "покидает" места своего создания и не появляется в других ИБ. Однако при выборе данного варианта следует учитывать возможные ссылки на объекты данного вида из объектов других видов, имеющих другие параметры миграции. Например, если установить такой вариант для справочника, и в документах, которые участвуют в обмене, будет содержаться реквизит типа справочник данного вида, то при переносе документа получится неразрешенная ссылка.
Место создания и центр. При таком варианте настройки области распространения объектов существенную роль играет понятие места создания объекта. Местом создания объекта считается ИБ, в которой был создан конкретный объект. Естественно, что различные объекты одного вида могут быть созданы в различных ИБ. Однако место создания объекта может быть определено не для всех видов "ведущих" объектов. Для таких объектов как константы, календари или корректные проводки место создания не определено. Поэтому для этих видов объектов вариант настройки "Место создания и центр" не может быть установлен.
В случае выбора такого варианта области распространения, объекты данного вида помимо места их создания попадают еще и на центральную ИБ. То есть, в случае, если для некоторого вида объектов установлена область распространения "Место создания и центр", то для объектов этого вида, созданных на периферийной ИБ, их изменения будут передаваться между местом их создания и центральной ИБ. Для объектов того же вида, созданных на центральной ИБ, изменения не будут передаваться никуда. С помощью такого варианта области распространения можно добиться такого эффекта, что все объекты того или иного вида будут "собираться" на центральной ИБ, а на любой из периферийных ИБ будут находиться только те объекты, для которых она является местом создания.
В случае выбора области распространения "Место создания и центр", для вида объекта можно задать перечень периферийных узлов распределенной ИБ, которые дополнительно включаются в область распространения всех объектов данного вида. Этот перечень задается как список кодов периферийных ИБ, разделенный запятыми. При задании кодов ИБ допускается использование символов-заменителей '*'. Символ-заменитель должен завершать последовательность символов, образующих код одной или нескольких периферийных ИБ. Таким образом, "A*" представляет собой обозначение всех периферийных ИБ, коды которых начинаются символом 'А'. Последовательность "A*B" является ошибочной, так как символ '*' не завершает последовательность символов, представляющих код периферийной ИБ.
Кроме того, как отмечалось выше, дополнительной возможностью управлять распространением изменений объектов в версии 7.7 системы 1С:Предприятие является особый вид периферийных ИБ, которые получают изменения из центральной ИБ, а сами информацию о сделанных в них изменениях не передают. Для создания периферийной ИБ такого рода, надо при ее инициализации указать признак "Только получатель".
Отдельно стоит рассмотреть случай, когда параметры миграции объектов изменяются в процессе изменения конфигурации уже работающей системы. Изменения параметров миграции для каждого из объектов производится независимо от других. То есть, Конфигуратор не отслеживает ссылки между объектами при настройке параметров миграции. Таким образом, при определенных вариантах настройки параметров миграции у некоторых объектов могут появиться ссылки, указывающие "никуда". Ответственность за сохранение ссылочной целостности в распределенных ИБ возлагается на лицо, занимающееся конфигурированием системы. Общим правилом настройки параметров миграции является определение области миграции для конкретного вида объектов равной более широкой, чем область миграции ссылающихся на него объектов. Например, для справочника область миграции должна быть определена не уже, чем области миграции документов и справочников, в которых есть реквизиты типа "справочник" данного вида. Если, например, измерение регистра имеет тип "справочник" данного вида, то область миграции справочника должна покрывать области миграции всех документов, которые могут записать движения данного регистра.
При изменении параметров миграции того или иного объекта система старается привести имеющиеся данные в соответствие с новыми параметрами. Общим принципом здесь является то, что при изменении параметров миграции объекты никогда ни в каком узле распределенной ИБ не удаляются. Даже в том случае, если в соответствии с вновь установленными параметрами миграции их там быть не должно. Изменения производятся лишь в таблице регистрации изменений. Рассмотрим случаи изменения параметров миграции объектов подробнее.
Наиболее простой случай - это смена любого из вариантов области распространения на вариант "Место создания". В этом случае из таблицы регистрации изменений удаляются все записи по данному виду объектов. То есть все изменения объектов, еще не переданные в другие ИБ, не будут переданы. При этом, все объекты для которых данная ИБ не является местом создания, не будут удалены. Просто их изменения (как и изменения других объектов данного вида) не будут больше передаваться в другие ИБ.
Следующий случай - это смена области распространения "Место создания" на варианты "Все информационные базы" или "Место создания и центр". В этом случае в таблицу регистрации изменений заносятся записи для передачи всех объектов, для которых текущая ИБ является местом создания во все ИБ, в которые должны передаваться изменения в соответствии с вновь заданной настройкой. В случае, если такая смена производится для объектов, для которых место создания не определено (константы, календари, корректные проводки), то записи в таблицу регистрации изменений будут произведены только в центральной ИБ. Этими двумя вариантами и ограничиваются возможные случаи изменения параметров миграции для такого рода объектов. Все остальные случаи возможны только для тех объектов, для которых место создания можно определить.
При изменении области распространения объектов с "Место создания и центр" на "Все информационные базы", какие-либо действия предпринимаются только в центральной ИБ. В этом случае определяется список периферийных ИБ, попавших в список дополнительно включаемых в область распространения, но ранее в него не входивших. После этого производится обход всех объектов данного вида и для каждого из объектов в таблицу регистрации изменений вносятся записи для передачи состояния объекта в каждую из попавших в список периферийных ИБ, за исключением ИБ места создания объекта.
Последний и самый сложный случай - это изменение области распространения объектов с "Все информационные базы" на "Место создания и центр" или изменение списка дополнительных ИБ в варианте "Место создания и центр". Действия, производимые в данном случае различаются в зависимости от того, производятся они в центральной ИБ или в периферийной. В центральной ИБ для каждой из периферийных ИБ, не попавших в новый перечень дополнительно включаемых в область распространения, выполняется удаление из таблицы регистрации изменений записей соответствующих данному виду объектов, но только для тех объектов, для которых эта периферийная ИБ не является местом создания. Затем определяется список периферийных ИБ, попавших в список дополнительно включаемых в область распространения, но ранее в него не входивших. Естественно, что в случае, если предыдущим вариантом настройки области распространения было "Все информационные базы", то этот список окажется пустым. Затем, как и в предыдущем случае, производится обход всех объектов данного вида и для каждого из объектов в таблицу регистрации изменений вносятся записи для передачи объекта в каждую из попавших в список периферийных ИБ, за исключением ИБ места создания объекта.
Проблемы конфигурирования и администрирования
При разработке конфигурации для распределенной ИБ проявляется ряд объективно существующих проблем, которые решаются как средствами конфигурации, так и административными решениями.
Очевидной проблемой, которая уже упоминалась выше, является уникальная и последовательная нумерация документов и элементов справочников. Для организации уникальной нумерации используется механизм префиксов. Для его включения в конфигурацию, прежде всего, следует выработать некоторую дисциплину, зависимости префикса от ИБ, в которой создается объект. В простейшем случае это может быть собственно код ИБ. Однако часто префикс может автоматически определяться на каждой ИБ, но не являться ее кодом, так как он может участвовать в печатных формах документов и должен быть понятным для пользователей системы. Более сложной задачей является обеспечение сквозной нумерации объектов без префиксов в случае, когда такая нумерация регламентируется нормативными документами. Особенно сложным является обеспечение строго последовательной нумерации. Очевидно, что полного решения данной проблемы не может быть в принципе, так как объекты создаваемые динамически в независимых системах не могут иметь строгой сквозной нумерации. Отчасти данная проблема решается с помощью введения диапазонов номеров, выделяемых для каждой ИБ. Следует заметить, что номера документов и коды справочников не являются внутренними идентификаторами и их уникальность для системы не обязательна. Это значит, что поддержку уникальность номеров и кодов можно отключить для тех видов, объектов, для которых она не нужна. Кроме того, средствами конфигурации можно организовать перенумерацию объектов, например в центральной ИБ. Однако следует иметь ввиду, что эти изменения будут передаваться как и любые другие изменения, что может вызвать достаточно большой объем передаваемых между узлами данных.
Более сложной проблемой является ситуация, когда возникает необходимость использования некоторого нового объекта в двух и более узлах одновременно, до осуществления передачи данных. Например, новый товар должен быть введен и на центральной ИБ и на периферийной. Важно понимать, что созданный ведущий объект системы 1С:Предприятие обладает некоторой сущностью - внутренним идентификатором, который уникален во всей распределенной системе. То есть один и тот же объект не может быть введен в двух узлах. Даже при полном соответствии кодов, номеров и всех данных это будут два разных объекта. Такой принцип необходим для четкой работы системы со всех точек зрения.
Заметим, что возможные варианты ввода двух объектов и затем автоматической замены на центральной ИБ всех ссылок на один из объектов, достаточно сложны в реализации и весьма ненадежны.
Поэтому, на наш взгляд, решение проблемы должно лежать в области администрирования системы. Технология работы пользователей должна быть построена таким образом, чтобы ввод объекта производился на одном узле.
В отдельных случаях может использоваться следующее решение. В справочник заранее вносится некоторое количество новых элементов со специальными кодами или в специальную группу. При появлении необходимости ввода нового товара реально не вводится новый элемент, а изменяется один этих элементов. При этом административными силами должно быть обеспечено идентичное изменение одного и того же "зарезервированного" объекта в тех узлах распределенной ИБ, в которой он должен быть использован до обмена данными. При обмене данными сами реквизиты элемента будут системой синхронизированы, а ссылки в других объектах, разумеется будут идентичными, так как использовался один и тот же объект.
В любых случаях следует учитывать, что раздельный ввод и использование объектов потребует от пользователей правильного ввода данных. Так, например, при вводе нового товара в двух узлах с разными ценами могут иметь место серьезные ошибки в оформлении документов.
Еще одна проблема, с которой приходится сталкиваться при конфигурировании распределенной ИБ, это правильное поддержание механизмов учета компонент при неполной миграции объектов. Следует учитывать, что итоги оперативного и бухгалтерского учета не являются самостоятельными объектами. Они не переносятся, а рассчитываются на основании перенесенных движений регистров и проводок. Движения регистров и проводки переносятся соответственно только вместе с документами. Таким образом, для правильного состояния итогов на некоторой ИБ, на нее должны переноситься все документы, осуществляющие движения регистров или записывающие проводки влияющие на эти итоги. С другой стороны, это не означает, что переноситься должны все документы, записывающие движения конкретного регистра и проводки. Например, если на периферийной ИБ вводятся документы, выполняющие движения по одному складу, и итоги регистра учета товарного запаса в данной ИБ нужны только по данному складу, то, разумеется, в данном узле будет достаточно наличия всех документов выполняющих движения регистров по данному складу. Это достигается установкой параметра миграции "Место создания и центр".
Существует несколько различных способов по увеличению производительности компьютера. Можно, например, "разогнать" центральный процессор или видеокарту. А можно построить систему на базе RAID-массива.
Что нужно для построения RAID-массива? Прежде всего, RAID-контроллер и, как минимум, два жестких диска (в зависимости от уровня — например, для массива RAID 5 требуется не менее трех HDD).
До недавнего времени RAID-технологии были прерогативой серверного сегмента рынка. Но ситуация начала потихоньку меняться после того как производители стали интегрировать RAID-контроллеры на несерверные материнские платы. А ведь и правда — почему бы не использовать то, что достается практически даром.
И вот пользователь уже практически созрел, уже почти решился на то, чтобы установить-таки на своем родном ПК этот манящий "шаровой" RAID. И тут же натыкается на проблему выбора. При малых затратах, то есть при использовании двух жестких дисков, нужно выбирать между производительностью и надежностью хранения информации — использовать RAID 0 или RAID 1. А если пользователь хочет получить и скорость и надежность, придется раскошеливаться на четыре накопителя. Мало кто согласится на такие расходы для домашней системы, да и не каждый корпус сможет разместить четыре винчестера.
Эту проблему попыталась решить компания Intel в своих чипсетах нового поколения — i915 и i925. В южный мост ICH6R встроена уникальная технология Intel Matrix Storage Technology, которая позволяет на базе двух жестких дисков построить два разных RAID-массива ("нулевого" и "первого" уровней).
Впрочем, не будем слишком углубляться в технологии. Начнем лучше с азов — проведем небольшой ликбез по RAID.
Что такое RAID?
Сразу стоит заметить, что RAID это не средство от насекомых (как кто-то мог подумать), которое "убивает тараканов насмерть". На самом деле эта аббревиатура расшифровывается как Redundant Array of Independent Disks — избыточный массив независимых дисков. Изначально RAID расшифровывался как Redundant Array of Inexpensive Disks — избыточный массив недорогих дисков. Под недорогими подразумевались диски, предназначенные для использования в ПК,— в противовес дорогим дискам для мэйнфреймов. Но так как в RAID-массивах стали использовать SCSI-винчестеры, которые были существенно дороже применяемых в большинстве компьютеров дисков IDE, слово "недорогой" было заменено на "независимый".
Принцип функционирования RAID-системы заключается в следующем: из набора дисковых накопителей создается массив, который управляется специальным контроллером и определяется компьютером как единый логический диск большой емкости. За счет параллельного выполнения операций ввода-вывода обеспечивается высокое быстродействие системы, а повышенная надежность хранения информации достигается дублированием данных или вычислением контрольных сумм. Следует отметить, что применение RAID-массивов защищает от потерь данных только в случае физического отказа жестких дисков.
Векторные графические редакторы позволяют пользователю создавать и редактировать векторные изображения непосредственно на экране компьютера, а также сохранять их в различных векторных форматах, например, CDR, EPS, WMF или SVG.
Векторные графические редакторы и векторная графика.
Векторные графические редакторы позволяют пользователю создавать и редактировать векторные изображения непосредственно на экране компьютера, а также сохранять их в различных векторных форматах, например, CDR, EPS, WMF или SVG.
Векторные графические редакторы, позволяют вращать, перемещать, отражать, растягивать, скашивать, выполнять основные аффинные преобразования над объектами, изменять z-order и комбинировать примитивы в более сложные объекты.
Более изощрённые преобразования включают булевы операции на замкнутых фигурах: объединение, дополнение, пересечение и т. д.
Наиболее известные векторные редакторы.
Inkscape (Инкскейп) — векторный графический редактор, удобен для создания как художественных, так и технических иллюстраций.
OpenOffice.org Draw — векторный графический редактор, по функциональности сравнимый с CorelDRAW, входит в состав OpenOffice.org Skencil (бывший Sketch) - совместимый с UNIX системами, гибкий и мощный инструмент для иллюстраций, диаграмм и других целей. sK1 (форк Skencil) — редактор для работы с векторной графикой, распространяющийся на условиях LGPL, по набору функций схожий с CorelDRAW, Adobe Illustrator, Freehand и Inkscape.
Xara Xtreme for Linux - мощная, общая программа графики для платформ Unix, включая Linux, FreeBSD и (в развитии) РОТ-X.
Adobe Illustrator — один из популярных векторный графический редактор, разработанный и распространяемый фирмой Adobe Systems. Adobe Flash - программа разработки мультимедийного контента для платформы «Adobe Engagement Platform» (такого, как веб-приложения, игры и мультфильмы).
CorelDRAW — популярный векторный графический редактор, разработанный канадской корпорацией Corel. Текущая версия продукта — CorelDRAW Graphics Suite X4, доступна только для Microsoft Windows. Последняя версия для GNU/Linux — 9-я версия, выпущенная в 2000 году. В 2002 году вышла последняя 11-я версия для Macintosh.
Macromedia FreeHand — векторный графический редактор, разработанный фирмой Macromedia для Microsoft Windows и для Mac OS.
[center]Векторная графика.[/center]
Векторная графика — это использование геометрических примитивов, таких как точки, линии, сплайны и многоугольники, для представления изображений в компьютерной графике. Термин используется в противоположность к растровой графике, которая представляет изображения как матрицу пикселей (точек).
Современные компьютерные видеодисплеи отображают информацию в растровом формате. Для отображения векторного формата на растровом используются преобразователи, программные или аппаратные, встроенные в видеокарту.
Кроме этого, существует узкий класс устройств, ориентированных исключительно на отображение векторных данных. К ним относятся мониторы с векторной развёрткой, графопостроители, а также некоторые типы лазерных проекторов.
Термин «векторная графика» используется в основном в контексте двухмерной компьютерной графики.
Рассмотрим теперь способ хранения изображения векторной графики на примере окружности радиуса r.
Список информации, необходимой для полного описания окружности, таков:
1. радиус r;
2. координаты центра окружности;
3. цвет и толщина контура (возможно прозрачный);
4. цвет заполнения (возможно прозрачный).
Этот способ описания векторной графики имеет свои преимущества над растровой графикой.
Минимальное количество информации передаётся намного меньшему размеру файла, (размер не зависит от величины объекта).
Соответственно, можно бесконечно увеличить, например, дугу окружности, и она останется гладкой. С другой стороны, если кривая представлена в виде ломаной линии, увеличение покажет, что она на самом деле не кривая.
При увеличении или уменьшении объектов толщина линий может быть постоянной.
Параметры объектов хранятся и могут быть изменены. Это означает, что перемещение, масштабирование, вращение, заполнение и т. д. не ухудшат качества рисунка. Более того, обычно указывают размеры в аппаратно-независимых единицах, которые ведут к возможной наилучшей растеризации на растровых устройствах.
У векторной графики есть два фундаментальных недостатка.
Не каждый объект может быть легко изображен в векторном виде. Кроме того, количество памяти и времени на отображение зависит от числа объектов и их сложности.
Перевод векторной графики в растр достаточно прост. Но обратного пути, как правило, нет — трассировка растра обычно не обеспечивает высокого качества векторного рисунка.
Пример, показывающий эффект векторной графики при увеличении: (a) исходное векторное изображение; (b) иллюстрация, увеличенная в 8 раз как векторное изображение; (c) иллюстрация, увеличенная в 8 раз как растровое изображение. Растровые изображения плохо масштабируются тогда, как векторные изображения могут быть неограниченно увеличены без потери качества.
Векторная графика идеальна для простых или составных рисунков, которые должны быть аппаратно-независимыми или не нуждаются в фотореализме.
Какие жесткие диски лучше установить на компьютере с windows 2000/XP: ata (иначе ide) или scsi? Спор о сравнительных достоинствах и недостатках дисков ata и scsi – один из самых давних в отрасли. В одной из статей я уже сравнивал технические характеристики различных вариантов этих технологий и рассказывал, как их использовать в системах на базе windows nt.
За последнее время появились новые реализации интерфейсов ata и scsi. Сфера scsi расширилась и теперь охватывает ultra2 scsi, волоконно-оптический канал, ultra160 scsi и новейший стандарт – ultra320 scsi. Максимальная пропускная способность этих устройств составляет 80, 100, 160 и 320 Мбайт/с, соответственно. Однако высокая скорость всегда была достоинством scsi, поэтому более важным событием стало сокращение ценового разрыва между технологией scsi и ее конкурентами.
ATA догоняет
Последние стандарты ata 66 (или ultra dma/66, или udma/66) и ata 100 (или ultra dma/100, или udma/100) обеспечивают быструю передачу данных в пакетном и непрерывном режимах (66 и 100 Мбайт/с, соответственно). Планка производительности ata поднимется еще выше с появлением в 2002 г. стандарта se-rialata (первые устройства будут обеспечивать скорость передачи данных 150 Мбайт/с, а в дальнейшем – до 300 и даже 600 Мбайт/с). Таким образом, ata уже годится не только для пользовательских систем и корпоративных настольных компьютеров начального уровня, но и для машин, к дисковой подсистеме которых предъявляются повышенные требования.
Реально на офисных однодисковых системах обычно не удается достигнуть максимального быстродействия. Системные ограничения (например, возможности микросхем ata, архитектура системной шины, физические ограничения диска) часто снижают скорость пересылки данных. Тем не менее, в основном из-за дороговизны scsi (которая объясняется высокой стоимостью контроллера и диска), ata преобладает везде, кроме настольных рабочих станций самого высокого уровня. Однако, чтобы добиться максимальной производительности дисков ata на компьютерах win-dows 2000, недостаточно просто установить новые накопители и подключить кабели.
Стараясь идти в ногу с технологией ata, разработчики microsoft дополнили windows 2000 новыми возможностями и уделяют ata больше внимания при подготовке различных пакетов исправления и программных заплаток. Чтобы эффективно использовать устройства ata на компьютерах windows 2000, требуется иметь базовые знания об интерфейсе ata, необходимых аппаратных средствах и программном обеспечении (например, пакетах исправления и заплатках windows 2000, встроенных драйверах и драйверах независимых поставщиков).
Аппаратные средства
Во-первых, в системе должен быть установлен контроллер, который поддерживает скоростные режимы ata. Самые распространенные стандарты современных дисков – ata/33 (ultra dma/33 или udma/33), ata/66 и ata/100. Практически все контроллеры ata обратно совместимы с дисками прежних стандартов. Например, контроллер ata/100 обычно совместим с дисками ata/33 и даже старыми стандартами ide и eide.
В большинстве систем контроллер реализован в микросхемах ata на системной плате (львиная доля рынка микросхем ata принадлежит компании intel, но есть и другие поставщики, такие, как viahardware.com). Однако в некоторых случаях контроллер может быть размещен на плате расширения pci, например в raid-контроллере ata.
От набора микросхем (важнейшего компонента системной конфигурации ata) и его драйверов зависят функциональные возможности дисков и других устройств, подключенных к контроллеру. Поэтому в первую очередь необходимо тщательно изучить набор микросхем на системной или вспомогательной плате и определить его возможности. Эту информацию можно получить у поставщика ком-пьютера, с системной платы или платы контроллера.
Если микросхемы ata расположены на системной плате, необходимо убедиться, что bios системы поддерживает нужные режимы ata. По всей вероятности, конкретный режим ata реализован в наборе микросхем, но он может отсутствовать в редакции bios, регулярно обновляемой поставщиками ПК и системных микросхем. В этом случае новую версию bios можно получить на web-сайте изготовителя системной платы или компьютера.
Затем следует убедиться, что аппаратные средства обеспечивают нужный режим ata и настроены на оптимальную производительность. Во-первых, все жесткие диски должны поддерживать необходимые режимы ata (например, ata/66, ata/100). Во-вторых, важно распределить диски по отдельным каналам, так как по умолчанию канал ata работает со скоростью самого медленного диска. Если диски ata/33 и ata/100 установлены в одном канале, то скорость передачи данных будет определяться быстродействием ata/33. Поэтому следует разместить медленные устройства ata (например, устройства cd-rom, cd-r, cd-rw, zip, старые жесткие диски) на одном канале, а скоростные жесткие диски – на другом.
Кроме того, необходимо верно выбрать кабели. В спецификациях ata/33, ata/66 и ata/100 указывается, что устройства следует подключать через специальный 80-жильный ленточный кабель, а не 40-жильные кабели, применявшиеся в прежних дисках ata. Дополнительные жилы кабеля нужны для заземления и увеличивают соотношение сигнал/шум при передаче данных. И наконец, накопители следует подключать к 80-жильному кабелю иначе, чем к прежним 40-жильным кабелям. Главное устройство (drive 0) необходимо разместить на конце 80-жильного кабеля, а вторичный накопитель (drive 1) нужно подключить к среднему разъему. Синий разъем на одном конце предназначен для системной платы или платы контроллера, серый разъем в середине – для вторичного устройства, а черный разъем на другом конце – для главного устройства.
Часто встречающаяся ошибка при работе с сессией - поздний старт. Когда данные в браузер уже начали отправляться и вызов session_start() приводит к ошибке "headers already sent". На этом спотыкаются многие начинающие (и не только) программисты PHP.
Для понимания проблемы надо немного разбираться в работе протокола HTTP. Текущая версия протокола (1.1) описана в документе RFC2616.
Протокол работает по принципу "запрос - ответ". Браузер пользователя посылает запрос на сервер. Тот, в свою очередь, посылает браузеру ответ. И запрос, и ответ состоят из заголовка и следующих за ним данных (тело). Т.е. если данные уже начали отсылаться, то что-либо добавить в заголовок уже возможности нет. Куки как раз передаются в заголовке HTTP запросов и ответов.
Да же если Вы поместите блок , содержащий session_start() в самое начало файла, но перед ним будет пробел или перевод строки, то это тоже приведет к ошибке. Никаких символов перед блоком быть не должно!
Что же делать, если решение, использовать сессию или нет, принимается не в самом начале программы и перед ним возможен какой-либо вывод?
Выход простой - использовать буферизацию. В PHP буферизацией управляют функции начинающиеся на "ob_" (output bufferering). В начале программы (до любого возможного вывода) следует поставить вызов ob_start(), а перед завершением программы (хотя бы после старта сессии) - ob_end_flush().
Кстати, при работе непосредственно с Куки и заголовками HTTP возникают те же самые проблемы и решаются они аналогично.
Вернемся к Куки и сессии.Сессия имеет имя, используемое как в Куки, так и при передаче идентификатора сессии в параметрах URL. По умолчанию, это имя - "PHPSESSID". Его можно поменять на другое имя, глобально для всего сервера, через php.ini (session.name). Так же можно изменить его только для данной программы, в процессе выполнения, функцией session_name().
Сразу предостерегу от возможных ошибок: параметры сессии можно менять только до ее старта.
Кроме имени, параметрами сессии являются: время жизни и параметры Куки.
Время жизни сессии - это время неактивности сессии, по истечении которого сессия может быть удалена сборщиком мусора и пользователь, зайдя на сайт еще раз, получит новый идентификатор сессии и, соответственно, новую сессию. Задается время жизни в php.ini (session.lifetime). При использовании собственных обработчиков этот параметр php.ini можно игнорировать и использовать свое значение времени жизни.
Куки может иметь следующие необязательные параметры: время жизни, путь URL, DNS-домен, признак секретности. Я их перечислил в порядке "уменьшения обязательности". Т.е., нельзя указать домен, не указав время жизни и путь.
Смысл параметров следующий:
* Время жизни.
Это рекомендованное время хранения Куки в браузере пользователя. Если время равно нолю, то Куки удаляется после закрытия браузера (или во время его следующего запуска) и называется это "хранение на время текущей сессии". По умолчанию, время жизни равно нулю.
* Путь URL.
Если запрашиваемый путь начинается с этого значения, то данное Куки посылается в запросе. Это позволяет иметь на одном сервере несколько независимых программ, работающих с собственными сессиями. Такие программы должны находиться в разных директориях и директория одной программы не может быть вложена в директорию другой программы. Например, "/a/" и "/b/" - могут иметь независимый друг от друга набор Куки, а "/a/" и "/a/b/" - нет (все Куки для пути "/a/" будут посылаться и при запросе пути "/a/b/"). По умолчанию, используется путь "/".
* DNS-домен.
Домены DNS - это имена, используемые в Интернете. Домены образуют древовидную иерархию. Например, в домене com есть домен shelek.com, а в нем есть домены club.shelek.com и forum.shelek.com.
Если указать в Куки домен shelek.com, то браузер будет посылать это Куки в запросах к shelek.com, club.shelek.com и forum.shelek.com. Если же указать, forum.shelek.com, то это Куки посылаться будет только при запросах в домены, начинающиеся с этого имени и мешать домену club.shelek.com не будет. По умолчанию, используется домен, на который браузером был послан запрос. Т.е., если нет особой необходимости, то этот параметр менять не нужно.
* Признак секретности.
Если установить этот признак, то данное Куки будет посылаться только в запросах по защищенному каналу (SSL, TLS, IPsec). Напомню, что для того, чтобы можно было устанавливать этот параметр, нужно задать все предыдущие. В том числе и домен. Его текущее значение можно взять из $_SERVER['SERVER_NAME'].
Развитие сети Internet обострило и в очередной раз выявило проблемы, возникающие при безопасном подключении к Internet корпоративной сети. Связано это в первую очередь с тем, что сеть Internet разрабатывалась как открытая, предназначенная для всех, система. Вопросам безопасности при проектировании стека протоколов TCP/IP, являющихся основой Internet, уделялось очень мало внимания.
Для устранения проблем, связанных с безопасностью было разработано много различных решений, самым известным и распространенным из которых является применение межсетевых экранов (firewall). Их использование - это первый шаг, который должна сделать любая организация, подключающая свою корпоративную сеть к Internet. Первый, но далеко не последний. Одним межсетевым экраном для построения надежного и защищенного соединения с Internet не обойтись. Необходимо реализовать целый ряд технических и организационных мер, чтобы обеспечить приемлемый уровень защищенности корпоративных ресурсов от несанкционированного доступа.
Межсетевые экраны реализуют механизмы контроля доступа из внешней сети к внутренней путем фильтрации всего входящего и исходящего трафика, пропуская только авторизованные данные. Все межсетевые экраны функционируют на основе информации, получаемой от различных уровней эталонной модели ISO/OSI, и чем выше уровень OSI, на основе которого построен межсетевой экран, тем выше уровень защиты, им обеспечиваемый. Существует три основных типа межсетевых экранов - пакетный фильтр (packet filtering), шлюз на сеансовом уровне (circuit-level gateway) и шлюз на прикладном уровне (application-level gateway). Очень немногие существующие межсетевые экраны могут быть однозначно отнесены к одному из названных типов. Как правило, МСЭ совмещает в себе функции двух или трех типов. Кроме того, недавно появилась новая технология построения межсетевых экранов, объединяющая в себе положительные свойства всех трех вышеназванных типов. Эта технология была названа Stateful Inspection. И в настоящий момент практически все предлагаемые на рынке межсетевые экраны анонсируются, как относящиеся к этой категории (Stateful Inspection Firewall).
На российском рынке средств защиты информации сейчас сложилась такая ситуация, что многие поставщики межсетевых экранов (МСЭ), предлагая свой продукт, утверждают, что он один решит все проблемы заказчика, обеспечив надежную защиту всех ресурсов корпоративной сети. Однако, это не так. И не потому что предлагаемый межсетевой экран не обеспечивает необходимых защитных механизмов (правильный выбор межсетевого экрана - это тема отдельной статьи), а потому что самой технологии присущи определенные недостатки.
В данной статье я не буду говорить о достоинствах названных типов межсетевых экранов (этому посвящено немало публикаций), а основное внимание уделю недостаткам, присущим всей технологии в целом.
Отсутствие защиты от авторизованных пользователей
Наиболее очевидный недостаток межсетевых экранов - невозможность защиты от пользователей, знающих идентификатор и пароль для доступа в защищаемый сегмент корпоративной сети. Межсетевой экран может ограничить доступ посторонних лиц к ресурсам, но он не может запретить авторизованному пользователю скопировать ценную информацию или изменить какие-либо параметры финансовых документов, к которым этот пользователь имеет доступ. А по статистике не менее 70% всех угроз безопасности исходит со стороны сотрудников организации. Поэтому, даже если межсетевой экран защитит от внешних нарушителей, то останутся нарушители внутренние, неподвластные МСЭ.
Для устранения этого недостатка нужны новые подходы и технологии. Например, использование систем обнаружения атак (intrusion detection systems). Данные средства, ярким примером которых является система RealSecure, обнаруживают и блокируют несанкционированную деятельность в сети независимо от того, кто ее реализует - авторизованный пользователь (в т.ч. и администратор) или злоумышленник. Такие средства могут работать как самостоятельно, так и совместно с межсетевым экраном. Например, система RealSecure обладает возможностью автоматической реконфигурации межсетевого экрана CheckPoint Firewall-1 путем изменения правил, запрещая тем самым доступ к ресурсам корпоративной сети с атакуемого узла.
Отсутствие защиты новых сетевых сервисов
Вторым недостатком межсетевых экранов можно назвать невозможность защиты новых сетевых сервисов. Как правило, МСЭ разграничивают доступ по широко распространенным протоколам, таким как HTTP, Telnet, SMTP, FTP и ряд других. Реализуется это при помощи при помощи механизма "посредников" (proxy), обеспечивающих контроль трафика, передаваемого по этим протоколам или при помощи указанных сервисов. И хотя число таких "посредников" достаточно велико (например, для МСЭ CyberGuard Firewall их реализовано более двухсот), они существуют не для всех новых протоколов и сервисов. И хотя эта проблема не столь остра (многие пользователи используют не более десятка протоколов и сервисов), иногда она создает определенные неудобства.
Многие производители межсетевых экранов пытаются решить указанную проблему, но удается это далеко не всем. Некоторые производители создают proxy для новых протоколов и сервисов, но всегда существует временной интервал от нескольких дней до нескольких месяцев между появлением протокола и соответствующего ему proxy. Другие разработчики межсетевых экранов предлагают средства для написания своих proxy (например, компания CyberGuard Corporation поставляет вместе со своим МСЭ подсистему ProxyWriter позволяющую создавать proxy для специфичных или новых протоколов и сервисов). В этом случае необходима высокая квалификация и время для написания эффективного proxy, учитывающего специфику нового сервиса и протокола. Аналогичная возможность существует и у межсетевого экрана CheckPoint Firewall-1, который включает в себя мощный язык INSPECT, позволяющий описывать различные правила фильтрации трафика.
Ограничение функциональности сетевых сервисов
Некоторые корпоративные сети используют топологию, которая трудно "уживается" с межсетевым экраном, или используют некоторые сервисы (например, NFS) таким образом, что применение МСЭ требует существенной перестройки всей сетевой инфраструктуры. В такой ситуации относительные затраты на приобретение и настройку межсетевого экрана могут быть сравнимы с ущербом, связанным с отсутствием МСЭ.
Решить данную проблему можно только путем правильного проектирования топологии сети на начальном этапе создания корпоративной информационной системы. Это позволит не только снизить последующие материальные затраты на приобретение средств защиты информации, но и эффективно встроить межсетевые экраны в существующую технологию обработки информации.
Если сеть уже спроектирована и функционирует, то, возможно, стоит подумать о применении вместо межсетевого экрана какого-либо другого решения, например, системы обнаружения атак.
Потенциальная опасность обхода межсетевого экрана
Межсетевые экраны не могут защитить ресурсы корпоративной сети в случае неконтролируемого использования в ней модемов. Доступ в сеть через модем по протоколам SLIP или PPP в обход межсетевого экрана делает сеть практически незащищенной. Достаточно распространена ситуация, когда сотрудники какой-либо организации, находясь дома, при помощи программ удаленного доступа типа pcAnywhere или по протоколу Telnet обращаются к данным или программам на своем рабочем компьютере или через него получают доступ в Internet. Говорить о безопасности в такой ситуации просто не приходится, даже в случае эффективной настройки межсетевого экрана.
Для решения этой задачи необходимо строго контролировать все имеющиеся в корпоративной сети модемы и программное обеспечение удаленного доступа. Для этих целей возможно применение как организационных, так и технических мер. Например, использование систем разграничения доступа, в т.ч. и к COM-портам (например, Secret Net) или систем анализа защищенности (например, Internet Scanner и System Scanner). Правильно разработанная политика безопасности обеспечит дополнительный уровень защиты корпоративной сети, установит ответственность за нарушение правил работы в Internet и т.п. Кроме того, должным образом сформированная политика безопасности позволит снизить вероятность несанкционированного использования модемов и иных устройств и программ для осуществления удаленного доступа.
Потенциально опасные возможности
Новые возможности, которые появились недавно, и которые облегчают жизнь пользователям Internet, разрабатывались практически без учета требований безопасности. Например, WWW, Java, ActiveX и другие сервисы, ориентированные на работу с данными. Они являются потенциально опасными, так как могут содержать в себе враждебные инструкции, нарушающие установленную политику безопасности. И если операции по протоколу HTTP могут достаточно эффективно контролироваться межсетевым экраном, то защиты от "мобильного" кода Java и ActiveX практически нет. Доступ такого кода в защищаемую сеть либо полностью разрешается, либо полностью запрещается. И, несмотря на заявления разработчиков межсетевых экранов о контроле апплетов Java, сценариев JavaScript и т.п., на самом деле враждебный код может попасть в защищаемую зону даже в случае полного их блокирования в настройках межсетевого экрана.
Защита от таких полезных, но потенциально опасных возможностей должна решаться в каждом конкретном случае по-своему. Можно проанализировать необходимость использования новой возможности и совсем отказаться от нее; а можно использовать специализированные защитные средства, например, систему SurfinShield компании Finjan или SafeGate компании Security-7 Software, обеспечивающие безопасность сети от враждебного "мобильного" кода.
Вирусы и атаки
Практически ни один межсетевой экран не имеет встроенных механизмов защиты от вирусов и, в общем случае, от атак. Как правило, эта возможность реализуется путем присоединения к МСЭ дополнительных модулей или программ третьих разработчиков (например, система антивирусной защиты ViruSafe для МСЭ CyberGuard Firewall или система обнаружения атак RealSecure для МСЭ CheckPoint Firewall-1). Использование нестандартных архиваторов или форматов передаваемых данных, а также шифрование трафика, сводит всю антивирусную защиту "на нет". Как можно защититься от вирусов или атак, если они проходят через межсетевой экран в зашифрованном виде и расшифровываются только на оконечных устройствах клиентов?
В таком случае лучше перестраховаться и запретить прохождение через межсетевой экран данных в неизвестном формате. Для контроля содержимого зашифрованных данных в настоящий момент ничего предложить нельзя. В этом случае остается надеяться, что защита от вирусов и атак осуществляется на оконечных устройствах. Например, при помощи системных агентов системы RealSecure.
Снижение производительности
Несмотря на то, что подсоединение к сетям общего пользования или выход из корпоративной сети осуществляется по низкоскоростным каналам (как правило, при помощи dialup-доступа на скорости до 56 Кбит или использование выделенных линий до 256 Кбит), встречаются варианты подключения по каналам с пропускной способностью в несколько сотен мегабит и выше (ATM, T1, E3 и т.п.). В таких случаях межсетевые экраны являются самым узким местом сети, снижая ее пропускную способность. В некоторых случаях приходится анализировать не только заголовок (как это делают пакетные фильтры), но и содержание каждого пакета ("proxy"), а это существенно снижает производительность межсетевого экрана. Для сетей с напряженным трафиком использование межсетевых экранов становится нецелесообразным.
В таких случаях на первое место надо ставить обнаружение атак и реагирование на них, а блокировать трафик необходимо только в случае возникновения непосредственной угрозы. Тем более что некоторые средства обнаружения атак (например, RealSecure) содержат возможность автоматической реконфигурации межсетевых экранов.
Компромисс между типами межсетевых экранов - более высокая гибкость в пакетных фильтрах против большей степени защищенности и отличной управляемости в шлюзах прикладного уровня. Хотя на первый взгляд кажется, что пакетные фильтры должны быть быстрее, потому что они проще и обрабатывают только заголовки пакетов, не затрагивая их содержимое, это не всегда является истиной. Многие межсетевые экраны, построенные на основе прикладного шлюза, показывают более высокие скоростные характеристики, чем маршрутизаторы, и представляют собой лучший выбор для управления доступом при Ethernet-скоростях (10 Мбит/сек).
Отсутствие контроля своей конфигурации
Даже если все описанные выше проблемы решены, остается опасность, что межсетевой экран неправильно сконфигурирован. Приходится сталкиваться с ситуацией, когда приобретается межсетевой экран, первоначальная конфигурация которого осуществляется специалистами поставщика и тем самым, как правило, обеспечивается высокий уровень защищенности корпоративных ресурсов. Однако, с течением времени, ситуация меняется, - сотрудники хотят получить доступ к новым ресурсам Internet, работать с новым сервисами (RealAudio, VDOLive и т.п.) и т.п. Таким образом, постепенно защита, реализуемая межсетевым экраном, становится дырявой как решето, и огромное число правил, добавленных администратором, сводятся к одному: "разрешено все и всем".
В этом случае помогут средства анализа защищенности. Средства анализа защищенности могут тестировать межсетевой экран как на сетевом уровне (например, подверженность атакам типа "отказ в обслуживании"), так и на уровне операционной системы (например, права доступа к конфигурационным файлам межсетевого экрана). Кроме того, при сканировании возможна реализация атак типа "подбор пароля", позволяющие обнаружить "слабые" пароли или пароли, установленные производителем по умолчанию. К средствам, проводящим такие проверки, можно отнести, например, систему Internet Scanner американской компании Internet Security Systems (ISS).
Заключение
Ознакомившись с описанными проблемами, многие могут сделать вывод, что межсетевые экраны не могут обеспечить защиту корпоративной сети от несанкционированного вмешательства. Это не так. Межсетевые экраны являются необходимым, но явно недостаточным средством обеспечения информационной безопасности. Они обеспечивают лишь первую линию обороны. Не стоит покупать межсетевой экран только потому, что он признан лучшим по результатам независимых испытаний. При выборе и приобретении межсетевых экранов необходимо тщательно все продумать и проанализировать. В некоторых случаях достаточно установить простейший пакетный фильтр, свободно распространяемый в сети Internet или поставляемый вместе с операционной системой, например squid. В других случаях межсетевой экран необходим, но применять его надо совместно с другими средствами обеспечения информационной безопасности.
Поисковые серверы, в последнее время, при регистрации Вашего сервера, сайта или страницы, используют информацию, хранящуюся в специальных тэгах META, которые помещаются в секцию HEAD. Большинство начинающих вебмастеров и веб-дизайнеров не придают особого внимания этим тэгам, и зря. Сайт, который не посещается, подобен макулатуре, безжалостно выбрасываемой в мусорную корзину. Увеличивайте посещаемость, пользуйтесь подручными средствами!
Во-первых, стоит вкратце остановиться на самих тэгах и их значении с точки зрения видимости и легкой "находимости" вашего сайта.
META HTTP-EQUIV="Expires" CONTENT="Mon, 20 Sep 1999 00:00:01 GMT"
Используется для того, чтобы в нужное время браузер при просмотре документа брал не версию, хранящуюся в кэше, а свежую версию прямо с Вашего сайта.
META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Windows-1251"
Используется для того, чтобы браузер мог правильно отобразить содержимое страницы и для определения поисковой машиной языка, на котором написана страница (наилучший пример - AltaVista)
META HTTP-EQUIV="Refresh" CONTENT="x; URL=http://foo.bar/blatz.html"
Используется для того, чтобы в случае смены адреса страницы браузер пользователя автоматически переключался на новый адрес.
META name="author" content="codeguru"
Используется для указания имени автора. В большинстве случаев, поисковые системы позволяют найти нужный сайт и по имени автора (или найти самого автора :-).
Полезно также указать и авторские права название фирмы почти наверняка будет проиндексировано поисковой машиной.
META http-equiv="PICS-Label" content=' (PICS-1.1 "http://www.gcf.org/v2.5" labels on "1994.11.05T08:15-0500" until "1995.12.31T23:59-0000" for "http://w3.org/PICS/Overview.html" ratings (suds 0.5 density 0 color/hue 1)) '
Еще одна интересная штучка отсечение нежелательных пользователей от указанной страницы (например, детей от секс-серверов), при помощи введения рейтинга - т.н. "красной лампочки". Некоторые браузеры позволяют "повесить замок" на содержимое определенных сайтов, запрещая их просмотр. Имеется несколько признанных рейтинговых систем, распознаваемых браузерами. Сам браузер, естественно, можно подстроить под использование рейтинга, а профиль пользователя браузера защитить паролем. Как правило, текст в этот тэг вставляется в строгом соответствии с текстом, имеющемся на рейтинговом сервере.
META name="keywords" content="corporate,guidelines,cataloging"
Список терминов и ключевых слов это именно то, что является самым главным при индексировании Вашего сайта поисковой машиной!
META name="description" content="Corporate Web Page"
Краткое описание Вашего сайта, используемое поисковым сервером для индексирования, и, как правило, вставляемое в текст страницы найденных совпадений в качестве описания Вашего сайта.
Все тэги META не видны при просмотре документа, и заметно увеличивают его размер, но, с другой стороны, без них не обойтись. (Представьте себе такую интересную задачу составить каталог книг в библиотеке, при условии того, что во всех книгах отсутствуют страницы с содержанием и аннотацией. Представляете? Так вот, тэги META и есть те самые страницы, на которых напечатано содержание).
Поэтому плавно перейдем ко второму (основному) разделу, а как же правильно записать эти тэги, чтобы Ваш сайт было легко отыскать при помощи поисковых систем. Надеюсь, что к этому времени Вы уже освоите синтаксис этих тэгов :-).
Длина содержимого тэгов META "desctiptions", не должна превышать 200 символов, а "keywords" 1000 символов. Это связано с тем, что поисковые серверы, как правило, используют именно такие величины при индексировании информации о Вашем сайте. Ограничения на длину этих тэгов нет. Однако, раздувать их до бесконечности смысла не имеет - все равно поисковые машины не воспримут всей информации! Можно получить и отрицательный результат некоторые поисковые машины отбросят часть описания, превышающего установленные нормы, в результате чего в каталог попадет не вся желаемая информация, или сервер просто отвергнет регистрацию Вашего сайта, или будет проиндексировано только название.
Нужно включить все наиболее часто используемые термины в описание (description) для увеличения посещаемости сайта
Вы, конечно же, можете включить в описание и термины, не имеющие отношения к Вашему сайту, однако в Сети такое поведение считается некорректным (появился даже термин спэмдексинг!). В список ключевых слов можно вставлять и фразы. В этом случае у Вашего сайта появляется шанс попасть в самое начало списка, выданного поисковым сервером, в случае совпадения фразы с той, что вводит пользователь. Задумайтесь над фразой - может быть, она прибавит посещений Вашему сайту!
Для увеличения рейтинга сайта и попадания его в верхнюю часть списка необходимо повторять от 3 до 7 раз (!) каждый термин, включаемый в описание.
Однако же, перебарщивать не стоит некоторые поисковые машины могут просто не проиндексировать Ваш сайт или отбросить при индексировании слишком часто повторяющийся термин (хрен редьки не слаще!) Повторение ключевых слов в фразах (попытка обмана поисковой машины :-), вероятнее всего приведет к отрицательному результату, описанному выше. Частота появления терминов в списке META никоим образом не согласуется с появлением терминов в тексте страницы. Поисковые машины работают, как правило, с тэгами META, а в случае их отсутствия уже с содержимым страницы.
Используйте синонимы - как можно большее их количество в описаниях и списке терминов.
Это не спэмдексинг, а трезвое осознание правильности выбранного пути :-).
Не используйте в описаниях и в списке терминов отвлеченные понятия и слова, не относящиеся к содержимому сайта, или слабо связанные друг с другом.
Поисковые машины пишут умники, хорошо разбирающиеся в искусственном интеллекте, и, скорее всего, Ваш сайт, украшенный гирляндой взаимонезависимых слов, будет успешно вычеркнут из индексного списка поискового сервера, причем, возможно, даже без участия его владельца.
Итак вперед, за орденами! Увеличивайте количество посещений сайта при помощи грамотно составленных тэгов META.
Если вам необходимо найти компанию, которая предлагают хостинг, то ее можно очень просто найти в интернете через любимую вами поисковую машину. При выборе конкретной компании вам следует обратить внимание на следующие очень важные моменты:
1) Техническая поддержка должна быть круглосуточной (24/7/365), включая праздники и выходные и должна предоставляться по телефону, сервису мгновенных интернет сообщений через пейджеры (icq, qip, miranda) и электронной почте. Время ответа не должно превышать 1 часа.
2) Хорошие показатели доступности сервера в сети (uptime, аптайм). Если вы занимаетесь продажей чего-либо на вашем сайте, то во время простоя сайта у вас не будет покупателей и еще сложиться негативное мнение как о ненадежном магазине. Выбирайте uptime не менее 99%. Причем важно узнать его величину от независимых служб мониторинга и за несколько отчетных периодов. Ведь что толку, если в мае сайт имел аптайм 99,9%, а в марте и апреле - всего 80%.
3) Быстрый интернет канал, к которому подключен ваш хостер. Здесь важно выбирать географическое расположение хостера в зависимости от аудитории вашего сайта. К примеру, сайт на английском языке лучше размещать в США, поскольку основная часть англоязычной аудитории будет идти оттуда, да и пропускная способность каналов и стоимость трафика в США значительно лучше, чем, к примеру, у отечественных хостеров.
4) Если ваш сайт относится в сфере e-commerce (интернет или электронная коммерция), то необходимо позаботиться о возможности доступа по SSL для совершения безопасных транзакций. Естественно, хостинг должен поддерживать выполнение скриптов на определенном языке программирования (php, perl, cgi, asp или java).
5) Многие хорошие хостеры вернут вам деньги, если вам не понравятся их услуги. Это довольно распространенная на западе практика (называется там money-back guarantee), которая повышает доверие к компании как поставщику услуг. Это будет гарантией тому, что в случае некачественных услуг хостинга вы не останетесь без посетителей и своих денег.
6) Дисковое пространство для вашего сайта должно быть с запасом. Так, если для сайта-визитки фирмы хватит и 10 Мб диска, то для новостного сайта или крупного интернет магазина может быть мало и 1 Гб.
7) Трафик. Для большинства сайтов количество трафика столь невелико, что даже если они используют вместе не 100, а 110 Мб трафика в месяц, то это не разорит хостера. Вот для этого и предлагают тарифные планы с безлимитным трафиком. А вот если у вас посещаемый сайт с графикой, файлами, то величина трафика может измеряться десятками и сотнями гигабайт.
В таких случаях за него придется платить и лучше сразу брать хостинг с оплатой трафика, тогда вы будете приблизительно знать, во что он вам обойдется. А то перерасходуете лимит, возьмут и отключат сайт или придет счет на круглую сумму. Да, через некоторое время сайт вновь заработает, но его простой уж точно не пойдет на пользу.
8) Безопасность. Если у вас должен быть защищенный (зашифрованный) канал, то вам придется оплатить дополнительные расходы на получение сертификата сервера. Если вы собираетесь обрабатывать персональные данные или кредитной карты на вашем веб-сайте, вам потребуется наличие сертификата безопасности.
Цифровые сертификаты используется для защиты любого сообщения с клиентами, которое содержит личную информацию. Также вы должны иметь установленный цифровой сертификат на вашем веб-сервере, чтобы вы могли воспользоваться кредитной картой заказов в безопасном режиме.
9) Доступ по FTP (file transfer protocol, протокол передачи файлов). Без него сейчас не обойтись и он предоставляется всеми хостерами. Если вы планируете создать несколько FTP-аккаунтов (например, для совместной разработки сайта), то узнайте, сколько их входит в ваш тарифный план.
10) Программное обеспечение. Узнайте, какое программное обеспечение или встроенные скрипты предлагает ваш хостер. Не все хостинговые компании предлагаем одинаковый набор программного обеспечения. У некоторых есть несколько бесплатных инструментов, которые помогут вам работать с сайтом легко и эффективно.
Есть множество скриптов, которые помогут вам организовать поиск на сайте, завести и управлять электронной почтой, создать форум, доску объявлений или чат, сделать резервное копирование и восстановление всего сайта или только одной базы данных.
Вообще поиску компании для веб-хостинга следует уделить достаточно времени. Помните, что вы значительная часть успеха вашего веб-сайта будет связана с этой компанией. А одним из главных расходов, которые вам нужно будет оплачивать при серьезных проектах, будет оплата услуг хостинга. Поэтому лучше сразу выбирать компанию с надежной репутацией.