Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Синхронизация 1С через ESB-системы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
Bernet
Всем привет.

Платформа 8.3.6, конфигурации УТП, Документооборот КОРП, Розница, WMS Логистика

Собственно ситуация следующая: на предприятии в виду того, что используется множество различных конфигураций и мобильные приложения для упрощения синхронизации всего этого программного обеспечения было принято решение об использовании ESB-систем (Enterprise Servise Bus) - так называемая сервисная шина данных. Пока что выбор остановился на системе OpenESB, поскольку она бесплатная. Скачал её, установил, посмотрел как настраивать - вроде все понятно. Суть её использования заключается в том, что в случае замены одного из приложений не нужно будет менять обмены во всех остальных приложениях, поскольку задача ESB-систем выдавать данные по описанному формату (т.е. загрузка данных останется без изменений, нужно будет только реализовать выгрузку в ESB). Если все правильно понял ESB-системы это по своей сути веб-сервисы.

Вопрос следующий: Кто стыкался с подобными системами (OpenESB, MULE, WSO2 и т .д.)? Как на практике выглядит такой обмен? Есть ли у кого-то пример использования данной системы? Гугл выдает лишь две нормальных статьи по связке 1С и ESB:
1) необходимо зарегистрироваться для просмотра ссылки
2) необходимо зарегистрироваться для просмотра ссылки

но то ли у меня мозгов не хватает, то ли там так написано, но до меня не доходит как будет выглядеть окончательный обмен между двумя конфигурациями: скажем УТП и Документооборот, обменяться справочником "Контрагенты" (это к примеру).
Если есть такие, кто уже эту тему курил, буду благодарен если поделитесь дымом и мыслями...
Flexy
Цитата(Bernet @ 30.03.17, 10:21) необходимо зарегистрироваться для просмотра ссылки
Если есть такие, кто уже эту тему курил, буду благодарен если поделитесь дымом и мыслями...

Курил...давненько.
Имхо это изобретение велосипеда, которое чревато неимоверными граблями.
В зоопарке различного ПО, особенно, если оно на базе 1С Имхо гораздо эффективней написать "шину" на самой 1С.
Bernet
Flexy @ Сегодня, 11:31 необходимо зарегистрироваться для просмотра ссылки ,
Можно подробнее с чем связаны грабли? В описании и отзывах OpenESB писали, что у них даже производительность сервера поднялась при использовании данной связки.
Насколько знаю есть решение ESB и на 1С компании AXELOT, начальник в принципе даже купить готов, но не хочется покупать кота в мешке. Хотелось бы знать что это и как с этими системами работать
Vofka
Я читал положительные впечатления о RabbitMQ. Сам лично не пользовался. Помимо просто возможности обмена данными между разнородными по своей природе и архитектуре систем, подобные решения обладают ещё всякими дополнительными полезными штуками, типа гарантия доставки сообщений.
Bernet
Про RabbitMQ тоже на инфостарте статью видел. Просто хочется прежде чем все усложнять, понять элементарное - для начала обменяться контрагентами между двумя конфигурациями через ESB.
В конфигурации-источнике веб-сервис который выгружает справочник я допустим сделаю, а что дальше? Как подвязать его в OpenESB и потом в конфигурации-приемнике принять этот справочник? Вот с этим у меня траблы)
Хочется увидеть минимальный пример, тогда уже по аналогии смогу усложнять
Flexy
Цитата(Bernet @ 30.03.17, 10:37) необходимо зарегистрироваться для просмотра ссылки
Можно подробнее с чем связаны грабли?

Одна из граблей - это то, что зачастую пытаются натянуть эту "шину" на "горячую" (рабочую) инфраструктуру различного ПО, особо не заморачивась на разработку самой модели взаимодействия между этим ПО.
Цитата(Bernet @ 30.03.17, 10:37) необходимо зарегистрироваться для просмотра ссылки
но до меня не доходит как будет выглядеть окончательный обмен между двумя конфигурациями: скажем УТП и Документооборот, обменяться справочником "Контрагенты"

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


Bernet
Flexy @ Сегодня, 12:12 необходимо зарегистрироваться для просмотра ссылки ,
Цитата
Одна из граблей - это то, что зачастую пытаются натянуть эту "шину" на "горячую" (рабочую) инфраструктуру

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

это я понимаю, думаю что именно из-за того, что ESB позволяет обмениваться приложениям с абсолютно различной архитектурой, шеф и хочет использовать эту систему, т.к. кроме 1С есть куча другого различного софта, сайты и т.д. Вроде как начальство готовится к расширению, видимо не только шатата/объемов но и используемого софта, поэтому так хотят чтобы было проще взаимодействовать с разными програмулинами
Vofka
Там смысл такой, что не надо на стороне обменивающихся систем что-то глобально дорабатывать в плане инфраструктуры (создавать какие-то веб-сервисы или что-то такое). Весь прикол как раз в том, что несколькими строками кода подключаешься к этим системам для приема/отправки сообщений и описываешь только разбор самого сообщения. Но в случае RabbitMQ из чисто 1С подключиться туда не получится, поэтому нужно делать внешнюю компоненту для этого. Как в этом плане обстоят дела в других системах, я не интересовался особо.
Bernet
Vofka @ Сегодня, 15:54 необходимо зарегистрироваться для просмотра ссылки ,
Ну скорее всего все равно какие-то веб-сервисы писать надо, иначе как данные оно вытянет с базы...
Просто думал может кто-то стыкался и пример приведет как это реализовать, а то в теории понятно, а как на практике это все связать не знаю. Но походу это мало используемая тема, инфы с примерами в контексте 1С по этой теме очень мало
Vofka
Цитата(Bernet @ 30.03.17, 16:01) необходимо зарегистрироваться для просмотра ссылки
Ну скорее всего все равно какие-то веб-сервисы писать надо, иначе как данные оно вытянет с базы...

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

1) от системы OpenESB отказались, т.к. проект уже не разивается года полтора, взяли более свежую систему WSO2 ESB - проект развивается по сей день (15.05.2017)

2) Информация для тех кого будет в будущем интересовать данный вопрос:
WSO2 представляет собой встроенный веб-сервер с веб-консолью, через которую можно управлять вашими приложениями.
Кроме того в состав входит IDE в виде Eclipse с дополнением специально для WSO2, в которой настраиваются обмены, форматы и протоколы сообщений и т.д. На самом деле из того что я там увидел возможностей достаточно много, я пока для примера освоил простой обмен справочниками 1С.

Мой пример выглядит примерно так: База 1С шлет сообщение в ESB, а ESB разсылает их ещё на 3 базы.
Для этого мне потребовалось в исходной 1С прописать код, который при записи элемента справочника "Контрагенты" отправляет данные этого контрагента с помощью JSON на ESB.
ESB принимает сообщение и шлет их паралельно в три других базы (этот участок настраивается в Eclipse)
Базы приемники в моем случае имеют HTTP-сервисы с POST методом, который принимает данные JSON, и производит непосредственную запись в базу.

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

Пока ещё все достоинства этой штуки не оценил, но тема пока мне интересна, начальству тоже, так что разбираюсь дальше.
Кому нужна будет помощь по созданию простого примера пишите в личку. Возможно если будет время сделаю тут публикацию с подробными скринами как это все выглядит.
lcdsumy
Что думаете по
необходимо зарегистрироваться для просмотра ссылки
Bernet
lcdsumy @ Сегодня, 12:03 необходимо зарегистрироваться для просмотра ссылки ,
ну задумка хорошая, посмотрим что туда напихали) Хорошо, тем что все это можно будет настраивать в привычной для нас среде) тем более что уже подобное решение также на 1С сделала компания Axelot
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.