Мой первый вопрос: почему веб-сервис посередине? Если все это будет выполняться на одном физическом компьютере, вы можете реорганизовать средний уровень, который используется через набор интерфейсов и использует прямые вызовы методов.
Я работаю над архитектурой, которая отделена от веб-службы среднего уровня, но она содержит всю критически важную бизнес-логику компании и не будет напрямую представлена в Интернете. Что-то вроде:
{интернет} -> | DMZ | -> Веб-сервер -> | Firewalled LAN | -> Сервер приложений -> Сервер базы данных
В этом случае, я думаю, это добавляет уровень безопасности, так как критически важные вещи отсутствуют в DMZ. Конечно, это технически нарушает некоторые проблемы безопасности, потому что веб-сервер может связываться с сервером приложений, но лучше выставить сервер приложений через один порт для определенного IP-адреса в демилитаризованной зоне, чем для доступа в Интернет.
Если вы собираетесь использовать WCF для связи между серверами, я бы предложил использовать что-то вроде двоичной сериализации через TCP вместо SOAP. Это должно работать лучше (не стесняйтесь настроить быстрый тест). Я сам не пробовал, но WCF мог бы сериализовать набор данных или таблицу по проводам. Смотри здесь .