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

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

Проверка подлинности пользователя сервисов компоненты распределенной системы (аутентификация1)). Проверка подлинности может быть односторонней, когда только сервер убеждается в подлинности клиента, или двухсторонней, когда клиент так же убеждается в подлинности сервера.

Ограничение доступа к сервисам компоненты в зависимости от результатов аутентификации (авторизация). Для решения данной задачи промежуточная среда должна поддерживать ограничение доступа, основанное на так называемых ролях (role based security). Поскольку разработчики компоненты не могут обозначить уровни доступа через конкретных пользователей или групп пользователей системы, то они должны использовать некоторые абстрактные роли, которые при развертывании компоненты будут связаны администратором системы с учетными записями пользователей системы.

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

Функции обеспечения безопасности могут обеспечиваться транспортным протоколом, используемым промежуточной средой, самой средой, или ими обеими в совокупности.

Прикладное программное обеспечение (ПО) может быть представлено в виде набора из трех частей, обычно называемых слоями (или уровнями):

1) слой (уровень) логики (алгоритмов) представления, или презентационный слой;

2) слой (уровень) бизнес-логики (вычислительных и управляющих алгоритмов), или слой прикладной логики;

3) слой (уровень) логики доступа к данным, или слой управления ресурсами.

Каждая из указанных частей прикладного программного обеспечения вовсе не должна полностью соответствовать отдельному модулю программы, отдельной программе, процессу, функции или процедуре - такое разделение достаточно полезно, но не необходимо. Очень простые приложения часто способны собрать все три части в единственную программу, а подобное разделение соответствует функциональным границам.

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

Бизнес-логика определяет, для чего, собственно, предназначено приложение. В зависимости от конкретных функциональных требований и сложности задач может быть полезным подразделить эту часть на несколько компонентов. В этом случае конкретная реализация каждого компонента может быть представлена в виде набора процедур (библиотеки), класса или классов объектов, отдельных программ. Разделение слоя бизнес-логики приложения по границам между программами обеспечивает потенциальную возможность распределения этой части для выполнения на разных вычислительных устройствах.

Алгоритмы доступа к данным исторически рассматривались как специфический для конкретного приложения интерфейс к механизму постоянного хранения данных наподобие файловой системы или системы управления базами данных (СУБД). При помощи этой части приложение управляет соединениями с базой данных и запросами к ней (перевод специфических для конкретного приложения запросов на язык базы данных, получение результатов и перевод этих результатов обратно в специфические для конкретного приложения структуры данных). К этой части относят только специфический для приложения интерфейс к СУБД, но не ее саму.

Разделение функциональных алгоритмов на логику представления, бизнес-логику и логику доступа к данным предполагает разные уровни абстракции в различных частях приложения. Разложение же приложения на части согласно различным уровням абстракции представляет иерархию, которую можно использовать, чтобы разделить одну программу на несколько одновременно исполняемых модулей. Процесс, реализующий один или несколько уровней в этой иерархии, не должен ничего «знать» об уровнях, расположенных выше или ниже. Поэтому, за исключением обмена информацией между процессами в различных слоях, каждый процесс независим и самодостаточен. Процесс на одном уровне не нуждается в прямом доступе к структурам данных, расположенным на другом уровне. Следовательно, процесс может быть легко выделен в отдельно исполняемую программу.

Представленное послойное разделение прикладного программного обеспечения минимизирует взаимодействие между составными элементами и потому служит основой для выделения компонентов, которые могут быть распределены для работы на нескольких вычислительных машинах.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: