Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выбор архитектуры проекта 
:(
    Опции темы
4epT
Дата 31.5.2012, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Всем привет) Начинаю свой проект. Будет это веб сайт. Всегда хотел научиться писать приложения с красивой архитектурой... поэтому сейчас стал задумываться над архитектурой. Предполагается большая нагрузка как на базу так и на сервер.

На данный момент используется:

1) БД - PostgreSQL
2) ORM - Hibernate
3) EJB 3.0
4) Servlet
5) XSLT
6) JSP

Пункты 1, 2, 3 иду как отдельный модуль, что то вроде API.

4, 5, 6 это View, то есть делается запрос к сервлету, он вытягивает xsl шаблон и на основе какой то XML генерируется html который просто выгружается на страницу. Таким образом некоторые части страницы можно подгружать через ajax. 

Последняя часть, не очень нравиться ... трудоемко менять шаблоны, для каждого xsl пишется свой xml,  и др.

Покритикуйте пожалуйста данное решение и посоветуйте что нибудь )
PM MAIL   Вверх
jk1
Дата 31.5.2012, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 5
Всего: 75



Вызывает некоторые сомнения использование EJB для сайта, ведь E не зря означает "Enterprise". Хостинг придется искать с Application Server'ом


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
4epT
Дата 1.6.2012, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Цитата(jk1 @ 31.5.2012,  21:39)
Вызывает некоторые сомнения использование EJB для сайта, ведь E не зря означает "Enterprise". Хостинг придется искать с Application Server'ом

Можно в двух словах об отличиях Enterprise и обычного веб сайта.

Может быть я просто не правильно выразился.. в этом проекте я не пишу какой нибудь "сайт визитка", предполагается большая система, с высокой нагрузкой, которая постоянно будет развиваться.
PM MAIL   Вверх
AntonSaburov
Дата 1.6.2012, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Цитата(4epT @  1.6.2012,  10:16 Найти цитируемый пост)
Можно в двух словах об отличиях Enterprise и обычного веб сайта.

Здесь важно понимать. что EJB 3.0 - это специальная технология написания, деплоя и запуска классов, для поддержки которой надо использовать ПО, которое соответствует спецификации Java EE 1.5.
А наиболее известный хостинг Tomcat такого не умеет - ему надо давать дополнительные библиотеки - тот же OpenEJB. В принципе не проблема, но тем не менее.
Или брать что-то более мощное - JBoss например.

PM MAIL WWW ICQ   Вверх
4epT
Дата 1.6.2012, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Планирую разворачивать на Glassfish...  тестирую на нем же, все прекрасно работает)
PM MAIL   Вверх
Старовъръ
Дата 1.6.2012, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



EJB как правило имеет смысл применять если нужны транзакции инициализируемые клиентами, что в твоем (и в остальных 99%) случаев без необходимости. Более легковесным вариантом будет все-таки Spring/Guice + POJOs, прочти книгу POJOs In Action для начала.
XSLT трансформация тоже кажется лишней, удобней будет просто с помощью JQuery слать AJAX запросы и получать ответ в JSON формате.
PS: надеюсь проект учебный ;)
PM MAIL WWW   Вверх
AntonSaburov
Дата 1.6.2012, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Цитата(4epT @  1.6.2012,  15:00 Найти цитируемый пост)
Планирую разворачивать на Glassfish...

Ну вполне пристойно.

Цитата(Старовъръ @  1.6.2012,  15:33 Найти цитируемый пост)
EJB как правило имеет смысл применять если нужны транзакции инициализируемые клиентами

Это не совсем так - EJB работает с аннотациями для транзакций и не на клиентском уровне подобно тому же Spring.

Касаемо XSLT - надо действительно четко решить  какую архитектуру UI будешь использовать. Например для простых страниц (без AJAX) для нескольких типов экранов - почему бы не попробовать. Мы такое делали.
Но если хочется повозиться с AJAX - JQuery или вообще GWT, ZK или еще что - то тут XSLT вряд ли имеет смысл использовать.

PM MAIL WWW ICQ   Вверх
4epT
Дата 1.6.2012, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Цитата

PS: надеюсь проект учебный ;) 


Данный проект никак не относиться к работе) занимаюсь им в свободное время, но проект не является учебным )

При использовании XSLT, никаких проблем с AJAX не испытываю, по крайней мере пока что ... Схема очень простая, посылаю запрос с параметром, какую часть мне достать, на сервере выполняются нужные действия и в ответ отдаю уже готовый HTML, после чего просто перетираю нужную область.

Насчет GWT задумывался... пугает его сложность и то что не умею на нем писать красивых решений. Может можете что то посоветовать по GWT ? в плане архитектуры.

Spring/Guice + POJOs посмотрю, спасибо!


Цитата

Это не совсем так - EJB работает с аннотациями для транзакций и не на клиентском уровне подобно тому же Spring.


можно немного разъяснить ? EJB транзакции работают на уровне СУБД ?

Hibertnate может работать в режиме транзакций ?

P.s. может есть по Spring/Guice + POJOs русскоязычная литература ?

PM MAIL   Вверх
AntonSaburov
Дата 1.6.2012, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Цитата(4epT @  1.6.2012,  15:52 Найти цитируемый пост)
можно немного разъяснить ? EJB транзакции работают на уровне СУБД ?

Здесь речь идет о том, что несколько запросов к СУБД можно "обренуть" транзакцией. Чаще всего это выглядит как один метод класса, внутри которого делается мнго запросов Hibernate (точнее JPA) и все эти запросы внутри одной транзакции. Причем начало этой транзакции грубо говоря совпадает с началом метода, а commit - с окончанием. Если же в процессе работы вылетает exception, то происходит автоматический rollback транзакции.
PM MAIL WWW ICQ   Вверх
Старовъръ
Дата 1.6.2012, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Цитата
Это не совсем так - EJB работает с аннотациями для транзакций и не на клиентском уровне подобно тому же Spring.
Я неправильно выразился - говорил о том, что в EJB возможно делать вызовы к remote beans и это может происходить внутри транзакции. Со спрингом такое, думаю, не легко провернуть.
Цитата
Насчет GWT задумывался... пугает его сложность и то что не умею на нем писать красивых решений. Может можете что то посоветовать по GWT ? в плане архитектуры.
Если готов пожертвовать возможностью индексацией гуглом, то можешь попробовать, но это не тривиальный фреймворк. Здесь можешь найти обзор некоторых технологий, здесь обсуждаются разные подходы к построению веб приложений.
PM MAIL WWW   Вверх
Vasay
Дата 1.6.2012, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Цитата(Старовъръ @  1.6.2012,  22:31 Найти цитируемый пост)
Если готов пожертвовать возможностью индексацией гуглом, то можешь попробовать, но это не тривиальный фреймворк


Индексация проблема не только GWT но и любого сайта с применением Ajax. Так, что 4epT будьте осторожны с его применением.

Кроме индексации есть серьезные проблемы с юзабилити - некорректная работа кнопок вперед/назад/открыть в новой вкладке/обновить страницу.

Невозможность добавить ссылку на конкретный контент в избранное или передать ее другу по ICQ/почте 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
sivak
Дата 2.6.2012, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 25.5.2012

Репутация: нет
Всего: нет



Цитата(AntonSaburov @  1.6.2012,  18:42 Найти цитируемый пост)
Здесь речь идет о том, что несколько запросов к СУБД можно "обренуть" транзакцией. Чаще всего это выглядит как один метод класса, внутри которого делается мнго запросов Hibernate (точнее JPA) и все эти запросы внутри одной транзакции. Причем начало этой транзакции грубо говоря совпадает с началом метода, а commit - с окончанием. Если же в процессе работы вылетает exception, то происходит автоматический rollback транзакции. 


Так тоже самое происходит как в спринге так и в EJB... на спринге я такое делал, на EJB еще не успел.

Это сообщение отредактировал(а) sivak - 2.6.2012, 18:53
PM MAIL   Вверх
4epT
Дата 2.6.2012, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Цитата(Старовъръ @  1.6.2012,  22:31 Найти цитируемый пост)
Если готов пожертвовать возможностью индексацией гуглом, то можешь попробовать, но это не тривиальный фреймворк.


GWT не индексируется ? Если не ошибаюсь, то большинство сервисов гугла, написаны на GWT...

Цитата(Vasay @  1.6.2012,  23:23 Найти цитируемый пост)
Кроме индексации есть серьезные проблемы с юзабилити - некорректная работа кнопок вперед/назад/открыть в новой вкладке/обновить страницу.

Невозможность добавить ссылку на конкретный контент в избранное или передать ее другу по ICQ/почте  


Спасибо большое, не подумал насчет данных недостатков. подгрузку контента через AJAX уберу ... на будущее так же запомню )

За ссылки большое спасибо, много интересного )

Это сообщение отредактировал(а) 4epT - 2.6.2012, 18:58
PM MAIL   Вверх
jk1
Дата 2.6.2012, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1168
Регистрация: 17.10.2008
Где: Санкт-Петербург

Репутация: 5
Всего: 75



Цитата

GWT не индексируется ? Если не ошибаюсь, то большинство сервисов гугла, написаны на GWT...


В том-то и дело, что это сервисы. Какой смысл в индексации gmail, гуглодокументов, гуглопереводчика? 

Имхо очень верно сказали выше по треду, любой компонентный ajax-фреймворк начисто убьет индексацию, красивые урлы, кнопку back в браузере и т.д. И пользователи сайта Вам такого пренебрежения не простят, неудобный сайт никогда не станет популярным и высоконагруженным.  А раз нет нагрузки, то все рассуждения относительно EJB и преимуществ Glassfish теряют смысл сами собой.


--------------------
Opinions are like assholes — everybody has one
PM MAIL   Вверх
4epT
Дата 3.6.2012, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Что тогда можно выбрать в качесте средства для построения UI ? 

Как насчет JSF ?
PM MAIL   Вверх
Vasay
Дата 3.6.2012, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Цитата(4epT @  3.6.2012,  11:29 Найти цитируемый пост)
Как насчет JSF ?


JSF позволяет сделать более менее нормальный сайт, но только если Вы не будете применять *faces компоненты. 

Хотя, некоторые, неприятные моменты у JSF я встречал. Хотя, может, потому что я не очень хорошо в них разбираюсь. 


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
4epT
Дата 3.6.2012, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Цитата(Vasay @  3.6.2012,  12:10 Найти цитируемый пост)
Хотя, некоторые, неприятные моменты у JSF я встречал.

Можно немного подробнее ?

Если применять JSF, то на сколько я понимаю получается что слой доступа к данным это EJB + Hibernate, JSF managed bean это контроллеры, а Facelets это view ?
PM MAIL   Вверх
Vasay
Дата 3.6.2012, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Цитата(4epT @  3.6.2012,  12:18 Найти цитируемый пост)
Можно немного подробнее ?


Я натыкался на странные проблемы связанных с соответствием URL контенту. Когда работаешь с сайтом в 2х вкладках браузера - например: прошелся в одной вкладке по страницам стр1->стр2 , потом во второй стр3->стр4. Берешь первую вкладку, нажимаешь кнопку "назад" и оказываешься вместо стр1 на стр3. 

Но, вероятно, я что-то не так сделал или настроил (хотя точно такие же касяки я встречал в некоторых приложениях на JSF).



--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
4epT
Дата 7.6.2012, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Хочу обсудить еще один подход ...

Задумался над генерацией контента на клиенте... К примеру используя шаблоны mustache и hogan.js для компиляции шаблонов в html на основе json данных.

Таким образом Часть EJB + Hibernate отдает в Servlet/JSF managed bean данные а они уже в свою очередь отдают json в ответе, и на клиенте происходит генерация контента. Снизиться нагрузка на сервера, скорость работы должна повыситься ...

В таком случае будет ли работать индексация ? Мало того где то находил что гугл и яндекс научились индексировать GWT и аналоги.

И на сколько приемлем данный подход ?
PM MAIL   Вверх
Vasay
Дата 7.6.2012, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Цитата(4epT @  7.6.2012,  10:46 Найти цитируемый пост)
В таком случае будет ли работать индексация ? 


Нет.
И еще Вы получите вышеописанные проблемы с юзабилити. 

Цитата(4epT @  7.6.2012,  10:46 Найти цитируемый пост)
Мало того где то находил что гугл и яндекс научились индексировать GWT и аналоги.


JS они разбирают уже давно. Но в целях борьбы с дорами и фишенгом. Качественной индексации JS сайтов, я пока не видел.


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
4epT
Дата 7.6.2012, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Как тогда у твитера работала индексация ? На сколько я знаю они раньше генерировали страницы на клиенте и только недавно вернулись к генерации на сервере.
PM MAIL   Вверх
Vasay
Дата 7.6.2012, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Цитата(4epT @  7.6.2012,  14:39 Найти цитируемый пост)
Как тогда у твитера работала индексация ? На сколько я знаю они раньше генерировали страницы на клиенте и только недавно вернулись к генерации на сервере.


Не знаю. Могли для ботов выдавать специальную страницу с текстом.


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Stolzen
Дата 8.6.2012, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 3
Всего: 48



Цитата(Vasay @  2.6.2012,  00:23 Найти цитируемый пост)

Индексация проблема не только GWT но и любого сайта с применением Ajax. Так, что 4epT будьте осторожны с его применением.

Кроме индексации есть серьезные проблемы с юзабилити - некорректная работа кнопок вперед/назад/открыть в новой вкладке/обновить страницу.

Невозможность добавить ссылку на конкретный контент в избранное или передать ее другу по ICQ/почте  

В GWT все это решается с помощью History. Насчет индексации, хотя, не скажу - сам лично не сталкивался, но вот прислать ссылку другу по почте вполне можно будет (она будет в виде page/#some/stuff)

Добавлено через 2 минуты и 56 секунд
Да, кстати, GWT еще может быть предпочтительнее потому, что много кода на клиенте выполняется, в отличие от того же ZK - последний хранит все дом-дерево в памяти, и, естественно, при большом количестве клиентов, приложение может слететь. 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Vasay
Дата 8.6.2012, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Цитата(Stolzen @  8.6.2012,  11:14 Найти цитируемый пост)
В GWT все это решается с помощью History. Насчет индексации, хотя, не скажу - сам лично не сталкивался, но вот прислать ссылку другу по почте вполне можно будет (она будет в виде page/#some/stuff)


Прикольно! Слышал, что в GWT есть такая возможность, но никогда в живую не видел. 


п.с. проблему с индексацией это не решит, пока боты не начнут активно разбирать JS.


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
CHEM_Eugene
Дата 8.6.2012, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 12.2.2008

Репутация: нет
Всего: нет



Цитата(4epT @  1.6.2012,  15:52 Найти цитируемый пост)
Насчет GWT задумывался... пугает его сложность и то что не умею на нем писать красивых решений. Может можете что то посоветовать по GWT ? в плане архитектуры.

Полгода разрабатываю проект на GWT. Ранее с GWT не был знаком. Сложность - минимальна, фан - максимален по сравнению со всякими mvc, jsp, xslt и прочей хер..ей.

Советую: Tomcat/Spring, HIbernate, JPA, GWT+GXT, mvp4g, google-gin. Сам бы хотел еще попробовать JBoss/JavaEE+GWT и развернуть всё это в OpenShift

По поводу GWT: если у вас не превосходное знание JS и кроссбраузерной валидной верстки, то GWT то что надо. Сэкономите вагон времени. Если знаете Swing, то 10 вагонов. Особенно рекомендую употреблять вместе с GXT или SmartGWT.


Это сообщение отредактировал(а) CHEM_Eugene - 8.6.2012, 14:15
PM MAIL   Вверх
4epT
Дата 9.6.2012, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 784
Регистрация: 13.8.2007

Репутация: 3
Всего: 3



Спасибо всем)

Цитата(CHEM_Eugene @  8.6.2012,  14:13 Найти цитируемый пост)
Советую: Tomcat/Spring, HIbernate, JPA, GWT+GXT, mvp4g, google-gin. 


По поводу - Hibernate, JPA... Hibernate это уже ведь реализация JPA.

Попробую что то попробовать с данной связкой ) Спасибо!  

PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1984 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.