JEE: А нафига нужен web tier?
От: Дм.Григорьев  
Дата: 15.08.07 04:12
Оценка:
Всем привет.

Рисую HTML-сайтик на JEE5 (EJB3 + Hibernate). Времени разбираться со всякими там JSF нету, поэтому генерацию страниц делаю пока что по старинке: компактный XML-ответ (данные) плюс XSLT (дизайн). Возник вопрос: в каком слое генерировать этот самый XML-ответ? Имеются варианты:

1. В сервлете, используя полученные из BL Entity Beans. Кривовато: нужны дополнительные движения, чтобы избежать lazy load exceptions.

2. В сервлете, используя полученные из BL DTO. Ещё хуже (полночи читал флеймы про DTO ).

3. Внутри BL. Склоняюсь к этому варианту, хотя он тоже как-то не очень хорошо попахивает:
(а) бизнес-логика, возвращающая XML-ответы.
(б) сервлеты (сабжевый web tier) вырождаются в пустышки (парсинг параметров, плюс применение XSLT либо добавление <?xml-stylesheet> в ответ перед отдачей).

Есть ли у уважаемого All какие-либо замечания по теме?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re: JEE: А нафига нужен web tier?
От: UrryMcA Россия http://www.UrryMcA.com
Дата: 16.08.07 10:13
Оценка:
>>Есть ли какие-либо замечания по теме?

>>2. В сервлете, используя полученные из BL DTO. Ещё хуже (полночи читал флеймы про DTO ).


И чем хуже?
Re[2]: JEE: А нафига нужен web tier?
От: Дм.Григорьев  
Дата: 16.08.07 14:11
Оценка:
Здравствуйте, UrryMcA, Вы писали:

>>>2. В сервлете, используя полученные из BL DTO. Ещё хуже (полночи читал флеймы про DTO ).

UMA>И чем хуже?

Начинается... В моём случае — тем же самым. В точности те же движения для избежания lazy load exceptions, плюс расплодить сущности без необходимости (у меня всё взаимодействие между ejb & web локальное, так что никакой сериализацией там не пахнет). В общем, я видимо сделаю что-то вроде следующего:

class StatelessControllerBean {
    private ... doSomethingImp(...);
    public void doSomethingForWeb(Request request, XMLResponse response);
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[3]: JEE: А нафига нужен web tier?
От: UrryMcA Россия http://www.UrryMcA.com
Дата: 16.08.07 14:31
Оценка:
Здравствуйте, Дм.Григорьев, Вы писали:

ДГ>видимо сделаю что-то вроде следующего:


Я правильно понял, что планируется хардкодить получение данных из бина и генерацию view?
Re[4]: JEE: А нафига нужен web tier?
От: Дм.Григорьев  
Дата: 16.08.07 14:40
Оценка:
Здравствуйте, UrryMcA, Вы писали:

UMA>Я правильно понял, что планируется хардкодить получение данных из бина


Подозреваю, что ответ "да", но на всякий случай поясни для ламера смысл фразы.

UMA>и генерацию view?


XSLT на стороне браузера.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[5]: JEE: А нафига нужен web tier?
От: UrryMcA Россия http://www.UrryMcA.com
Дата: 16.08.07 14:55
Оценка:
Здравствуйте, Дм.Григорьев, Вы писали:

ДГ>XSLT на стороне браузера.

UMA>>и генерацию view?

Сорри — сглючил. Значит хардкодится т.ко получение данных из бина.

ИМХО допустимо если:
1. допустимо отправить клиенту "лишние" данные
2. структура данных и представление редко меняется
3. представление не зависит от свойств клиента (админ/пользователь/покупатель etc)

Короче — классика. читайте того-же фаулера
Re[6]: JEE: А нафига нужен web tier?
От: Дм.Григорьев  
Дата: 16.08.07 15:07
Оценка:
Здравствуйте, UrryMcA, Вы писали:

UMA>Значит хардкодится т.ко получение данных из бина.


UMA>ИМХО допустимо если:

UMA>1. допустимо отправить клиенту "лишние" данные
UMA>2. структура данных и представление редко меняется
UMA>3. представление не зависит от свойств клиента (админ/пользователь/покупатель etc)

Угумс. Почти, кроме третьего пункта. Только мне как-то всегда казалось, что само (без кодирования) ничто не появляется в любом случае.

Кстати, сериализация Entities в XML у меня параметризуема — BasicEntity.toXML(XMLResponseElement target, Object param), реализации этого метода выглядят никак не длиннее, чем заполнение DTO, так что в сущности мой XML-формат
Автор: Дм.Григорьев
Дата: 02.07.07
— это DTO и есть (о, допёр ). Так что с третим пунктом тоже проблем не будет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.