У меня есть два приложения:Как синхронизировать данные между двумя системами?
- ASP.NET MVC сайт электронной коммерция
- приложение VB6 управляет продукцию, складами, клиентами, поставщиками, заказами и счетами-фактурами. Он используется физическими магазинами.
Прямо сейчас эти два очень сильно связаны.
Операции, которые используют базу данных:
- Там есть задача, которая периодически запускается на веб-сайте и проверяет базу данных VB6 приложения для любых изменений продукта (в основном цены и акции). Если есть какие-либо различия, база данных сайта обновляется с информацией из приложения VB6;
- Существуют также аналогичные задачи для синхронизации состояния заказа и доступных ваучеров подарочной карты.
Операции, использующие объекты VB6 из .NET:
- Когда заказ размещен на веб-сайте, он также сохраняется в приложении VB6.
- Когда продукт обновляется администратором сайта (имя, описание, родительская категория и т. Д.), Он также обновляется в приложении VB6.
- Когда клиент обновляет свою личную информацию, это также сохраняется в приложении VB6.
- Когда клиент регистрируется на веб-сайте, веб-сайт запрашивает приложение VB6, если у клиента есть карточка лояльности и получает его очки вознаграждения.
Я начал использовать веб-API для недавно разработанной функции вознаграждения. Когда заказ выставляется в приложении VB6, клиент получает/теряет очки вознаграждения, и они отправляются на веб-сайт через веб-API.
Есть также другие операции, которые должны быть синхронизированы и не являются на данный момент:
- изменения порядка (добавить/удалить продукты, скидки, стоимость доставки, продукт изменения количества и т.д.)
- (стоимость НДС, стоимость бонусных баллов, дисконтные значения и т. д.)
Вопрос: что было бы лучшим способом синхронизации данных между этими приложениями, более свободно связанным способом? Каковы были бы преимущества/недостатки REST Services и Service Bus?
Я думал, что мне нужна служебная шина, чтобы получать данные даже в том случае, если какое-то приложение не работает некоторое время. Я бы не хотел реализовывать очередь в обоих приложениях, чтобы убедиться, что данные отправлены правильно. Сервисная шина сделает это для меня. Я прав? –
Почему это имеет значение, дело в том, что оба приложения читают и записывают в webAPI. Если кто-то не работает, они просто не записывают никаких новых данных. –
Веб-интерфейс является частью веб-сайта, поэтому, когда сайт по какой-либо причине не работает, приложение VB6 не может отправлять данные. Теперь он проверяет ответ, а в случае сбоя экспорта данных он пытается отправить его до тех пор, пока он не удастся. Вот почему я думал, что система очередей будет лучше. –