powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Выбор : 2х или 3х звенка?
8 сообщений из 8, страница 1 из 1
Выбор : 2х или 3х звенка?
    #37073345
student42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер, тема избитая но у меня конкретная задача.

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

Есть некоторая модель данных (см. на слайд№1). В данной задаче принимаются идеальные условия. Собственно задача: Есть некая финансовая система в ней зарегистрированны 300 пользователей. У каждого из пользователей есть личные средства которые учитывает эта система ( анналог с банковскими карточками ) и определен лимит (на текущий год), каждая операция расхода сопровождается определением возможности проведения операции ЛИМИТ>=(расход№1+расход№2...расход№N) и вставкой записи в таблицу "текущие расходы" если таковая возможна. В таблице текущие расходы 2 000 000 записей (данные за 3 года). СУБД Oracle 10g Release 1. Сервер приложений JBOSS. Для 2-х решений (клиент-сервер и 3х звенная архитектура) пользователь выполняет одни и те же операции. Завершением считается завершение операции или получение отказа (для каждого пользователя). Очень ВАЖНО! Данную операцию 300 пользователь выполняют одновременно ( к примеру в 23:59:59 ). Необходимо определить при какой архитектуре (СЛАЙД№2 или СЛАЙД№3) данная задача выполниться быстрее?

Извиняюсь что много букв. Заранее благодарю за ваши коменты.
...
Рейтинг: 0 / 0
Выбор : 2х или 3х звенка?
    #37073361
rilio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача действительно интересная, но пока мы не узнаем, чем же там занимается JBoss, она по сути сводится к следующей:
"Программа может общаться с БД напрямую, а может через промежуточную программу. Как быстрее?". Ну и ответ: "Напрямую быстрее, если только промежуточная программа не подготавливает данные предварительно (кеширует, например)".
Тем более, что Вы говорите о таблицах и полях, а не об объектах и javabeans.
...
Рейтинг: 0 / 0
Выбор : 2х или 3х звенка?
    #37074206
student42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rilioЗадача действительно интересная, но пока мы не узнаем, чем же там занимается JBoss, она по сути сводится к следующей:
"Программа может общаться с БД напрямую, а может через промежуточную программу. Как быстрее?". Ну и ответ: "Напрямую быстрее, если только промежуточная программа не подготавливает данные предварительно (кеширует, например)".
Тем более, что Вы говорите о таблицах и полях, а не об объектах и javabeans.

Вы безусловно правы. Я попытался подойти к определению архитекруры абстрактно - видимо это в корне неверно! Не могу провести анализ при какой архитектуре будет более производительно!? для данной задачи.
...
Рейтинг: 0 / 0
Выбор : 2х или 3х звенка?
    #37074247
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student42Я попытался подойти к определению архитекруры абстрактно - видимо это в корне неверно! Не могу провести анализ при какой архитектуре будет более производительно!? для данной задачи.Первое - кешировать тут нечего, у каждого пользователя свои данные.

Второе - нужно определиться, что называется "быстрее" (т.е. когда операция считается законченной - когда данные положат в СУБД или когда пользователь получит ответ).

Третье - когда пользователь получает ответ - когда данные положат в СУБД или когда данные положат в сервер приложений?

Вот исходя из ответов на эти вопросы всё будет понятно.

Как правило, для таких приложаний пользователь получает ответ, когда данные сохранены в СУБД; поэтому с учётом того, что общих кешируемых данных нет, для данной конкретной задачи 2-х звенка быстрее, т.к. мы просто исключим лишнее звено.
...
Рейтинг: 0 / 0
Выбор : 2х или 3х звенка?
    #37075217
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что значит "одновременно"?
Транзакции на заблокированных данных все равно пойдут последовательно (да и физически там будет последовательное выполнение). Насколько существенна эта "одновременность"? Или просто имеется в виду, что пиковая нагрузка - около 300 сложных транзакций в секунду?

Но на таких объемах данных - все равно от архитектуры мало что зависит. По идее, трехзвенка в среднем лучше масштабируется, но нагрузка нужна на несколько порядков выше, нежели та, что есть. Все равно все будет упираться в количество оперативки и дисковую корзину у СУБД. А, ну еще если JPA в JBoss как-нибудь особо плохо настроить, то проблемы будут.
...
Рейтинг: 0 / 0
Выбор : 2х или 3х звенка?
    #37075410
itnovice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student42,

2-х заенка или 3-х звенка?

Конечно 2-х звенка будет работать быстрее, как написали выше, банально, исключается одно звено. Но смотрите, где будет храниться бизнес логика? В БД, при помощи хранимок? Не будет ли это слишком перегружать БД? Или BLL будет вынесен в виде "толстого клиента"?

Мое скромное мнение, если необходима максимальная скорость выполнения + BLL приложения не будет меняться (или очень редко) тогда толстый клиент, а БД нужна только для выбора данных.

А если же BLL очень большой + постоянно меняться бизнес правила, тогда без сервера приложений никуда. В крайнем случае, если сервак долго думает можно создать кластер.
...
Рейтинг: 0 / 0
Выбор : 2х или 3х звенка?
    #37076860
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
student42Необходимо определить при какой архитектуре (СЛАЙД№2 или СЛАЙД№3) данная задача выполниться быстрее?
Тут вопрос не столько в архитектуре, сколько в оптимизации. Я бы сказал так: при использовании эквивалентных методов оптимизации время отклика в обоих случаях будет достаточно малым, чтобы было глупо думать быстрее/медленнее.

На пальцах: если речь идёт о том, чтобы выполнить запрос вида "лимит за текущий год минус траты за текущий год", то на выполнение трёхсот таких запросов уйдёт в общем одинаковое время вне зависимости от того, приходят они с трёхсот клиентов или через пару "прокси". Application Server может закэшировать "текущий остаток клиента" и быстро отвечать на такого рода запросы, обычно адепты трёхзвенок очень этим гордятся. СУБД в общем ровно так же может его закэшировать, будет в целом так же быстро.

Для толкового разработчика трёхзвенка в принципе даёт некоторые возможности оптимизации, в двухзвенке отсутствующие либо затруднительные. Но они достаточно тонкие, и в данной задаче никак не проявляются.
...
Рейтинг: 0 / 0
Выбор : 2х или 3х звенка?
    #37086518
student42
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо за обсуждение...ответ получил хороший...и в голове вроде как то все улеглось...спасибо.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Выбор : 2х или 3х звенка?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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