Как работают приложения Сбербанк Онлайн: Workflow API и фрэймворки
Много кто пользуется приложением Сбербанк Онлайн, но немногие знают, как оно работает. Настало время приоткрыть завесу тайны – в этой статье мы расскажем о некоторых подходах, которые используем в разработке.
Здесь не будет биг даты, блокчейна, аджайла и другого рокет-сайенса. Зато будет описано API, на котором работают наши самые популярные приложения. Ценность этой статьи не в прорывных идеях, а в подходах и практиках, которые работают в большом приложении с одной из самых требовательных аудиторий.
Надеемся, что наш опыт поможет читателям сделать свой продукт лучше, а главное масштабируемым, потому что большинство шишек при разработке API мы уже поймали и исправили.
О чем пойдет речь
Мы расскажем, как в мобильном и веб приложениях Сбербанк Онлайн работают платежные сценарии, а именно про API между приложениями и сервер-сайдом.
Почему фокус на API? Все просто – это фактически единственный мостик, который соединяет клиентские приложения и бэкенд. Если проект небольшой, то мы можем легко менять API и переписывать под него приложения. Но если проект масштабный (такой, как у нас), то даже небольшие изменения API требуют вовлечения большого количества ресурсов как на фронте, так и на бэкенде, и становятся очень дорогими. И второй момент – чем раньше мы зафиксировали API, тем раньше фронтальные и бэковые команды могут начинать разработку. Им просто надо будет сойтись в одну точку.
Сначала мы немного расскажем о наших возможностях и ограничениях, чтобы было понятно, почему мы выбирали то, а не иное решение, а потом представим сам протокол API на верхнем уровне.
Специфика и мотивация
Приложения большие. Когда мы писали эту статью, приложение Сбербанк Онлайн на Android занимало около 800 000 строк кода, на iOS – 500 000 строк кода. И это только наш код, без подключаемых библиотек.
Обратная совместимость и много пользователей. MAU – 32 млн активных пользователей мобильного приложения. И если мы не сделаем обратную совместимость на уровне API, очень многим пользователям по всей стране придется качать приложения заново. Это очень нехорошо. Кстати, это одна из причин, почему у нас так много кода.
Сбербанк Онлайн разрабатывает много небольших команд. Вы, наверное, слышали про Agile в Сбербанке. Это правда, мы работаем по Agile в командах по 9 человек.
Приложение банковское: несмотря на то, что функциональность банковских приложений растет очень быстро, основное, что происходит в дистанционном банкинге – это последовательный процесс (обработка клиентских заявок). Такие процессы мы называем workflow. Заявки эти могут быть разного рода и обрабатываются они огромным количеством взаимосвязанных сервисов в периметре банка.
Два типа команд. Есть платформенные – они отвечают за разработку ядра приложения. И есть фичёвые команды – они создают прикладной функционал для конечных пользователей, используя архитектуру и инструменты, которые даёт платформа.
Омниканальность. Крайне важная история. Чтобы не разрабатывать бэк несколько раз – отдельно для мобильных приложений и отдельно, например, для веб-версии и банкоматов, нужно сделать так, чтобы API был максимально схожим для всех каналов (как минимум должна быть одинаковой структура ответа).
Мобильное приложение
Данные меняются динамически. Самые популярные операции в мобильном приложении – платёж и перевод. Реквизиты поставщиков услуг, набор полей, которые необходимо заполнить пользователю, – это динамическая информация, которая может часто меняться.
При этом пользователи могут не обновлять приложение, после того как установили его на устройство. Просто потому что могут. Чаще на это есть весомые причины, например, для обновления приложения нужно обновить версию ОС, а для этого купить новый телефон. Поэтому нам нужно решение, которое позволит менять данные без релиза приложения.
Мобильный интернет: наши приложения должны работать везде, даже где интернет нестабильный и медленный. Поэтому мы всегда боремся за размер и количество сообщений между мобильными приложениями и сервер-сайдом.
Лучший клиентский опыт: мы выбрали для себя основную технологию разработки мобильных приложений – разработка на нативных языках. Только так можно получить лучший клиентский опыт.
Если обобщить все эти требования – приложения должны разрабатываться на нативных языках, иметь повторно используемые компоненты внутри себя, но при этом вся бизнес-логика должна управляться со стороны сервера.
Как делать не стали
После того как мы обозначили граничные условия, расскажем, какие существующие решения мы анализировали.
Программирование на JSON
Логику проще описать императивно кодом, чем выдумывать (и изучать!) новый декларативный язык, который всегда будет ограничен сильнее, чем родной язык платформы. Кроме этого, надо предусмотреть песочницу, обработку ошибок, какой-то этап пилотирования – псевдокод должен постепенно распространяться на пользовательские устройства и при любых сбоях откатываться назад. Всё это усложняет разработку без ощутимых преимуществ.
Не используем описание стилей компонентов, поскольку они могут разниться от форм-фактора, платформы и даже режима работы (портретная/ландшафтная ориентация, responsive в web). Декларации стилей в конечной реализации всегда будут качественнее, ближе к реальности и корректнее работать с краевыми случаями. Кроме этого, бывает, что компоненты со схожей логикой принципиально по-разному работают на разных устройствах: например, ввод номера телефона – с телефонной книгой на мобильном устройстве и без неё в вебе.
Фиксация модели данных в интерфейсе приложения
Этот способ еще называется «прибить гвоздями». Смысл в том, что интерфейс приложения строится на уникальных идентификаторах объектов, которые передаются с сервера. В такой схеме любые изменения на стороне сервера приводят к переработкам клиентской части. Невозможно повторно использовать код. Сложно поддерживать.
Единственное, почему стоит выбирать такой способ на своем проекте, – уверенность на 99%, что API не будет меняться. Ну или если проект совсем небольшой и проектировать API дороже, чем быстро переделать пользовательский интерфейс под изменения в API.
Добавляем к каждому объекту признак стиля. UI приложений строим на основании этого признака. Стилей ограниченное число, поэтому появляется возможность строить интерфейс динамически. Но с увеличением функциональности UI приходится увеличивать количество стилей.
В этом варианте становится возможно управлять отображением отдельных элементов, но повышается сложность реализации связанности между разными полями. И главное – с ростом вариативности UI у вас будет постоянная необходимость расширять протокол API.
У JSON API детально описаны рекомендации по структурированию данных и описанию взаимосвязей между ними, но нет ничего, что могло бы описывать представление. Наша задача затрагивает в том числе визуальное расширение – добавление новых полей ввода, так что такой вариант нам не подходит.
Web Components / React Components API
Концепция веб-компонентов, которая в том числе значительно повлияла на API компонентов React, нам подходит уже намного лучше: с одной стороны, у нас есть контроль за отображением, с другой стороны – есть возможность привязывать данные к элементам UI.
К сожалению, всё слишком сильно завязано на HTML + CSS + JS. Напрямую не используешь, но запомним – потом пригодится.
Как решили делать
UI-контейнеры
Объекты упаковываются в контейнеры, презентационную логику приложения строим на этих контейнерах. Основное преимущество – можем группировать несколько простых объектов в один контейнер. Это дает свободу в программировании UX/UI на клиенте, например, можем управлять скрытием/отображением одного поля при заполнении данных в другом. При этом базовых типов объектов – ограниченное число, и весь бизнес-транспорт реализуется на них.
Мы выбрали именно этот подход. Сначала мы опишем протокол API, а потом – как устроены фрэймворки внутри мобильных и веб-приложений.
Чтобы было понятнее, рассмотрим API на примере простого процесса, например, перевод между своими счетами. Как добираемся до точки входа, не рассматриваем – это не процесс и для этого есть свой API (о нем мы тоже как-нибудь расскажем). Итого, процесс у нас начинается с точки входа:
/>
Транспорт данных
Для начала договоримся об основных принципах – как передаём данные. За основу возьмём самый простой подход – пары «ключ-значение». Ключом пусть будет строка из букв латинского алфавита, значение – тоже строки, но уже произвольные.
Формы для заполнения бывают сложные, с вложенными элементами и подразделами, значит, надо допускать вложенность. Можно именовать ключи в формате camelCase, но они могут быть плохо читаемым (например, в логах) или даже «портиться» в системах, нечувствительных к регистру. Нужно ввести разделитель.
Самый очевидный разделитель – точка – во многих языках используется для доступа к свойствам объекта. При неаккуратном использовании ключи с таким разделителем будут создавать словари (или объекты), в которых возможны коллизии. Например, “foo.bar” = “foobar” и “foo.bar.baz” = “foobarbaz” в javascript может повлечь перезапись свойства “bar” объекта “foo” со строки на объект. В конце концов, договорились на двоеточии: с одной стороны, явное визуальное разделение и семантическое отражение вложенности, с другой стороны, достаточно безопасно для всех используемых языков.
Что делать с повторяемыми полями? Вводим дополнительное правило: между парой разделителей могут быть либо латинские буквы, либо цифры. Получаются конструкции вида: children:5:name:first.
Пожив некоторое время с такой структурой, обнаруживаем ограничение: множественный выбор оказывается нетривиальным в реализации и требует дополнительных ухищрений на бэкэнде, чтобы держать высокую нагрузку.
Решение: значение – либо строка, либо список строк. Так решение выглядит типовым, но в то же время накладные расходы оказываются незначительными.
Шаг – это состояние процесса. Первый шаг у нас – выбор счета списания и счета зачисления и ввод суммы.
UI на этой картинке не видно, потому что шаг – это про серверную логику, а не про презентационную. Есть два подхода к работе с шагами: можно передавать с сервера только разницу (нарастающий итог в клиентском приложении) или каждый шаг целиком (нарастающий итог на сервере).
Анализ требований показал, что в ходе процесса экран может формироваться по-разному на разных шагах (ветвление процессов), поэтому вместо добавления управляющих команд для преобразования уже переданных сущностей проще каждый шаг передавать полностью таким, каким его должен увидеть пользователь.
Из дополнительных плюсов: при возврате к редактированию не нужно проигрывать весь сценарий или передавать дополнительный параметр “отдай всё”. При старте шага клиентское приложение сразу же получает всю нужную информацию для построения экранов.
Экраны
Экран – это разделение процесса на этапы в клиентском приложении. Как правило, экраны используются, чтобы форма была проще для восприятия. В нашем случае всё просто: один шаг – один экран.
Для экранов мы ввели два правила:
- переход между экранами может быть только линейным, без ветвлений;
- переход между экранами не требует взаимодействий с бэкэндом.
UI компоненты (блоки)
UI компонент – независимый компонент, который реализует клиентскую логику и наполняет документ данными. По сути, это ассоциация между управляющей командой в протоколе и куском кода и разметки в приложении. На первом экране три компонента:
- Счет списания
- Тот же компонент для счета зачисления
- Сумма перевода
Поля – это атомарные компоненты, которые выступают транспортом для отдельных элементов данных и обрабатывают пользовательский ввод в случае деградации блока. Типов полей ограниченное число и все они поддерживаются на уровне фрэймворка: text, checkbox, select, multiselect.
Это значит, что любая версия приложения может отрисовать интерфейс, опираясь только на типы полей.
Поля в UI-компонентах из нашего примера:
1. Поле со ссылкой на справочник в счете списания и счете зачисления. Почему ссылка на статический справочник? Потому что счет мы выбираем из списка карт (счетов), без лишнего обращения к серверу.
2. Два отдельных поля для суммы и валюты в компоненте ввода суммы
Таким образом, формат для полей имеет такую структуру:
События
Так как приложения ничего не знают о процессе, логично, чтобы события (кнопки, которые видит пользователь) тоже были частью ответа от сервера.
События мы разделили на два типа.
1) Основные – они есть почти на каждом экране в привычных местах для пользователя. Как пример, это события «назад» и «продолжить». Первое осуществляет переход на шаг назад, а второе собирает заполненные данные с клиентской формы и отправляет их на сервер вместе с командой «Перейти на следующий шаг».
2) И специальные – для нестандартных действий, которые мы заранее спрогнозировать не можем, да и смысла закладывать их в часть движка нет, так как они редко используются.
В нашем случае на экране только основные события – «продолжить» и «назад». Они реализованы на уровне платформы.
У всех событий есть ряд атрибутов, такие как сам тип события, title и признак видимости. И никакого UI на сервер-сайде вроде размера кнопки, положения и цвета. Эта логика реализуется на фронте.
Справочники
Со справочниками все стандартно. Если он небольшой, то мы его присылаем полностью в ответе от сервера и называем статическим. Сделано это для того, чтобы минимизировать количество запросов к сервер-сайду и время отклика на действие пользователя в интерфейсе. Чтобы его отобразить в форме на экране, добавляем поле с типом – selectList, одно из свойств которого – ссылка на статический справочник.
Если справочник большой, то он реализуется в виде отдельного rest-сервиса. В интерфейсе это выглядит как текстовое поле, по мере заполнения которого возвращается список возможных вариантов из справочника.
Ошибки валидации на клиенте и сервере
Так как основной элемент интерфейса – поле ввода данных, логично валидировать его на клиенте. Вместе с полями передаются правила валидации и сообщения, которые отображаются, если валидация не прошла.
Примерно так выглядит структура ответа:
Фрэймворки
Теперь немного о том, как с этим протоколом работают фрэймворки внутри приложений. Условно фрэймворки можно разделить на две основные части: workflow engine + обработчик UI-контейнеров. Такое разделение вызвано не только архитектурой приложений, но и организационной структурой. Движок разрабатывают и поддерживают платформенные команды, а UI-контейнеры фактически являются точками расширения и их программируют фичёвые команды. Таким образом, большему количеству команд не нужно вносить изменения в ядро.
Workflow engine
Движок внутри приложений (веб и мобильного) знает, что начался процесс работы с документом и что согласно протоколу ему придёт ряд атрибутов: шаги, экраны, UI-контейнеры и типы полей. На этих данных рисуется базовый интерфейс – нижнее и верхнее меню, основные кнопки, UI на простых типах полей, если они используются.
При этом движок не знает, сколько именно в сценарии будет шагов процесса, как шаги будут разбиты по экранам и какие там будут поля.
Если сценарий изменится, например, потребуется отобразить новое поле, то его будет достаточно добавить в ответ сервера, и клиентское приложение его отобразит. Для этого выпускать релиз фронтального приложения не потребуется.
Как работают UI-контейнеры?
Анализ потребностей дизайнеров и бизнес-заказчиков показал, что все потребности не получится удовлетворить простым расширением атрибутивного состава полей.
Поэтому нужны были точки расширения. Этими точками расширения стали UI-компоненты – это нативная реализация кода в самих приложениях, который идентифицируется движком по названию. По сути, это группировка поля/нескольких полей в логический блок, который может отображать кастомный UI. При этом модель данных протокола используются только для транспорта данных на бэкенд, весь UX и UI реализуется на стороне приложения.
Два режима работы фрэймворка
Когда движок парсит модель данных, он сравнивает список имен UI-контейнеров с реестром, который хранится внутри приложения. Если приложение не находит имени компоненты, то интерфейс строится на простых типах полей. Процесс будет полностью рабочим, но на стандартных UI-элементах.
Слева – как может отображаться контейнер для ввода суммы на списке из простых типов полей. Справа – если в сборке приложения есть UI-контейнер. Несмотря на то, что в режиме списка простых полей нет слайдера и есть отдельное поле вместо иконки с выбором валюты, – мы можем передать все данные с PL и процесс будет рабочим.
И тут мы получаем одно из основных преимуществ движка – доставить пользователю изменения без обновления приложения. В сборке есть маппинг имен компонентов на классы, в которых запрограммирован UI этих компонентов и пользовательский интерфейс строится на нем.
Каких правил мы стараемся придерживаться при работе с UI-компонентами:
- Поддерживать работу функционала в режиме списка простых типов полей. У любого прикладного проекта есть соблазн превратить динамический протокол в статический. Поэтому мы всех просим сначала разработать функционал на типовом UI-контейнере, а потом обогащать UX/UI добавлением кастомных контейнеров на этой модели данных. Это не только позволит в будущем обновлять процессы на старых сборках, но и автоматически поддерживает логическую целостность API.
- Не менять модель данных (JSON) для UI-контейнера, если он уже готов (проходит финальное тестирование или уже в продакшене). Так как логика на PL жестко связана с моделью данных, её изменение сломает функционал на версиях мобильного приложения, которые не обновляются. Тем не менее, модель можно расширять при условии сохранения обратной совместимости.
- Называть свой UI-компонент системным именем. Так как имя UI-компонента – обязательный атрибут протокола и должен быть минимум один на каждом экране, мы ввели специальное системное имя, которые реализует простой список полей.
- Не реализовывать бизнес-логику на UI-компонентах. Логику необходимо реализовывать на сервере, почему – писали выше.
Coming soon…
Мы очень старались писать лаконично, но это первая техническая статья про платформу Сбербанк Онлайн и она должна была многое охватить.
Пишите в комментариях, что непонятно, что интересно – постараемся писать меньше, но чаще и в цель. У нас много интересных вызовов, и поэтому много материала.
Как пользоваться системой Quik от Сбербанк
Сбербанк предлагает гражданам, имеющим в распоряжении свободные денежные средства, не хранить их под подушкой, а инвестировать в успешные бизнес-проекты. Чтобы результатом пассивного заработка стала прибыль в десятки раз превышающая доход от привычных банковских вкладов. Важно для получения гарантированной прибыли выбирать решения с минимальной степенью риска.
Система Квик предоставляет функциональную и безопасную площадку для операций с активами в режиме онлайн. Сбербанк же предлагает выгодные условия брокерского обслуживания.
Взаимодействие с брокером осуществляется через специальное программное обеспечение Quik, доступное на всех устройствах: компьютере, мобильном телефоне, а также через веб-интерфейс.
Что такое система Квик от Сбербанка?
Система Сбербанк Квик — торговый терминал, предоставляющий возможность пользователю с любым уровнем подготовки заняться инвестированием и получать стабильные доходы, не покидая привычного пространства. Приложение Квик позволяет в режиме онлайн покупать акции по низкой, а продавать по высокой цене, получая при этом полный комплекс информационных и сервисных услуг.
Задача клиента — открыть брокерский счет, все остальные функции берет на себя программа Quik, выполняющая услуги посредника между продавцом и покупателем.
Функциональные возможности программы
Программное приложение подключается к серверу системы Quik определенной брокерской компании и в режиме реального времени:
- предоставляет доступ к рыночной информации;
- позволяет принимать участие в торговых операциях.
Благодаря системе, трейдер, стремящийся извлечь наибольшую прибыль непосредственно из процесса торговли ценными бумагами, получает сервисы:
- мониторинг текущих котировок по биржевым инструментам, позволяющий трейдерам быстро оценивать сложившуюся ситуацию на рынке;
- контроль за состоянием собственного финансового портфеля, то есть за совокупностью инвестиционных вложений;
- выставление заявок: биржевых, лимитных, условных;
- совершение сделок купли-продажи;
- проведение торговых операций с активами, полученными от брокера в кредит;
- выставление отложенных ордеров — заявок, которые будут исполнены в будущем, при достижении цены того значения, которое было указано в ордере;
- отслеживание динамики торгов по акциям компаний на графиках;
- настройка СМС-уведомлений, позволяющих получать информацию о необходимых операциях;
- связь со службой поддержки и предоставление финансовых консультаций;
Как установить QUIK?
Сбербанк предлагает инвестировать, то есть совершать выгодные операции с ценными бумагами, так как удобно пользователю: с домашнего компьютера или электронного планшета, с мобильного телефона или непосредственно в браузере webQUIK.
На компьютер
Процедура установки программного обеспечения на компьютер предполагает:
- Установку программы для начальной инициализации системы с сайта QUIK, Сбербанка или любого другого брокера.
- Генерацию электронных ключей для шифрования данных посредством запуска файла keyden.exe.
- Регистрацию ключей путем передачи файла с публичным криптографическим кодом технической поддержке по e-mail или через личный кабинет.
- Настройку рабочего места.
На мобильный телефон
Мобильное приложение “Сбербанк Инвестор”, установленное на смартфон, позволит зарабатывать в режиме онлайн. Высокотехнологичный продукт доступен в:
- App Store для устройств на базе ОС iOS;
- Google play для устройств на базе OC Android.
Алгоритм действий предельно прост:
- Скачать программу.
- Удостовериться в предоставлении права пользования Рабочим местом, путем списания абонентской платы с брокерского счета.
- Загрузить файлы электронных ключей: секретного и публичного.
- Настроить корректные параметры соединения.
webQuik в браузере
Для инвестиций в браузере Webquik нет необходимости производить установку и настройку программы:
- Заходите на страницу сайта Сбербанка, посвященную интернет-трейдингу в системе Quik.
- Нажимаете в разделе “WebQUIK в браузере” кнопку “Открыть”.
- Вводите:
- логин, являющийся пятизначным номером договора на брокерское обслуживание;
- пароль, полученный в СМС при открытии счета.
После авторизации, необходимо изменить временный пароль на постоянный, придуманный самостоятельно или сгенерированный системой.
Демо режим системы Квик
Чтобы обычные люди, профессионально не связанные с работой на фондовом рынке, могли размещать капитал с целью получения прибыли с минимальными рисками. Предлагается на начальном этапе в качестве обучения и подготовки к реальным шагам воспользоваться демонстрационной версией системы Квик.
Демо режим позволит сориентироваться в интерфейсе программы, узнать особенности интернет-трейдинга с посредничеством Сбербанка.
Особенности демо-счета Сбербанка
Учебный счет предоставляется бесплатно пользователю на месяц. Клиент может принять участие в реальных торгах на МБ, но с виртуальным капиталом, предоставленным новичку системой. По сути, инвестор может без каких-либо ограничений:
- выставлять ордера, в том числе с установленными заранее параметрами открытия;
- производить настройку сделок;
- знакомиться с особенностями взимания спредов, разностью между лучшими ценами заявок на продажу и покупку, и комиссий за совершение сделок;
- получать доступ на все торговые секции Московской биржи.
Пользователь, подключивший демо Квик, должен учитывать некоторые функциональные особенности пробной версии:
- использовать можно будет базовый функционал, продвинутые решения недоступны;
- предлагаются не все финансовые инструменты, а только акции наиболее крупных, ликвидных и надежных компаний со стабильными показателями доходности;
- график котировок формируется с незначительным опозданием;
- время рассмотрения заявки составляет 1 день.
Как открыть демо-счет?
Чтобы открыть обучающий инвестированию счет, необходимо:
- Установить на рабочее место учебную копию базового комплекта системы “Quik-Брокер”.
- Зарегистрировать персональный аккаунт в демонстрационной версии программы.
Зарегистрировать счет можно на сайте разработчика или на сайте брокера. Воспользуемся первым вариантом:
- Заходим на сайт Quik.ru.
- Переходим по ссылке “Ознакомительный доступ”.
- Выбираем рабочее место QUIK.
- На странице “Как начать работать с QUIK” нажимаем “Дистрибутив QUIK для подключения к учебному серверу”, чтобы скачать установочный файл для программы.
- Заполняем форму регистрации доступа введя:
- Ф. И.О.;
- e-mail.
- логином и паролем для входа в систему;
- электронными ключами.
Преимущества и недостатки торговой платформы
Сервисом Квик при наличии минимальных знаний и навыков в состоянии пользоваться даже неопытные трейдеры, благодаря:
- модульному построению программы — каждый вправе адаптировать интерфейс под свои потребности;
- безопасности совершаемых сделок — защита персональных и финансовых данных обеспечивается уникальным криптографическим программным обеспечением;
- возможности вывести деньги с Квик Сбербанк на любой платежный инструмент, открытый в Сбербанке;
- подробным и простым инструкциям, находящимся в свободном доступе;
- грамотной и оперативной информационной и технической поддержке.
Опытные трейдеры и эксперты в числе основного недостатка выделяют — большие комиссионные, списываемые за выполнение брокерских операций. А то, что программа имеет стандартный вид и большое количество настроек, вызывает недовольство только в момент ознакомления.
Служба поддержки системы Квик
С оператором службы поддержки можно связаться с 9.00 до 21.00 по:
- Телефонам:
- 88005555551;
- +74959671823.
Специалист поможет в ситуациях, касающихся проблем с:
- отправкой ордеров;
- работой биржи;
- утратой пароля доступа;
- сроком зачисления денежных средств.
Впрочем, опытные и доброжелательные специалисты готовы ответить на любые вопросы и оперативно решить возникшую проблему.
Автоматизированные системы Сбербанка
На июнь 2015 года «Сбербанк» делит свои автоматизированные системы по 11 основным направлениям:
- автоматизированные системы ядра (Core banking),
- системы FrontEnd,
- процессинговые системы,
- системы типа CRM,
- BI,
- кредитные системы,
- системы по управлению рисками,
- системы по управлению инвестициями,
- системы по управлению внутрихозяйственной деятельностью и персоналом,
- системы платформы BPM и
- системы ДБО.
Core banking
- АС ЦОД (автоматизированная система централизованного обслуживания вкладов физических лиц);
- АС BackOffice (централизованная база депозитов физлиц);
- AC УПД (управление платежными документами).
Данные системы предназначены для обслуживания розничного сектора клиентов «Сбербанка» и ориентированы, в первую очередь, на обслуживание физических лиц. В числе операций, которые выполняются с их помощью – обеспечение хранения счетов по вкладам физических лиц и данных о клиентах, обслуживание запросов структурных подразделений отделений о состоянии счетов по вкладам физических лиц, прием банковских транзакций от функциональных подсистем операционного уровня и др.
- АС Юпитер (хранение и обработка информации по зарплатным проектам);
- Корпоративная АБС автоматизации операций клиентов (юридических лиц и физических лиц, являющихся собственниками бизнеса);
- АС ГАММА (формирование бухгалтерских проводок на основании реестров сделок и платежных документов);
- АС Кассовый центр (решение, автоматизирующее процессы кассовых узлов и кассово-инкассаторских центров);
- АС Виват (система по учету и ведению военных пенсий);
- АС ТФиДО (глобальная платформа сопровождения торгового финансирования и документарных операций) ;
- АС Централизованная автоматизированная система ведения нормативно-справочной информации.
Системы FrontEnd
Одной из центральных систем данного блока является АС ФС, позволяющая выполнять функции администрирования офисом, приема платежей и переводов, погашения кредита физлиц, работы со счетами и вкладами, банковскими картами, сберегательными сертификатами и лотерейными билетами, денежными знаками и ценными бланками, валютными операциями, монетами и слитками из драгметаллов, кассовыми операциями.
Также к FrontEnd системам относятся:
- АС xBank (система банка, используемая для автоматизации работы операционных и кассовых работников в ВСП по вводу и обработке большинства операций розничного блока);
- АС Инфобанк (cистема для автоматизации операций по ценным бумагам «Сбербанка», дорожным чекам иностранных эмитентов, ведения централизованного реестра проблемных ценных бумаг);
- АС Сбор данных (сбор данных по кредитным обязательствам);
- АС Стоп-лист (ведение СТОП-ЛИСТов (террористы, недействительные документы, недобросовестные ссудозаёмщики), формирование транспортных файлов с реквизитами юридических и физических лиц, загрузка файлов журнала обращений и несоответствий);
- АС ВИК Договоры (ведение информации по договорам клиентов и базы данных юрлиц, заключивших со «Сбербанком» договор о зачислении денежных средств на счета физлиц);
- АС Банковское страхование, предназначенная для учета заявлений клиентов физлиц по страхованию;
- Веб-сайт «Сбербанка»;
- АС Dealing Manager (фронт-офисная система ведения позиции по сделкам на валютном, денежном и рынке драгметаллов);
- АС КВРБ (компенсации вкладчикам разорившихся банков);
- АС СББОЛ (СберБанкБизнесОнЛайн, предназначена для дистанционного управление счетами корпоративных клиентов посредством интернет браузера);
- АС Сбербанк Корпорация (внедрение комплексных продуктов по управлению финансовыми потоками крупнейших, крупных и средних клиентов банка);
- АС ЕФС (Единая Фронтальная Система), которая включает в себя всю фронтальную функциональность, связанную с автоматизацией обслуживания клиентов во всех каналах обслуживания и позволяет осуществлять кросс-канальные операции;
- АС Клиент Сбербанк, обеспечивающая электронный документооборот и удаленное управление счетами для клиентов — юридических лиц «Сбербанка» в Москве. Обслуживает порядка 300 000 клиентов (70 инсталляций).
Процессинговые системы
- АС WAY4 (процессинговая система банковских карт);
- АС SmartVista (фронтальная система, обеспечивающая онлайновое обслуживание авторизационных запросов по банковским картам и онлайновое взаимодействие с международными, и российскими платежными системами);
- АС ЕРКЦ (единый распределенный контактный центр «Сбербанка» на платформе Avaya для автоматизации справочно-информационного обслуживания, телемаркетинга, службы помощи банка);
- АС Запрос (шлюз запросов к внешним источникам информации);
- АС Masspay (система приема платежей, предназначенная для построения сети приема платежей населения с использованием устройств самообслуживания (банкоматы, информационные киоски);
- АС UPOS (универсальное ПО POS-терминалов и интегрированных кассовых решений в торгово-сервисных предприятиях эквайринговой сети «Сбербанка»);
- АС СПООБК2 (система предварительной обработки операций по банковским картам второго поколения). Обеспечивает предварительную обработку операций с кредитными картами. Автоматизация процессов, обеспечивающих подготовку и предварительную обработку операций по кредитным картам для последующей передачи данных в программно-аппаратный комплекс WAY4;
- АПК Matching — автоматизированная система, обеспечивающая формирование информации для проведения расчетов по банковским картам платежной системы MasterCard (карты, выпущенные сторонними банками), а также обеспечивающая формирование статистических и бухгалтерских отчетов;
- АС IQWAVE (Шлюз Платежных Транзакций). Для упрощения создания, внедрения и сопровождения интеграционных взаимодействий между автоматизированными системами «Сбербанка» и поставщиками услуг;
- АС ОПП (Обработка прямого потока). Предназначена для обработки файлов с информацией по выпуску/перевыпуску банковских карт, а также файлов с операциями пополнения/списания денежных средств по банковским картам.
- АС Дебаты 2.0. Система предназначена для ведения претензионной работы по банковским картам, включая проверку изменения статуса урегулирования претензии, наличия зарегистрированной претензии и регистрации претензии;
- АС СНУиЛ (система номерного учёта и логистики банковских карт и сопутствующих компонентов (Octopus). Обеспечивает мониторинг состояния всех видов банковских карт, учитывает количество израсходованных заготовок при производстве карты;
- Сценарии устройств самообслуживания (Сценарий УС) — сценарии работы устройства самообслуживания с центральной фронтальной системой для осуществления базовых клиентских операций с устройством – авторизации, выдачи и взноса наличных, работа с личным кабинетом, платежи и т.д.;
- ЕГПО (единое гибридное программное обеспечение, ПО устройств самообслуживания).
- АС CRM Розничный (система управления взаимоотношениями с клиентами розничного блока). В основе системы использован продукт Oracle Siebel CRM;
- АС CRM Корпоративный (система управление взаимоотношениями с корпоративными клиентами). Автоматизирует такие функции как создание единого представления о клиенте, управление сотрудничеством с клиентом, закрепление клиента за ответственным подразделением/сотрудником, разграничение доступа к клиентской информации;
- АС CRM Трансграничный (система управление взаимоотношениями с корпоративными клиентами банка, предназначена для автоматизации операций по работе с зарубежными корпоративными клиентами);
- АС MDM Клиентский (система на базе MDM для построения единого профиля клиента физического и юридического лица). Реализация на IBM InfoSphere MDM Server;
- АС MDM Продуктовый (централизованный каталог продуктов и тарифов). Реализация на IBM InfoSphere MDM Collaboration Server (бывший MDM Server for Product Information Management);
- АС ФКД (формирование кредитной документации). Осуществляет обеспечение достоверности и актуальности шаблонов кредитных документов;
- АС СУДИР (система управления доступом к информационным ресурсам);
- АС ФО Клиентов (финансовая отчетность клиентов). Информация из системы используется для формирования блоков кредитной заявки, приложений к кредитной заявке, блоков форм мониторинга, а также аналитической отчетности;
- АС Курсы валют (автоматизированная система установления валютных курсов и курсов драгоценных металлов по системе «Сбербанка»);
- АС GoldenSource (Котировки финансовых инструментов (КФИ)) источник мастер-котировок для финансовых целей;
- АС ЦАС ОК (Централизованная автоматизированная система Обращения клиентов) предназначена для регистрации обращений клиентов, классификации обращений, их обработки с возможностью передачи на экспертизу, подготовки и отправки ответа клиенту;
- АС MIS обеспечивает руководство банка аналитической информацией для принятия управленческих решений.
Фабрика данных
- Прогноз прироста данных на 2017 год – 28 Пб (сырых данных) -> 78 Тб в день [1]
- Объем хранения данных в Терадата
BI-системы
В «Сбербанке» существует Центр компетенции развития BI. По данным одного из выпусков корпоративной газеты для сотрудников «Сбербанк Технологии», в ведении центра находятся: программно-аппаратный комплекс Teradata, включающий аналитическое хранилище данных, оперативное хранилище данных Oracle Exadata и еще одна система – витрины MIS.
Управление метаданными
Основной целью создания единой базы метаданных является автоматизация и повышение качества бизнес-процессов [2] :
- Снижение стоимости анализа и проектирования решений
- Сокращение времени разработки и вывода кода на среды
- Повышение качества продуктов
- Контроль соответствия архитектурным требованиям
Подробнее о практическом применении управления метаданными в Сбербанке в отдельной статье.
Кредитные АС
- АБС для автоматизации операций кредитования физических лиц. Система включает операции кредитования физлиц, учет обеспечения по кредитам, учет резервов по кредитам, ведение части функционала позднего сбора по просроченной кредитной задолженности;
- АС Transact SM Розничный (автоматизация предкредитной обработки по физлицам). Система предназначена для ведения, хранения и обновления информации о кредитных продуктах, а также для решения задач документооборота и принятия решения по заявкам клиентов-физических лиц микросегмента малого бизнеса;
- АС Transact SM СМП (предкредитная обработка заявок по кредитованию собственников малого бизнеса). Система предназначена для ведения, хранения и обновления информации о кредитных продуктах, а также для решения задач документооборота и принятия решения по заявкам клиентов микросегмента малого бизнеса;
- АС Transact SM Экспресс-кредиты (система, позволяющая вводить, обрабатывать, хранить и выполнять поиск информации о клиентах и заявках на кредит в централизованной базе данных);
- АС Централизованная ИАС Кредитование юридических лиц (централизованное ведение вкладов физических лиц с проведением централизованных зачислений и обеспечением межфилиальных операций). Система используется для проведения операций по счетам физических лиц, содержит актуальные остатки по счетам физических лиц;
- АС Централизованная ИАС Кредитования физических лиц (обслуживание кредитных договоров физических лиц (фронт, мидл и бэк офис). Помимо потребительских, авто и ипотечных кредитов в системе также обслуживаются разрешенные овердрафты карточных счетов;
- АС Tallyman (система для сбора просроченной задолженности);
- АС Hunter (предупреждения о мошенничестве при рассмотрении кредитных заявок). Система проводит сравнение данных по вновь оформляемой кредитной заявке с уже имеющимися заявками с целью определения и предупреждения мошенничества;
- АС ОКИ (система для оценки кредитных историй);
- АС Калита (сбор просроченной задолженности физлиц и малого-микро бизнеса). Данная система может взаимодействовать с внешними системами с целью информирования должника о наличии просроченной задолженности с использованием различных каналов; с системами госорганов (ФССП) для реализации судебного и исполнительного производства, с коллекторскими агенствами при передаче на сопровождение/продаже просроченного портфеля и др.
АС по управлению рисками
- Аналитический модуль расчета лимитов и рейтингов (АМРЛиРТ) — рейтинговая модель оценки вероятности дефолта контрагента. Рассчитывает вероятность дефолта и рейтинг заемщика, ожидаемые потери при дефолте заёмщика, кредитоёмкость, внутренний рейтинг;
- АС СУОР (Система управления операционными рисками) — учет анализ, управление операционными рисками, своевременное выявление потенциальных угроз, снижения потерь при реализации операционных рисков;
- СУККР (система управления корпоративными кредитными рисками). Предназначена для управление рисками корпоративного кредитного портфеля для решения таких бизнес-задач как прогноз уровня кредитных рисков с формированием и поддержкой базы данных по реализованным кредитным рискам, оценка рисков совокупного кредитного портфеля банка, контроль качества кредитного портфеля банка, проведение стресс-тестирования кредитного портфеля банка и др.;
- Автоматизированная система поведенческого скоринга для работы с просроченной задолженностью. Обеспечивает снижение расходов на мероприятия, связанные с взысканиями задолженности за счет проведения анализа поведенческих, статических и социально-демографических характеристик клиентов и учета результатов этого анализа при определении стратегии взыскания;
- Система контроля качества андеррайтинга (СККА). Обеспечивает сбор и анализ информации о работе андеррайтеров банка, внутренний аудит качества работы кредитных подразделений;
- Обеспечение гибкого механизма управления структурой лимитов риска, в т.ч. при условии дальнейшего усложнения методологии Автоматический расчет сумм лимитов различных типов в зависимости от факторов, определенных методологией Банка.
- SAP Bank Analyzer Limit Manager. Обеспечивает гибкий механизм управления структурой лимитов риска, расчет сумм лимитов различных типов и др.;
- АС Казначейство (комплексная автоматизированная система казначейства на единой платформе).
АС по управлению инвестициями
- АС DiasoftCUSTODY 5NT. Система предназначена для автоматизации функций первичного учета и сопровождения операций на фондовых рынках в рамках собственного портфеля центрального аппарата, портфелей территориальных банков и отделений банка в Москве, операций брокерского обслуживания и доверительного управления активами клиентов;
- АС DiasoftDEALING 5NT. Система обеспечивает автоматизацию функций первичного учета и сопровождения казначейских операций центрального аппарата «Сбербанка» на денежных рынках и на рынках драгметаллов;
- АС Дивиденд. Предназначена для бухгалтерского учета процесса выплаты дивидендов;
- АС Реестр акционеров (ведение реестра акционеров «Сбербанка», проведение собрания акционеров);
- АИС Депозитарий 2000. Система обеспечивает автоматизацию депозитария в части учета выпусков ценных бумаг, проведения бухгалтерских операций с ценными бумагами; хранение информации об эмитентах ценных бумаг и депонентах и др.;
- АС Murex (консолидированный риск трейдинга, P&L — консолидированный риск трейдинга и P&L — фронт-офис);
- АС QUIK (система электронной торговли для клиентов брокерского обслуживания). Предоставляет доступ клиентам к торговле на фондовом, денежном и срочных рынках через веб или полноценный клиент;
- АС ЦБДБО (централизованная база договоров брокерского обслуживания);
- АС FX&MM Plus — занесение заявок корпоративных клиентов на размещение денежных средств в депозиты, векселя, сделок бронирования, а также привлечение кредитов, требующих согласования с департаментом казначейских операций и финансовых рынков, установления процентной ставки, акцептования, хранения и анализа информации по всем заявкам и сделкам с корпоративными клиентами, а также операций на валютном рынке;
- АС eFX (стратегическая мультипродуктовая система электронной торговли Apama);
- АС Фокус (фронт-офисная система казначейства на фондовом рынке, брокерское обслуживание клиентов на фондовом рынке);
- АС SavEx – (электронная площадка для проведения торговых операций с внутренними подразделениями (территориальными банками «Сбербанка» и отделениями Москвы) и внешними клиентами;
- АСУ ОВП (автоматизированная система управления открытой валютной позицией);
- АС Calypso (TDS) — система продуктового учета внебиржевых деривативов;
- АС Удаленное рабочее место депонента (ЛУЧ) — рабочее место для обеспечения электронного документооборота c «Национальным Депозитарным Центром» для исполнения поручений «Сбербанка» на ММВБ.
АС по управлению внутрихозяйственной деятельностью и персоналом
- Единая АС управления персоналом на базе SAP HCM;
- Управление внутрихозяйственной деятельностью на базе SAP ERP.
АС платформы BPM
Создание BPM-системы полного цикла в сбербанке
Единая модель процесса
- Модель, единая для всех. В АРИСе модель процесса является единой для всех потребителей, от владельца процесса до разработчика и исполнителя
- Согласованные изменения. Если при изменении процесса на нижнем уровне автоматизация) выявляется несоответствие верхнему уровню, при необходимости меняется верхний уровень
- Контроль качества. Передача результатов моделирования на следующий этап обеспечивается после автоматизированной проверки показателей качества модели процесса
Система связанных процессов
- Репозиторий. Все модели процессов размещаются в едином репозитории (АРИС)
- Связанные процессы. При моделировании процесса осуществляется его связывание с используемыми процессами
- Контракт процесса. Для каждого используемого процесса публикуется его контракт, в рамках которого гарантируются свойства процесса и обеспечивается обратная совместимость
- Связанное изменение. Для каждого процесса при выполнении изменений учитываются его зависимости от других процессов
E2E-процессы вместо Продуктовых процессов Разделение процессов на 2 уровня:
- E2E-процесс — процесс оказания услуги потребителю (от заявки до результата) — показывает порядок действий по обслуживанию потребителя
- Продуктовый процесс (процессы жизненного цикла экземпляра продукта, ПЖЦ) — процесс, показывающий использование E2Eпроцессов в разных состояниях продукта и для перехода между состояниями
Концентрация на E2E-процессах для повышения ценности для клиентов:
- реинжиниринг и трансформация
- непрерывное улучшение
Контроль продуктовых процессов — позволяет убедиться в целостности жизненного цикла продукта
В App Store появилась замена удаленного из-за санкций приложения «Сбера»
В App Store, магазине приложений для устройств на операционной системе iOS, появилось приложение, позволяющее проводить операции в Сбербанке, убедился корреспондент РБК.
Оно называется СБОЛ — эта аббревиатура раньше использовалась в качестве сокращенного названия «Сбербанк Онлайн». Войти в приложение можно по номеру карты. В случае если введен номер карты другого банка (не «Сбера»), пользователь будет перенаправлен в онлайн-банк другой кредитной организации. В то же время клиентам Сбербанка доступен полный функционал, который фактически копирует «Сбербанк Онлайн».
В описании приложения указано, что его разработчиком выступает ООО «Открытые ИТ-решения» (LLC Open IT-Solutions). Согласно данным СПАРК, компания была создана 18 февраля и занимается консультативной деятельностью, работой в области компьютерных технологий, созданием прочих программных продуктов, разработкой компьютерного ПО и т.п.
«Сбербанк рекомендует использовать приложение компании «Открытые ИТ-решения» клиентам — владельцам устройств Apple, на которых еще не установлено приложение «Сбербанк Онлайн». Наши самые востребованные банковские сервисы теперь доступны для пользователей приложения, оно является безопасным и доступно для скачивания в AppStore», — сказал представитель Сбербанка и уточнил, что тем клиентам, у кого уже ранее был установлен «Сбербанк Онлайн», удалять его не нужно, приложение работает в штатном режиме.
Как клиенты российских банков остались без приложений на iPhone
Мобильное приложение Сбербанка было удалено из магазинов приложений App Store и Google Play в апреле, после попадания Сбербанка в американский список SDN (Specially Designated Nationals), который подразумевает введение самых жестких блокирующих санкций. Они предусматривают заморозку активов, а также запрет (с риском вторичных санкций) вести бизнес с фигурантами списка.
Сбербанк изначально заявлял, что все ранее скачанные приложения продолжат работу. Сейчас они по-прежнему работают, однако скачать из магазина новое, не установленное ранее приложение нельзя. Пользователи Android могут скачивать его не из магазина, а напрямую по ссылке с официального сайта Сбербанка. Для клиентов с iPhone, если те только купили смартфон или если раньше у них не было приложения, единственным способом получения онлайн-услуг в «Сбере» остался интернет-банк.
«Сбер» не единственный банк, который столкнулся с удалением приложения из магазинов. Их также лишились ПСБ, Альфа-банк, «Открытие», Совкомбанк и др. У некоторых приложения продолжают работать, многие сделали доступной установку на Android (со своего сайта, а не из магазина).
Банк ВТБ после удаления приложений из магазинов прекратил поддержку на iPhone (на Andorid его можно установить с сайта банка). В апреле в App Store появилась копия приложения «ВТБ Онлайн» — «Баланс Онлайн», но через несколько дней было удалено. Вторая копия, «Прайм баланс Юником», была загружена в мае и до сих пор продолжает работать. В описании приложения в магазине сказано, что его разработал Unicom LLC, которому также принадлежит приложение для финансового маркетплейса «Юником24».
В App Store уже появлялось приложение «Сбербанк Онлайн сайт», имитирующее сервис «Сбера». Однако тогда в банке заявили, что оно не официальное, а мошенническое. Впрочем, разработчик приложения подчеркивал, что он не мошенник, а «Сбербанк Онлайн сайт» лишь открывает сайт кредитной организации — остальные действия проходят уже на его стороне.