Мне не совсем понятно, что вы делаете.
Похоже, у вас есть 3 вещи: служба Windows, а затем веб-служба, размещенная в веб-приложении.
Я думаю, что ваш вопрос, что использовать, REST, ASMX, WSE или WCF, при подключении приложения-службы Windows к удаленной веб-службе .
ASMX, WSE и WCF являются альтернативными моделями программирования для веб-службы. REST не является моделью программирования. Это не так, как остальные три.
ASMX и WSE потребуют использования веб-служб и SOAP.
WCF может позволить вам использовать Web-сервисы и SOAP, REST (XML или JSON) по HTTP или двоичный формат по TCP, а также другие опции.
Поскольку это гибкая и современная технология, я бы порекомендовал WCF. ASMX теперь называется Microsoft «устаревшей технологией». Это не значит, что он не будет работать, но он не будет получать обновления. (Очень похоже на WinForms против WPF). Насколько я знаю, WSE больше не поддерживается мейнстримом. По этим причинам я бы не рекомендовал начинать новый проект ни на WSE, ни на ASMX.
WCF является более общим, чем ASMX, и по этой причине может показаться более сложным. Но как только вы сделаете несколько вариантов и сконцентрируетесь на том, что хотите (например, выберите HTTP и REST или двоичный файл и TCP), это станет более мощным. WCF может использоваться как модель программирования как на клиенте, так и на отправителе (в вашем случае, я думаю, в Windows Service) и / или на сервере (веб-сервис, размещенный в веб-приложении).
Использование WCF на стороне клиента не означает, что вы должны использовать его на стороне сервера, и наоборот. С другой стороны, если вы управляете исходным кодом на обоих концах, я бы рекомендовал использовать WCF с обеих сторон.
Что касается "как реализовать правила для веб-приложения" - я не понимаю, о чем вы там спрашиваете. Может быть, если вы будете более конкретны по этому вопросу, кто-то сможет помочь.
Обновление: основываясь на вашем дополнительном объяснении, я предлагаю вам взглянуть на материал REST в WCF для .NET 3.5. В PHP очень просто реализовать сервис в стиле REST, а с WCF то же самое верно для .NET. Теперь в вашем случае служба Windows - это клиент , и она отправляет запрос, запрос на обновление, на различные серверы , которые находятся в сетях ваших клиентов. Согласно принципам REST, я отправляю эти исходящие запросы PUT или POST в зависимости от семантики вызова.
Затем вы можете отправить пример кода обслуживания своим клиентам (в верхнем регистре), чтобы они начали создавать то, что им нужно для получения ваших исходящих сообщений PUT / POST.
Безопасность - это проблема. Вы вообще не упомянули об этом, что удивительно. Безопасность не относится к числу тех вещей, которые лучше всего откладывать, так что вы «добавите это позже». Вы должны подумать об этом рано - это может повлиять на выбор протокола, который вы делаете. Например, если вам необходимо взаимно аутентифицировать клиентов и серверы (последние в сетях ваших «прописных» клиентов), то вы можете использовать SOAP, который предоставляет вам хорошие параметры на стороне протокола для обеспечения безопасности. Расширения защищенных веб-служб (WS-Sec и т. Д.) Хорошо поддерживаются в WCF, но не уверены в состоянии этой возможности в PHP.