Любой алгоритмический процесс может быть автоматизирован, обычно для автоматизации рутинных задач пишутся скрипты, которые принимают определённые параметры, делают определённые действия, и возвращают определённый результат. Однако, если мы хотим замкнуть процесс на конечного пользователя, применение скриптов не подойдет, конечному пользователю нужен удобный портал, в который он передаст требуемые данные и нажмет одну кнопку. Далее, после отработки введённых данных, пользователю будет возвращен результат выполнения.
Если бэкэнд в виде скрипта может написать абсолютное большинство специалистов то с фронтедом для пользователя возникает проблема. Хотелось бы иметь конструктор фронтенда в котором, за небольшое кол-во времени, можно создать портал самообслуживания интегрированный с бэкэндом в виде скрипта, так же подобное решение должно быть масштабируемым и гибким, чтобы внесение каких-либо изменений в процесс легко было бы отобразить как на фронтенде так и на бэкэнде. В качестве такого решения можно использовать System center service manager (SCSM) + system center orchestrator(SCO). SCSM, в числе прочего, содержит в себе портал самообслуживания на базе которого можно организовать удобный сервис для конечных пользователей. В качестве бэкенда, для данного портала, выступает SCO, на базе которого можно организовать отработку поступающих с портала параметров, и возврат результатов на портал.
Как установить SCSM, SCO и настроить их взаимодействие друг с другом – полно информации в интернете, здесь я бы хотел продемонстрировать как выглядит портал, и как с его помощью предоставить возможность конечному пользователю получить определённый сервис. В данном примере - это просто ping определенного адреса, но как proof of concept вполне сойдет.
Заходим на портал
![В разделе available requests видны сервисы доступные пользователю под которым я залогинился, выбираем newping В разделе available requests видны сервисы доступные пользователю под которым я залогинился, выбираем newping](https://habrastorage.org/getpro/habr/upload_files/eba/0ff/882/eba0ff882f8745186484316bbdfbea84.jpg)
![Данный сервис требует указать только адрес который вы хотите пропинговать, к слову – фильтрацию ввода можно организовать на портале самообслуживания с помощью регулярных выражений. Вводим адрес и жмем кнопку submit. Данный сервис требует указать только адрес который вы хотите пропинговать, к слову – фильтрацию ввода можно организовать на портале самообслуживания с помощью регулярных выражений. Вводим адрес и жмем кнопку submit.](https://habrastorage.org/getpro/habr/upload_files/a99/56b/bc8/a9956bbc86765f1cc560c814bb69977a.jpg)
![После нажатия submit, портал сообщает номер присвоенный обращению, в нашем случае это SR525. После нажатия submit, портал сообщает номер присвоенный обращению, в нашем случае это SR525.](https://habrastorage.org/getpro/habr/upload_files/057/a5e/caa/057a5ecaa51654adfd50dcba2f842003.jpg)
![Введённые данные передаются в ранбук (по сути скрипт) в оркестраторе, скрипт отрабатывает и возвращает результат в SCSM Введённые данные передаются в ранбук (по сути скрипт) в оркестраторе, скрипт отрабатывает и возвращает результат в SCSM](https://habrastorage.org/getpro/habr/upload_files/2d8/4b6/20c/2d84b620c1a2fa2cb85d09a718c50e63.jpg)
![Пользователь видит результат выполнения запроса Пользователь видит результат выполнения запроса](https://habrastorage.org/getpro/habr/upload_files/d93/5e4/a37/d935e4a37ba6a9c529f712678343c98a.jpg)
В данном примере использовался SCSM 2016. Мне, в свое время, пришлось столкнуться с SCSM 2012 – и он оставил весьма неприятные впечатления. В 2016й версии я проблем не вижу.