2010-07-27 3 views
0

Подумайте, что другие делают/передовую практику для связи между слоями. Этот вопрос связан с общением между слоями 2-3 и 3-4.Связь между библиотекой классов клиентов и веб-службой/веб-службой и библиотекой классов серверов

Наша Базовая архитектура (в порядке убывания) следующим образом:

  1. UI
  2. Front End Бизнес Классы
  3. Web Services
  4. Back End бизнес-класса
  5. DAL

Веб-сервисы - это просто фасад, который включает в себя ведение журнала и au thentication для библиотек конечных классов.

Таким образом, веб-службе передается объект запроса, который включает в себя параметры, требуемые веб-методом, вместе с учетными данными пользователя (например, учетные данные пользователя хранятся в базовом классе, поскольку нам всегда необходимо передать это webservice) и отвечает объектами ответа (имеет такие вещи, как статус и сообщение, если не удалось и т. д. вместе с требуемым объектом), оба запроса & используют специальный универсальный класс/интерфейс, в котором возвращается только один результат, иначе класс должен быть создан.

Иногда имеет смысл сделать это для объекта ответа на уровне 4 (хотя мы не используем объект запроса, если только много параметров не должны быть pasaw), и в этом случае у нас есть только класс адаптера в слое 3, который возвращает это клиенту. Для согласованности я все время думал об этом, хотя думаю, что это может быть излишним.

Чтобы повторить вопрос, каковы наилучшие методы общения между слоями? и должны/люди используют этот метод, описанный выше (он хорошо работает для нас), и должны ли слои 3-4 реализовать аналогичный метод до 2-3?

Возможные соображения:

  • в настоящее время все закодированные в доме командой разработчиков, некоторые код клиента могут быть переданы в будущем
  • будущие веб-сервисы будут WCF на основе (не уверен, что эффекты дизайн, отличный от кодирования для интерфейсов, которые я бы предпочел в любом случае).
  • Мы используем .net
+1

Похоже, что у вас есть дизайн, который хорошо работает для вас и основан на достаточно уважаемом и хорошо используемом шаблоне дизайна (Request-Response). Поэтому я не совсем уверен, в чем ваш вопрос. Вы просите способы, которыми вы можете улучшить свой дизайн? Вы сталкиваетесь с определенными проблемами, которые, по вашему мнению, могут быть решены путем повторного факторинга дизайна? – mikemanne

+0

У меня нет большого количества ссылок на то, как строятся другие системы. Так что я спрашиваю, является ли этот запрос ответа (между интерфейсом класса front-класса и веб-сервисом) связыванием между словом веб-службы и библиотеками класса back-end, также принимая во внимание перечисленные пункты. –

+0

Также есть много дополнительной работы по созданию объекта запроса для каждого веб-метода. –

ответ

0

Для полноты картины:

Это кажется хорошей идеей, чтобы иметь ответ/запросы в библиотеке классов, таким образом, если вы хотите изменить веб-сервис для WCF, работы меньше.