|
Введение в SIP Modeling Toolkit для IBM Rational Software Architect
Статьи
→
Другие статьи
Введение
Протокол установления сессии (SIP) представляет собой спецификацию (RFC3261) комитета Internet Engineering Task Force (IETF) по соединению одного или нескольких мультимедийных участников (пользовательских агентов) через Интернет.
Протокол отвечает за создание, изменение и завершение сессий, но не принимает участия в интерпретации обмена медиаданными. После того как соединение между устройствами установлено (то есть устройства обмениваются потоком медиаданных непосредственно друг с другом) SIP-сервис не используется. Но SIP-сервисы помимо соединения двух агентов выполняют и другие полезные функции. Например, при настройке или удалении соединения SIP-сервисы могут выполнять блокировку или переадресацию вызовов, а также реализовывать интерфейс с игровыми системами и системами обработки информации.
Пакет SIP Modeling Toolkit для IBM® Rational® Software Architect (см. раздел «Ресурсы») добавляет SIP-расширения к платформе UML-моделирования и разработки Rational Software Architect. Эти расширения включают доменные профили, базовые модели, преобразования и другие утилиты для моделирования и разработки на основе моделей (model-driven development MDD) сервисов связи следующего поколения. Набор инструментов также включает расширения генерации кода для существующих преобразований UML-Java™ в среде Rational Software Architect, которые позволяют обновить SIP-элементы имеющихся реализаций сервисов.
Таким образом, данный инструментарий упрощает создание моделей уровня проекта, ориентированных на генерацию кода для SIP-сервлетов. Для этого в нем предусмотрены специализированные базовые модели, а также типовые элементы и свойства, предназначенные для сбора информации, связанной с SIP (например, информация P-Header и т.д.), в моделях сервлетов. Эти модели, элементы и свойства используются в инструментарии для генерации преобразований кода.
SIP Modeling Toolkit позволяет создавать сервисы SIP и объединенные сервисы SIP-HTTP и развертывать их на IBM® WebSphere® Application Server в виде SIP-сервлетов. Набор инструментов также можно настроить для развертывания на других платформах серверов приложений SIP. Реализация SIP-сервисов сервлетами Java™ определена в Java™ Community Process JSR 116. WebSphere Application Server версии 6.1 и выше обеспечивает встроенную поддержку для JSR 116. В данной статье описан сам инструментарий и его ключевые функции.
Функции инструментария
SIP Modeling Toolkit предназначен для использования в трех ключевых областях моделирования SIP-сервисов:
- Моделирование потоков вызовов: быстрое моделирование потоков SIP вызовов при помощи расширенных циклограмм;
- Моделирование сервлетов: проектирование SIP-сервлетов в контексте конкретных приложений с помощью инструментов и диалоговых окон;
- Преобразования и расширения преобразований: генерация кода SIP-сервлетов и элементов дескрипторов развертывания.
Данный набор инструментов не требует использования какой-либо конкретной методологии для разработки сервисов на основе SIP. Использование моделирования потоков вызовов или сервлетов является необязательным, и хотя их можно применять совместно, друг от друга они не зависят. С другой стороны, преобразования модель-код зависят от моделей сервлетов и правильного использования соответствующих расширений.
Шаблон модели проекта SIP
Для моделей проектов SIP необходимо, чтобы в UML-модели имелись базовые типы и профили SIP. SIP Modeling Toolkit устанавливает новую базовую модель и профиль, которые можно применять к любой существующей UML-модели. Проще говоря, комплект инструментов включает шаблон модели, который можно использовать для создания новых файлов моделей с примененными базовой моделью и профилем. Базовая модель SIP содержит большинство SIP-типов, применяемых в моделях проектов (на основе JSR116 и расширений WebSphere Application Server), а также SIP-сообщения, готовые для использования в диаграммах потоков вызовов. Профиль SIP включает стереотипы для сервлетов и UML диаграмм коопераций, применяемых в моделировании потоков вызовов. Шаблон модели проекта SIP можно выбрать в списке шаблонов при создании новой UML-модели, как это показано на рисунке 1.
Рисунок 1. Шаблон модели проекта SIP
Моделирование потоков вызовов
Один из наиболее простых способов связи определенного сценария деятельности между пользовательскими агентами и SIP-сервисами заключается в использовании диаграммы потоков вызовов. Эти диаграммы, в сущности, представляют собой UML циклограммы, как это показано на рисунке 2. Агент пользователя (User Agent UA) SIP, как правило, инициирует поток вызовов с помощью сообщения INVITE, передаваемого в SIP-сервис. Этот сервис обычно передает сообщения в другие SIP-сервисы или преобразует сообщения и вызывает другие типы оборудования (например, элементы управления вызовами на объединительной панели).
Рисунок 2. Диаграмма потоков вызовов (частичная)
Большая часть информации обмена между участниками находится в заголовке. SIP Modeling Toolkit содержит специализированный пользовательский интерфейс для регистрации этой дополнительной информации (см. рисунок 3). Настройки пользовательского интерфейса позволяют легко копировать заголовки из других сообщений и реорганизовывать порядок заголовков. Нажатием одной кнопки можно создать или обновить содержимое заголовка на основе фактического содержимого тела сообщения.
Рисунок 3. Сообщение потока вызовов
Потоки вызовов соответствуют очень специфичным сценариям, поэтому самые простые потоки вызовов не содержат ветвей или циклов. Но поскольку моделирование потоков вызовов в Rational Software Architect основано на UML-циклограммах, можно строить сложные диаграммы потоков вызовов с циклами, ветвями и дополнительными разделами, используя все функции UML-циклограмм.
Генерация кода сервлетов или тестового кода
В текущей версии набора инструментов нет средств автоматизации преобразований таких диаграмм потоков вызовов непосредственно в модели или коде реализации. Чтобы сделать это в общем виде, потребовалось бы рассмотреть слишком много проектных решений, которые обычно определяются локально. Однако, поскольку потоки вызовов регистрируются в UML-моделях, можно создать собственные преобразования модель-модель или модель-код, использующие сведения о потоках вызовов для генерации кода сервлета или тестового кода.
Хотя в пакете нет готовых средств автоматизации, можно легко установить трассировку между реализацией SIP-сервиса и поддерживаемыми этим сервисом потоками вызовов. Например, можно определить отношения «trace» между линиями связи потоков вызовов (отдельными участниками в потоке вызовов) и реализующим сервлетом. На рисунке 4 показан сценарий Call Blocked. В качестве примера технологии используется простой поток вызовов для примера приложения Call Blocking, имеющегося в Rational Software Architect.
В сценариях Call Blocked и Call Connected регистрируются только значимые сообщения. Моделирование всех возможных подробностей не требуется: по определению в моделях требуется регистрировать только значимую и существенную информацию.
Остальная часть потока вызовов, представленная на рисунке 4, следует нормальному потоку установления соединений и поэтому не заполняется полностью.
Рисунок 4. Диаграмма потока вызовов для примера блокирования вызова (заблокированного вызова)
Установление трассируемости
Одно из наиболее важных применений моделирования заключается в установлении трассируемости артефактов и элементов проекта. В простейшем случае в простой модели проекта установить трассируемость можно при помощи создания отношений «trace» между реализующими сервлет классами и потоками вызовов, определяемых этими классами.
На рисунке 5 реализация примера Call Blocking показана с отношениями «trace» между определеными ролями участников и классами реализации. Участники потоков вызовов могут трассировать не только «siplet» (основной SIP-сервлет, реализующий SIP-сервис) двух потоков вызовов, но и другие элементы, значимые с точки зрения архитектуры.
Рисунок 5. Трассируемость потоков вызовов
Эти отношения трассировки важны не только в силу их потенциального использования в автоматизации и шаблонах, они также являются важными звеньями в цепи трассируемости между требованиями, реализацией и тестированием. Эти связи, определенные в модели, облегчают процесс анализа и понимания системы, исключая необходимость полагаться на соглашения по именованию и программированию. Ссылки можно просматривать и исследовать во время выполнения анализа влияния, если в системе предполагаются изменения в будущем.
Моделирование сервлетов
 |
Требования к инструментарию
Если рассмотреть фактическую работу по реализации SIP-сервиса, можно заметить, что большая ее часть направлена на создание бизнес-логики, включая доступ к корпоративным объектам, базам данных, Web-сервисам и другим сервисам. Лишь очень малая часть этих сервисов относится собственно к SIP-технологии.
Это означает, что при выборе правильной среды разработки для создания таких сервисов необходимо выбрать среду, которая, помимо SIP-технологий, способна работать со всеми остальными значимыми технологиями. |
|
При создании SIP-сервиса обычно начинают с набора требований, который может включать как общие текстовые документы, так и абстрактные примеры потоков вызовов. Эти артефакты уточняются в процессе проектирования, в частности, добавляются подробности к содержимому заголовков в потоках вызовов (можно непосредственно использовать при тестировании), в модель проекта включаются классы внешних API и локальной среды. В некоторых группах разработчиков в качестве механизма объединения потоков вызовов и повышения уровня детализации определенного сервиса могут использоваться UML машины состояний.
На рисунке 6 показана простая машина состояний, объединяющая два основных сценария примера блокировки вызовов (Call Blocking). Для разработки поведения сервиса (машины состояния, операции, кооперация и т.д.) UML предоставляет проектировщикам различные средства моделирования.
Рисунок 6. Машина состояния блокировки вызовов
Исполняемым компонентам SIP-сервиса (реализованного в соответствии со спецификацией JSR116) для расширения класса среды SipServlet и для включения нескольких элементов в дескрипторы развертывания sip.xml и web.xml Web-проекта требуется только Java-класс. Сервлеты в данной модели создаются с нуля при помощи элемента панели инструментов для Siplet (SIP-сервлет) или для ConvergedServlet и с помощью создания в модели нового стандартного класса. Стереотипы классов перечислены в таблице 1. Панель содержит инструменты для каждого из трех основных стереотипов в профиле SIP.
Стереотипы для элементов UML-модели позволяют связывать с элементами модели дополнительную семантику. Стереотипы также позволяют определять дополнительные свойства, которые можно регистрировать в модели и использовать в автоматизированных преобразованиях.
Таблица 1. Стереотипы классов в SIP Modeling Toolkit
| Стереотип | Описание |
Siplet |
Применяется к классам, отвечающим на SIP-сообщения. Стандартный Siplet (SIP-сервлет) классов, приводящий к генерации Java-класса, расширяющего SipServlet. |
HttpServlet |
Применяется к классам, отвечающим на стандартные HTTP-сообщения. Стандартный HTTPServlet классов отвечает за генерацию классов сервлетов Java (то есть классов расширения HttpServlet). |
ConvergedServlet |
Применяется к классам, отвечающим на SIP и HTTP-сообщения. Эти сервисы расширяют класс com.ibm.wsspi.sip.converge. ConvergedServlet, предоставляемый WebSphere. |
Если для создания нового Siplet или сервлета используется панель инструментов, то новый класс гарантированно расширяет соответствующий суперкласс из базовой модели SIP (см. рисунок 7). Если панель инструментов не используется, к классу можно применять стереотип, что позволяет расширить другой класс или интерфейс среды.
Рисунок 7. Новые сервлеты в модели проекта
Реализация этого сервиса, как описано при помощи набора диаграмм потоков вызовов, начинается с модели проекта с единственным стандартным классом, расширяющим правильный класс среды. Методы этого класса принимают запросы SIP-клиентов и отвечают за обмен данными с прокси для установления сессии с одним или несколькими другими устройствами.
Siplet функционирует в большом проекте, который включает другие классы и API библиотек, используемые для реализации сервиса. Для всех SIP-сервисов, за исключением самых тривиальных, реализация функционирует в большом приложении и связывается с серверными процессами, базами данных, корпоративными компонентами и другими сервисами, как это показано на рисунке 8.
Рисунок 8. Структурные фрагменты модели проекта SIP-сервиса
Основной мотив для использования стереотипов – это идентификация отдельных классов в качестве основных реализаций для поведения SIP-сервиса. Для «регистрации» этих классов на Web-сервере приложений требуется дополнительная метаинформация. Эта информация связывается со стереотипом и представляется разработчику в форме специальной панели (см. рисунок 9). Панель доступна в виде новой вкладки в стандартном разделе панели Properties
В случае Siplet данная информация включает шаблон или критерий фильтра, определяющий условия активации этого Siplet контейнером. Шаблон представляет собой простую древовидную структуру, выполняющую преобразование в XML-фрагмент и используемую непосредственно в дескрипторе развертывания (в соответствии с JSR116).
Рисунок 9. Панель свойств Siplet
Остальная часть представления дает удобный способ добавления переопределений методов для большинства методов SIP-сервлетов. Свойство Load On Startup представляет собой стандартное поле дескриптора развертывания web.xml. Оно указывает относительный критерий важности, который активируется этим сервлетом при запуске сервера. Флажки в панели позволяют задать переопределения общих методов.
Когда модель проекта будет почти готова, необходимо преобразовать проект в Java-код и дескрипторы развертывания. Пакет SIP Modeling Toolkit включает расширение преобразования для преобразований UML-Java (как для Java 1.4, так и для Java 5). Поэтому для генерации кода сервлетов SIP и HTTP используется такое же преобразование, как и для общего Java-кода. Для генерации необходимого содержимого SIP ничего другого и не требуется.
Извлечение имеющейся информации о развертывании SIP
Для существующих SIP-приложений информацию из дескрипторов развертывания sip.xml и web.xml можно преобразовать в модель проекта SIP Design Model. Для этого необходимо создать новую конфигурацию преобразования подобно созданию преобразования UML-Java. Эта новая конфигурация преобразования, предоставляемая SIP Modeling Toolkit, называется преобразованием SIP в UML (см. рисунок 10).
Рисунок 10. Создание нового обратного преобразования
Единственными параметрами для этого преобразования являются Web-проект и модель назначения. Применение этого преобразования приводит к обновлению модели, создающей классы SIP-сервлетов, HTTP-сервлетов или объединенных сервлетов и обновляющей SIP-свойства из дескрипторов развертывания. Данное преобразование только обновляет содержимое дескрипторов развертывания. Обновление атрибутов, операций или ассоциаций классов не выполняется. Наряду с остальным содержимым Java эти операции можно выполнить при помощи преобразования Java-UML, имеющегося в Rational Software Architect.
Обзор этапов проектирования
Процесс проектирования начинается с ввода данных, полученных от аналитиков, обычно в форме диаграмм потоков вызовов, которые можно зарегистрировать в виде циклограмм. Некоторые проектировщики объединяют эти диаграммы в UML-машину состояний или UML-операцию для создания нового поведения для всех сценариев. Машина состояний или операция представляет отдельный компонент поведения, который, будучи реализованным в виде SIP-сервиса, поддерживает все потоки вызовов. Это также хороший механизм анализа для определения неопределенностей и конфликтов в ожидаемых сценариях.
Проектирование сервиса начинается с создания в UML-модели стандартного класса «Siplet». Этот класс непосредственно сопоставляется основному классу реализации SipServlet. Проектировщик задает доменную SIP информацию в пользовательских панелях Properties, затем добавляет к проекту дополнительные классы, подключения к Web-сервисам, базам данных, корпоративным компонентам и т.д. Как указано ранее, большая часть работы по проектированию и реализации SIP-сервиса в фактической среде приходится на создание бизнес-логики взаимодействия с другими классами и технологиями.
20.02.2008
Комментарии
Добавить комментарий (анонимные комментарии не публикуются!!!)
Новости и пресс-релизы СМ-Консалт
21.02.2012 12:42:20 Новая статья: IT и психология. Человеческий фактор в парном программировании: почему многие не получают желаемого от его внедрения?
Статья, находящаяся перед вами, открывает цикл статей о человеческом
факторе, Agile-практиках и других полезных приемах, используемых при
управлении командами в ИТ. Объединяет рассматриваемые практики и приемы
одно – они позволяют проявиться положительным эффектам, связанным с
человеческим фактором. И мы объясняем, почему с точки зрения психологии,
это происходит. Так сказать, подводим теоретическую и экспериментальную
базу под то, что себя уже давно зарекомендовало и работает. Или под то,
что работает не у всех, и потому является предметом оживленных споров и
дискуссий. И начинаем мы наши исследования с рассмотрения эффекта
парного программирования через призму экспериментов социальной
психологии.
Отдельную благодарность за рецензию и время, потраченное на прочтение
первого варианта статьи, выражаем Асхату Уразбаеву,
ценные замечания которого позволили не только улучшить данную статью,
но и позволили убедиться в необходимости и востребованности именно цикла
статей!
Читать -->
27.12.2011 16:15:27 Компания "СМ-Консалт" получила отзыв о работах в Федеральной Налоговой Службе (ГНИВЦ ФНС)
Специалистами ООО «СМ-Консалт» в 2010-2011г. был выполнен проект
по настройке и внедрению системы управления жизненным циклом разработки
программных систем в части управления изменениями и конфигурациями на
основе Microsoft Visual Studio Team Foundation Server 2010 для
Филиала Федерального государственного унитарного предприятия «Главный
научно-исследовательский вычислительный центр Федеральной налоговой
службы» в Приволжском Федеральном округе (Филиал ФГУП ГНИВЦ ФНС России в
ПФО).
28.11.2011 15:05:11 Новая статья: "Всегда ли «Да» – это «Да»? Или как нас вынуждают принимать решения"
Мы предлагаем вашему вниманию цикл статей, в основу которых положены
психологические практики и приемы, позволяющие влиять на решения,
принимаемые людьми. Эта идея была логическим продолжением ряда
выступлений с докладами о коммуникациях в проектах разработки и
внедрения ПО. Давайте, не откладывая в долгий ящик, начнем с самого
простого приема убеждения, с которым сталкиваемся ежедневно в магазинах,
в транспорте, в разговорах с коллегами… да мало ли где еще!
Авторы: Новичков Александр и Карабанова Галина.
Читать -->
10.10.2011 11:16:06 Компания «СМ-Консалт» открывает новое направление продаж - ПО Adobe Connect
Программное обеспечение Adobe Connect является гибкой системой
web-коммуникации с высоким уровнем информационной безопасности. Adobe
Connect предоставляет такие важнейшие функции корпоративного
взаимодействия, как деловое общение и совместная работа сотрудников на
уровне предприятий, дистанционное обучение, организация широкомасштабных
сетевых семинаров и презентаций. Система Adobe Connect базируется на
технологии Adobe Flash, а также Air, и поэтому позволяет подключать
сотрудников к единому пространству взаимодействия через web-браузер с
любых устройств.
17.09.2011 21:40:22 Новая статья: "Разработка прикладного программного обеспечения с использованием Rational Unified Process на Иркутском Авиационном заводе"

На сайте СМ-Консалт открыт новый раздел Статьи наших заказчиков об успешных внедрениях IBM Rational и Microsoft. Статьи для данного раздела пишутся нашими заказчиками и рассказывают о сути проектов внедрения технологий IBM и Microsoft. Первая статья, представленная вашему вниманию написана сотрудниками Иркутского Авиационного Завода (ИАЗ).
Иркутский авиазавод имеет длительный опыт разработки программного
обеспечения для информационной поддержки ключевых бизнес-процессов
предприятия. Однако, в связи с увеличивающейся сложностью и повышением
требований к разрабатываемому программному обеспечению, возникла
настоятельная необходимость усовершенствовать процесс разработки:
повысить качество разрабатываемых программных продуктов,
стандартизировать процесс с увеличением его эффективности.
С целью повышения качества программного обеспечения собственной
разработки и сокращения сроков разработки руководство Управления
информационных технологий (УИТ) Иркутского Авиационного Завода в 2006г. приняло решение о внедрении технологии разработки ПО на базе методологии Rational Unified Process и с использованием инструментов автоматизации IBM Rational.
13.09.2011 12:07:29 Новый тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах»

Компания «СМ-Консалт» представляет новый тренинг, организуемый совместно с компанией «КарьерKаб» - «Коммуникации
и психология межличностных отношений в ИТ-проектах.
Тренинг позволит понять, насколько коммуникации в проектах важнее инструментов, что люди и их взаимоотношения зачастую оказываются решающим фактором, определяющим успех проекта. Если более пятидесяти процентов рабочего времени вы тратите на взаимодействие с заказчиком, если вам небезразлична судьба вашей команды и вы хотите, чтобы ваша команда работала как часы, реализуя проекты точно, вовремя и без перерасхода ресурсов - наш тренинг поможет в этом.
01.08.2011 17:44:25 Наша компания получила отзыв о сотрудничестве с ОАО «Нордеа Банк»

В 2010-2011 гг. наши специалисты провели в Нордеа Банке проект по предварительному обследованию, развертыванию инструментальных средств и ряд тренингов по обучению методологии и работе с продуктами IBM Rational: «Методология разработки программных систем IBM Rational Unified Process», «Управление требованиями с использованием IBM Rational RequisitePro», «Управление изменениями в IBM Rational ClearQuest».
24.06.2011 01:27:57 Бесплатный семинар-вебинар «Повышение эффективности IT подразделений и качества разрабатываемого ПО с использованием современных методологий и технологий»
Компании СМ-Консалт , Legal SoftWaveTM и DNA приглашают Вас посетить бесплатный семинар-вебинар, посвященный обзору технологий и методологий, которые позволяют повысить эффективность ИТ подразделений. На семинаре рассматриваются технологии IBM Rational, Microsoft TFS, а также системы аналитической обработки информации (Business Intelligence) (IBM SPSS, Deductor, QlikView и другие).
Планируемая продолжительность семинара - 8 академических часов.
Место проведения: Санкт-Петербург (очно) и Интернет (для всех желающих: приходите сами и приглашайте друзей!).
Дата и время: 14 июля 2011 в 9 00.
ВНИМАНИЕ: если вы не сможете очно приехать на семинар - это не страшно, так как семинар будет транслироваться через интернет в формате вебинара и к нему, после регистрации, смогут присоединиться все желающие. Трансляция будет осуществляться посредством технологии Adobe Connect Pro , это позволит Вам присоединяться к конференции без установки дополнительного ПО - только интернет браузер.
Смотреть программу -->
07.06.2011 13:02:44 Компания "СМ-Консалт" провела серию успешных семинаров для ГНИВЦ ФНС России

Проведенные семинары были посвящены средствам разработки и тестирования программного обеспечения компании Майкрософт для сотрудников ГНИВЦ ФНС России. Слушатели семинаров отметили высокую квалификацию тренеров компании "СМ-Консалт" по организации учебного процесса и повышению квалификации специалистов, прошедших обучение.
Индивидуальный подход при решении любых вопросов, возникающих в процессе обучения, оперативность принятия решений, гарантированное выполнение взятых на себя обязательств и профессионализм позволили провести обучение на самом высоком уровне.
07.12.2010 12:28:15 Мы идем в Твиттер!

Наша компания открыла аккаунт в системе микроблоггинга Twiter.Теперь все официальные и неофициальные новости будут появляться в нашей ленте в Twitter.
Там же возможно будет задать прямые вопросы специалистам СМ-Консалт, по всем вопросам, связанным как с деятельностью компании, так и с техническими аспектов продуктов IBM и собственных решений СМ-Консалт.
Следуйте за нами!
https://twitter.com/cmconscom
11.11.2010 14:14:14 Осенний марафон Microsoft ALM Road Show
Компания СМ-Консалт совместно с образовательным центром Careerlab провели серию семинаров в рамках мероприятий ALM Roadshow 2.0 в крупнейших городах, расположенных на Волге, – крупных научных центрах, в которых ИТ технологии находятся на высоком уровне. Семинары прошли в Самаре, Нижнем Новгороде и Казани. Cеминары были посвящены использованию новых инструментов MS Visual Studio Team System в проектах разработки ПО.
В семинарах принимали участие представители различных ролей процесса разработки ПО: от разработчиков до руководителей предприятий различного уровня. Темы, обсуждаемые в ходе семинара, вызвали большой интерес аудитории и немалое количество вопросов, на которые были предоставлены исчерпывающие ответы. В процессе семинара также было показано большое количество примеров, которые дают представление о возможностях инструментов MS Team System. Средняя оценка за семинар составила 4,6 балла по пятибальной шкале
08.09.2010 18:37:52 Скидки до 30% на программное обеспечение IBM Rational

Компания СМ-Консалт предлагает для всех желающих на льготных условиях приобрести программное обеспечение IBM Rational. Снижение цен связано с тем, что мы стараемся быть как можно ближе к нашим клиентам, многие из которых постепенно начали преодолевать последствия финансового кризиса.Наше предложение поможет с минимальными издержками приобрести ПО IBM Rational, что является хорошим капиталовложением.
Скидки до 1 декабря 2010 года:
- 20% скидки при покупке IBM Rational ClearCase, ClearQuest, CearCase LT, при приобретении пяти и более лицензий*;
- 30% скидки при покупке пяти любых продуктов IBM Rational + решение или тренинг СМ-Консалт*.
Для получения деталей обязательно свяжитесь с нашими менеджерами
|