MadMyche
Способ, которым я бы это реализовал, состоит в том, чтобы разбить это на несколько модулей, не слишком далеких от вашей идеи использования Apache.
Служба(ы).
Вам понадобится веб-служба для приема HTTP-запросов.
Вы также можете использовать службу Windows и переместить в нее обработку данных, и веб-служба будет действовать как буфер между веб-клиентами и обработкой данных. Именно так я бы и поступил, поскольку чувствую, что это добавляет больше контроля.
Настольное Приложение. Это будет только внешний интерфейс, и он будет связываться со Службой, когда что-то нужно будет сделать.
Если вы используете только веб-службу, настольное приложение должно будет взаимодействовать через HTTP
поток данных
Если вы используете метод обслуживания 2 (Windows &Web), то вы мог есть 2 пути
Локальное приложение <==> служба Windows
Удаленный клиент <==> Веб-служба <==> служба Windows
Если вы используете только веб-сервис, то у вас будет только один путь:
Клиент (локальное приложение или удаленный) <==> Веб-сервис
Лично я бы сначала поработал с локальной стороной; разбил обработку данных и поместил ее в службу Windows, а также создал интерфейс для обмена данными между интерфейсом и обработкой данных.
Когда вы делаете веб-службу, вы можете затем включить половину коммуникационной части рабочего стола, чтобы "перевести" веб-запросы в вызовы службы
При использовании метода двух служб, если веб-служба не работает, вы все равно будете иметь локальный доступ через приложение.