Мартынов И.А. ОСНОВНЫЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ЭФФЕКТИВНОЙ РАБОТЫ С ИНФОРМАЦИОННЫМИ ПОТОКАМИ В ЛОКАЛЬНЫХ СЕТЯХ И ИНТЕРНЕТЕ Все системы, имеющие сложное строение, состоящие из многих взаимосвязанных компонентов подвержены естественным процессам модернизации и совершенствования со стороны инженеров, системных администраторов и разработчиков. Цена вопроса – эффективность работы этих систем, что, в денежном эквиваленте, быть достаточно большой суммой. Чем сложнее система и используемые в ней технологии, тем большее количество вариантов ее совершенствования можно предложить. Устремлять к максимуму можно любую составляющую, а можно все сразу – хуже, как говорится, не будет. Тем не менее, мировой опыт показал, что подобные смелые эксперименты порой приводят к обратным результатам, и вместо сбалансированной и четко работающей технологии получают набор разрозненных программ и ничем не связанных стандартов. Как и в любом ином деле, здесь очень важно понять что именно требуется и каких результатов необходимо достичь, поскольку это процесс является, по сути, проектом, и, посему, ограничен, как по времени, так и по ресурсам. После четкого определения целей, необходимо разработать комплексный план действий, определить основные этапы выполнения работ и сроки их выполнения, а также план тестирования и верификации полученной системы на соответствие заявленным требованиям. В данной статье будут рассмотрены ключевые моменты, связанные с организацией эффективной работы в сетевых компьютерных системах, их взаимосвязь и влияние на общую картину сетевого взаимодействия. Приводимые ниже факты и утверждения можно использовать в качестве отправной точки или практического пособия при разработке и строительстве подобных систем, что особенно важно сделать именно не начальном этапе разработки и планирования, заложив тем самым прочный фундамент будущего развития и возможностей модернизации. Требования к современным информационным системам Кроме естественного требования, подразумевающего реализацию всех заявленных параметров, задач, бизнес-логики и т.п., существуют также дополнительные требования, позволяющие системе эффективно работать в любых условиях. Для успешной реализации прикладной задачи и создания приложения, сфера действия которого не ограничивается локальной сетью организации, требуется четко представлять себе все те риски, которым оно может быть подвержено за ее пределами. Исходя из опыта создания подобных систем, можно выделить следующие основные требования, которым, в той или иной мере, должны удовлетворять как все компоненты по отдельности, так и вся система в целом. Несоответствие или уязвимость в любом из приведенных ниже требованиях приводит к частичной или полной потери функционала системы, простою системы, потере времени и, в конечном итоге, потере денег организации. Доступность (постоянство) Под доступностью понимается возможность получения доступа к системе и выполнение необходимых действий в определенное время (например, круглосуточно 7 дней в неделю). В комплексной системе каждый компонент может повлиять на работу всего программного комплекса, что напрямую может сказываться на доступности той или иной части целого. Доступность, как правило, обеспечивается отдельно для каждого уровня, т.е. для уровней хранения, обработки и представления информации. Доступность на уровне хранения данных подразумевает возможность извлечения и изменения данных. К основным рискам этого уровня можно отнести: Сбои аппаратного обеспечения, приводящие к неработоспособности серверов либо сетевых компонентов. Этому риску подвержены все компьютерные системы; Сбои и ошибки в конфигурировании и функционировании программного обеспечения, приводящие к остановке служб и неработоспособности программ. В частности, проблемы с работой операционной системы, настройкой протоколов, интерфейсов и т.п.; Нарушение целостности базы данных, приводящее к появлению в базе несогласованных данных и ошибочному поведению программ. Для решения такого рода проблем и реализации доступного хранилища данных используются такие технологии, как резервные источники питания, RAID, кластеризация, запасные (резервные) сервера, распределение нагрузки между несколькими физически разнесенными СУБД, а также декларативные и процедурные средства контроля целостности данных. На уровне обработки информации доступными должны быть программные компоненты, реализующие логику прикладной программы, выполняющие вычисления и т.п. Основные риски здесь похожие – это отказ в работе аппаратного и программного обеспечения, приводящие к невозможности обслуживания запросов клиентов. В случае с трехуровневой моделью, сервера приложений также можно реализовать в отказоустойчивой варианте, например путем создания кластера, либо установки дополнительных серверов. Доступность компонентов COM+ (при их использовании) реализуется также распределением (дублированием) и возможностью использования любого сервера. В случае, если программа работает на локальной рабочей станции, необходимы механизмы, позволяющие устанавливать или восстанавливать программу (автоматически) в случае ее недоступности. В гетерогенном окружении необходимо иметь установочные пакеты программ для каждой ОС, где он используется. На уровне представления данных, клиент должен иметь возможность доступа к средствам общения с программой. В случае локального приложения это достигается аналогично уровню обработки, т.к. эти две формально отдельные части связаны в единый программный комплекс, устанавливаемый, в данном случае, на локальные рабочие станции. А именно путем настройки автоматической проверки доступности приложений и всех компонентов, которые оно использует и установки в случае их повреждения либо отсутствия в системе. В доменном окружении существует специальные средства централизованного контроля и группового развертывания программ на рабочие станции по сети. Если приложение использует тонкого клиента, то необходимо присутствие в системе веббраузера, способного интерпретировать загружаемую с сервера программу (html-страницу), а также запускать т.н. активный контент (active content), к которому относятся скрипты, ActiveX, flush, java-applet и т.п. В отсутствие сетевого подключения разработаны технологии, позволяющие вести работу с системой без подключения к серверу, в режиме offline. В этом режиме локальная программа может работать со своей локальной копией (репликой) данных, сохраненных на сервере в специальной области памяти (cache). При появлении подключения производится синхронизация данных между клиентом и сервером, актуализируя, таким образом, информацию. Гибкость (адаптивность, масштабируемость) Информационное пространство подвергается постоянным изменениям: меняются как данные в хранилище, так и среда, окружение работы. Это не может не сказываться на структуре ИС, которая также должна следовать изменившейся среде. Это свойство системы косвенно является показателем потенциала тех технологий, которые были заложены в нее разработчиками. Гибкость информационных компьютерных систем достигается, прежде всего, благодаря модульности, позволяющей каждой компоненте (либо совокупности компонентов) работать в своем окружении, но в связке и в непосредственном взаимодействии с остальными компонентами. Используемое в данной работе, разделение на три уровня позволяет формально разделить все используемые программные средства, протоколы, интерфейсы на три группы в соответствии с их ролью в программном комплексе. Гибкость и адаптивность каждой из них является залогом хороших показателей и для всего комплекса. Ниже будет приведена предлагаемая автором схема компонентов ИС, каждый из которых также можно рассматривать в разрезе их способности к адаптации к новым условиям. Хорошим примером может служить переход к использованию веб-технологий и расширению географии программы. Выполнение этой задачи может потребовать замены некоторых, либо всех компонентов системы, не отвечающих требованиям организации работы в Интернете, либо функционально не имеющим возможности выполнять эти задачи. Это пример плохой адаптации, т.к. возможна замена всех компонентов, и, по сути, здесь речь идет о разработке нового приложения. В общем, можно утверждать, что гибкость системы (FL), представленная в виде суммы этого показателя для всех подкомпонент (fli), обратно пропорциональна количеству и качеству изменений (chi), вносимых в эти подкомпоненты при изменении условий работы: FL fl i 1 ch i Защищенность (конфиденциальность) Еще одним требованием необходимым, выдвигаемым к современным системам является наличие системы безопасности, способной обеспечить безопасную работу с информацией в широко-распределенном сетевом окружении. При передаче данных по публичным сетям (Интернету) в открытом виде, возможен их перехват и несанкционированное использование, наносящее вред организации и приносящее убытки. Поэтому одной из ключевых задач системы безопасности (СБ) сетевого приложения является безопасная передача данных, реализуемая средствами криптографии, или, проще говоря, шифрованием трафика. Кроме этого, можно выделить также следующие компоненты СБ: Строгая аутентификация (проверка подлинности пользователя); Разграничение прав доступа и контроль; Отслеживание удачных и неудачных попыток доступа к компонентам системы (аудит); Безопасное хранение данных на физических носителях (шифрование данных); Для реализации эффективной системы безопасности, требуется соответствие всех компонентов определенным требованиям и способность поддержать общую схему работы в безопасном окружении. Это реализуется за счет использования соответствующих протоколов аутентификации, протоколов передачи данных и программных интерфейсов. Все они должны быть совместимы друг с другом, и обладать определенным уровнем стойкости к попыткам взлома и получения несанкционированного доступа (НСД) к информации. Изначально закладывая подобный потенциал в создаваемую систему, разработчик может в будущем организовать работу приложения по безопасной схеме, не перестраивая и не заменяя ее компоненты. Стабильность (отказоустойчивость) Отдельно также возможно выделить требование отказоустойчивости, хотя отчасти оно реализуется в требовании к доступности. Стабильность работы позволяет системам работать в штатном режиме при возрастании нагрузки, а также продолжать функционировать в случае сбоев. Кроме перечисленных выше требований и рисков, отказоустойчивые системы имеют встроенные механизмы восстановления систем в случае сбоев, такие как резервные копии (backups).