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