Содержание к диссертации
Введение
Глава 1 Общая характеристика автоматизированной системы расчетов за услуги электросвязи 12
1.1 Назначение, эволюция и классификация автоматизированных систем расчетов за услуги электросвязи 12
1.2 Анализ требований, предъявляемых к автоматизированным системам расчетов за услуги электросвязи 20
1.3 Анализ тенденций развития автоматизированных систем расчетов за услуги электросвязи 23
1.4 Структура автоматизированной системы расчетов за услуги электросвязи 27
1.5 Проблемы построения автоматизированных систем расчетов за услуги электросвязи 33
1.6 Постановка задачи 38
1.7 Выводы по главе 1 41
Глава 2 Разработка модели функционирования автоматизированной системы расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры 42
2.1 Выбор подхода к моделированию 42
2.2 Структура системы 45
2.3 Функциональная модель системы 48
2.4 Анализ рабочей нагрузки 51
2.5 Аналитическая модель производительности системы 57
2.6 Анализ отказоустойчивости системы 65
2.7 Выводы по главе 2 70
Глава 3 Разработка метода построения автоматизированной системы расчетов за услуги электросвязи на. основе многоуровневой распределенной архитектуры 71
3.1 Общее описание метода построения 71
3.2 Формализация системы интерфейсов 75
3.3 Формализация системы пользовательских типов и ролей 81
3.4 Формализация каналов доступа 87
3.5 Выбор стратегии кэширования данных 90
3.6 Выбор топологии системы 94
3.7 Выводы по главе 3 95
Глава 4 Разработка комплекса алгоритмов функционирования автоматизированной системы расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры 96
4.1 Общий алгоритм функционирования 96<
4.2 Алгоритмы функционирования WEB сервера 98
4.3 Алгоритмы функционирования сервера приложений 102
4.4 Алгоритмы функционирования в случае отказа одного из узлов 108
4.5 Выводы по главе 4 112
Глава 5 Внедрение системы «Центр самообслуживания» 113
5.1 Назначение системы «Центр самообслуживания» 113
5.2 Архитектура системы «Центр самообслуживания» 115
5.3 Основные компоненты системы «Центр самообслуживания» 118
5.4 Типы пользователей и роли в системе «Центр самообслуживания»... 125
5.5 Интерфейсы системы «Центр самообслуживания» 131
5.6 Анализ статистики по работе системы «Центр самообслуживания»... 136
5.7 Выводы по главе 5 144
Заключение 145
Список литературы 146
- Анализ тенденций развития автоматизированных систем расчетов за услуги электросвязи
- Аналитическая модель производительности системы
- Формализация системы пользовательских типов и ролей
- Алгоритмы функционирования сервера приложений
Введение к работе
В настоящее время одной из наиболее интенсивно развивающихся отраслей является отрасль телекоммуникаций. В связи с этим, к автоматизированным системам расчетов за услуги электросвязи, как к основному инструменту управления бизнесом предприятий, предоставляющих услуги связи, предъявляются все более высокие требования.
В области традиционной фиксированной связи системы учета длительности переговоров и расчета стоимости существовали с момента появления первых узлов связи [70]. Данные системы не имели качественных отличий от финансовых расчетных систем, используемых в смежных отраслях (банковских, бухгалтерских, складских и пр.).
Развитие автоматизированных системы расчетов за услуги электросвязи (в дальнейшем АСР) как отдельного класса систем связано с появлением сотовой связи. Специфика развития сотовой связи определяют качественно новый набор требований, предъявляемых к автоматизированным системам расчетов. К числу таких требований можно отнести: необходимость оперативного доступа к информации, возможность предоставлять непосредственный доступ абонентам, гибкие возможности интеграции с другими информационными системами, высокая отказоустойчивость и другие [63,66,111].
Автоматизированные системы расчетов за услуги электросвязи стали объектом научного исследования с появлением в 1998 году Общих технических требований к автоматизированным системам расчетов, которые регламентировали функциональность данных систем [108]. Первая монография «Методы разработки и моделирования биллинговых систем» [81] была опубликована в 2002 году и затрагивала вопросы создания «универсальной» системы расчетов. В этой работе акцент делался на функциональную структуру биллинговой системы, выделялось ядро системы, рассматривалась реляционная схема данных СУБД автоматизированной системы расчетов. Остальные специализированные монографии [70, 103] затрагивали исключительно экономические аспекты эксплуатации АСР. Таким образом, архитектура
построения автоматизированных систем расчетов за услуги электросвязи представляет собой новый предмет научного исследования.
Анализ тенденций развития современных автоматизированных систем расчетов за услуги электросвязи позволяет сделать вывод, что данные системы развиваются в направлении универсализации, интеграции и переходу к интерактивному обслуживанию абонентов. Тенденция универсализации выражает переход к унифицированной системе расчетов за предоставленные услуга связи. Интеграционная тенденция отражает увеличение степени связности АСР и других систем, функционирующих в корпоративной информационной среде оператора связи, а также увеличение степени взаимодействия АСР с системами операторов - партнеров. Последняя из перечисленных тенденций - тенденция перехода к интерактивному режиму обслуживания абонентов заключается в постепенной передаче абонентам интерфейсов самообслуживания, позволяющих абонентам оператора связи самостоятельно управлять состоянием своих лицевых счетов.
Анализ результатов сертификационных испытаний автоматизированных систем расчетов за услуги электросвязи [65] показывает, что в настоящее время большинство данных систем проектируется и реализуется на основе двухуровневой архитектуры клиент-сервер. Основные преимущества клиент-серверной архитектуры заключаются в обеспечение многопользовательской работы, транзакционной обработке данных, поддержке целостности данных и т.д. [2]. Это позволило архитектуре клиент-сервер занять прочное положение в качестве базовой архитектуры при построении систем обработки информации и управления в различных отраслях промышленности, в том числе, при построении автоматизированных систем расчетов за услуги электросвязи.
Однако архитектура клиент-сервер обладает существенными недостатками, такими как низкая отказоустойчивость системы, большая стоимость программного и аппаратного обеспечения серверов СУБД, высокая трудоемкость перехода на новые версии клиентских приложений при большом числе рабочих мест, невозможность динамического изменения конфигурации
системы без останова процесса обслуживания, отсутствие гибкости в разграничении прав доступа пользователей и др. [18,6,140].
Помимо двухуровневой архитектуры клиент-сервер, в настоящее время интенсивное развитие получили системные архитектуры, включающие в себя три и более уровней [5,101,136]. В частности, трехуровневая архитектура подразумевает наличие трех уровней абстрагирования: презентационного уровня, уровня бизнес-логики и уровня доступа к данным [34]. Развитием трехуровневого подхода является использование архитектур с более чем тремя уровнями обработки данных [93,60,135]. При этом промежуточное положение между клиентом и сервером зашшают мониторы транзакций [1,92], а также сервера приложений и балансировки нагрузки [59,61]. Перечисленные системные архитектуры позволяют в целом улучшить масштабируемость системы и снизить нагрузку на сервер СУБД. Применение данных архитектур особенно эффективно при' построении мультиагентных систем в гетерогенных средах. Однако сами по себе перечисленные подходы не решают наиболее актуальных задач построения автоматизированных систем расчетов, таких как задачи обеспечения отказоустойчивости, интерактивного многоканального абонентского доступа к данным и задачи динамического изменения конфигурации системы без останова процесса обслуживания.
Таким образом, существует противоречие между требованиями, предъявляемыми к автоматизированным системам расчетов, тенденциями их развития и системной архитектурой клиент-сервер, традиционно применяемой при проектировании систем данного класса. Выявленное противоречие определяет актуальность исследований, направленных на решение проблемы разработки архитектуры построения автоматизированных систем расчетов, позволяющей эффективно преодолевать недостатки свойственные архитектуре клиент-сервер и учитывающей функциональные и эксплуатационные особенности характерные для данных систем. Для решения указанной проблемы предлагается использовать при построении автоматизированных систем расчетов за услуги электросвязи многоуровневую распределенную
архитектуру. Необходимо заметить, что концепция многоуровневых систем была предложена еще в трудах М.Месаровича по общей теории систем [99,100]. Таким образом, в данной работе делается попытка применить указанную концепцию в новой предметной области.
Объектом исследования в настоящей диссертационной работе является автоматизированная система расчетов за услуги электросвязи.
Предмет исследования - архитектура построения автоматизированных систем расчетов за услуги электросвязи.
Целью работы является построение автоматизированной системы расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры. Данная цель предполагает решение следующих задач:
Разработка математической модели функционирования автоматизированной системы расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры;
Разработка метода построения автоматизированной системы расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры;
Разработка комплекса алгоритмов функционирования автоматизированной системы расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры;
Проектирование и реализация программного комплекса «Центр самообслуживания» на основе многоуровневой распределенной архитектуры.
Для достижения поставленной цели в работе использовались методы математического моделирования с использованием аппарата теории графов, теории вероятностей и теории систем массового обслуживания, а также методы математической статистики.
Основные положения диссертационной работы, выносимые на защиту:
Математическая модель функционирования автоматизированной системы расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры;
Метод построения автоматизированных систем расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры;
Комплекс алгоритмов функционирования автоматизированной системы расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры;
Система «Центр самообслуживания», спроектированная и реализованная на основе многоуровневой распределенной архитектуры. Научная новизна положений, выносимых автором на защиту, раскрывается
в следующих тезисах:
Предложенная математическая модель функционирования автоматизированной системы расчетов за услуги электросвязи* на основе многоуровневой распределенной архитектуры отличается * учетом многоканальности доступа пользователей к системе, учетом кластерной топологии системы и множественного представления пользовательских интерфейсов. Это позволяет более эффективно подойти к* выбору аппаратного обеспечения (как в качественном, так и* в количественном аспекте) на этапе синтеза;
Метод построения автоматизированной системы расчетов за услуги электросвязи является новым. Впервые проектирование и реализацию автоматизированной системы расчетов за услуги электросвязи предложено проводить на основе многоуровневой распределенной архитектуры.
Алгоритм управления пользовательскими сессиями отличается возможностью динамического переключения сеанса работы пользователя между узлами в кластере серверов приложений, что позволяет устранить отказ в обслуживании при возникновении программных или аппаратных сбоев на серверах приложений. Алгоритм фильтрации и преобразования запросов отличается использованием механизма регулярных выражений,
что обеспечивает простоту и наглядность правил преобразования запросов, а также позволяет достичь функциональной изолированности WEB серверов и серверов приложений.
4. Система «Центр самообслуживания» отличается тем, что проектирование данной системы впервые было выполнено на базе многоуровневой распределенной архитектуры, что позволило качественно улучшить основные эксплуатационные характеристики системы и расширить ее функциональные возможности.
Научная значимость работы состоит в том, что впервые для построения автоматизированных систем расчетов за услуги электросвязи предлагается использовать многоуровневую распределенную архитектуру, а не архитектуру клиент-сервер, традиционно используемую для построения таких систем.
Практическая значимость работы подтверждена успешным внедрением системы «Центр самообслуживания» на предприятиях, предоставляющих услуги связи в стандарте GSM. Система «Центр самообслуживания» была успешно внедрена у операторов связи стандарта GSM "Мегафон-Москва" (ЗАО «Соник Дуо»), "Мегафон-Самара" (ОАО «Мобильные Системы Связи-Поволжье»), МТС-Красноярск (ООО «СибЧелендж»), МТС-Норильск (ООО «СибЧелендж») и МТС-Томск (ООО «Томская сотовая связь»). Также на основе предложенной архитектуры была спроектирована и реализована система «Интегрированное биллинговое решение», обеспечивающая функции распределенного приема платежей между операторами связи «Мегафон -Нижний Новгород» (ЗАО «Мобиком-Центр»), «Мегафон - Ростов» (ЗАО «Мобиком-Кавказ»), «Мегафон - Владивосток» (ЗАО «Мобиком-Хабаровск»), «Мегафон - Новосибирск» (ЗАО «Мобиком-Новосибирск»), «Северо-Западный филиал ОАО «МегаФон» и «Мегафон - Екатеринбург» (ЗАО «Уральский Джи Эс Эм»),
По материалам исследования автором опубликовано шесть печатных работы [53,54,56,55,56,57]. Основные результаты работы докладывались автором на конференции «Компьютерные технологии и телекоммуникации»,
проводимой в рамках ежегодного политехнического симпозиума (Санкт-Петербург, 2003).
Диссертационная работа состоит из введения, пяти глав, заключения и списка литературы, включающего 140 наименований. Основная часть работы изложена на 130 страницах машинописного текста. Работа содержит 43 рисунка и 11 таблиц.
В первой главе дается общее описание автоматизированных систем расчетов за услуги электросвязи. Перечисляются требования, предъявляемые к системам такого типа. Приводится классификация автоматизированных систем расчетов за услуги электросвязи и анализируются основные этапы развития таких систем. Дается общее описание структуры системы расчетов. На основе проведенного анализа требований и этапов развития АСР выявляются основные тенденции развития, характерные для АСР в настоящее время. Выявляется противоречие между требованиями, предъявляемыми к АСР на современном этапе развития, тенденциями развития АСР и системной архитектурой клиент-сервер, используемой в настоящее время при построении автоматизированных систем расчетов за услуги электросвязи. Дается общее описание предлагаемого подхода к проектированию и реализации автоматизированных систем расчетов за услуги электросвязи, основанного на использовании многоуровневой распределенной архитектуры.
Во второй главе предлагается формальное теоретико-множественное описание автоматизированной системы расчетов, построенной на основе многоуровневой распределенной архитектуры. Приводится графовая модель топологии системы, анализируется характер входной нагрузки. Разрабатывается аналитическая модель для оценки производительности системы, учитывающая кластерную топологию системы, многоканальность доступа пользователей, а также множественность конечных интерфейсов пользователей. Анализируется отказоустойчивость системы, построенной на основе многоуровневой распределенной архитектуры.
Третья глава посвящена вопросам проектирования автоматизированных систем расчетов за услуги электросвязи на основе многоуровневой распределенной архитектуры. Формулируются основные принципы синтеза систем в предлагаемой архитектуре. Предлагаемый метод построения автоматизированных систем расчетов за услуги электросвязи включает в себя следующие шаги: 1) формализация системы интерфейсов АСР* на основе трехуровневой модели интерфейсов; 2) формализация системы пользовательских типов и ролей; 3) формализация каналов доступа к системе; 4) выбор стратегий кэширования^ данных; 5) выбор топологии системы. Предлагается модель жизненного цикла разработки автоматизированной системы расчетов за. услуги электросвязи на основе многоуровневой распределенной архитектуры.
Четвертая глава посвящена разработке комплекса алгоритмов функционирования АСР на основе многоуровневой распределенной архитектуры. Рассматривается общий алгоритм функционирования системы на основе многоуровневой распределенной архитектуры. Раскрываются детали взаимодействия компонент пользователь - WEB - сервер, WEB' - сервер -сервер приложений, сервер приложений - СУБД. Отдельно рассматриваются алгоритмы взаимодействия компонент системы в случае отказа одного или нескольких узлов.
В пятой главе описывается внедрение системы «Центр самообслуживания», спроектированной и реализованной на основе многоуровневой распределенной архитектуры. Рассматриваются физическая структура системы, структура основных компонент системы, способы реализации многоканального доступа. Описываются предоставляемые системой интерфейсы, типы пользователей и роли, доступные в системе. Приводится статистика по работе системы.
В заключении перечислены основные результаты диссертационной работы.
Анализ тенденций развития автоматизированных систем расчетов за услуги электросвязи
На основе проведенного анализа этапов развития систем расчетов, и анализа требований, предъявляемых к данным системам, выявляются наиболее значимые тенденции развития характерные для АСР. В настоящее время такими тенденциями являются:
1. Универсализация;
2. Интеграция;
3. Самообслуживание.
Тенденция универсализации определяет направление развитие систем расчетов в сторону большей автономности от поставщика услуги (оператора связи) и унификации относительно спектра рассчитываемых услуг [32]. Также тенденция универсализации выражает переход к унифицированной системе расчетов, независимо от единицы измерения предоставленной услуги (минуты, байты, ценность передаваемой информации или количество обращений пользователя к данной услуге).
Множество факторов, способствующих унификации системы расчетов включает в себя: расширение спектра предоставляемых операторами связи услуг, усложнение услуг, увеличение числа контрагентов, повышение требовательности потребителей к качеству предоставляемых услуг и расчетов за оказанные услуги [79,32].
Действительно, спектр предоставляемых абонентам услуг включает в себя не только классическую фиксированную связь и мобильную связь различных стандартов, но и услуги доступа в Интернет, ISDN, сети передачи данных, спутниковое и кабельное телевидение и др. Помимо телематических услуг операторы предоставляют абонентам все большее количество дополнительных услуг информационного, рекламного и развлекательного характера. Расширение набора предоставляемых услуг неразрывно связано с их усложнениехМ. Усложнение услуг в свою очередь, связано с усложнением тарификации данных услуг, увеличение количества влияющих на тарификацию параметров и усложнение связи между параметрами. Предоставляемые услуги становятся комплексными, появляется возможность одновременного обслуживания в рамках одной услуги нескольких абонентов и т.д.
Процесс расширения множества предоставляемых основных и дополнительных услуг приводит к увеличению числа участников данного процесса, как со стороны поставщиков, так и со стороны потребителей. Так большинство дополнительных услуг рекламного, развлекательного и информационного характера предоставляется компаниями - провайдерами данных услуг (Internet Service Provider), использующими предприятие связи в качестве посредника.
Тенденция универсализации подтверждается также результатами сертификационных испытаний АСР [65]. Согласно полученным данным, около 46% всех сертифицированных систем расчетов, классифицируются по номенклатуре служб и услуг электросвязи, относительно которых проводятся расчеты как универсальные (рис. 1.4).
Наряду с термином «универсализация» в отечественной и зарубежной практике часто употребляется термин «конвергенция». Под термином конвергентность подразумевается:
1. Мультисервисность, т.е. Предоставление абонентом расширенного спектра услуг, как телекоммуникационных, так и дополнительных;
2. Единая система учета и выставления счетов за пользование различными услугами;
3. Единая система учета для различных стандартов связи (PSTN, GSM, NMT, CDMA и пр.) [134,68].
Вторая важная тенденция развития АСР - это интеграционная тенденция. Под интеграцией подразумевается увеличение степени связности АСР и других систем, функционирующих в корпоративной информационной среде (КИС) оператора, а также увеличение степени взаимодействия АСР с системами операторов - партнеров. Выделим множество факторов, определяющих интеграционную тенденцию:
1. Взаимодействие АСР с другими информационными системами оператора: бухгалтерскими системами, системами финансового учета и планирования, складскими системами, системами поддержки принятия решений и др.;
2. Взаимодействие АСР с системами предприятий-партнеров, такими как партнеры по роумингу, дочерние предприятия, не имеющие своей АСР, провайдеры дополнительных услуг; транзитные операторы, дилеры и пр.;
3. Взаимодействие АСР - АСР, осуществление распределенных расчетов в рамках одного оператора.
Необходимо отметить, что интеграционная тенденция, развития является прямым следствием возрастающих инвестиционных требований к АСР. Автоматизированная система расчетов за услуги электросвязи и информационная система оператора в целом рассматриваются как серьезное и долгосрочное капиталовложение, следовательно, АСР должна предоставлять максимально гибкие возможности по интеграции с уже существующими системами корпоративной информационной среды оператора.
В связи с появлением операторов, предоставляющих услуги связи на межрегиональном и федеральном уровнях, возникает необходимость осуществлять распределенные операции между удаленными филиалами одного оператора связи. Примером может служить задача распределенного приема платежей - абонент, зарегистрированный в сети филиала А, должен иметь возможность внести платеж на свой лицевой счет, находясь в сети филиала Б. Решение данной задачи предполагает необходимость интеграции АСР филиала А с АСР (возможно такой же) филиала Б.
Аналитическая модель производительности системы
Для получения аналитического выражения (1) рассмотрим функциональную схему исследуе.мой системы. С точки зрения СМО исследуемую систему можно охарактеризовать как систему открытого типа с ожиданием и очередью бесконечной длинны. Открытый тип системы определяется тем, что потенциальное количество пользователей системы, хотя и конечно, но достаточно велико. Особенно это проявляется при реализации систем предоставляющих интерфейсы самообслуживания абонентам оператора связи, в этом случае максимальное число пользователей может превышать размер абонентской базы оператора. В частности число пользователей системы «Центра самообслуживания» по состоянию на 01.01.2004 превышало 300000.
Характеристика исследуемой системы как системы с ожиданием, подразумевает, что те входящие запросы, которые не могут быть немедленно обслужены, помещаются в очередь. Особенности работы по протоколу ТСРЯР исключают уход заявок из очереди до начала обработки заявки, поэтому длину очереди можно считать не ограниченной.
Примем допущение, что время обслуживания на каждом из узлов системы распределено по показательному закону. Это важное допущение часто применяется при моделировании процессов, протекающих в системах с очередями, т.к. наиболее важные характеристики обслуживания, сравнительно мало зависят от вида закона распределения, а зависят главным образом от его математического ожидания [51].
Формально задача может быть представлена в виде системы неравенств следующего вида:
где Q{N,M) - общая стоимость решения, N - число узлов в кластере WEB серверов, а М - число узлов в кластере серверов приложений, с - верхнее ограничение на стоимость топологии, Tw - среднее время отклика WEB сервера должно удовлетворять заданному критерию - vw, соответственно среднее время отклика сервера приложений TR - должно удовлетворять критерию гд.
Для получения выражений вида TW(N,M) и TR(N,M) представим систему, спроектированную на основе многоуровневой распределенной архитектуры, в виде сети взаимосвязанных систем массового обслуживания (СМО). Действительно, в рассматриваемой архитектуре WEB сервер, сервер приложений и, например, СУБД могут рассматриваться как отдельные узлы (отдельные СМО), образующие сеть (см. рис. 2.9). В теории систем массового обслуживания, с целью упрощения расчетов, часто прибегают к допущению, что рассматриваемые СМО являются экспоненциальными, т.е. временной интервал между поступлением запросов в каждую отдельную СМО распределен по экспоненциальному закону, а частота запросов в отдельные интервалы At распределена по закону Пуассона. Проведенный анализ потока запросов по одному из каналов обслуживания показал, что частоты запросов действительно распределены по Пуассоновскому закону.
Рассматриваемая модель (рис. 2.9) позволяет учесть в аналитическом виде дифференцированный характер входного потока запросов, часть из которого поступает непосредственно на сервер приложений, а часть - на WEB сервер. Кроме того, данная модель позволяет учесть особенности функционирования АСР на основе многоуровневой распределенной архитектуры, связанные с управлением пользователями и преобразованием результатов выполнения запросов из XML формата в формат необходимый конкретному каналу доступа.
Рассмотрим подробнее сеть СМО изображенную на рис. 2.9. Очевидно, что Л0 +Л\ =АР(С1) + ЛР(С2), СХ+С2=С, где С, - множество каналов, для которых не требуется обработка на WEB сервере (например, IVR), а С2 - множество каналов, для которых такая обработка требуется, например, канал Internet или канал WAP. В приведенной схеме: S1 -блок процессор-оперативная память WEB сервера, S2 - блок предварительной обработки запроса (преобразование запроса) WEB сервера, S3 - блок XML-XSL трансформации WEB сервера, S4 - блок процессор-оперативная память сервера приложений, S5 - блок авторизации аутентификации сервера приложений, S6 -источник данных (внутренний кэш сервера приложений), S7 - внешний источник данных (СУБД).
Формализация системы пользовательских типов и ролей
Система пользовательских типов опирается на следующую формальную модель: категория - тип. Для удобства формализации системы пользовательских типов, рекомендуется придерживаться следующей категоризации пользователей:
1. Конечные пользователи
2. Администраторы
3. Внешние системы
Тип пользователя определяется набором его атрибутов и функцией авторизации. Пользователь каждого типа имеет основной и дополнительный набор атрибутов. Логическая модель данных для хранения основного и расширенного набора атрибутов представлена на рис. 3.4. В данной модели Таблица SC_USERS предназначена для хранения базового набора атрибутов, а Typel, Туре2, TypeN - дочерние таблицы для хранения дополнительных атрибутов пользователей каждого типа.
Таким образом, процесс формализации пользовательского типа включает в себя следующие шаги:
1. Определение имени типа;
2. Определение дополнительных атрибутов;
3. Определение алгоритма функции авторизации;
Имя типа должно отражать семантику данного типа и быть удобным для запоминания.
Стандартный алгоритм авторизации пользователя описан в разделе 4.3. Для конкретного типа пользователя стандартный алгоритм может быть расширен проверкой дополнительных условий, например, временного диапазона в течении которого может авторизоваться пользователь, проверкой IP адреса, проверка допустимости аргументов передаваемых в операции и т.д. Реализация расширенного алгоритма авторизации пользователя осуществляется в дополнительных модулях управления пользователями (plug-ins), поддерживаемых сервером приложений.
Прежде чем описывать процесс формализации пользовательских ролей, рассмотрим правила задания привилегий. Привилегия назначается на операцию и представляет собой 32 - разрядную битовую маску. Каждый из разрядов маски соответствует праву на некоторое действие, производимое над объектом (операцией). Для задания прав используются первые три разряда маски. Первый разряд - соответствует праву на чтение, второй - на запись, третий - на выполнение. Таким образом привилегия на чтение (первый бит = 1) соответствует десятичному значению 1, привилегия на запись - десятичному значению 2, привилегия на чтение - 4, привилегия чтение и запись - 3 и т.д. Такая схемы выдачи привилегий позаимствована из механизма управления правами на файлы, характерного для операционных систем семейства Unix.
Данные маски являются в некоторой степени избыточными т.к. для операции имеет смысл только право 4 - выполнение (значимый бит в третьем разряде маски). На основании описанного понятия привилегии, определим роль как именованное множество привилегий, которое может быть назначено пользователю или другой роли.
Методика задания ролей включает в себя следующие шаги:
1. Операции группируются по функциональному назначению;
2. Для каждой группы выделяется главная операция в группе (или создается фиктивная операция любого типа, выполняющая функции главной);
3. Множество групп разбивается на пересекающиеся подмножества (роли) по некоторому критерию (например принадлежности групп к некоторому бизнес-процессу);
4. Роли именуются.
Группировка операций по функциональному назначению имеет целью упростить выдачу привилегий на операции. С этой целью вводится отношение наследования привилегий на множестве операций. Данное отношение представим в виде связного, ациклического, ориентированного графа (рис. 3.5). Стрелка обозначает отношение «наследует от». Здесь Z0 - главная операция в группе (родительская операция), Z1-Z4 дочерние операции. Направление стрелки задает порядок наследования привилегий. Каждая дочерняя операция может также выступать в качестве родительской для любой другой операции, главное, чтобы соблюдалось условие ацикличности.
Алгоритмы функционирования сервера приложений
Одной из основных функциональных задач решаемых сервером приложений является задача управления пользователями. Данная задача предполагает выполнение функций аутентификации и авторизации пользователя, пославшего запрос, а также управление сессиями пользователей.
Алгоритм аутентификации пользователя предназначен для определения пользователя - владельца запроса по параметрам этого запроса. При получении запроса сервер приложений должен определить какому пользователю принадлежит данный запрос, иначе говоря провести аутентификацию пользователя. Аутентификация пользователя осуществляется на основании переданных в запросе параметров LOGIN (имени пользователя) или SESSION_ID (идентификатора сессии пользователя). Передача параметра LOGIN производится при первом обращении пользователя к системе, после чего пользователь получает идентификатор сессии, который затем передается в запросе как параметр SESSION_ID. В этом случае аутентификация пользователя происходит по его сессии, на основании параметра SESSION_ID.
Для хранения информации о пользователях системы сервер приложений использует СУБД. Для этих целей, например, может быть использована СУБД АСР. Реляционная структура данных для хранения пользователей организована по принципу «master - detail». Таким образом общие атрибуты пользователей, такие как имя пользователя (поле LOGIN), значение MD5 хэш функции от пароля (поле PASSWORD_НASH) и другие хранятся в корневой (master) таблице и идентифицируются первичным ключом. Дополнительные атрибуты хранятся в дочерних (detail) таблицах связанных с основной таблицей через внешний ключ. Более подробно эта структура данных описана в разделе (см. раздел 3.3). С целью ускорения процесса аутентификации пользователей, сервер приложений при старте выполняет загрузку всех пользователей во внутренний кэш. Каждый пользователь уникальным образом идентифицируется по имени пользователя (полю LOGIN основной таблицы).
Рассмотрим по шагам алгоритм аутентификации пользователя. На первом шаге алгоритма из входного HTTP запроса выделяются параметры CHANNEL, LOGIN и SESSIONJD. Параметр CHANNEL определяет логический канал доступа, с которого был получен входной запрос. В случае если канал доступа не указан (отсутствует параметр CHANNEL) или значение параметра CHANNEL не принадлежит множеству допустимых значений, указанному в конфигурации - пользователю возвращается XML документ, содержащий сообщение об ошибке. Алгоритм заканчивает работу. Если в запросе указано корректное значение параметра CHANNEL проверяется наличие параметра SESSIONJD. Если данный параметр в запросе присутствует, считается, что пользователь уже открыл сессию (начал сеанс работы с системой). В этом случае пользователь определяется по идентификатору ассоциированной с ним сессии. Если параметр SESSION_ID не указан, в исходном запросе проверяется наличие параметра LOGIN, если параметр не найден запрос считается некорректным и пользователю возвращается XML документ содержащий соответствующий код ошибки. Иначе, если параметр LOGIN присутствует в запросе, по значению данного параметра происходит поиск пользователя во внутреннем кэше сервера приложений. Результатом поиска будет являться структура данных, содержащая основные и дополнительные атрибуты пользователя или исключительная ситуация, генерируемая в случае если пользователь по данному значению параметра LOGIN найден не был.
Если алгоритм аутентификации завершил работу успешно, т.е. по параметрам исходного запроса была определена структура описывающая пользователя системы, сервер приложений анализирует значения поля REQUEST во входном HTTP запросе (см. раздел 4.2). Значение поля REQUEST принадлежит множеству значений атрибутов REQUEST таблицы операций, задаваемой в конфигурации сервера приложений (см. раздел 3.2). Поле REQUEST является уникальным, следовательно, каждому запросу однозначно ставится в соответствие некоторая (групповая или атомарная) операция. Если операция является групповой, она может быть представлена в виде некоторого дерева операций, листьями которого являются атомарные операции.
Для выполнения операций сформированного дерева операций сервер приложений должен проверить права пользователя на выполнение каждой атомарной операции, т.е. провести авторизацию пользователя. Рассмотрим алгоритм авторизации пользователя. На первом шаге алгоритма определяется уровень авторизации пользователя (см. раздел 3.3). Если текущий уровень авторизации пользователя ниже уровня LOGIN + PASSWORD, проверяется наличие параметра PASSWORD в исходном запросе. Если параметр PASSWORD найден, осуществляется проверка пароля пользователя. В случае, если пароль, указанный в параметре PASSWORD верный, уровень авторизации пользователя повышается до уровня LOGIN + PASSWORD. В противном случае, возбуждается исключительная ситуация и алгоритм заканчивает работу. На втором шаге алгоритма, для каждой атомарной операции в сформированном дереве операций производится сравнение текущего уровня авторизации пользователя с уровнем авторизации необходимым для выполнения данной операции. Если уровень авторизации, требуемый для выполнения операции не выше чем текущий уровень авторизации пользователя, данная операция в векторе помечается как разрешенная для выполнения. Иначе операция помечается как запрещенная для выполнения.
Результатом работы алгоритма является дерево операций, в котором для каждого узла проставлен флаг разрешения или запрещения выполнения данной операции для пользователя пославшего запрос. Если в процессе работы алгоритма уровень авторизации пользователя был повышен, новый уровень авторизации сохраняется в пользовательском контексте во внутреннем кэше пользователей. Это позволяет пользователю вводить пароль единожды в рамках сессии.