powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / WEB интерфейс
25 сообщений из 59, страница 1 из 3
WEB интерфейс
    #34833966
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приходится разрабатывать веб интерфейс. Никогда ранее веб интерфейс при помощи jsp не писал. Архитектура система трёх уровневая (субд, сервер приложений, браузер). С какой стороны ко всему этому подходить? Как решить проблему с блокировкой данных, если пользователь начал редактировать чтото то другой пользователь не должен редактировать теже самые данные. Ка это можно сделать? еслибы интерфейс был гуишный то всё понятно - установил соединение, сделал селект фор апдейт и всё.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34834006
am_sasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чендлер С какой стороны ко всему этому подходить? сторон много, начинать надо с хелло ворлд для веб, а дальше сам разберешься! и читать...читать...читать... а потом уже конкретные вопросы в форум! думую с этой стороны)))
...
Рейтинг: 0 / 0
WEB интерфейс
    #34834935
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала изучить обзорно многообразие существующих решений.
JSP, JSF, Wicket, Spring MVC, Velocity, Struts 2, Tapestry, GWT и пр.
Остановится на одном понравившемся.

SELECT FOR UPDATE, конечно хорошо. Но советую подтянуть теорию в плане оптимистичных, пессимистичных локов и какой когда лучше пользовать.
После этого посмотреть java.util.concurrent и научится применять локи и другие средства синхронизации в коде так же хорого как и в базе.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34835004
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz wrote:

> Для начала изучить обзорно многообразие существующих решений.
> JSP, JSF, Wicket, Spring MVC, Velocity, Struts 2, Tapestry, GWT и пр.
> Остановится на одном понравившемся.

Кстати, а как выбирать? Т.е. как понять, что же лучше для конкретного
применения/разработчика?

--
Алексей
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
WEB интерфейс
    #34835175
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara
> Для начала изучить обзорно многообразие существующих решений.
> JSP, JSF, Wicket, Spring MVC, Velocity, Struts 2, Tapestry, GWT и пр.
> Остановится на одном понравившемся.

Кстати, а как выбирать? Т.е. как понять, что же лучше для конкретного
применения/разработчика?

Универсального рецепта конечно же нет. Надо долго и нудно анализировать требования проекта сравнивая с сильными и слабыми сторонами каждого подхода.
Если бы я программил просто развлечь себя любимого, то взял бы Spring MVC + Freemarker
Если бы я программил с целью прокачать скиллы чтобы найти себе любую работу в скором времени, то JSF.
Если бы я программил портал, то посмотрел был в сторону Wicket.
К Tapestry лично у меня душа больше не лежит. Не смотря на все заверения что этот проект стал лучше.
GWT, классное решение, но надо понимать его узкую специализацию.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34835197
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База это JSP и servlets насколько я понимаю. Читай спецификацию (можно найти где то на сайте sun), написано хоть и по английски но довольно понятно и просто. А потом уже и JSF можно.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34835368
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndronБаза это JSP и servlets насколько я понимаю. Читай спецификацию (можно найти где то на сайте sun), написано хоть и по английски но довольно понятно и просто. А потом уже и JSF можно.
База это сервлеты, JSP и JSF это вот
...
Рейтинг: 0 / 0
WEB интерфейс
    #34837915
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz... JSP и JSF это вот

Netbeans 5.0 и старше + VisualWeb Pack как мне кажется немного решает проблему или я что то не понимаю?
...
Рейтинг: 0 / 0
WEB интерфейс
    #34837934
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я бы даже нарисовал так: чувак в куртке с надписью NetBeans разрезает саперными ножницами цепи :)
...
Рейтинг: 0 / 0
WEB интерфейс
    #34842073
Фотография Java Programmer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczДля начала изучить обзорно многообразие существующих решений.
JSP, JSF, Wicket, Spring MVC, Velocity, Struts 2, Tapestry, GWT и пр.
Остановится на одном понравившемся.

SELECT FOR UPDATE, конечно хорошо. Но советую подтянуть теорию в плане оптимистичных, пессимистичных локов и какой когда лучше пользовать.
После этого посмотреть java.util.concurrent и научится применять локи и другие средства синхронизации в коде так же хорого как и в базе.

я думаю надо начинать со спринговой транзакционности и hibernate
...
Рейтинг: 0 / 0
WEB интерфейс
    #34842505
Чендлер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczкоде так же хорого как и в базе.
База одна, приложений много, поэтому хотелось бы локи делать на уровне базы.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34843281
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чендлер 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
...
Рейтинг: 0 / 0
WEB интерфейс
    #34843293
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stub
Нада за один запрос открыл сессию транзакцию закрыл сессию транзакцию IMHO

Наверно не ясно написал:
в начале запроса открываеться(сессия, транзакция) по окончанию закрываеться IMHO

P.S.
Плохо что не предусмотрена правка постов. :-(
...
Рейтинг: 0 / 0
WEB интерфейс
    #34843333
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StubТоесть одновременно две транзакции выполняться не могут чтоб не нарушить целосность.Вот это новость.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34843405
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pamir StubТоесть одновременно две транзакции выполняться не могут чтоб не нарушить целосность.Вот это новость.

Какой тады от них смысл.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34843473
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stub pamir StubТоесть одновременно две транзакции выполняться не могут чтоб не нарушить целосность.Вот это новость.

Какой тады от них смысл.

Какой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.


P.S. Сто пудов нужна правка постов. :-)
...
Рейтинг: 0 / 0
WEB интерфейс
    #34843499
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди?
Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34843548
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pamir StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди?
Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю.

optimistic concurrency control

если прально понял то это нечто вроде

REQUEST1
TRANSACTION BEGIN
applicationVar=DataRead
TRANSACTION END
RESPONSE applicationVar

REQUEST2
TRANSACTION BEGIN
DataWrite applicationVar //- место колизии
TRANSACTION END
RESPONSE applicationVar
...
Рейтинг: 0 / 0
WEB интерфейс
    #34843608
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stubесли прально понял то это нечто вроде
Вот
...
Рейтинг: 0 / 0
WEB интерфейс
    #34845309
Stub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pamir StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди?
Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю.

http://www.hibernate.org/hib_docs/reference/en/html/transactions.html (Pessimistic Locking)
Сдесь кажысь тоже кое что есть.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34846037
Фотография pamir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stub pamir StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди?
Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю.

http://www.hibernate.org/hib_docs/reference/en/html/transactions.html (Pessimistic Locking)
Сдесь кажысь тоже кое что есть.Судя по названию сайта (по ссылке не ходил) там будет описание уже в терминах хибернейта. Я же говорил о "чистой" базе. А всякие обертки нужно уже смотреть, как они реализованы.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34847602
TiG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pamir Stub pamir StubКакой смысл от транзакций если они одновременно редактируют одни те же данные. Возникнут колизии и много чего не хорошего.Вот для разруливания коллизий и существуют блокировки. Которые бывают пессимистические и оптимистические. И ими рулит обычно программист. Потому как редко бывает, чтобы правили одни и те же данные. Во всяком случае гораздо реже, чем когда множество параллельных транзакций правят разные данные. Что будет, если пустить их по очереди?
Все это применительно к версионникам. У блокировочников (MSSQL) все как-то иначе, но их я не знаю.

http://www.hibernate.org/hib_docs/reference/en/html/transactions.html (Pessimistic Locking)
Сдесь кажысь тоже кое что есть.Судя по названию сайта (по ссылке не ходил) там будет описание уже в терминах хибернейта. Я же говорил о "чистой" базе. А всякие обертки нужно уже смотреть, как они реализованы.
На самом деле не важно на каком уровне реализованы транзакции и блокировки (правда в данном случаев они естественно должны быть в БД). Смысл понятий "оптимистическая" и "пессимистическая блокировка" от этого не меняется.
Любая система расчитанная на сколько-нибудь серьезную нагрузку при параллельной работе и с серьезными требованиями по масштабированию должна по максимуму использовать оптимистическое блокирование. Особенно в долгих транзакциях. Пессимистические блокировки должны использоваться только тогда, когда это реально обосновано.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34847629
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TiGНа самом деле не важно на каком уровне реализованы транзакции и блокировки (правда в данном случаев они естественно должны быть в БД). Смысл понятий "оптимистическая" и "пессимистическая блокировка" от этого не меняется.
Любая система расчитанная на сколько-нибудь серьезную нагрузку при параллельной работе и с серьезными требованиями по масштабированию должна по максимуму использовать оптимистическое блокирование. Особенно в долгих транзакциях. Пессимистические блокировки должны использоваться только тогда, когда это реально обосновано.
Все верно, но стоит так же отметить что вынесение блокировок с уровня базы на уровень приолжения, довольно позитивно влияет на приложение в целом.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34847666
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz TiGНа самом деле не важно на каком уровне реализованы транзакции и блокировки (правда в данном случаев они естественно должны быть в БД). Смысл понятий "оптимистическая" и "пессимистическая блокировка" от этого не меняется.
Любая система расчитанная на сколько-нибудь серьезную нагрузку при параллельной работе и с серьезными требованиями по масштабированию должна по максимуму использовать оптимистическое блокирование. Особенно в долгих транзакциях. Пессимистические блокировки должны использоваться только тогда, когда это реально обосновано.
Все верно, но стоит так же отметить что вынесение блокировок с уровня базы на уровень приолжения, довольно позитивно влияет на приложение в целом .
Тебе не повезло с СУБД

Любое изменение БД влечет за собой некоторое блокирование на каком-то уровне. Когда сюда добавляется попытка организации блокировок на стороне апликейшна (опять же стоит вспоминить о кластере) возникает масса забавных ситуаций.
Распределенный дедлок - что может быть лучше Кто его будет ресолвить?
[нормальная ;)] СУБД сделает фсе сама.
...
Рейтинг: 0 / 0
WEB интерфейс
    #34847726
TiG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm Blazkowicz TiGНа самом деле не важно на каком уровне реализованы транзакции и блокировки (правда в данном случаев они естественно должны быть в БД). Смысл понятий "оптимистическая" и "пессимистическая блокировка" от этого не меняется.
Любая система расчитанная на сколько-нибудь серьезную нагрузку при параллельной работе и с серьезными требованиями по масштабированию должна по максимуму использовать оптимистическое блокирование. Особенно в долгих транзакциях. Пессимистические блокировки должны использоваться только тогда, когда это реально обосновано.
Все верно, но стоит так же отметить что вынесение блокировок с уровня базы на уровень приолжения, довольно позитивно влияет на приложение в целом .
Тебе не повезло с СУБД

Любое изменение БД влечет за собой некоторое блокирование на каком-то уровне. Когда сюда добавляется попытка организации блокировок на стороне апликейшна (опять же стоит вспоминить о кластере) возникает масса забавных ситуаций.
Распределенный дедлок - что может быть лучше Кто его будет ресолвить?
[нормальная ;)] СУБД сделает фсе сама.
угу, причем блокировки в БД при изменении данных никуда ведь не денутся. одна сессия держит другую на уровне БД, а та первую - на стороне приложения вот уж точно никакой deadlock detection ни в БД ни в приложении не поможет
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 1 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / WEB интерфейс
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]