Я работаю над созданием встроенного устройства Linux, которое должно обмениваться данными с системой, работающей в среде рабочего стола Windows.Моя команда разрабатывает программное обеспечение для встроенного устройства и разрабатывает API для обмена данными с устройством.Я хотел бы некоторые идеи по архитектуре обмена данными.Я хотел бы, чтобы архитектура соответствовала принципам SOA.
Вот важные характеристики:
- База данных: устройство будет запускать сервер базы данных SQL локально.
- Сеть: Устройство и настольная система будут подключены через WLAN или LAN.Запуск веб-сервера на устройстве также возможен, если для этого есть веская причина.
- Обмен данными будет осуществляться в обоих направлениях.Текстовая информация о клиенте и файлы изображений jpeg (~ 1 МБ данных один раз в день).
Моя первая мысль - традиционный подход: запустить процесс на устройстве Linux, который через сокет TCP взаимодействует с процессом насторона Windows.В этом сценарии моей команде нужно написать Windows DLL (либо библиотеку .NET, либо Win32) для реализации API.Я думаю, что формат данных здесь будет XML, хотя я не уверен, как передать файлы изображений .jpg с помощью этого подхода.
Я думаю, что более "современный" подход - это запусквеб-сервер на устройстве Linux и предоставляет набор веб-сервисов для обработки взаимодействия с внешней системой.У меня не было большого опыта в этой области, поэтому я не уверен, что это подойдет для нашей ситуации.
Ваши мысли об этих подходах очень ценятся.Я уверен, что коллективная мудрость здесь, на SO, поможет мне принять обоснованное решение.Спасибо за вашу помощь.