|
|
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Приходится разрабатывать веб интерфейс. Никогда ранее веб интерфейс при помощи jsp не писал. Архитектура система трёх уровневая (субд, сервер приложений, браузер). С какой стороны ко всему этому подходить? Как решить проблему с блокировкой данных, если пользователь начал редактировать чтото то другой пользователь не должен редактировать теже самые данные. Ка это можно сделать? еслибы интерфейс был гуишный то всё понятно - установил соединение, сделал селект фор апдейт и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 11:40:21 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Чендлер С какой стороны ко всему этому подходить? сторон много, начинать надо с хелло ворлд для веб, а дальше сам разберешься! и читать...читать...читать... а потом уже конкретные вопросы в форум! думую с этой стороны))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 11:49:42 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Для начала изучить обзорно многообразие существующих решений. JSP, JSF, Wicket, Spring MVC, Velocity, Struts 2, Tapestry, GWT и пр. Остановится на одном понравившемся. SELECT FOR UPDATE, конечно хорошо. Но советую подтянуть теорию в плане оптимистичных, пессимистичных локов и какой когда лучше пользовать. После этого посмотреть java.util.concurrent и научится применять локи и другие средства синхронизации в коде так же хорого как и в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 14:53:25 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Blazkowicz wrote: > Для начала изучить обзорно многообразие существующих решений. > JSP, JSF, Wicket, Spring MVC, Velocity, Struts 2, Tapestry, GWT и пр. > Остановится на одном понравившемся. Кстати, а как выбирать? Т.е. как понять, что же лучше для конкретного применения/разработчика? -- Алексей Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:08:27 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
GKS_Samara > Для начала изучить обзорно многообразие существующих решений. > JSP, JSF, Wicket, Spring MVC, Velocity, Struts 2, Tapestry, GWT и пр. > Остановится на одном понравившемся. Кстати, а как выбирать? Т.е. как понять, что же лучше для конкретного применения/разработчика? Универсального рецепта конечно же нет. Надо долго и нудно анализировать требования проекта сравнивая с сильными и слабыми сторонами каждого подхода. Если бы я программил просто развлечь себя любимого, то взял бы Spring MVC + Freemarker Если бы я программил с целью прокачать скиллы чтобы найти себе любую работу в скором времени, то JSF. Если бы я программил портал, то посмотрел был в сторону Wicket. К Tapestry лично у меня душа больше не лежит. Не смотря на все заверения что этот проект стал лучше. GWT, классное решение, но надо понимать его узкую специализацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:43:46 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
База это JSP и servlets насколько я понимаю. Читай спецификацию (можно найти где то на сайте sun), написано хоть и по английски но довольно понятно и просто. А потом уже и JSF можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 15:49:02 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
AndronБаза это JSP и servlets насколько я понимаю. Читай спецификацию (можно найти где то на сайте sun), написано хоть и по английски но довольно понятно и просто. А потом уже и JSF можно. База это сервлеты, JSP и JSF это вот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2007, 16:30:21 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Blazkowicz... JSP и JSF это вот Netbeans 5.0 и старше + VisualWeb Pack как мне кажется немного решает проблему или я что то не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 11:47:58 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Я бы даже нарисовал так: чувак в куртке с надписью NetBeans разрезает саперными ножницами цепи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2007, 11:53:20 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
BlazkowiczДля начала изучить обзорно многообразие существующих решений. JSP, JSF, Wicket, Spring MVC, Velocity, Struts 2, Tapestry, GWT и пр. Остановится на одном понравившемся. SELECT FOR UPDATE, конечно хорошо. Но советую подтянуть теорию в плане оптимистичных, пессимистичных локов и какой когда лучше пользовать. После этого посмотреть java.util.concurrent и научится применять локи и другие средства синхронизации в коде так же хорого как и в базе. я думаю надо начинать со спринговой транзакционности и hibernate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 19:04:52 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Blazkowiczкоде так же хорого как и в базе. База одна, приложений много, поэтому хотелось бы локи делать на уровне базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 04:30:12 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Чендлер Blazkowiczкоде так же хорого как и в базе. База одна, приложений много, поэтому хотелось бы локи делать на уровне базы. Наскока я понимаю база в локах не нуждается. Каждое обращение к базе происходит из набора запросов обьедененое в транзакцию. Каждая транзакция с точки зрения выполнения являеться унарной. Тоесть одновременно две транзакции выполняться не могут чтоб не нарушить целосность. Существует 4 уровневая система изоляций транзакций(ACID). Сдесь уже нада сматреть какая лучше подходит. Нада за один запрос открыл сессию транзакцию закрыл сессию транзакцию IMHO У spring-а есть утила которые сама занимаеться сессиями и транзакциями. Если что все шишки на разработчиков Spring :-) http://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D0%BD%D0%B7%D0%B0%D0%BA%D1%86%D0%B8%D1%8F ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 12:11:02 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Stub Нада за один запрос открыл сессию транзакцию закрыл сессию транзакцию IMHO Наверно не ясно написал: в начале запроса открываеться(сессия, транзакция) по окончанию закрываеться IMHO P.S. Плохо что не предусмотрена правка постов. :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 12:13:26 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
StubТоесть одновременно две транзакции выполняться не могут чтоб не нарушить целосность.Вот это новость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 12:20:42 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
pamir StubТоесть одновременно две транзакции выполняться не могут чтоб не нарушить целосность.Вот это новость. Какой тады от них смысл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 12:36:47 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Stub pamir StubТоесть одновременно две транзакции выполняться не могут чтоб не нарушить целосность.Вот это новость. Какой тады от них смысл. Какой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего. P.S. Сто пудов нужна правка постов. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 12:50:31 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди? Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 12:56:45 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
pamir StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди? Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю. optimistic concurrency control если прально понял то это нечто вроде REQUEST1 TRANSACTION BEGIN applicationVar=DataRead TRANSACTION END RESPONSE applicationVar REQUEST2 TRANSACTION BEGIN DataWrite applicationVar //- место колизии TRANSACTION END RESPONSE applicationVar ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 13:10:38 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Stubесли прально понял то это нечто вроде Вот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 13:23:39 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
pamir StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди? Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю. http://www.hibernate.org/hib_docs/reference/en/html/transactions.html (Pessimistic Locking) Сдесь кажысь тоже кое что есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 01:16:05 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Stub pamir StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди? Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю. http://www.hibernate.org/hib_docs/reference/en/html/transactions.html (Pessimistic Locking) Сдесь кажысь тоже кое что есть.Судя по названию сайта (по ссылке не ходил) там будет описание уже в терминах хибернейта. Я же говорил о "чистой" базе. А всякие обертки нужно уже смотреть, как они реализованы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 11:20:44 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
pamir Stub pamir StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди? Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю. http://www.hibernate.org/hib_docs/reference/en/html/transactions.html (Pessimistic Locking) Сдесь кажысь тоже кое что есть.Судя по названию сайта (по ссылке не ходил) там будет описание уже в терминах хибернейта. Я же говорил о "чистой" базе. А всякие обертки нужно уже смотреть, как они реализованы. На самом деле не важно на каком уровне реализованы транзакции и блокировки (правда в данном случаев они естественно должны быть в БД). Смысл понятий "оптимистическая" и "пессимистическая блокировка" от этого не меняется. Любая система расчитанная на сколько-нибудь серьезную нагрузку при параллельной работе и с серьезными требованиями по масштабированию должна по максимуму использовать оптимистическое блокирование. Особенно в долгих транзакциях. Пессимистические блокировки должны использоваться только тогда, когда это реально обосновано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 17:31:29 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
TiGНа самом деле не важно на каком уровне реализованы транзакции и блокировки (правда в данном случаев они естественно должны быть в БД). Смысл понятий "оптимистическая" и "пессимистическая блокировка" от этого не меняется. Любая система расчитанная на сколько-нибудь серьезную нагрузку при параллельной работе и с серьезными требованиями по масштабированию должна по максимуму использовать оптимистическое блокирование. Особенно в долгих транзакциях. Пессимистические блокировки должны использоваться только тогда, когда это реально обосновано. Все верно, но стоит так же отметить что вынесение блокировок с уровня базы на уровень приолжения, довольно позитивно влияет на приложение в целом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 17:41:42 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Blazkowicz TiGНа самом деле не важно на каком уровне реализованы транзакции и блокировки (правда в данном случаев они естественно должны быть в БД). Смысл понятий "оптимистическая" и "пессимистическая блокировка" от этого не меняется. Любая система расчитанная на сколько-нибудь серьезную нагрузку при параллельной работе и с серьезными требованиями по масштабированию должна по максимуму использовать оптимистическое блокирование. Особенно в долгих транзакциях. Пессимистические блокировки должны использоваться только тогда, когда это реально обосновано. Все верно, но стоит так же отметить что вынесение блокировок с уровня базы на уровень приолжения, довольно позитивно влияет на приложение в целом . Тебе не повезло с СУБД Любое изменение БД влечет за собой некоторое блокирование на каком-то уровне. Когда сюда добавляется попытка организации блокировок на стороне апликейшна (опять же стоит вспоминить о кластере) возникает масса забавных ситуаций. Распределенный дедлок - что может быть лучше Кто его будет ресолвить? [нормальная ;)] СУБД сделает фсе сама. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 17:50:05 |
|
||
|
WEB интерфейс
|
|||
|---|---|---|---|
|
#18+
Timm Blazkowicz TiGНа самом деле не важно на каком уровне реализованы транзакции и блокировки (правда в данном случаев они естественно должны быть в БД). Смысл понятий "оптимистическая" и "пессимистическая блокировка" от этого не меняется. Любая система расчитанная на сколько-нибудь серьезную нагрузку при параллельной работе и с серьезными требованиями по масштабированию должна по максимуму использовать оптимистическое блокирование. Особенно в долгих транзакциях. Пессимистические блокировки должны использоваться только тогда, когда это реально обосновано. Все верно, но стоит так же отметить что вынесение блокировок с уровня базы на уровень приолжения, довольно позитивно влияет на приложение в целом . Тебе не повезло с СУБД Любое изменение БД влечет за собой некоторое блокирование на каком-то уровне. Когда сюда добавляется попытка организации блокировок на стороне апликейшна (опять же стоит вспоминить о кластере) возникает масса забавных ситуаций. Распределенный дедлок - что может быть лучше Кто его будет ресолвить? [нормальная ;)] СУБД сделает фсе сама. угу, причем блокировки в БД при изменении данных никуда ведь не денутся. одна сессия держит другую на уровне БД, а та первую - на стороне приложения вот уж точно никакой deadlock detection ни в БД ни в приложении не поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2007, 18:03:41 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=59&tid=2144411]: |
0ms |
get settings: |
18ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
52ms |
get topic data: |
18ms |
get forum data: |
4ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 359ms |
| total: | 553ms |

| 0 / 0 |
