Использование УИС в качестве базиса системы управления позволило решить проблему с определением связей клиента с организацией: менеджер работает с актуальными данными по пользователям. Поэтому основным направлением исследования работы с пользователями сети являлось выделение множества предоставляемых услуг, их характеристик и параметров. Услуги классифицируются по следующим критериям:
· влияние на конфигурацию оборудования. Естественно, услуги по предоставлению доступа к локальной сети непосредственно связаны с настройкой коммутаторов, но также есть услуги, которые явно не влияют на настройки сетевого оборудования;
· периодичность. Большинство услуг – разовые, т. е. работы по ним производятся единожды (например, прокладка кабеля), но также есть и периодические услуги: такие, которые предоставляются на определенный срок, по истечению которого услуга вновь может быть востребована (например, пользование сетью);
· наличие дополнительных работ. Такие услуги, как «Прокладка кабеля», «Обжим коннектора» должны порождать некоторый подотчетный документ, тесно связанный с самой услугой – наряд на работу. Соответственно, необходима возможность управления этими документами.
Классы услуг, на основании вышеописанных критериев, могут пересекаться, поэтому требуется предоставить единый интерфейс, как по настройке услуг, так и по их использованию, независимо от принадлежности услуги тому или иному классу.
Модель услуг представлена на рис. 2:
Рис. 2: Модель услуги
· каждой услуге сопоставляется множество статусов;
· для статуса определяется набор необходимых параметров и произвольные инструкции, выполняемые при применении данного статуса;
· указываются возможные переходы из одного статуса в другой, в том числе, переходы отмечены как разрешенные для автоматического применения при определенных условиях (включение – при положительном балансе и выключение – при переходе в минус);
· услуга может быть связана с нарядом.
Рис. 3: Подключение ЛС
Рис. 4: Пользование сетью
В рис. 3, 4 представлены статусы и переходы между ними для услуг «Подключение ЛС» и «Пользование сетью»:
· символом обозначены начальные состояния услуг – этим состояниям не приписаны никакие инструкции-действия, этот статус услуга получает сразу после ее подключения к договору;
· символ означает какой-либо статус, из которого возможен переход услуги в другое состояние;
· – состояние услуги, из которого не возможен переход, является финальным состоянием для разовых услуг;
· стрелками указаны возможные переходы между статусами.
Рассмотрим более детально статусы услуг. На рис. 3 представлены статусы и переходы между ними для услуги «Подключение ЛС».
· «Выдан IP». При переводе услуги в этот статус пользователю выдается IP-адрес из списка свободных адресов.
· «Получен MAC». Этот статус услуги служит для получения от клиента характеристики его компьютера – MAC-адрес.
· «Завершена». Переход услуги в этот статус завершает процесс подключения пользователя к локальной сети: услуга становится активной и на основании данных, сохраненных при предыдущих переходах, клиенту будет предоставляться доступ.
Более сложная система статусов и переходов представлена на рис. 4 – услуга «Пользование сетью»:
· «Пауза». Статус услуги, прикотором доступ к локальной сети не предоставляется, но в случае положительного баланса на счету клиента услуга автоматически переключится в другой статус («Вкл»).
· «Вкл». При переходе в этот статус производятся настройки сетевого оборудования для включения пользователю доступа к сети. Если в этом статусе услуги баланс счета становится отрицательным, услуга автоматически переходит в статус «Пауза».
· «Откл». Статус аналогичный статусу «Пауза», но без возможности автоматического включения услуги (используется, например, для прекращения доступа к сети пользователям, нарушившим правила пользования).
· «Времено вкл». Аналогичен статусу «Вкл», но без автоматического выключения.
Рис. 5: Зависимости статусов услуг
Из приведенных выше услуг первая является разовой и используется для получения характеристик клиентского оборудования, а вторая – периодическая, она отвечает за настройку коммутаторов на основании данных из первой услуги. Другими словами, эти услуги тесно связаны, т. е. вторая не может быть предоставлена без первой. Поэтому в конфигурацию услуг включаются указания на зависимости между услугами(рис. 5).
Таким образом, услуга – некоторый конечный автомат, состояниям которого сопоставляются определенные действия над конфигурацией договора (договор, в данном случае – совокупность всех услуг клиента). В терминах таких автоматов мы легко можем описать фактически любую услугу (набор услуг), а заданием частичных порядков на состояниях-статусах различных автоматов мы добиваемся автоматической проверки корректности конфигурации.
Рассмотрим более детально инструкции, выполняемые при переходе услуги из одного статуса в другой:
<!-- предоставляет доступ к управлению конкретным договором с пользователем --><net-contract id="<идентификатор договора>"> <!-- управляет связанным с контрактом адресом --> <net-address> <!-- добавляет на порт коммутатора новый MAC-адрес --> <switchboard-port _addStaticMac="<MAC-адрес>"/> </net-address> <!-- изменяем параметры услуги: --> <!-- устанавливаем флаг состояния во «вкл» и включаем обработку тарифа по этой услуге --> <service id="<идентификатор услуги>" state="вкл" tariffActive="вкл"/></net-contract>
Пример 1. Инструкции услуги «Дополнительный IP-адрес», статус «Активна».
<-- предоставляет доступ к управлению конкретным договором с пользователем --><net-contract id="<идентификатор договора>"> <!-- изменяем параметры услуги: --> <!-- 1. устанавливаем флаг состояния в «выкл» --> <!-- 2. выключаем обработку тарифа по этой услуге --> <!-- 3. не производим обработку тарифа в момент применения статуса --> <service id="<идентификатор услуги>" state="выкл" tariffActive="выкл" _tariffApply="нет"> <!-- создаем наряд, связанный с услугой --> <assignment actor="<исполнитель>" open="да" successful="нет" template="<шаблон печатной формы>"/> </service></net-contract>
Пример 2. Инструкции услуги «Вызов», статус «Подготовлена».
В этих примерах представлены инструкции двух услуг, относящихся к разным классам: в примере 1 происходит манипуляция списком статических mac-адресов, а в примере 2 не выполняется никаких настроек оборудования, но вместо этого создается подотчетный документ – наряд на выполнение определенной работы. Использование инструкций позволяет сделать систему услуг фактически независимой от управляемых объектов – достаточно реализовать необходимые обработчики инструкций и мы получим возможность управление не только сетевым, но и любым другие оборудованием. Как видно из примеров, в конфигурации услуги задаются не конкретные инструкции для применения, а их шаблон, который предварительно обрабатывается специальной утилитой, что позволяет производить тонкую настройку выполняемых действий.