Ваши учителя также говорили вам, почему вы должны создавать такую архитектуру ;-)? В твоем вопросе мне не хватает твоих требований. Прежде чем кто-либо из нас скажет вам, является ли это хорошей архитектурой или шаблоном, мы должны знать требования приложения. Нефункциональные требования или функциональность приложения должны определять архитектуру.
Я хотел бы знать, что является наиболее важным нефункциональным требованием вашего приложения? (Ремонтопригодность, портативность, надежность или ...). Например, взгляните на http://en.wikipedia.org/wiki/ISO/IEC_9126 или http://www.serc.nl/quint-book/
Я думаю, что мы, архитекторы, должны создавать архитектуры на основе требований бизнеса. Это означает, что мы, архитекторы, должны сделать бизнес более осведомленным о важности нефункциональных требований.
Вопрос № 0: по вашему мнению, это хороший шаблон приложения для предприятий?
Вы используете шаблон архитектуры слоев, это означает, что слои могут эволюционировать независимо друг от друга более легко. Обратите внимание, что один из наиболее часто используемых архитектурных шаблонов имеет недостатки (производительность, отслеживаемость).
Вопрос № 1: где мне разместить сервисный уровень? Это должна быть служба Windows или что-то еще?
Затруднились ответить. Размещение службы в IIS имеет два преимущества: она легче масштабируется и легче отслеживается (WCF в IIS имеет множество вариантов монитора). Размещение службы в службе Windows предоставляет дополнительные параметры привязки (привязка именованных каналов / привязка TCP).
Вопрос № 2: в исходном коде, предоставляемом сервисном уровне, предоставляется только конечная точка с WSHttpBinding. Это наиболее совместимое связывание, но (я думаю) худшее с точки зрения производительности (из-за сериализации и десериализации объектов). Вы согласны?
Производительность с точки зрения WSHttpBinding стоит дороже, но она высоко оценивает совместимость. Поэтому выбор зависит от ваших нефункциональных требований.
Вопрос № 3: если вы согласны со мной в вопросе 2, какой тип связывания вы бы использовали?
Именованные каналы и привязка TCP очень быстрые. Привязка именной трубы должна использоваться только при общении на одном компьютере. TCP-привязка может быть вариантом, но вы должны открыть специальный порт в брандмауэре.