![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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, и др. Покритикуйте пожалуйста данное решение и посоветуйте что нибудь ) |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 5 Всего: 75 |
Вызывает некоторые сомнения использование EJB для сайта, ведь E не зря означает "Enterprise". Хостинг придется искать с Application Server'ом
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Можно в двух словах об отличиях Enterprise и обычного веб сайта. Может быть я просто не правильно выразился.. в этом проекте я не пишу какой нибудь "сайт визитка", предполагается большая система, с высокой нагрузкой, которая постоянно будет развиваться. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Здесь важно понимать. что EJB 3.0 - это специальная технология написания, деплоя и запуска классов, для поддержки которой надо использовать ПО, которое соответствует спецификации Java EE 1.5. А наиболее известный хостинг Tomcat такого не умеет - ему надо давать дополнительные библиотеки - тот же OpenEJB. В принципе не проблема, но тем не менее. Или брать что-то более мощное - JBoss например. |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Планирую разворачивать на Glassfish... тестирую на нем же, все прекрасно работает)
|
|||
|
||||
Старовъръ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
EJB как правило имеет смысл применять если нужны транзакции инициализируемые клиентами, что в твоем (и в остальных 99%) случаев без необходимости. Более легковесным вариантом будет все-таки Spring/Guice + POJOs, прочти книгу POJOs In Action для начала.
XSLT трансформация тоже кажется лишней, удобней будет просто с помощью JQuery слать AJAX запросы и получать ответ в JSON формате. PS: надеюсь проект учебный ;) -------------------- |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Ну вполне пристойно.
Это не совсем так - EJB работает с аннотациями для транзакций и не на клиентском уровне подобно тому же Spring. Касаемо XSLT - надо действительно четко решить какую архитектуру UI будешь использовать. Например для простых страниц (без AJAX) для нескольких типов экранов - почему бы не попробовать. Мы такое делали. Но если хочется повозиться с AJAX - JQuery или вообще GWT, ZK или еще что - то тут XSLT вряд ли имеет смысл использовать. |
|||
|
||||
4epT |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Данный проект никак не относиться к работе) занимаюсь им в свободное время, но проект не является учебным ) При использовании XSLT, никаких проблем с AJAX не испытываю, по крайней мере пока что ... Схема очень простая, посылаю запрос с параметром, какую часть мне достать, на сервере выполняются нужные действия и в ответ отдаю уже готовый HTML, после чего просто перетираю нужную область. Насчет GWT задумывался... пугает его сложность и то что не умею на нем писать красивых решений. Может можете что то посоветовать по GWT ? в плане архитектуры. Spring/Guice + POJOs посмотрю, спасибо!
можно немного разъяснить ? EJB транзакции работают на уровне СУБД ? Hibertnate может работать в режиме транзакций ? P.s. может есть по Spring/Guice + POJOs русскоязычная литература ? |
||||
|
|||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
Здесь речь идет о том, что несколько запросов к СУБД можно "обренуть" транзакцией. Чаще всего это выглядит как один метод класса, внутри которого делается мнго запросов Hibernate (точнее JPA) и все эти запросы внутри одной транзакции. Причем начало этой транзакции грубо говоря совпадает с началом метода, а commit - с окончанием. Если же в процессе работы вылетает exception, то происходит автоматический rollback транзакции. |
|||
|
||||
Старовъръ |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 491 Регистрация: 8.5.2008 Репутация: 1 Всего: 10 |
-------------------- |
||||
|
|||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Индексация проблема не только GWT но и любого сайта с применением Ajax. Так, что 4epT будьте осторожны с его применением. Кроме индексации есть серьезные проблемы с юзабилити - некорректная работа кнопок вперед/назад/открыть в новой вкладке/обновить страницу. Невозможность добавить ссылку на конкретный контент в избранное или передать ее другу по ICQ/почте -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
sivak |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 25.5.2012 Репутация: нет Всего: нет |
Так тоже самое происходит как в спринге так и в EJB... на спринге я такое делал, на EJB еще не успел. Это сообщение отредактировал(а) sivak - 2.6.2012, 18:53 |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
GWT не индексируется ? Если не ошибаюсь, то большинство сервисов гугла, написаны на GWT... Спасибо большое, не подумал насчет данных недостатков. подгрузку контента через AJAX уберу ... на будущее так же запомню ) За ссылки большое спасибо, много интересного ) Это сообщение отредактировал(а) 4epT - 2.6.2012, 18:58 |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 5 Всего: 75 |
В том-то и дело, что это сервисы. Какой смысл в индексации gmail, гуглодокументов, гуглопереводчика? Имхо очень верно сказали выше по треду, любой компонентный ajax-фреймворк начисто убьет индексацию, красивые урлы, кнопку back в браузере и т.д. И пользователи сайта Вам такого пренебрежения не простят, неудобный сайт никогда не станет популярным и высоконагруженным. А раз нет нагрузки, то все рассуждения относительно EJB и преимуществ Glassfish теряют смысл сами собой. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Что тогда можно выбрать в качесте средства для построения UI ?
Как насчет JSF ? |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
JSF позволяет сделать более менее нормальный сайт, но только если Вы не будете применять *faces компоненты. Хотя, некоторые, неприятные моменты у JSF я встречал. Хотя, может, потому что я не очень хорошо в них разбираюсь. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
||||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Я натыкался на странные проблемы связанных с соответствием URL контенту. Когда работаешь с сайтом в 2х вкладках браузера - например: прошелся в одной вкладке по страницам стр1->стр2 , потом во второй стр3->стр4. Берешь первую вкладку, нажимаешь кнопку "назад" и оказываешься вместо стр1 на стр3. Но, вероятно, я что-то не так сделал или настроил (хотя точно такие же касяки я встречал в некоторых приложениях на JSF). -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Хочу обсудить еще один подход ...
Задумался над генерацией контента на клиенте... К примеру используя шаблоны mustache и hogan.js для компиляции шаблонов в html на основе json данных. Таким образом Часть EJB + Hibernate отдает в Servlet/JSF managed bean данные а они уже в свою очередь отдают json в ответе, и на клиенте происходит генерация контента. Снизиться нагрузка на сервера, скорость работы должна повыситься ... В таком случае будет ли работать индексация ? Мало того где то находил что гугл и яндекс научились индексировать GWT и аналоги. И на сколько приемлем данный подход ? |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Нет. И еще Вы получите вышеописанные проблемы с юзабилити.
JS они разбирают уже давно. Но в целях борьбы с дорами и фишенгом. Качественной индексации JS сайтов, я пока не видел. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
Как тогда у твитера работала индексация ? На сколько я знаю они раньше генерировали страницы на клиенте и только недавно вернулись к генерации на сервере.
|
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Не знаю. Могли для ботов выдавать специальную страницу с текстом. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
Stolzen |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 3 Всего: 48 |
В GWT все это решается с помощью History. Насчет индексации, хотя, не скажу - сам лично не сталкивался, но вот прислать ссылку другу по почте вполне можно будет (она будет в виде page/#some/stuff) Добавлено через 2 минуты и 56 секунд Да, кстати, GWT еще может быть предпочтительнее потому, что много кода на клиенте выполняется, в отличие от того же ZK - последний хранит все дом-дерево в памяти, и, естественно, при большом количестве клиентов, приложение может слететь. |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 18 Всего: 73 |
Прикольно! Слышал, что в GWT есть такая возможность, но никогда в живую не видел. п.с. проблему с индексацией это не решит, пока боты не начнут активно разбирать JS. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
CHEM_Eugene |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 12.2.2008 Репутация: нет Всего: нет |
Полгода разрабатываю проект на 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 |
|||
|
||||
4epT |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 784 Регистрация: 13.8.2007 Репутация: 3 Всего: 3 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |