Изучение зависимостей

Для предотвращения возникновения циклов, которые могут привести к созданию тупиковых ситуаций или активных тупиков, программисты и администраторы должны исключить возможность появления циклических зависимостей между серверами. По мере дальнейшего перемещения компьютерных систем в среду клиент/сервер диагностирование таких зависимостей становится все более затруднительным. Например, если файловая система Linux настроена на применение системы NFS для доступа к удаленным файлам, то на основе только имен файлов пользователи или программисты не могут отличить удаленный файл от локального. Аналогичным образом, не всегда можно определить, что в программу, реализующую какую-либо из системных команд (например, применяемых для определения текущего времени дня), может быть встроено клиентское программное обеспечение.

Чтобы иметь возможность исключить непреднамеренное создание зависимостей, программисты, работающие с программным обеспечением типа клиент/сервер, должны иметь информацию о том, предусматривает ли каждая конкретная библиотечная процедура или функция операционной системы доступ к удаленному серверу. Для предоставления такой информации на предприятии необходимо вести подробный учет характеристик каждого сервера с указанием серверов, от которых он зависит. При разработке или установке любого программного обеспечения необходимо вносить изменения в этот список зависимостей.

Для учета информации о зависимостях могут применяться два подхода: с низкой степенью детализации и с высокой степенью детализации. В методе предотвращения зависимостей с низкой степенью детализации каждая служба рассматривается как отдельный программный объект и контролируется отсутствие циклических зависимостей между службами. Например, если служба дистанционного доступа к файлам зависит от службы времени, то служба времени не может быть запрограммирована на использование службы дистанционного доступа к файлам. В методе предотвращения зависимостей с высокой степенью детализации в качестве отдельного объекта рассматривается каждый сервер и контролируется отсутствие циклических зависимостей между серверами. Например,

при использовании этого метода допускается, что файловый сервер X может вызвать сервер службы времени У, а сервер службы времени У может вызвать файловый сервер Z (но не файловый сервер X).

Основным преимуществом подхода с низкой степенью детализации является упрощение контроля: обычно на предприятии эксплуатируется не более десятка служб и между ними существует небольшое число зависимостей. Основным недостатком подхода с низкой степенью детализации являются ненужные ограничения на взаимодействие. В отличие от этого, подход с высокой степенью детализации обеспечивает более подробный анализ зависимостей; он допускает, что между службами может существовать циклическая зависимость, при условии, что нет цикла, который связывает отдельные серверы. Основной недостаток подхода с высокой степенью детализации обусловлен тем, что при его использовании приходится учитывать больший объем информации. Сведения о зависимостях необходимо обновлять при добавлении к набору серверов каждого нового сервера или при внесении каждого изменения в конфигурацию сервера.

Похожие статьи Меню Опрос Фото Популярное