44. Описание сервисов сеансового уровня.
Сеансовый уровень
Сеансовый уровень позволяет пользователям различных компьютеров устанавливать сеансы связи друг с другом. При этом предоставляются различные типы сервисов, среди которых управление диалогом (отслеживание очередности передачи данных), управление маркерами (предотвращение одновременного выполнения критичной операции несколькими системами) и синхронизация (установка служебных меток внутри длинных сообщений, позволяющих после устранения ошибки продолжить передачу с того места, на котором она оборвалась).
Сервис сеансового уровня
Сеансовый сервис обеспечивает прикладные объекты следующими средствами равноправного, синхронизированного, структурированного взаимодействия:
- установления сеансового соединения, синхронизированного обмена данными, упорядоченного и безусловного завершения сеансового соединения;
- согласования использования маркеров обмена данными, синхронизации и завершения взаимодействия, а также фиксации маркеров на одной из взаимодействующих сторон;
- установления точек синхронизации внутри диалога;
- выполнения ресинхронизации сеансового соединения к согласованной прикладными объектами точке синхронизации;
- прерывания диалога и его возобновления с заранее организованной точки синхронизации.
Сеансовый сервис обеспечивается сеансовым протоколом, который, в свою очередь, использует сервис, предоставляемый транспортным уровнем. На сеансовом уровне вводится ряд основополагающих понятий, которые широко используются при описании объектов представительного и прикладного уровней.
К таким понятиям относятся маркер, точка синхронизации, диалоговый элемент, активность, ресинхронизация, переговоры, функциональная группа, качество сеансового сервиса и др.
Маркер
Маркер — это атрибут сеансового соединения, который динамически назначается одному из взаимодействующих прикладных объектов (SS-пользователю). Владелец маркера имеет исключительное право инициировать выполнение услуги, контролируемой данным маркером.
На сеансовом соединении могут быть использованы четыре маркера:
1. DK — маркер данных (Data Token).
2. TR — маркер завершения (Release Token).
3. MI — маркер малой синхронизации (Synhronize Minor Token).
4.
МА — маркер большой синхронизации (Major-activityToken).
Каждый маркер на сеансовом соединении
всегда находится в одном из двух состояний: доступен и недоступен. Маркер
дос-тупен тогда, когда SS-пользователи,
в ходе установления сеан-сового соединения, согласовали его применение в
процессе предстоящего взаимодействия. В этом случае маркер назначает-ся одной из
взаимодействующих сторон, а поставщик сеансово-го сервиса гарантирует отсутствие
раздвоения маркера в любой момент существования сеансового соединения. Маркер
не-доступен тогда, когда в ходе установления сеансового соедине-ния
SS-пользователи
не включили его в число доступных мар-керов, применяемых в процессе предстоящего
взаимодействия. При этом маркер не может быть назначен ни одной из
взаи-модействующих сторон.
Точка синхронизации
При передаче данных пользователи сеансового сервиса мо-гут размещать в потоке данных точки синхронизации. Точки синхронизации идентифицируются последовательными моно-тонно возрастающими номерами, которые обеспечиваются по-ставщиком сеансового сервиса. Взаимодействующие приклад-ные объекты могут связывать с точками синхронизации, а точ-нее, с их номерами, любую семантику, определяемую приложе-нием.
Фиксацию точек синхронизации можно выполнять двумя способами, используя технику малой или большой синхрониза-ции. В зависимости от того, каким способом формируется точка синхронизации, она будет называться либо точкой большой синхронизации (major synchronization), либо точкой малой син хронизации (minor synchronization). Поставщик сеансового сер-виса нумерует точки синхронизации последовательно независи-мо от того, являются ли они точками большой или малой син-хронизации (рисунок 3.30,а). Отличие заключается в механизме выполнения фиксации точек синхронизации. Точка большой синхронизации считается зафиксированной после ее явного под-тверждения, в то время как точка малой синхронизации для своей фиксации не требует явного подтверждения и может во-обще не подтверждаться.
Диалоговый элемент
С понятием точки синхронизации связано понятие диало-гового элемента. Точки большой синхронизации используются для структурирования обмена данными в виде серии диалого-вых элементов. Точка большой синхронизации завершает один диалоговый элемент и начинает другой. Диалоговый элемент — логически выделенное замкнутое взаимодействие, которое мож-но отработать независимо от предшествующих и последующих процессов обмена данными. Точки малой синхронизации ис-пользуются для структуризации обмена данными в рамках диа-логового элемента, являясь отметками прохождения последова-тельно отрабатываемых этапов распределенного взаимодейст-вия партнеров.
Активность
Последовательность диалоговых элементов может высту-пать в качестве более крупной логически завершенной части работы, называемой активностью (рис. 3.30,б). В рамках сеансо-вого соединения одновременно может существовать лишь одна активность. Допускается последовательная обработка активно-стей на одном сеансовом соединении. В то же время активность может охватывать несколько последовательно устанавливаемых сеансовых соединений. Это связано со свойствами прерываемо-сти активности, независимой идентификации активности в рам-ках поставщика сеансового сервиса, а также со свойством во-зобновляемости прерванной активности на любом подходящем сеансовом соединении.
Ресинхронизация
Является средством принудительной координации взаимо-действующих сторон в рамках сеансового соединения. Ресинхро-низация может быть инициирована любым SS-пользователем в любой момент существования сеансового соединения. При этом соединение переходит в определенное состояние, позво-ляющее перераспределить маркеры между сторонами и согласо-вать новое значение последовательного номера точки синхрони-зации для продолжения взаимодействия. В ходе ресинхрониза ции осуществляется сброс всех данных, находящихся в это вре-мя в стадии передачи по сеансовому соединению. Поставщик сеансового сервиса обеспечивает три режима согласования но-вого значения последовательного номера точки синхронизации, выбирается ранее не задействованное значение — отказ (abandon); любое значение, которое больше, чем номер послед-ней подтвержденной точки большой синхронизации, и не боль-ше, чем последний полученный номер точки синхронизации — рестарт (restart); любое значение из разрешенного диапазона, указанное прикладным объектом, — установка (set).
Функциональные группы и стандартные подмножества
сеансового сервиса
Функциональная группа — это объединение логически свя-занных услуг. Функциональные группы вводятся с целью согла-сования требований пользователей в ходе фазы установления сеансового соединения. В том случае, когда какая-либо услуга, входящая в функциональную группу, контролируется маркером, в функциональную группу включаются услуги управления рас-становкой маркеров.
Базовая функциональная группа объединяет основные сеансо-вые услуги, позволяющие установить сеансовое соединение, осу-ществить передачу нормальных блоков данных и завершить сеан-совое соединение, то есть базовую функциональную группу обра-зуют следующие услуги: S-CONNECT, S-DATA, S-RELEASE, S-U-ABORT и S-P-ABORT.
Функциональная группа согласованного завершения содер-жит услугу S-RELEASE, контролируемую маркером заверше-ния. Эта функциональная группа обеспечивает дополнительное свойство услуге упорядоченного завершения сеансового соеди-нения, при котором сеанс прекращается только при обоюдном согласии партнеров. Функциональная группа включает услуги S-RELEASE, S-GIVE-TOKENS и S-PLEASE-TOKENS.
Функциональная группа полудуплекса определяет режим передачи данных. Владелец маркера данных имеет право формировать нормальный поток NSSDU. Функциональная группа объединяет услуги S-GIVE-TOKENS и S-PLEASE-TOKENS.
Функциональная группа дуплекса поддерживает дуплекс-ный нормальный поток блоков данных NSSDU. Оба пользовате-ля имеют равные права инициировать услугу S-DATA. Функ-циональная группа не содержит никаких услуг. Недопустимо одновременное использование в рамках сеансового соединения функциональных групп дуплекса и полудуплекса.
Функциональная группа срочных данных содержит услугу S-EXPEDITED-DATA, позволяющую формировать срочный по-ток блоков данных XSSDU.
Функциональная группа типизированных данных предос-тавляет услугу образования пользователями потока типизиро-ванных блоков данных TSSDU. Содержит услугу S-TYPED-DATA.
Функциональная группа обмена данными обеспечивает ус-лугу S-CAPABILITY-DATA. Группа может быть выбрана поль-зователем лишь вместе с группой управления активностью.
Функциональная группа малой синхронизации включает в свой состав следующие услуги: S-SYNC-MINOR, S-GIVE-TOKENS и P-PLEASE-TOKENS.
Функциональная группа большой синхронизации включает в свой состав услуги S-SYNG-MAJOR, S-GIVE-TOKENS и P-PLEASE-TOKENS.
Функциональная группа ресинхронизации представляет ус-лугу S-RESYNCHRO-NIZE.
Функциональная группа оповещения обеспечивает услуги S-U-EXCEPTION-REPORT и S-P-EXCEPTION-REPORT.
Функциональная группа управления активностью включает все услуги управления активностью и услугу передачи управле-ния: S-ACTIVITY-START, S-ACTIVITY-RESUME, S-ACTIVITY-INTERRUPT, S-ACTIVITY-DISCART, S-ACTIVITY-END, S-GIVE-TOKENS, S-PLEASE-TOKENS и S-GIVE-CONTROL.
Свойство маркерного управления определенной услуги пе-редается функциональной группе, содержащей эту услугу. Ниже приводятся функциональные группы, контролируемые марке-рами.
Согласованное завершение TR
Полудуплекс DK
Малая синхронизация Ml
Большая синхронизация МА
Управление активностью МА
При использовании функциональных групп, требующих управления маркерами, прикладной протокол в ходе установле-ния сеансового соединения обязан объявить соответствующий маркер доступным на сеансовом соединении и указать его на-чальную расстановку.
В стандарте вводится понятие сервисного подмножества (сервисного профиля сеансового соединения), обеспечиваемого на сеансовом соединении. Сервисное подмножество — это ком-бинация базовой функциональной группы с другими функцио-нальными группами при условии, что функциональная группа обмена данными включается в подмножество лишь наряду с функциональной группой управления активностью, а функ-циональная группа оповещения включается в подмножество лишь наряду с функциональной группой полудуплекса.
Каждая сеансовая услуга представляется набором примити-вов. Отработка определенной сеансовой услуги заключается в последовательном исполнении ее примитивов.
Различают услуги двух типов: подтверждаемые и непод-тверждаемые. Подтверждаемая услуга содержит четыре прими-тива: запрос (request), индикация (indication), ответ (response), подтверждение (confirmation). Неподтверждаемая услуга содер-жит два примитива: запрос и индикация, а в специальных случа-ях — только индикация.
Услуга установления сеансового соединения, применяемая в соответствующей фазе, состоит из четырех примитивов: S-CONNECT request, S-CONNECT indication, S-CONNECT response, S-CONNECT confirmation. Тип услуги подтверждае-мый. В таблице 3.6 приведен состав сеансовых услуг фаз пере-дачи данных и завершения соответственно.
Таблица 3.6
Услуга |
Примитивы |
Тип услуги |
Передача нор-мальных данных |
S-DATA (request, indication) |
Неподтверждаемая |
Передача сроч-ных данных |
S-EXPEDITED-DATA (request, indication) |
Неподтверждаемая |
Передача типи-зированных дан-ных |
S-TYPED-DATA (request, indication) |
Неподтверждаемая |
Услуга обмена данными |
S-CAPABILITY-DATA (request, indication, response, confirmation) |
Подтверждаемая |
Передача маркеров |
S-GIVE-TOKENS (request, indication) |
Неподтверждаемая |
Услуга требования маркеров |
S-PLEASE-TOKENS (request, indication) |
Неподтверждаемая |
Передача управления |
S-GIVE-CONTROL (request, indication) |
Неподтверждаемая |
Малая синхрони-зация |
S-SINC-MINOR (request, indication, response, confirmation) |
Подтверждаемая |
Большая синхро-низация |
S-SINC-MAJOR (request, indication, response, confirmation) |
Подтверждаемая |
Ресинхронизация |
S-RESYNCHRONIZE (request, indication, response, confirmation) |
Подтверждаемая |
Услуга оповеще-ния поставщика |
S-P-EXCEPTION-REPORT (indication) |
Неподтверждаемая |
Услуга оповеще-ния пользователя |
S-U- EXCEPTION-REPORT (request, indication) |
Неподтверждаемая |
Инициация активности |
S-ACTIVITY-START (request, indication) |
Неподтверждаемая |
Услуга возобновления активности |
S-ACTIVITY-RESUME (request, indication) |
Неподтверждаемая |
Услуга прерывания активности |
S-ACTIVITY-INTERRUPT(request, indication, response, confirmation) |
Подтверждаемая |
Сброс активности |
S-ACTIVITY-DISCARD (request, indication, response, сonfirmation) |
Подтверждаемая |
Окончание табл. 3.6
Услуга |
Примитивы |
Тип услуги |
Завершение активности |
S-ACTIVITY-END (request, indication, response, confirmation) |
Подтверждаемая |
Упорядоченное завершение |
S-RELEASE (request, indication, response, confirmation) |
Подтверждаемая |
Безусловное завершение пользователя |
S-U-ABORT (request, indication) |
Неподтверждаемая |
Безусловное завершение по-ставщика |
S-P-ABORT (indication) |
Неподтверждаемая |
Услуга малой синхронизации. Услуга малой синхронизации S-SYNC-MINOR обеспечивает SS-пользователей средствами фиксации точек малой синхронизации в потоках нормальных и типизированных данных на сеансовом соединении. В случае, когда на сеансовом соединении выбрана для использования функциональная группа управления активностью, инициация ус-луги малой синхронизации должна осуществляться лишь в рамках существующей активности. Услуга малой синхрониза-ции является контролируемой маркером, право отработать при-митив S-SYNC-MINOR request имеет тот участник взаимодейст-вия, который владеет маркером малой синхронизации и маркером данных, если последний доступен на сеансовом соединении. Ус-луга малой синхронизации является подтверждаемой. Однако поставщик сеансового сервиса специально не ожидает инициации примитива S-SYNC-MINOR response вслед за отработанным им примитивом S-SYNC-MINOR indication даже в том случае, когда подтверждение точки малой синхронизации затребовано явно. Следующая инициация услуги S-SYNC-MINOR может быть вы-полнена SS-пользователем до того, как будет обработан сервис-ный примитив S-SYNC-MINOR confirmation, на предыдущий за-прос малой синхронизации. Таким образом, в определенный мо-мент на сеансовом соединении может существовать целый ряд неподтвержденных точек малой синхронизации. При этом число неподтвержденных точек синхронизации, фиксируемых с помо-щью услуги малой синхронизации, не ограничивается поставщи-ком сеансового сервиса. Сервисный примитив S-SYNC-MINOR confirmation осуществляет подтверждение всех малых точек син хронизации вплоть до той, последовательный номер которой указан в самом примитиве.
Услуга большой синхронизации
Услуга большой синхронизации S-SYNC-MAJOR обеспечивает SS-пользователей средствами фиксации точек большой синхронизации в потоках нормальных, типизированных и срочных данных с целью полного отделения потоков данных, существовавших до момента фиксации синхроточки, от потоков данных, организуемых после момента фиксации синхроточки