В «1С» рассказали о процессе разработки Системы взаимодействия

В «1С» рассказали о процессе разработки Системы взаимодействия
11.09.2018
37820

В 2016 году «1С» презентовала Систему взаимодействия (СВ). Этот платформенный механизм передает информацию между клиентскими приложениями и серверами 1С:Предприятия.

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

Для чего нужна система взаимодействия

Система взаимодействия предназначена для автоматизации бизнес-процессов предприятия или помощи в их осуществлении. Взаимодействия могут быть программными и интерактивными. К последним относится обмен сообщениями между пользователями 1С:Предприятия, тематические обсуждения, аудио- и видеозвонки другим пользователям.

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

 

Обмен сообщениями в СВ

 

Постановка задачи

На этапе постановки задачи разработчики учитывали принципы создания бизнес-приложений 1С. Такие приложения на базе «1С:Предприятия» работают в клиент-серверной архитектуре: «СУБД – сервер приложений – клиент». Написанный на встроенном языке 1С код может выполняться на сервере приложений или на клиенте.

Только на сервере выполняется вся работа с прикладными объектами, там же реализована функциональность форм и командного интерфейса. На клиенте выполняются полученные формы, небольшие отчеты и работа с локальными файлами. Поэтому в прикладном коде обязательно указывать, где именно он будет выполняться.

Но здесь есть ряд ограничений: из клиентского кода вызвать серверный код можно, а из серверного кода клиентский – нет. Это значит, что передать сообщение (например, о готовности отчета) с сервера в клиентское приложение нельзя. Чтобы решить эту проблему, приходилось периодически опрашивать сервер и загружать систему лишними вызовами.

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

 

Вызов серверной процедуры с клиента сработает, вызов клиентской процедуры с сервера — нет

 

Elasticsearch и Hazelcast  в СВ

При реализации механизма серверную часть СВ решили не встраивать в платформу «1С:Предприятие», создав отдельный продукт. В этом случае его интерфейс можно вызывать из кода прикладных решений 1С, обмениваясь сообщениями в рамках разных приложений (Управления Торговлей и Бухгалтерией, например).

Мессенджеру необходимы поисковый движок (если понадобится найти сообщение) и распределенное хранилище. При создании СВ разработчики отдали предпочтение платформе Hazelcast и поисковой системе Elasticsearch.

Hazelcast – платформа со встроенной памятью данных с открытым исходным кодом. Она поддерживает автоматическое обнаружение узлов и интеллектуальную синхронизацию. Среди положительных характеристик – масштабируемость, отказоустойчивость и распределенность. Разработчики «1С» использовали его в качестве хранилища пользовательских сессий, за которыми не нужно будет обращаться к базе, и в качестве кэша, где можно будет отыскать пользователя или нужное сообщение.

Поисковой системой выбрали Elasticsearch: подобные движки используются при сложном поиске по базе документов. В СВ Elasticsearch обеспечила быстрый и гибкий поиск с учетом морфологии. В индекс поисковой системы внесли корни слов и N-граммы. Пока пользователь набирает текст для поиска, Elasticsearch ищет его среди N-грамм. Так, поиск слова «тексты» в СВ будет осуществляться по любой из его частей, благодаря дроблению на N-граммы [те, тек, текс, текст, тексты, ек, екс, екст, ексты, кс, кст, ксты, ст, сты, ты].

 

Архитектура системы взаимодействия

 

Выбор СУБД

В качестве системы управления базой данных для СВ выбрали PostgreSQL, аргументируя выбор большим и успешным опытом работы с ней. Это ПО используется для структурированного хранения данных и получения доступа к этим данным с помощью SQL-запросов. Основные преимущества PostgreSQL – бесплатность и высокая скорость работы.

PostgreSQL необходимо масштабировать: для этого выбрали стратегию шардинга, в рамках которой информация из общей БД делится на блоки и распределяется по разным серверам. У СВ есть главная БД: она хранится в таблице роутинга с информацией о локации всех абонентских баз данных.

 

Распределение базы данных

 

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

Тесты и эксплуатация

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

  • тест после нескольких суток работы не дает отказов;
  • время отклика по ключевым операциям не превышает комфортного порога;
  • производительность по сравнению с предыдущей версией не ухудшается более чем на 10%.  

Тестовая база наполняется данными, а само тестирование проводится в трех конфигурациях:

  • стресс-тест;
  • только подключения;
  • регистрация абонентов.

За год эксплуатации разработчики не выявили серьезных проблем в работе онлайн-сервиса. Дистрибутив сервера Системы взаимодействия поставляется в виде нативных пакетов, а для Windows «1С» предоставляет единый инсталлятор. Он устанавливает сервер, Hazelcast и Elasticsearch на одну машину.

Если вам удобнее смотреть новости в телеграме, то вот наша группа – ИНФОСТАРТ.

Автор:
Редактор

См. также

Фирма «1С» выпустила новый релиз 1.82 BI-системы 1С:Аналитика. В обновление включили улучшенные визуальные фильтры в редакторе источников, оптимизацию производительности, новые цветовые схемы и улучшенные диаграммы.

29.05.2025    853    ЕленаЧерепнева    1       

3

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

28.05.2025    813    ЕленаЧерепнева    0       

1

В релизе 8.5.3 будут доступны пакетная обработка запросов, оптимизация работы веб-серверов с несколькими rphost и более быстрая работа клиента и конфигуратора на macOS.

20.05.2025    867    ЕленаЧерепнева    0       

2

Фирма «1С» сообщила о выпуске новых лицензий для СУБД «Tantor Special Edition 1C», а также об изменении прайс-листа для уже существующих вариантов поставки этой СУБД на базе PostgreSQL, оптимизированной для работы с решениями на платформе 1С.

20.05.2025    1080    ЕленаЧерепнева    0       

1

Официальный технологический блог фирмы «1С» сообщил о планах реализовать в платформе 8.5.3 новые возможности для работы с 1С:Аналитикой. Теперь отчеты, подготовленные в BI-системе, можно будет делать частью прикладной конфигурации.

13.05.2025    1127    ЕленаЧерепнева    0       

6

В 1С:Управление холдингом 3.3 обновлены все основные функциональные подсистемы, добавлены новые интеграционных возможности. Сообщается также об оптимизации решения с точки зрения процесса внедрения, в том числе при миграции с зарубежных решений.

07.05.2025    2162    ЕленаЧерепнева    0       

4

Рассказываем об условиях обновления, а также о том, для чего и кому полезен переход на налоговый мониторинг как форму взаимодействия с ФНС.

29.04.2025    1536    ЕленаЧерепнева    2       

1

Официальный технологический блог «Заметки из Зазеркалья» рассказал о планах по развитию функциональности Хранилища двоичных данных для технологической платформы 8.5.3. Главным образом, новые возможности будут актуальны для крупных корпоративных проектов.

28.04.2025    1285    ЕленаЧерепнева    0       

3

Комментарии

Инфостарт бот
1. Gureev 11.09.18 15:44 Сейчас в теме
А как он лицензируется? Как часть платформы? Дополнительно платить нужно?
2. YanTsys 11.09.18 16:35 Сейчас в теме
Выглядит как куча намеков на интересные возможности, но при этом непонятно есть они там или нет.

Например, вызов клиентских функция с сервера, система позволяет организовать прогресс-бар без того чтобы гонять форму на сервер и обратно?

Что там про телефонию, можно использовать систему как IP-АТС или речь идет только о взаимодействии с другим софтом?

Можно отправить сообщение только в рамках своего комплекса баз или по номеру ИТС отправить сообщение например пользователю 1с Газпрома? :))))
5. androgin 11.09.18 18:32 Сейчас в теме
(2) а) сервер отправляет клиенту оповещение с данными - клиент их обрабатывает.
б) можно сопоставить несколько баз и отправлять сообщения куда нужно.
3. Sbodrenko 11.09.18 17:23 Сейчас в теме
Похоже на этот корп мессенджер: Инфостарт мессенджер
4. comol 11.09.18 18:30 Сейчас в теме
Похоже что разработчики в 1с знают и про Hazelcast, видимо и про другие inmemory kv, умеют юзать эластик, знают про шардинг... Но суть дебилизма в том что это щачем то используется в сервисе для которого критична простота использования, а хайлоад и безотказность там не особо нужна. А вот сеансовые данные как хранились через одно место так и хранятся.... То же самое и с журналом регистрации... Ну как так :(
catv; kuzyara; user642047_ziborov.roman; Slava_prog; portwein; Scorpion4eg; ABudnikov; ixijixi; Kosstikk; TuneSoft; awk; JohnyDeath; Infactum; YanTsys; +14 Ответить
6. DonAlPatino 12.09.18 17:34 Сейчас в теме
Краткий перепост большой статьи на habr'е от Петра Грибанова... там и подробнее, и автор отвечает на вопросы.
viktor3d; +1 Ответить
7. TreeDogNight 24.09.18 06:37 Сейчас в теме
(6) Можете скинуть ссылку или название этой статьи?
8. DonAlPatino 24.09.18 12:09 Сейчас в теме

Оставьте свое сообщение