Skip to content

Типы приложений Битрикс24

Добрый день.

На момент данной публикации существует деление приложений для Битрикс24 на три типа: первый, второй и третий :)
Я не буду повторять описания, которое дает документация для Битрикс24, а просто приведу их краткие характеристики.

1. Первый тип - приложение, которое работает на JS+HTML+CSS, загружается в облако Битрикс24, работает в интерфейсе (фрейме) Битрикс24.
2. Второй тип - приложение, которое размещается на внешнем сервере, работает на любых доступных платформах, работает в интерфейсе (фрейме) Битрикс24.
3. Третий тип - приложение, которое является полностью внешним, размещается на внешнем сервере, работает на любых доступных платформах, не имеет своего интерфейса в Битрикс24.

Основываясь на собственном опыте разработки приложений для Битрикс24, я для себя выделил всего два типа приложений: клиентские и серверные.

1. Клиентское приложение.
Это первый тип приложения в определениях Битрикс24. Это приложение выполняется "клиентом", т.е. браузером. Данный тип приложений работает исключительно на стороне клиента и использует JS+HTML+CSS. Можно подключать внешние библиотеки JS и стили CSS. Приложение собирается в виде архива, состоящего их всех необходимых файлов *.html, *.js, *.css. Данный архив загружается в облако.
В работе приложения можно использовать всю мощь Javascript и CSS.

2. Серверное приложение.
В определениях Битрикс24 это приложения второго и третьего типа. Код данного приложения полностью размещается на внешнем web-сервере или отдельной программе, если Вы решили разработать приложение на C++, Java и проч. Я в своем посте буду рассказывать исключительно о реализации  web-приложений на web-сервере.
Почему-же документация Битрикс24 выделяет три типа приложений? Объяснение этому есть. "Официальную" точку зрения Вы найдете в официальных источниках, а у меня на этот счет иное мнение :)

Я-бы разделил серверные приложения на два подтипа: работают в фрейме (интерфейсе) Битрикс24 и работаю полностью за пределами Битрикс24.
В чем-же разница?
Приложение, работающее в фрейме Битрикс24 автоматически получает ключи доступа (токены) для работы с REST API Битрикс24. А приложение, работающее вне фрейма Битрикс24 должно запросить эти ключи по специальному протоколу OAuth2.0.
Таким образом, используя официальное деление приложений на 2й и 3й тип, я для себя вывел следующую формулу приложения "чисто 3го" типа:
3й тип приложения = 2й тип приложения - фрейм + OAuth2.0
Грань между 2м и 3м типом очень тонка. По собственному опыту могу сказать, что чисто 3й тип может оказаться не очень "удобным" с точки зрения общения с администратором портала. Пусть приложении на 99% будет полностью внешним, но я предпочту добавить к нему фрейм (интерфейс) внутри Битрикс24 на всякий случай. Иногда это может пригодиться.

На самом деле грань между всеми типами очень тонка...
Между 2м и 3м типом ее почти нет, почему - чуть позже...
Никто не мешает мне разместить файлы "клиентского" приложения на своем сервере. Оно не станет от этого "серверным". Просто таким образом его проще отлаживать и обновлять. Но об этом чуть позже...