2009-12-03 1 views

ответ

2

Вы можете организовать систему по-разному, есть не только одна многоуровневая архитектура. Я никогда не использовал термин «внешний» слой. Даже разумно анализировать одну и ту же систему несколькими способами. Логическая архитектура, архитектура Physiscal ...

Мы можем ответить только на ваш вопрос, если мы знаем, какие слои вы выбрали в обсуждаемой архитектуре, тогда должно быть возможно понять, где услуги лежат. Вы только рассказали нам о «внешнем», мы не знаем, какие существуют альтернативы.

I usuaully думаю о представлении, бизнес-логике и настойчивости. В этом случае службы лежат на уровне бизнес-логики.

Я бы сказал, что вполне разумно рассматривать сервисы как открытый интерфейс для системы, и поэтому в некотором смысле они лежат во «внешнем» слое.

Добавлено в ответ на комментарий:

Существует не простой ответ на этот вопрос. Все зависит от того, что мы подразумеваем под «Сервисом» и тем, что делают наши слои. Возьмем конкретный пример: предположим, что наш пользовательский интерфейс хочет отобразить детали счета-фактуры. Мы могли бы выбрать для создания службы

InvoiceDto getInvoiceDetails(int invoiceNumber) 

Это кажется довольно очевидным, что реализация данной услуги в слое бизнес-логики. Интерфейс может быть простой библиотекой или веб-службой в зависимости от того, как мы общаемся между слоями.

Затем мы решили разоблачить эту услугу для клиентов, чтобы их приложения могли позвонить в службу через Интернет. Мы имели бы некоторый код в веб-слой, который, возможно, выставляет назначал службе Rest

http://dave.org/service/invoice/nnnn 

явно есть немного адаптера кода, работающего в Web Layer, и мы могли бы управлять аутентификации и т.д. Но где услуга? Это просто адаптор? Это бизнес-логика? это и то и другое?

К моему способу мышления реальное обслуживание - это логика, работающая в бизнес-слое, остальное - просто сантехника.

+2

Я использую трехуровневую архитектуру ... И у меня есть интерфейс, где пользовательские логин и сторонняя сторона проверяют данные для входа, для которых он проверяет детали из базы данных .. поэтому на этой основе я хочу знать, где работает служба слой лежит? – Abhineet