Наша платформа SAP Cloud Platform предоставляет возможность разрабатывать и запускать мультитенантные приложения. Мультитенантные приложения позволяют изолированно обслуживать нескольких клиентов из разных организаций в рамках одного решения, предоставляемого провайдером. Каждый клиент называется арендатором. Он обращается к приложению через выделенный URL-адрес конкретного тенанта – таким образом достигается изолированность пользователей друг от друга.


В нескольких статьях мы расскажем о следующих темах:

Часть 1. Мультитенантность в SAP Cloud Platform, обзор сценария
Часть 2. Загрузка решения в формате MTAR в платформу, привязка базы данных и создание подписок для арендаторов, конфигурация субаккаунта провайдера
Часть 3. Сервис хранения данных (Persistence Service) – инициализация и изоляция данных
Часть 4. Управление идентификацией с помощью «Identity Authentication» – настройка тенанта сервиса
Часть 5. SAP Cloud Connector – настройка и конфигурация сервиса для подключения к локальной системе
Часть 6. Настройка сервиса «Connectivity» и тестирование мультитенантного приложения
Часть 7. Fiori Launchpad – использование сервиса «Portal», конфигурация плитки для мультитенантного приложения


Примечание:

В данной статье использована глобальная (продуктивная) учетная запись SAP Cloud Platform. Для выполнения сценария в учетной записи дополнительно должны быть подключены следующие сервисы:

  1. Для субаккаунта провайдера приложения – SAP HANA, SAP Cloud Platform Portal – должна быть выделена хотя бы одна квота для запуска Java-приложения (Java-квота);
  2. Для субаккаунта клиента: SAP Cloud Platform Portal, SAP Cloud Platform Identity Authentication.

Часть 1. Мультитенантность в SCP и обзор решения

SAP Cloud Platform является платформой для разработки и запуска облачных приложений, в том числе и приложений с множеством арендаторов, поэтому ее сервисы поддерживают мультитенантность.

Как думаете, обрадуются ли клиенты, если данные, которые они хранят в вашем SaaS приложении, будут доступны для других клиентов? Это явное нарушение изолированности данных.

Такая проблема решается путем предоставления каждому клиенту уникального идентификатора тенанта (tenant id). Так как приложение развернуто непосредственно у провайдера, то для получения доступа к нему клиент должен быть подписан на это приложение. Это означает, что клиенту не нужно копировать приложение в свою учетную запись, достаточно просто подписаться на него, после чего клиент получает специальный URL-адрес для конкретного тенанта. Таким образом, при запуске приложения через этот выделенный URL происходит идентификация пользователя по уникальному идентификатору тенанта.

Преимущества мультитенантных приложений:

  • Снижение совокупной стоимости владения (TCO): благодаря распределению вычислительных ресурсов и расходов на эксплуатацию между клиентами, совокупная стоимость владения для такого приложения понижается. Экономия средств возрастает по мере увеличения количества клиентов, обслуживаемых мультитенантным приложением;
  • Эксплуатационная эффективность: обновление приложений и исправление ошибок распространяется на всех арендаторов путем обновления экземпляра приложения у поставщика;
  • Масштабируемость: быстрое предоставление услуг клиентам. Чтобы получить доступ к приложению, новому клиенту нужно только создать подписку на него;
  • Конфигурируемость: позволяет клиентам настраивать свой резерв пользователей, которые смогут использовать приложение, собственные бэкэнд-услуги и т.д., как того требует приложение.

Рассмотрим разницу между субаккаунтами клиента и провайдера внутри глобального аккаунта SCP:



Как показано на диаграмме, внутри глобального аккаунта SCP развернуты два субаккаунта – субаккаунт провайдера и субаккаунт клиента.

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

Как уже было сказано, доступ клиента к приложению осуществляется с помощью подписки на него. Обратите внимание, что приложения не копируются и не запускаются внутри учетной записи пользователя. Внутри субаккаунта клиента есть возможность добавлять конфигурации, которые применяются только к этому потребителю. Например, можно настроить поставщика удостоверений клиента (Identity Provider) в качестве хранилища пользователей для приложений облачной платформы. Или настроить пути назначения, которые могут указывать на внутренние службы, работающие в ландшафте клиента (например, можно осуществить доступ к данным локальной системы).

Теперь поговорим о мультитенантности в сервисах SCP.

а) Persistence Service

Есть три способа достижения мультитенантности в этом сервисе:



1. Колонка-разделитель. Этот метод использует определенный столбец в таблице для обеспечения изоляции данных. В этом случае пользователям доступна одна и та же схема. Но данные различаются с помощью специального выделенного идентификатора тенанта для каждого клиента. Чтобы обеспечить разделение данных в приложении, каждый SQL-оператор должен включать идентификатор тенанта.

2. Таблица(-ы) в одной схеме. Этот метод позволяет клиентам приложения изолировать свои данные в одной или нескольких таблицах конкретных тенантов. Это достигается путем создания таблицы или схемы в базе данных для каждого клиента. Дискриминатор таблиц клиента определяет, как различать эти таблицы от таблиц других клиентов. Таблицы могут быть в одной и той же схеме и использовать префикс или суффикс, чтобы отличить их; или они могут быть в отдельной схеме, используя дискриминатор таблицы клиента схемы.

3. Разделение по схемам. Изолированность данных клиентов в этом случае достигается путем хранения таблиц в разных схемах.

б) Identity Authentication



Сервис Identity Authentication – это облачное решение для управления жизненным циклом приложений SCP и, при необходимости, локальных приложений. Он позволяет осуществлять настройки аутентификации, единого входа для пользователей и так далее. При подключении сервиса администратору учетной записи предоставляется тенант, внутри которого происходит конфигурация приложений и управление авторизацией пользователей. Данный сервис предоставляет провайдера идентификаций для SCP.

Суббакаунт клиента настроен на определенного провайдера, внутри которого определены пользователи, настроены роли, а также настроен доступ к приложению провайдера, на которое подписан клиент. Роли описаны в приложении провайдера. Таким образом достигается изолированность пользователей.

в) Connectivity



Клиент может настроить доступ к данным локальной системы. С помощью такого средства, как SAP Cloud Connector, осуществляется безопасное подключение к локальному приложению или системе, предоставляющей определенные данные. Внутри своего субаккаунта клиент настраивает путь назначения к локальной системе, описанной в Cloud Connector. В приложении провайдера обозначено имя пути назначения – таким образом, при обращении клиента к приложению данные от локальной системы клиента передаются в приложение и визуализируются.

Перейдем к обзору сценария, описание реализации которого будет происходить в рамках этой статьи.

У SAP существует надежная партнерская компания, специализирующаяся на предоставлении решений для нефтегазовой отрасли. Будем называть ее ITeLO Consulting. Эта компания использует платформу SAP Cloud Platform для создания и запуска своих облачных приложений. ITeLO Consulting предпочитают предоставлять свои приложения как SaaS. В такой модели программное обеспечение предоставляется в виде услуги и доступно для клиентов через интернет.

Компания разработала панель мониторинга загрязнения, которая помогает компаниям нефтегазового сектора сопоставлять уровни загрязнения воздуха на заводе и в городе. Это решение вызвало интерес у некоторых нефтегазовых компаний, желающих принять меры по профилактическому предотвращению загрязнения.

ABC PetroCorp и XYZ EnergyCorp – две нефтегазовые компании, которые покупают это решение у ITeLO.

В ITeLO Consulting работает Роберт, который является архитектором этого проекта. Компания купила пакет платформы SAP Cloud Platform с услугами, необходимыми для создания этого приложения. Сценарий Роберта состоит в том, чтобы разработать мультитенантное SaaS приложение и предоставить его в пользование своим клиентам – ABC PetroCorp и XYZ EnergyCorp». Эмили является сотрудником IT-отдела ABC PetroCorp. Ей поручено работать над этим проектом с Робертом.

Архитектура решения представлена ниже:



Субаккаунтом провайдера в данном случае будет ITeLO Consulting, а субаккаунтами клиентов, осуществляющих подписку на приложение, будут ABC PetroCorp и XYZ EnergyCorp. Настройки внутри субаккаунтов клиентов будут аналогичными, поэтому будем рассматривать только конфигурацию для клиента ABC PetroCorp.

Описание учетных записей:

1) ITeLO Consulting – учетная запись провайдера, в которой запущена база данных, приложения бизнес-логики и пользовательского интерфейса.

База данных:

Сведения о загрязнении воздуха каждого завода хранятся в базе данных SAP HANA. Данные разных клиентов хранятся отдельно с помощью применения функции изоляции тенантов, предоставляемой JPA.

Бизнес-логика:

Бизнес-логика определена в приложении Java, запущенного в субаккаунте провайдера. Экземпляр приложения Java используется разными клиентами. Каждый пользователь создает подписку на это Java-приложение и получает уникальный URL-адрес для доступа к приложению. Так как доступ к приложению осуществляется с помощью этого URL-адреса, SCP извлекает идентификатор тенанта, который используется в логике приложения.

Пользовательский интерфейс:

Логика пользовательского интерфейса определена в приложении HTML5, запущенного в субаккаунте провайдера. Как и в случае с Java-приложением, экземпляр приложения HTML5 запускается для разных клиентов. Доступ клиента к приложению осуществляется с использованием уникального URL-адреса для доступа к приложению.

2) ABC PetroCorp – субаккаунт клиента, в котором создаются подписки, и создаются конкретные конфигурации провайдера идентификаций (IdP) и осуществляется доступ к локальным службам.

Java и HTML5 приложения не развернуты и не скопированы в эту учетную запись.

Управление идентификацией и доступом:

Доступ к приложениям должен быть только у сотрудников компании ABC PetroCorp. У «ABC PetroCorp» есть собственный провайдер идентификаций (SAP Identity Authentication), который содержит информацию о сотрудниках компании (имя, электронная почта, организация, роль и т.д.). Он настроен специально для субаккаунта ABC PetroCorp, так что приложениям, на которые осуществлена подписка, могут обращаться только их сотрудники.

Сервисы Connectivity:

У компании ABC PetroCorp есть запущенные локально службы, которые предоставляют информацию об их заводах – количество сотрудников на заводе, место расположения завода и т.д. Вся эта информация должна извлекается из их ландшафта и предоставляется приложению с помощью SAP Cloud Connector.

Часть 2. Загрузка решения в формате MTAR в платформу, привязка базы данных и создание подписок для арендаторов, конфигурация субаккаунта провайдера

Мультитенантное приложение должно быть запущено в субаккаунте провайдера. Роберт из компании ITeLO Consulting является администратором учетной записи, и ему нужно выполнить следующие шаги по установке приложения:

  1. Создать архив приложения, содержащий все его артифакты;
  2. Загрузить архив приложения в учетную запись ITeLO Consulting;
  3. Осуществить подписку клиента «ABC PetroCorp» на приложение, запущенное в субаккаунте провайдера;
  4. Настройка пути к открытой службе, запущенной в сети интернет.

Предварительные настройки:

  1. У вас установлен Java 8;
  2. Установлен Eclipse Neon с плагинами для SAP CP;
  3. В Eclipse установлен плагин EGit;
  4. Скачана и распакована последняя версия SAP CP Java Web Tomcat 8 SDK;
  5. Скачан и установлен MTA Archive Builder;
  6. В учетной записи SCP подключена база данных SAP HANA (для субаккаунта провайдера);
  7. В субаккаунте провайдера ITeLO Consulting выделена квода для запуска Java-приложений (хотя бы одна неиспользуемая вычислительная единица, подробнее о выделении квоты здесь).

Примечание: создание нескольких субаккаунтов внутри глобального аккаунта SCP невозможно для триального (пробного) аккаунта.

Для установки мультитетантного приложения в этой статье будет использована такая функция SCP, как «Solutions» (загрузка решений). В качестве альтернативы в платформу можно загружать модули приложения по отдельности.

Исходный код приложения для мониторинга загрязнения («Pollution Monitoring») находится в GitHub.

Сначала мы клонируем проект и загружаем его в рабочую область Eclipse. После успешной установки проект появится в рабочей области, его структура будет выглядеть вот так:



Приложение состоит из нескольких модулей, разработанных с использованием различных технологий. Эти модули должны быть установлены в разные среды выполнения (например, Java, HTML5). Вместо того, чтобы создавать и загружать модули отдельно, SCP поддерживает создание единого приложения, которое содержит разные модули в одном архиве.

Как было показано в архитектуре приложения, бизнес-логика определена в приложении Java, а логика пользовательского интерфейса определена в приложении HTML5. И сейчас мы в лице Роберта создадим архив многомодульного (или многоцелевого) приложения (MTA), чтобы упаковать приложение в удобный для загрузки в платформу формат.

Чтобы создать архив с несколькими модулями приложения, нужно загрузить «mta.jar» и настроить «MTA archive builder» (ссылка на описание установки «MTA archive builder» указана выше в предварительных настройках).

Модули многоцелевого приложения описаны в файле-дескрипторе MTA (mta.yaml), этот файл находится в корневой папке проекта.



Файл «mta.yaml» содержит информацию о модулях Java и HTML5, которые будут созданы в процессе сборки приложения. Откроем файл и привяжем базу данных SAP HANA к Java-приложению, указав идентификатор базы данных в поле «id».



Здесь id – это идентификатор базы данных, запущенной в субаккаунте провайдера. Его можно найти в панели управления SCP учетной записи «ITeLO Consulting» в меню Persistence -> Databases Systems.



В нашем случае идентификатор базы данных в «mta.yaml» будет обозначен следующим образом:



Сохраняем изменения и, открыв командную строку, переходим в папку с проектом «pollutionmonitoring» и вводим такую команду:

java -jar [путь к mta.jar] –build-target=NEO build 



Эта команда запустит процесс сборки приложения в архив MTA.
После успешной сборки в папке с проектом будет сгенерирован файл MTA-архива (pollutionmonitoring.mtar).



Следующим шагом будет установка MTA-архива (pollutionmonitoring.mtar) в субаккаунт ITeLO Consulting. Это можно сделать с помощью функции «Solutions», представленной в панели управления SCP. Для этого переходим во вкладку «Solutions» и нажимаем на кнопку «Deploy».



В появившемся диалоговом окне переходим к месту расположения файла «pollutionmonitoring.mtar», нажав кнопку «Browse» у поля «MTA Archive», и выбираем его, после чего нажимаем «Deploy».



После успешной загрузки MTA-архива в панели управления учетной записи ITeLO Consulting можно будет увидеть следующее:

• Во вкладке «Java Applications» появится запущенное Java-приложение «pollutionmonitoring»;



• Будет автоматически произведена привязка базы данных к Java-приложению. Для проверки перейдите в Java-приложение и выберете вкладку «Configuration» -> «Data Sourсe Bindings»;



• Во вкладке «HTML5 Applications» появится запущенное HTML5-приложение «pollutionmonitoringui».



Теперь Роберту нужно создать субаккаунт с названием ABC Petro Corp для клиента.

Перейдем в глобальный аккаунт SCP и во вкладке «Subaccounts» выберем «New Subaccount».



В появившемся диалоговом окне вводим имя субаккаунта, выбираем среду (Neo) и регион, в котором расположен глобальный аккаунт и, соответственно, субаккаунт провайдера. После чего нажимаем «Create».



Теперь в глобальном аккаунте появится еще один субаккаунт – субаккаунт клиента.
Следующим шагом будет создание подписки внутри учетной записи клиента ABC Petro Corp на приложения, запущенные в учетной записи провайдера. Для этого воспользуемся консольным клиентом для среды Neo. Как его установить, описано здесь.

В консольном клиенте для Neo введем такую команду:

neo subscribe –account <<идентификатор субаккаунта ABC_PetroCorp>> -application <<идентификатор субаккаунта ITeLO_consulting>>:pollutionmonitoring -user <<идентификатор пользователя>> -host <<хост региона>>

Идентификатор субаккаунта можно найти во вкладке «Overview» -> «Subaccount information».



Идентификатор пользователя обозначен во вкладке «User Information», которая расположена в выпадающем меню в верхнем правом углу панели управления SCP.



Хосты для всех регионов среды Neo описаны в документации.

Для подписки на HTML5 приложение воспользуемся панелью управления SCP. Перейдем в субаккаунт клиента ABC Petro Corp и выберем вкладку «Subscriptions» -> «New Subscription» (для HTML5).



В диалоговом окне выбираем субаккаунт провайдера и HTML5-приложение внутри него, после чего нажимаем «Save».



Теперь клиент подписан на Java и HTML5 приложения, предоставляемые провайдером, и это отображено в панели управления учетной записи ABC Petro Corp.



Приложение для мониторинга загрязнения позволяет выводить данные о загрязнении завода и города.

Данные о загрязнении завода находятся в локальной системе клиента. Сведения об уровне загрязнения города можно получить через службу с открытым исходным кодом, доступную через сеть Интернет. Такой службой может быть OpenAQ. Приложение для мониторинга загрязнения может получить доступ к этой службе с помощью описания пути назначения в панели управления SCP.

Этот сервис будет использоваться ABC Petro Corp и другими потенциальными клиентами, поэтому адрес назначения будет добавлен в учетную запись провайдера ITeLo Consulting.

Для Java-приложения путь назначения под названием «openaq–api–dest» описан в файле «web.xml».



Этот путь назначения обозначен в классе «PollutionDataService» (файл «PollutionDataService.java»).



После того, как поиск пути назначения будет выполнен, все вызовы от Java-кода к службе OpenAQ запускаются через него.

Файл пути назначения «open-api-dest» находится внутри папки «Destinations-Provider», расположенной внутри проекта «pollutionmonitoring».



Этот файл содержит URL к сервису OpenAQ.



Данный путь назначения нужно загрузить в субаккаунт провайдера ITeLo Consulting. Для этого направляемся в субаккаунт ITeLo Consulting, переходим во вкладку «Java Applications» и выбираем приложение «pollutionmonitoring».

Далее выбираем вкладку «Configuration» → «Destinations» и нажимаем на кнопку «Import Destination».



В появившемся диалоговом окне указываем путь к файлу «open-api-dest». После чего будет произведена конфигурация пути назначения в панели управления SCP. Нажимаем кнопку «Save». Путь назначения будет выглядеть в облачной платформе следующим образом:



Этот сервис доступен через https, поэтому нужно установить безопасное соединение. Это можно сделать с помощью сервиса «хранения ключей» для SCP. В проекте «pollutionmonitoring», скачанном из GitHub, уже имеются файлы с ключами: «jssecacerts.jks» и «cacerts.jks». Их нужно загрузить в субаккаунт клиента ABC Petro Corp.

Для этого снова воспользуемся консольным клиентом для среды Neo.

В консольном клиенте для Neo введем такие команды:

neo upload-keystore –account <<идентификатор субаккаунта ABC_PetroCorp>>  –user <<идентификатор пользователя>> –location <<путь к файлу  jssecacerts.jks>> –host <<хост региона>>

neo upload-keystore –account << идентификатор субаккаунта ABC_PetroCorp >>  –user << идентификатор пользователя >> –location << путь к файлу cacerts.jks>> –host << хост региона >>

Эти файлы («jssecacerts.jks» и «cacerts.jks») находятся в папке «KeyStore Services» проекта «pollutionmonitoring».

Часть 3. Сервис хранения данных (Persistence Service) — инициализация и изоляция данных

Приложением ITeLO Consulting заинтересованы несколько клиентов. Настоящее мультитенантное приложение должно гарантировать, что данные ABC PetroCorp полностью изолированы от данных других клиентов в базе данных (например, от данных XYZ EnergyCorp). Это очень важно для обеспечения безопасности данных клиента и приложения.

Роберт из ITeLO Consulting хочет, чтобы его приложение изолировало хранение данных своих клиентов, и он интересуется, как этого можно достичь.

Для достижения изолированности данных нам необходимо определить степень изоляции, т.е. изоляция на уровне таблицы (хранить данные в разных таблицах в одной схеме), на уровне схемы (хранить данные клиентов в разных схемах), на уровне тенанта (хранить данные клиента в разных тенантах БД). Сервис хранения данных (Persistence Service) SAP Cloud Platform в сочетании с JPA (Java Persistence API) и EclipseLink поддерживает реализацию этих методов изоляции данных.

Существует три способа достижения мультитенантности на уровне базы данных. Эти способы мы рассмотрели в части 1.

Во второй части мы сосредоточимся на способе под названием «колонка-разделитель». Именно он будет использован Робертом для изоляции данных на уровне БД в его решении.

Использование колонки-разделителя:

В этом подходе одна схема БД распределяется между всеми пользователями приложения. Идентификатор тенанта (tenant id) может использоваться как значение в колонке-разделителе. Фрагмент кода представлен ниже.



В качестве подготовительного шага мы также инициализируем данные, которые будут использованы в приложении мониторинга загрязнения.

Шаг 1: Проверка наличия описания колонки-разделителя в коде приложения

На этом этапе мы посмотрим, как как модель данных приложения используется для обеспечения мультитенантности на уровне БД.

Для этого обратимся к скачанному с GitHub проекту, который уже загружен в рабочую область Eclipse.

Далее мы будем просматривать некоторые файлы проекта. Это можно сделать либо через среду Eclipse, либо скачать проект, разархивировать его в удобное для вас место и открывать файлы по отдельности. Мы воспользуемся вторым вариантом.

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



Перейдем к файлу «BaseObject.java» проекта, расположенного по пути «/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/model/BaseObject.java», и откроем его с помощью редактора (например, Notepad++).



В этом файле проверяем описание метода «Колонка-разделитель». Вот как это выглядит:



Теперь обратимся к файлу «web.xml», расположенному по пути «/pollutionmonitoring/java/src/main/webapp/WEB-INF/web.xml».



Убедимся, что источник данных (база данных) привязан к приложению в качестве стандартного источника (Default DB). В файле «web.xml» это выглядит следующим образом:



Этот пример показывает, как реализована мультитенантность в приложении для мониторинга загрязнения.

Шаг 2: Проверка настройки сервлета инициализации данных

Роберт знает, что клиентам его приложения потребуется загрузить данные для их использования. Поэтому он создал сервлет для инициал��зации данных, которым могут воспользоваться клиенты (например, Эмили) для ввода данных в приложение для мониторинга загрязнения.

На этом этапе мы посмотрим, как произведена настройка публикации сервлета инициализации данных.

Сервлет описан в файле «DataInitializationServlet.java», который расположен в проекте по пути «/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/DataInitializationServlet.java».



Способ его публикации обозначен в файле «web.xml» («/pollutionmonitoring/java/src/main
/webapp/WEB-INF/web.xml»
).



Откроем этот файл и убедимся, что сервлет для загрузки данных в приложение мониторинга загрязнения был опубликован по URL-пути «/initialize». Выглядит это следующим образом:



Шаг 3. Использование сервлета для инициализации данных о загрязнении для «ABC PetroCorp» (клиент)

Эмили из ABC PetroCorp может обращаться к приложению мониторинга загрязнения, используя созданную подписку.

Приложение «Pollution Monitoring» использует два типа данных:

Данные об уровне загрязнения (Pollution Data): считываются из таких источников, как внешние API, датчики загрязнения и т.д.

Данные о заводе (Plant Data), как правило, считываются из локальных систем клиента — таких как ERP-системы.

1) На этом этапе мы создадим данные о загрязнении с помощью сервлета инициализации данных, расположенного в проекте. Эти данные будут храниться в базе данных HANA в SAP CP, которая привязана к приложению в учетной записи провайдера.

2) Данные о заводе считываются приложением из локальной системы, то есть они не хранятся в базе данных HANA в SAP CP. Это будет рассмотрено в пятой части статьи «SAP Cloud Connector — настройка и конфигурация сервиса для подключения к локальной системе».

На этом этапе мы загрузим данные о загрязнении в приложение «по подписке». Для этого будет использоваться сервлет «Data Initialization», который находится в проекте и может быть использован для ввода подготовленных данных в базу данных HANA.

Посмотрим, как выглядят подготовленные данные и как их можно инициализировать с помощью сервлета. Для этого снова обратимся к файлу «DataInitializationServlet.java», который расположен в проекте по пути «/pollutionmonitoring/java/src/main/java/com/sap/hana/cloud/samples/pollutionmonitoring/api/DataInitializationServlet.java», и откроем его.

Здесь мы можем увидеть подготовленные данные как для «ABC PetroCorp», так и для другого клиента («XYZ EnergyCorp»).



Инициализируем данные об уровне загрязнения для ABC PetroCorp, вызвав сервлет «Data Initialization».

Перейдем в панель управления субаккаунта клиента ABC PetroCorp. В нашем случае глобальный аккаунт расположен в регионе Europe(Rot), доступ к нему осуществляется по этой ссылке.



В панели управления субаккаунта переходим на вкладку «Applications -> Subscriptions» и выбираем Java-приложение, на которое подписан клиент.



Во вкладке «Overview» будет обозначен URL-приложения, копируем его.



Открываем новое окно браузера, вставляем скопированный URL приложения и добавляем к нему «/initialize?company=ABC PetroCorp». После чего инициализация будет завершена и на экране должны появиться данные, которые будут отправлены в приложение.


Теперь мы инициализировали данные о загрязнении для ABC PetroCorp в приложении мониторинга загрязнения от ITeLO.

В следующей статье мы расскажем об управлении идентификацией с помощью Identity Authentication — настройки тенанта сервиса.