| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > стоит ли использовать JSF, Spring, Hipermate |
| Автор: ZMaximI 3.12.2008, 12:48 |
| Добрый день ! У меня есть задумка реализовать достаточно большой интернет-проект. Ориентировочное количество одновременно работающих пользователей около 10 000, следовательно ОЧЕНЬ интенсивная работа с БД. Я несколько в растерянности в выборе технологии : - написать все на старых добрых jsp и не ломать голову - на чистом jsf - Spring framework ???? Так вот, помогите, пожалуйста, определиться, стоит ли использовать JSF, Spring, Hipermate или реализовать все на стандартном JSP ? Спасибо. |
| Автор: necromancer 3.12.2008, 12:53 |
| JSF тебе поможет если у тебя сложный веб интерфейс. Если все очень просто то JSP, если где то между то SpringMVC так же вполне можно писать используя несколкьо техноолгий, например для простых страниц JSP,а для админ консоли что то потяжелее. это сугубо ИМХО. Далее писать следует на том что хорошо знаешь иначе огребешь кучу проблем. |
| Автор: ZMaximI 3.12.2008, 13:04 |
| necromancer, спасибо. С JSF как бы все красиво, вот только меня терзают смутные сомнения по поводу производительности ... |
| Автор: skhilkov 3.12.2008, 13:57 |
| А из-за чего может производительноть быть ниже? Все равно все в сервлеты перекомпилится ) А если честно, мне тоже интересно сказывается ли использование JSF или других фреймворков на производительности.... |
| Автор: v2v 3.12.2008, 14:34 |
| для задач как у тебя использовать hibenrate не рекомендутся...только чистый jdbc. |
| Автор: ZMaximI 3.12.2008, 15:45 |
| Спасибо большое, с представлением немного успокоился .., JSP, а для красоты GWT ... Теперь возник вопрос такого плана : у приложения будет свой "движок", состоящий из нескольких модулей. Все эти модули будут НЕПРЕРЫВНО выполнять определенный задачи и результаты свой работы, должны будут, опять же НЕПРЕРЫВНО сохранять в БД ... очень не хочется заморачиваться с EJB - большого смысла в них нет ... а непрерывная работа с бд вообще меня пугает ... Подскажите, пожалуйста, кто что думает по этому поводу ? Спасибо. |
| Автор: necromancer 3.12.2008, 16:42 |
| >Спасибо большое, с представлением немного успокоился, JSP, а для красоты GWT ... замучаешься!!! если хочется JSF то используй соотв библиотеки - Richfaces, IceFaces, Woodstock, Facelets производительность JSF более чем 2 раза ниже чем JSP причина: востановление дерева компонент, обработка событий и прочее прочее. используй JDBC и Hibernate для быстрых выборок вставок - JDBC для админки и прочего менее резвого хибернату. Набор классов почти не изменится а рутины убавится на 40% |
| Автор: ZMaximI 3.12.2008, 17:09 |
| да, тут конечно я согласен, может возникнуть и такая очень неприятная ситуация ...., погорячился я немного, спасибо |
| Автор: necromancer 3.12.2008, 17:25 |
| Hibernate по определению медленее. Да бинд с испоьлзованием JDBC будет выполнен быстрее. (так как хибернатат использует прокси и рефлексию) Транзакции можно использовать и без EJB ( Для чего может понадобится EJB? ну для масштабирования и кэширования. Хотя и кэширование можно решить при помощи различных доп фреймворков, тот же JBoss Cache >я использую Velocity + jQuery это View, а что же контроллер? =) JSF предлагает оличную компонентную и событийную модель. К сожалению своему небыо времени и возможности изучить SpringMVC. Любые надстройки над системой, теже аспекты, анотации и прочее (даже модные (for earch)) тормозят выполнение программы. Мой совет напишите как знаете/можете а затем при возникновении узких мест либо профилируете а затем заменяете, либо делаете load balancing to Asal: непрерывное сохранение не подразумевает обязательное использование транзакций. Вдруг это атомарная операция вставки(лог например). Для того же лога транзакции это сорее помеха, так как независимо от результата необходимо знать о попытке действа. Так же можно сделать это атомарной опрецией и без использования транзакций в яве путем выноса сохраниений через хранимые процедуры. >А как насчет кэширования? нет проблем. кэш первого и второго уровня в hibernate. Плюс никто не запрещает использовать кэш для необновляемых элементов. >А скорость разроботки? С этим нельзя не поспорить. Хотя написать вывод из базы записей в консоль на JDBC будет быстрее, в самом простом случае =) Чем реально может помочь Hibernate, EJB так это связанные объекты и коллекции. |
| Автор: Asal 3.12.2008, 17:48 | ||||||
дык речь идет про отказ от hibernate и использования чистого JDBC вот чего не знаю, с тем спорить не буду Spring
+1, все места сразу не заткнуть, если нет опыта в размере состава из 50 вогонов и маленькой тележки не понял про "атомы"
"С этим нельзя НЕ поспорить" или "с этим нельзя поспорить" |
| Автор: ZMaximI 3.12.2008, 18:06 | ||
Господа, вот теперь я реально запутался ....
Да, это очень дельный и правильный совет. Как я писал выше, движок будет состоять из нескольких модулей, которые, возможно, будут использованы повторно вдальнейшем, именно поэтому и хочется написать максимально близко к правильному ... |
| Автор: Asal 3.12.2008, 18:29 | ||
Лог можно и в СУБД вести Добавлено @ 18:36 Возможно тут может пригодиться EJB надо начинать писать, 150 тыщ раз еще будете переделывать, процесс не быстрый... Когда я начал писать магазин, то архитектура была одна, в процессе понял что был не прав и исправил ее, убрал несколько косяков и т.д. OffTop: у меня используется View: Velocity + jQuery Servlet: Spring DataBase: EJB + JPA + TopLink Security: Spring Security J2EE: GlassFish Searh Engine: Compass (надстройка для Lucene) Гуру поправьте, пож, если в чем-то выбор не правильный |
| Автор: polosatij 3.12.2008, 22:26 |
тебе никто не подскажет, правильный ли твой выбор.. всё будет зависить от прямых рук и затраченного времени ZMaximI, фуф.. чувствуется, что ты пишешь первый проект.. ты уверен, что наберёшь 10.000 человек/ минуту? если ты их наберёшь, наймёшь людей и перепишешь приложение заного, т.к. оно себя в сотни раз окупит |
| Автор: Vasay 3.12.2008, 22:57 |
| Spring ( Spring MVC в частности ) однозначно помехой не будет и снимет часть головной боли. JSF в топку, вещь совершенно не предназначенная для web проектов. Используйте Hibernate, если поймете что где-то узкое место - потюнингуете, перепишите на jdbc. view - я за Velocity. Применение ajax - местами, точно зная, что не во вред. |
| Автор: Foror 4.12.2008, 09:48 |
| Откуда такая уверенность про 10 000 человек? Если хочется просто изучить новые технологии, то посмотри http://tapestry.apache.org, она уже релиз кандидат, плюс интегрируется со spring. Автор утверждает, что фреймворк работает шустрее JSP. Ну и я конечно в ближайшее время выложу как contribute наработки в opensoure со своего проекта getdone.ru. Щас вот только под maven всё переведу |
| Автор: ZMaximI 4.12.2008, 11:49 |
Втом-то и дело, что проект у меня далеко не первый ... Я сейчас веду разработки в нескольких системах, которые юзают около 8 - 10 тыс. пользователей, НО эти системы корпоративные, они крутятся на сумасшедших мощностях, следовательно особыз проблем с производительностью нет. В этих системах я использую и JSF и Spring ..., но, извините повторюсь, я не замечу особого снижения производительности, в силу использования достаточно мощных серверов и каналов связи ... С учетом того, что у меня нет в распоряжении HP BladeSystem , я и решил посоветоваться, есть ли смысл использования этих так называемых "крутых технологий" при больших нагрузках и сравнительно малых мощностях. на крутых технологиях я и сам напишу, только будет ли в этом смысл ... "не все то золото, что блестит" |
| Автор: Foror 4.12.2008, 13:07 |
| Понятно, у меня нет опыта на высоких нагрузках, но в целом я это всё представляю как tapestry5+hibernate, плюс кластер томката для сессий пользователя. Врубить распределенный ehcache для кеширования доменов hibernate, чтобы в базу меньше лазили. Возможно узкие места вынести на PL/SQL. И не знаю понадобится ли делать кластер на postgres... А если у вас в базу будут постоянно лазить, то вам лучше такие вопросы на sql.ru задавать |
| Автор: ZMaximI 4.12.2008, 13:22 |
| Всем спасибо, за ответы. Вопрос снят. |