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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> целесообразность использования J2EE, J2EE для маленькой фирмы 
:(
    Опции темы
Vasay
Дата 11.12.2009, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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




Цитата(serger @  11.12.2009,  11:38 Найти цитируемый пост)
Мне интересно, как всё-таки как базы "масштабируются" в реальной жизни. Те как увеличить производительность только за счёт увеличения количества "машин".



Большинство современных баз данных позволяют объединить несколько отдельных серверов в кластер.

отсюда
Цитата

Кластер - это объединение нескольких серверов в единую систему. 

Обычно кластерное решение применяют для следующих целей:

    * повышение производительности (несколько серверов обрабатывают данные одновременно)
    * интеграция всех баз данных в единую систему (получение консолидированной отчетности)
    * повышенная защита данных (отдельные сервера в кластере могут иметь изоляцию друг от друга)
    * повышение надежности (часть серверов в кластере играет роль дублирующих)




Справедливости ради стоит заметить, что не только DB  умеют объединятся в кластер но и сервера приложений. 






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


Эксперт
***


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

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



Цитата(AntonSaburov @  10.12.2009,  21:53 Найти цитируемый пост)
Мы решали проблему доступа на уровне БД за счет того, что ВСЕ данные получались/менялись ТОЛЬКО через хранимые процедуры.
По сути слой бизнес-логики был вынесен в БД на уровен хранимых процедур.

хотел написать про такой вариант, но потом задумался, а на сколько удобно делать выборки через хранимые процедуры?
нда, если бизнес логика реализована и выполняется в процедурах дб то это правильно, удобно и довольно быстро, но что если вернуть надо не 1 или 0, а целую таблицу значений? как это у вас было реализовано?


Цитата(AntonSaburov @  10.12.2009,  21:53 Найти цитируемый пост)

Как только нужен Интернет-доступ - сразу появится сервер приложений (пусть даже очень просто в виде Томката+Spring).
Правда и в этом случае можно сделать доступ через хранимые процедуры.

можно. но нужно ли делать лишнюю нагрузку на дб, если есть промежуточный слой который достаточно защищён от клиентов что-бы доверить ему управлять доступом?


--------------------
PM   Вверх
serger
Дата 11.12.2009, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

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



Цитата(Vasay @  11.12.2009,  12:13 Найти цитируемый пост)
Большинство современных баз данных позволяют объединить несколько отдельных серверов в кластер.

А сами создавали кластера? Меня практика интересует. Точнее впечатления от использования. А не выписки из рекламных брошюр, уж извините.   smile 

Сталкивался со смешанной логикой (часть на хп, основная часть в приложении) - честно говоря она меня напрягла. Много повторений. Не ясность какая-то, что на чём реализовывать и тп.

Добавлено через 6 минут и 26 секунд
Вот, кстати, читаю: NoSQL


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
Vasay
Дата 11.12.2009, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



v2v
AntonSaburov


А как обстоят дела с правами доступа в случае с хранимыми процедурами?

Т.е.  есть процедура, которая селектит данные из таблицы1 и апдейтит таблицу2. Есть пользователь1 у которго есть доступ к процедуре. Должен ли у пользователя1 быть доступ на селект из таблицы1 и апдейт для таблицы2 ? 




serger
Цитата(serger @  11.12.2009,  13:13 Найти цитируемый пост)
А сами создавали кластера? Меня практика интересует. Точнее впечатления от использования. А не выписки из рекламных брошюр, уж извините


Не, сам не создавал smile  Но видел кластер из 3х MS SQL. По заверениям администраторов DB - такая схема обеспечивала прирост производительности по сравнению с одним сервером примерно в 2 раза (но не уверен, что они это сами измерили, в не взяли данные из рекламной брошюры  smile  ). 


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


Эксперт
***


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

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



Цитата(serger @  11.12.2009,  13:13 Найти цитируемый пост)
Меня практика интересует. Точнее впечатления от использования. А не выписки из рекламных брошюр, уж извините. 

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

Цитата(Vasay @  11.12.2009,  13:39 Найти цитируемый пост)
Т.е.  есть процедура, которая селектит данные из таблицы1 и апдейтит таблицу2. Есть пользователь1 у которго есть доступ к процедуре. Должен ли у пользователя1 быть доступ на селект из таблицы1 и апдейт для таблицы2 ? 

в оракле вроде должен. про mysql боюсь соврать, но тоже наверное должен.

Цитата(serger @  11.12.2009,  13:13 Найти цитируемый пост)
Вот, кстати, читаю: NoSQL 

Цитата

    * горизонтальное масштабирование при больших объемах данных, например как в случае Digg (3 терабайта для зеленых значков, отображаемых, если ваш друг сделал dugg на статье) или Facebook (50 терабайт для поиска по входящим сообщениям) или eBay (2 петабайта в целом)

должен сказать что большинство проблем можно решить правильной архитектурой базы данных, и не нужны никакие NoSQL. Современные реляционные бд с успехом могут справится с указанными объёмами и шустренько работать с ними.


Это сообщение отредактировал(а) v2v - 11.12.2009, 16:56


--------------------
PM   Вверх
serger
Дата 11.12.2009, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

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



Цитата(v2v @  11.12.2009,  14:00 Найти цитируемый пост)
а зря, в какой то мере брошюры отражают суть., и кроме того по ним можно узнать какую именно технологию кластеризации продвигает производитель.
по-поводу практики. да, с помощью кластеризации можно значительно увеличить прирост производительности, путём разнесения разных задач на разные машины кластера. например, пользователи у нас получают доступ к данным с помощью сложных запросов через первую машину, а на второй выполняется постоянное обновление и пересчёт новых входных данных из сети. И пользователи довольны, и обновление работает быстро.

Спасибо.
Нет, ну ПРАВИЛЬНАЯ архитектура решит большинство проблем. Но кто ж её такую делает, да ещё и сразу.. И ещё я всё таки "наивно полагал", что всё-таки система сама должна распределить задачи, между нодами, только успевай их подключать..  smile 


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
DimW
Дата 11.12.2009, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(v2v @  11.12.2009,  12:45 Найти цитируемый пост)
но что если вернуть надо не 1 или 0, а целую таблицу значений? как это у вас было реализовано?

если это действительно нужно, то к примеру у оракл есть коллекции, которые могут выступать в качестве OUT параметра, соответственно для их обработки в оракловом jdbc есть возможности.

Цитата(v2v @  11.12.2009,  12:45 Найти цитируемый пост)
но нужно ли делать лишнюю нагрузку на дб, если есть промежуточный слой который достаточно защищён от клиентов что-бы доверить ему управлять доступом? 

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

Цитата(Vasay @  11.12.2009,  13:39 Найти цитируемый пост)
А как обстоят дела с правами доступа в случае с хранимыми процедурами?

Vasay, вы рассматриваете все немного не стого ракурса.
представьте что процедура это бизнес действие, которая в свою очередь на сервере приложений мапится с каким нить URL, на который и дается прово выполнения пользователю приложения.

что касается запросов данных в процедурах, то этого делать не обязательно, можно использовать sql для получения данных на форме из resultset.

Это сообщение отредактировал(а) DimW - 11.12.2009, 14:22
PM MAIL ICQ   Вверх
Vasay
Дата 11.12.2009, 15:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(DimW @  11.12.2009,  14:18 Найти цитируемый пост)
Vasay, вы рассматриваете все немного с нестого ракурса.


А с какого ракурса я должен все рассматривать? Хочу рассматривать 3х и 2х звенную архитектуру с ракурса защиты от несанкционированного доступа. И считаю, что 3х звенка в этом плане предпочтительней. 


Насчет логика в BD против логики в апликэйшен сервере - тут столько факторов, что спорить по этому поводу бессмысленно.

Например:

1. наличие специалистов.
2. стоимость
3. историческая архитектура системы
и т.д.

Кстати, вопрос стоимости весьма интересен - производительность чего выгодней наращивать в конкретной системе - сервера приложений или сервера DB?


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


Эксперт
***


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

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



Цитата(Vasay @  11.12.2009,  13:39 Найти цитируемый пост)
Есть пользователь1 у которго есть доступ к процедуре. Должен ли у пользователя1 быть доступ на селект из таблицы1 и апдейт для таблицы2 ? 

нет, не должен(в случае с оракл).

Цитата(Vasay @  11.12.2009,  15:04 Найти цитируемый пост)
Хочу рассматривать 3х и 2х звенную архитектуру с ракурса защиты от несанкционированного доступа.

шансы одинаковые, если кто то овладел паролем, то ему ни что не мешает миновать все уровни и работать с БД на прямую.
если говорить о возможности овладивания, то да, в случае с двухзвенкой сделать это гараздо проше.
PM MAIL ICQ   Вверх
v2v
Дата 11.12.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(DimW @  11.12.2009,  14:18 Найти цитируемый пост)
если это действительно нужно, то к примеру у оракл есть коллекции, которые могут выступать в качестве OUT параметра, соответственно для их обработки в оракловом jdbc есть возможности.

эх. Вы прокоментировали фразу выдернутую из контекста. Я не утверждаю что нельзя обойтись только ХП, но мне кажеться это совсем не удобным. Для каждого запроса надо написать свою обёртку в виде Хп. В 2 раза больше кода. Но это ещё куда не шло, а представьте что вам надо извлечь 
не 100 записей, а допустим 100К. Одной хваткой вытянуть из базы не удастся, надо реализовывать постраничнкую подкачку: ждбс для запросов предоставляет стандартный понятный механизм, а как быть с процедурами? Опять таки надо накручивать сложную лишнюю логику выборки без которой можна было бы обойтись.
Но я полностью поддерживаю хп подход. Бизнес-логику которая обновляет/удаляет/вставляет записи в более чем одну табличку надо выполнять на уровне хп.

Цитата(serger @  11.12.2009,  14:17 Найти цитируемый пост)
И ещё я всё таки "наивно полагал", что всё-таки система сама должна распределить задачи, между нодами, только успевай их подключать.. 

да, на практике это оказалось не столь эффективно.


--------------------
PM   Вверх
DimW
Дата 11.12.2009, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(v2v @  11.12.2009,  16:35 Найти цитируемый пост)
Я не утверждаю что нельзя обойтись только ХП, но мне кажеться это совсем не удобным. 

так я тоже, поэтому я чуть ниже об этом сказал smile
Цитата(DimW @  11.12.2009,  14:18 Найти цитируемый пост)

что касается запросов данных в процедурах, то этого делать не обязательно, можно использовать sql для получения данных на форме из resultset.




PM MAIL ICQ   Вверх
Vasay
Дата 11.12.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(DimW @  11.12.2009,  16:26 Найти цитируемый пост)
нет, не должен(в случае с оракл).


Если так, то вместе с возможностью создавать VIEW и назначать права на доступ к ним в теории мы можем обеспечить неплохую защиту данным.


Цитата(DimW @  11.12.2009,  16:26 Найти цитируемый пост)
шансы одинаковые, если кто то овладел паролем, то ему ни что не мешает миновать все уровни и работать с БД на прямую.


Ну, в случае 3х звенной архитектуры сервер с DB может принимать запросы только с ip апликэйшен сервера.
Правда, тут мы имеем другие неприятных моментов связанных с тем, что апп сервер должен иметь доступ ко всей информации с которой он работает, например, нужно не допустить возможность SQL инъекции.

Это сообщение отредактировал(а) Vasay - 11.12.2009, 16:53


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 518
Регистрация: 19.6.2007
Где: Ижевск

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



Вот видео «Проблемы масштабирования интернет-проектов: когда, как и почему возникают, как с ними бороться».
Там в общих чертах про масштабирование. В принципе почти то что мне хотелось узнать. (мало деталей)
http://javatoday.ru/2009/03/siw-2009-video/


--------------------
упс!
PM MAIL WWW Skype GTalk Jabber   Вверх
DimW
Дата 14.12.2009, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(v2v @  11.12.2009,  16:35 Найти цитируемый пост)
Но я полностью поддерживаю хп подход.

v2v, а вы чистым jdbc пользуетесь или используете какой нить фраймворк для этого.
PM MAIL ICQ   Вверх
DimW
Дата 14.12.2009, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(serger @  12.12.2009,  09:01 Найти цитируемый пост)
Вот видео

господа, а с каких пор наличие в приложении асинхронных запросов к апп серв. стало определять его как - "толстое" приожение?
время лекции - [15:50].
досмотрел до середины, на мой взгляд отвратительная лекция, ни о чем...

serger, и чем же скажем вот эта статья, хуже этой гoвнo-лекции?!...

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

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

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


 




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


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

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