- •1 Основы и основные понятия корпорации и кис
- •2 Общие вопросы проектирования и внедрения кис
- •2.1 Что даёт внедрение кис?
- •2.2 Принципы построения кис
- •2.3 Этапы проектирования кис:
- •Классический жизненный цикл
- •Макетирование (прототипирование)
- •Стратегии разработки по
- •Инкрементная стратегия
- •Эволюционная стратегия разработки по
- •Спиральная модель
- •Компонентно-ориентированная модель
- •Тяжеловесные и облегченные процессы
- •3 Классификация и характеристики кис
- •3.1 Классификация кис
- •3.2 Классификация автоматизированных систем
- •3.3 Характеристики кис
- •4 Архитектура кис
- •5 Требования, предъявляемые к кис
- •5. Гибкость
- •7. Эффективность
- •8. Безопасность
- •6 Выбор аппаратно-программной платформы кис
- •7 Международные стандарты планирования производственных процессов. Mrp/erp системы
- •7.1 Управление промышленными предприятиями в стандарте mrp II
- •7.2 Современная структура модели mrp/erp
- •7.2.1 Управление запасами
- •7.2.2 Управления снабжением
- •7.2.3 Управление сбытом
- •7.2.4 Управления производством
- •7.2.5 Планирование
- •7.2.6 Управление сервисным обслуживанием
- •7.2.7 Управление цепочками поставок
- •7.2.8 Управление финансами
- •8 Основные аспекты автоматизации деятельности предприятия на примере финансово-управленческих систем
- •9 Области применения и примеры реализации информационных технологий управления корпорацией
- •9.1 Бухгалтерский учет
- •9.2 Управление финансовыми потоками
- •9.3 Управление складом, ассортиментом, закупками
- •9.4 Управление производственным процессом
- •9.5 Управление маркетингом
- •9.6 Документооборот
- •9.7 Системы поддержки принятия решений, системы интеллектуального анализа данных
- •9.8 Предоставление информации о предприятии
- •10 Распределенные системы
- •10.1 Распределенные бд в Oracle и Oracle в распределенных бд
- •10.2 Администрирование распределенных систем на примере Oracle
- •11 Omg и её стандарт corba
- •11.1 История создания omg и стандарта corba
- •11.2 Брокер (посредник) объектных запросов orb (Object Request Broker)
- •11.3 Idl (Interface Definition Language - язык определения интерфейсов)
- •11.4 Object Services - объектные сервисы
- •11.5 Common Facilities - общие средства
- •11.6 Достоинства corba
- •11.7 Обзор протоколов giop и iiop
- •11.8 Безопасность в corba
- •11.8.1 Основные понятия corba Security Service
- •1. Принципал (principal)
- •2. Аутентификация (authentication)
- •3. Удостоверения (credentials)
- •4. Авторизация (authorization)
- •5. Делегирование (delegation)
- •6. Доверительные отношения (trust)
- •11.8.2 Структура corba Security Service
- •11.8.3 Делегирование в corba Security Service
- •11.8.4 Домены безопасности
- •11.8.5 Объектная модель обеспечения безопасности
- •11.8.5.1 Модель с точки зрения разработчика
- •11.8.5.2 Модель с точки зрения администратора
- •11.8.6 Основные политики безопасности
- •11.8.6.1 Управление политиками безопасности на уровне приложения
- •1. Доказательность (non-repudiation)
- •2. Интерфейс Current
- •12 Стандарт odbc
- •1. Назначение и отмена назначения
- •2. Соединение
- •13.1 Развитие сом-технологий
- •13.2 Терминология сом
- •14 Сравнительный анализ технологий corba и com
- •14.1 Концептуальный фундамент технологии
- •14.2 Комплексность системы
- •14.3 Используемые языки программирования
- •14.4 Уровень абстракции
- •14.5 Поддержка компонентной модели
- •14.6 Универсальный протокол обмена
- •14.7 Поддержка со стороны различных производителей и открытость
- •14.8 Развитость сервисной части
- •14.9 Самодокументирование системы
- •14.10 Технология и описание проекта
- •14.11 Виды объектов
- •14.12 Способы взаимодействия
- •14.13 Производительность
- •14.14 Масштабируемость
- •14.15 Устойчивость к сбоям
- •14.16 Управление транзакциями
- •14.17 Обеспечение безопасности
- •14.18 Взаимодействие с Internet
- •14.19 Скорость разработки систем
- •14.20 Простота использования
- •14.21 Взаимодействие с другими технологиями
- •14.22 Общие выводы
- •15 Обзор кис
- •15.1 Microsoft Business Solution Navision
- •15.2 Система SiteLine
- •15.3 Тб.Корпорация
- •15.4 Система Alfa
- •15.5 Система Парус
- •15.6 Прикладное решение для системы 1с:Предприятие 8.0 "Управление производственным предприятием"
- •15.7 Система "бэст-офис"
2. Интерфейс Current
Обычно разработчики прибегают к использованию API Security Service в тех случаях, когда нужно отслеживать действия в системе и сохранять информацию об этом, предоставлять права доступа с учетом большого количества информации (в том числе той, которая известна только на момент выполнения вызова) или при организации взаимодействия с унаследованными системами.
Одним из наиболее важных интерфейсов Сервиса Безопасности является интерфейс Current - точнее, таких интерфейсов даже два – они определены в разных модулях. Это интерфейсы SecurityLevel1::Current и SecurityLevel2::Current. Получение доступа к интерфейсу Current выполняется стандартным образом, с помощью вызова для ORB метода resolve_initial_references() с аргументом «SecurityCurrent».Как обычно, после вызова метода resolve_initial_references() нужно выполнить преобразование типа результата к нужному интерфейсу Current. При преобразовании к SecurityLevel2::Current необходимо предварительно убедиться, что реализация поддерживает этот уровень. Получить информацию о реализации можно с помощью вызова метода CORBA::ORB::get_service_information(), задав в качестве параметра типа CORBA::ServiceType значение константы CORBA::Security. Метод возвращает одно из следующих значений:
module Security { const CORBA::ServiceOption CommonInteroperabilityLevel0 = 10; const CORBA::ServiceOption CommonInteroperabilityLevel1 = 11; const CORBA::ServiceOption CommonInteroperabilityLevel2 = 12; }; |
На уровне Security Level 1 интерфейс Current содержит единственный метод, который позволяет получить список атрибутов безопасности в контексте выполняемого защищенного вызова:
module SecurityLevel1 { local interface Current : CORBA::Current { Security::AttributeList get_attributes (in Security::AttributeTypeList attributes); }; }; |
Единственный метод возвращает связанный с контекстом вызова список атрибутов безопасности указанных типов.
IDL-объявления основных типов выглядят так:
module Security {
typedef string SecurityName;
typedef sequence <octet> Opaque;
// Объявления констант для Security Service Options const CORBA::ServiceOption SecurityLevel1 = 1; const CORBA::ServiceOption SecurityLevel2 = 2; const CORBA::ServiceOption NonRepudiation = 3; const CORBA::ServiceOption SecurityORBServiceReady = 4; const CORBA::ServiceOption SecurityServiceReady = 5; const CORBA::ServiceOption ReplaceORBServices = 6; const CORBA::ServiceOption ReplaceSecurityServices = 7; const CORBA::ServiceOption StandardSecureInteroperability = 8; const CORBA::ServiceOption DCESecureInteroperability = 9;
// Service options for Common Secure Interoperability const CORBA::ServiceOption CommonInteroperabilityLevel0 = 10; const CORBA::ServiceOption CommonInteroperabilityLevel1 = 11; const CORBA::ServiceOption CommonInteroperabilityLevel2 = 12;
... // Расширяемые семейства (families) для стандартных типов данных
struct ExtensibleFamily { unsigned short family_definer; unsigned short family; }; |
typedef sequence<octet> OID; typedef sequence<OID> OIDList;
typedef unsigned long SecurityAttributeType; |
// Общие атрибуты (family = 0) const SecurityAttributeType AuditId = 1; const SecurityAttributeType AccountingId = 2; const SecurityAttributeType NonRepudiationId = 3;
// Атрибуты привилегий (family = 0) const SecurityAttributeType _Public = 1; const SecurityAttributeType AccessId = 2; const SecurityAttributeType PrimaryGroupId = 3; const SecurityAttributeType GroupId = 4; const SecurityAttributeType Role = 5; const SecurityAttributeType AttributeSet = 6; const SecurityAttributeType Clearance = 7; const SecurityAttributeType Capability = 8;
struct AttributeType { ExtensibleFamily attribute_family; SecurityAttributeType attribute_type; }; typedef sequence<AttributeType> AttributeTypeList;
struct SecAttribute { AttributeType attribute_type; OID defining_authority; Opaque value; // значение зависит от defining_authority }; typedef sequence <SecAttribute> AttributeList; } |
Таким образом, метод SecurityLevel1::Current::get_attributes() возвращает, по сути, состояние объекта Credentials, сопоставленного с выполняемым вызовом. На уровне Level1 вызов этого метода обычно выполняется самим ORB’ом.
На уровне Level 2 появляется дополнительная функциональность, связанная с явным управлением процессом обеспечения безопасности:
module SecurityLevel2 { ...
local interface Credentials { Credentials copy (); void destroy();
readonly attribute Security::InvocationCredentialsType credentials_type; readonly attribute Security::AuthenticationStatus authentication_state; readonly attribute Security::MechanismType mechanism; attribute Security::AssociationOptions accepting_options_supported; attribute Security::AssociationOptions accepting_options_required; attribute Security::AssociationOptions invocation_options_supported; attribute Security::AssociationOptions invocation_options_required;
...
boolean set_attributes ( in Security::AttributeList requested_attributes, out Security::AttributeList actual_attributes );
Security::AttributeList get_attributes ( in Security::AttributeTypeList attributes );
... };
typedef sequence <Credentials> CredentialsList;
local interface ReceivedCredentials : Credentials { ... }; ... local interface Current : SecurityLevel1::Current { readonly attribute ReceivedCredentials received_credentials; }; }; |
Заключение
Совместное использование возможностей ORB, стандартных компонентов Сервиса Безопасности CORBA и его API позволяет создавать распределенные системы с требуемым уровнем защиты. При этом разработчик можно легко задействовать стандартные решения в области обеспечения безопасности, которые уже широко используются в компьютерной индустрии.