image

Аналитические системы продолжают активно развиваться. По оценкам Gartner, объем мирового рынка BI-платформ и аналитических приложений к концу этого года превысит $22,8 млрд. В последние несколько лет на первый план вышли так называемые инструменты самообслуживания, позволяющие бизнес-пользователям и аналитикам создать интерактивные информационные панели без привлечения IT-команд. При этом, компании начинают все больше смотреть на облачные аналитические инструменты, которые помогают в построении бимодальной архитектуры и добавляют гибкость ИТ-ландшафту компании.

Мы много писали здесь и здесь про наше решение SAP Analytics Cloud (SAC), которое предназначено для интерактивного и гибкого анализа данных. Сегодня же мы расскажем об еще одной возможности SAC, а именно о гибридной модели работы решения с локальными системами компании.

Почему Live-режим важен?


При использовании облачных платформ возникает вопрос о безопасности работы и передачи данных в аналитическую систему. Технология Live-подключения позволяет создавать аналитические панели средствами SAP Analytics Cloud без передачи бизнес-данных в облако, что может гарантировать сохранность данных внутри корпоративного контура компании.

Как мы писали ранее, SAС объединяет в себе 3 ключевых функциональности для работы с данными: BI, планирование и продвинутая аналитика с применением методов машинного обучения. И конечно же удобно, что это SaaS BI инструмент, не требующий локального развертывания, позволяющий создавать дашборды и анализировать информацию без установки каких-либо программ на компьютер пользователя. Работа совершается в браузере, а обновления системы происходят автоматически.

SAP Analytics Cloud позволяет подключаться к источникам в двух разных форматах, как показано на рис.1:

  1. В режиме импорта, когда данные загружаются в аналитическую систему и могут обновляться по расписанию. Здесь мы можем использовать полный набор возможностей системы в части визуализации и анализа данных, планирования и прогнозной аналитики.
  2. В режиме Live, когда загрузки данных в облако не происходит, и мы видим на дашборде актуальные данные из исходной системы на момент открытия отчета. Это подключение позволяет использовать большинство функций BI и продвинутой аналитики системы. Важно, что этот набор функций регулярно пополняется.

image
Рисунок 1. Доступные типы подключений

В качестве источников данных для этого режима могут выступать:

  • SAP HANA (облачная, либо локальная). В этом случае SAP Analytics Cloud выводит данные из Calculation Views
  • SAP BW/4HANA и ряд версий SAP BW – BW / BEx Queries
  • SAP S/4HANA – CDS Views
  • SAP Universe – BO Universe, созданные при помощи Information Design Tool
  • SAP BPC Embedded – BPC Query (в этом случае SAP Analytics Cloud может выступать не только как средство вывода данных, но также и как интерфейс ввода данных для целей планирования в BPC)
  • SAP Data Warehouse Cloud – Analytics Views

Совместимые для работы Live-подключения версии систем приведены здесь.

Как работает Live-подключение?


Live-подключение – прямое взаимодействие браузера и источника данных. Это хорошо видно из схемы на рис.2. Именно браузер является центральным компонентом для всех взаимодействий: он формирует запросы на получение данных из источника, а также метаданных из SAP Analytics Cloud через Javascript. Затем происходит объединение полученной информации в рамках отчета на странице браузера, где открыт веб-адрес тенанта SAP Analytics Cloud.

image
Рисунок 2. Схема Live-подключения

В основе работы такого подключения лежит механизм CORS (Cross-origin resource sharing), позволяющий запрашивать ограниченные ресурсы на веб-странице из другого домена за пределами домена, из которого был получен первый ресурс. То есть можно запрашивать данные из нескольких веб-ресурсов в рамках одной страницы браузера. При этом бизнес-данные не покидают корпоративную сеть и надёжно хранятся в существующем источнике. Браузер взаимодействует напрямую с SAP Analytics Cloud, Identity Provider (доверенный сервер авторизации) и всеми подключёнными источниками данных. Он работает с тремя типами соединений:

  • Запросы Get / Post из браузера в SAP Analytics Cloud предназначены для метаданных.
  • Запросы Get / Post от браузера к серверу авторизации предназначены для протокола SAML 2.
  • Запросы Get / Post / Options из браузера в источники данных предназначены для бизнес-данных.

Если браузер осуществляет подключение из-за пределов защищенного домена клиента, поддерживаются стандартные механизмы безопасности (например, VPN).

SAP Analytics Cloud хранит метаданные, необходимые для формирования отчета.

Они полностью зашифрованы и передаются через https канал, а для отображения в отчётах обрабатываются в браузере с помощью javascript. При этом отдельные объекты хранят необходимую информацию для формирования запроса и построения данного отчёта.

Что такое бизнес- и метаданные


Представьте, что у вас есть таблица, в которой присутствуют наименования полей, а также сами бизнес-данные.

Названия аналитик передаются в SAP Analytics Cloud для построения отчетов, а бизнес-данные из столбцов таблицы в SAP Analytics Cloud не передаются. Давайте разберем эту ситуацию на примере данных из этой таблицы.

image

Метаданными в данном примере будут “ID”, “Название продукта”, “Регион”, “Сумма”. А данными — Томаты, Самара, 200, картофель, Волгоград и 350.

Настройка Live-подключения


Инструкции по настройке Live-подключения с использованием CORS для различных источников приведены в help.sap.com и доступны на русском языке, а также со скриншотами на официальном ресурсе sapanalytics.cloud, поэтому дублировать весь контент не имеет смысла.
Но для общего понимания давайте посмотрим, как это выглядит на примере подключения тенанта SAP Analytics Cloud к SAP BW/4HANA.

У подключения есть определенные требования, выделим ключевые из них, которые нам необходимы. Большинство из них связано с тем, что мы работаем через браузер (рекомендуемым является Google Chrome).

  • Для корректной работы необходимо иметь подписанный SSL сертификат на стороне источника данных. Сертификат не может быть самоподписанным. Google Chrome при этом проверяет сертификаты источника данных, а также SAC. Они должны быть действительны.

    При этом проверяется:

    • срок действия сертификата
    • кем выдан сертификат (адрес host)
    • в Subject и Subject Alternative Name нужно указать DNS (не IP)
    • наличие корневого сертификата (Trusted Root)
    • алгоритм криптографического хэширования (sha-1 является устаревшим и не подходит)
  • В системе SAP NetWeaver настроен пакет InA (/sap/bw/ina) для базовой аутентификации.

    Проверить это можно, открыв в браузере следующий URL-адрес: https://<Your_ABAP_System_Host>/sap/bw/ina/GetServerInfo?sap-client=<Your_Client_ID>.

    При этом вместо <Your_ABAP_System_Host> нужно указать host вашей BW системы, <Your_Client_ID> — ID клиента (манданта).

Должно появиться окно ввода регистрационных данных, после входа вы получите ответ в виде JSON.

Поэтому же адресу можно проверить действительность SSL-сертификата.

  • В коде транзакции SICF должны быть активны следующие сервисы доступа к информации (Ina / BW InA):

    /sap/bw/ina/GetCatalog
    /sap/bw/ina/GetResponse
    /sap/bw/ina/GetServerInfo
    /sap/bw/ina/ValueHelp
    /sap/bw/ina/BatchProcessing
    /sap/bw/ina/Logoff

  • Настройка SameSite Cookies на стороне источника данных (рекомендуемый подход для продуктивного использования системы), либо на стороне браузера пользователя.

    Это требуется, чтобы Google Chrome и другие браузеры разрешали межсайтовый доступ к файлам cookie вашего локального источника данных SAP из системы SAP Analytics Cloud. Нужно настроить свой локальный источник данных так, чтобы он создавал файлы cookie с определенными атрибутами. Без этих настроек при использовании соединения Live Data будут возникать ошибки и работа будет невозможна.

Настройка на стороне BW выполняется следующим образом:

В папке профилей ABAP-системы создайте файл rewrite.txt.

Добавьте в файл скрипт перезаписи для добавления атрибутов cookie в совместимые веб-браузеры:

SetHeader sap-ua-protocol ""

if %{HEADER:clientprotocol} stricmp http [OR]
if %{HEADER:x-forwarded-for-proto} stricmp http [OR]
if %{HEADER:forwarded} regimatch proto=http
begin
    SetHeader sap-ua-protocol "http"
end

if %{HEADER:clientprotocol} stricmp https [OR]
if %{HEADER:x-forwarded-for-proto} stricmp https [OR]
if %{HEADER:forwarded} regimatch proto=https
begin
    SetHeader sap-ua-protocol "https"
end

if %{HEADER:sap-ua-protocol} strcmp "" [AND]
if %{SERVER_PROTOCOL} stricmp https
begin
    SetHeader sap-ua-protocol "https"
end

if %{RESPONSE_HEADER:set-cookie} !strcmp "" [AND]
if %{HEADER:sap-ua-protocol} stricmp https [AND]
if %{HEADER:user-agent} regmatch "^Mozilla" [AND]
if %{HEADER:user-agent} !regmatch "(Chrome|Chromium)/[1-6]?[0-9]\." [AND]
if %{HEADER:user-agent} !regmatch "(UCBrowser)/([0-9]|10|11|12)\." [AND]
if %{HEADER:user-agent} !regmatch "\(iP.+; CPU .*OS 12_.*\) AppleWebKit\/" [AND]
if %{HEADER:user-agent} !regmatch "\(Macintosh;.*Mac OS X 10_14.*(Version\/.* Safari.*|AppleWebKit\/[0-9\.]+.*\(KHTML, like Gecko\))$"
begin
    RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*)" "$1$2; SameSite=None; Secure"
    RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*; *SameSite=[a-zA-Z]+.*); SameSite=None; Secure" $1$2
    RegIRewriteResponseHeader set-cookie "^([^=]+)(=.*; *Secure.*); Secure" $1$2
End

После этого сохраните файл и зайдите в SAP GUI под учетной записью системного администратора. Перейдите в транзакцию RZ10 и отредактируйте профиль DEFAULT ABAP-системы: активируйте HTTP-перезапись и укажите файл перезаписи. Для этого добавьте следующий параметр профиля: icm/HTTP/mod_0 = PREFIX=/,FILE=$(DIR_PROFILE)/rewrite.txt

Сохраните изменения и перезапустите ABAP-систему.

Убедившись, что все основные требования соблюдены, можем переходить к настройке CORS:
cначала необходимо установить значение параметра icf/cors_enabled = 1 в транзакции RZ11 как на рис.3.

image
Рисунок 3. Интерфейс транзакции RZ11

После этого, добавим SAP Analytics Cloud в whitelist HTTP (транзакция UCONCOCKPIT).
Сначала установим статус Active Check для параметра Cross-Origin Resource Sharing (рис.4).

image
Рис. 4. Установка статуса Active Check для Cross-Origin resource sharing

Теперь нам нужно указать Origin Host – адрес тенанта SAP Analytics Cloud, с которым настраиваем подключение. Для этого переходим в режим редактирования и нажимаем To Whitelist.

image
Рис. 5. Указание Origin Host

И вводим значения.

В поле «Правило хоста» добавляем адрес тенанта SAP Analytics Cloud.

Также нужно указать разрешенные методы (Get, Head, Post, Options) и разрешенные заголовки:
X-CSRF-TOKEN,X-SAP-CID,AUTHORIZATION,MYSAPSSO2,X-REQUEST-WITH,SAP-REWRITEURL,SAP-URL-SESSION-ID,CONTENT-TYPE,ACCEPT-LANGUAGE

И видимые заголовки:

X-CSRF-TOKEN,SAP-REWRITEURL,SAP-URL-SESSION-ID,SAP-PERF-FESREC,SAP-SYSTEM.
Остальные параметры установите, как показано на экране ниже (рис.6).

image
Рисунок 6. Окно ввода данных для подключения

Теперь добавим соединение на стороне тенанта SAP Analytics Cloud. Откроем его в браузере.

В меню выбираем «Соединения», далее нажимаем на «+» для создания нового и выбираем SAP BW в разделе «Установить соединение с Live Data». Далее выбираем тип соединения – прямое, вводим имя своего хоста SAP BW, порт HTTPS и клиент, а также указываем логин и пароль для проверки соединения (рис. 7).

image
Рисунок 7. Настройка на стороне в SAP Analytics Cloud

После этого мы приступаем к созданию моделей данных на базе Live-подключения и переходим к созданию журналов.

В конце можем выполнять визуализацию данных из BW Queries, как на рис.8:

image
Рисунок 8. Вид отчета в SAP Analytics Cloud

Отдельно стоит сказать несколько слов про управление доступами и ролями пользователей при работе в режиме Live-подключения. Используя этот режим, мы опираемся на авторизации, заданные в системе-источнике. Например, когда мы подключаемся к BEx запросу на базе созданного соединения, система проверяет наше право на доступ и данные, которые этот запрос возвращает. В случае недостатка прав мы не сможем продолжить работу. Для этого в системе-источнике данных должен быть заведен пользователь, соответствующий пользователю SAP Analytics Cloud. Их мэппинг может выполняться при вводе логина-пароля при подключении к бэкенд-системе из SAP Analytics Cloud, либо при помощи SAML Single Sign-On. Этот способ, конечно же, является рекомендованным для продуктивного применения решения. Инструмент ведения пользователей может быть интегрирован с Windows ADFS.

Сегодня мы поговорили о том, какие особенности имеет режим Live-подключения SAP Analytics Cloud, а также как осуществляется его настройка. Теперь мы можем избежать дублирование настроек безопасности и копирование бизнес-данных в облако.

SAC также позволяет существующим клиентам SAP BusinessObjects настраивать подключение к созданным в компании юниверсам и, таким образом, сохранять инвестиции и не менять используемую архитектуру для модуля self-service аналитики в компании. В планах развития продукта при работе в Live-режиме: связывание нескольких источников Live между собой (например, BW с HANA), добавление вычисляемых измерений и некоторых типов расчетных показателей, улучшение производительности, а также добавление интеллектуальных функций. Для ознакомления с возможностями продукта доступен 90-дневный триал решения.

Автор — Евгений Горбунов, архитектор бизнес-решений SAP CIS