
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
14.05.2007, 00:29:51
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
Доброе время суток! Сильно нужен совет по проектированию большой системы в плане фреймворков, библиотек, протоколов и т.д. Планируется новая архитектура распределенной системы. Распределенность следующая: на одном континенте стоят Oracle и WebLogic , последний в кластере. Далее имеем томкаты: 1 тут же и 2 других зеркала на других континентах (материках можно сказать). Раньше и сейчас пока все это работает так: в Oracle данные +большой слой хранимых процедур . На WebLogic-е ear-аппликуха(точнее самописный фрейворк), имеющая доступ к базе(DataSourc-ы через JNDI), и обрабатывающая бизнес-запросы к данным от этих всех томкатов на основе xml-rpc(soap) протокола . На томкатах разворачиваются war-ники с веб-апликухой на стареньком struts-е (1.2). Веб-страниц очень много, layout самый разнообразный, почти каждая построена на фреймах, широко используется ajax, выводятся большие таблицы данных. Т.е. пользователь на странице запрашивает какие-либо действия, struts-action в результате инициалирует специальный объект: т.н. удаленную команду , конфигурирует ее и запускает. Этим делается soap-запрос на WebLogic , в котором указывается класс этой запрошенной команды и ее параметры, WebLogic снова ее инстанцирует с этими параметрами, запускает. Для каждой такой удаленной команды имеется маппинг на хранимую процедуру oracle-а , та запускается, выдает курсор ответа, - WebLogic читает его и тупо пересылает томкату (в виде soap xml-rpc). Томкат выводит эти данные пользователю. Как видно, спроектированно достаточно никчемно (писалось несколько лет назад в основном индусами). Пользователей много, во многих континентах. Тормоза на каждом шагу. Цепочка WebLogic-ов особо ничего не делает : весь этот самописный фреймворк, который там крутится - лишь выполняет stored proc и самым примитивным и громоздким способом(xml-rpc) отсылает результат в presentation слой томкатов. Начинали писать тогда еще давно какой-то кеш, но в результе ничего не вышло. Цели новой архитектуры: развернуть на кластерном веблоджике большой слой бизнес-процессинга и кеша , на томкаты отправлять данные только после полной их обработки лишь для отображения (В текущем варианте, как можно догадаться, если нужна какая-то дополнительная "объектная" доработка полученного массива данных из базы - это делается на томкатах, т.к. на WebLogic-е ничего кроме этих удаленных команд обращения к базе - не содержится). При этом поддерживать кеш, минимизируя обращения к базе. Мысли по поводу реализации: на веблоджике разворачивать аппликуху на хибернейте , в результате получаем и DAO-слой и кеш. Единственное что - хибер предполагается в основном направлять на stored proc-ы а не просто отдельные запросы маппить, чтобы все же самый первый дата-процессинг выполнять наиболее оптимальным образом - pl/sql-е (Не знаком до такой степени с хибером: как там, нет затруднений маппить его на стор-праги?). Только с кешом еще не решили основную проблему: в базу данные активно подсасываются из других источников, минуя какой либо интерфейс или DAO java слой (ну например, stored proc другого удаленного инстанса Oracle-а через dblink подгружает сюда данные и т.д.): кроме как вешать на такие таблицы триггера, вызывающие java callback процессы сбрасывания кеша дальше в раздумьях пока не ушли... И вот основной вопрос: как бы сообственно все это увязать , что разворачивать на WL в паре с хибером, что на томкатах (там естественно хочется отказаться от старого struts-а в пользу чего более современного и универсального), по какому протоколу обмениваться данными между центральным слоем апп-сервера и разнесенными по нескольких континентам томкатами... Есть мысли в связке с хибером на WL ставить Spring для injection-а, но только он же в основном на обработку http запрос-ответа направлен, а тут только по-сути в качестве injection будет использоваться, надо тогда еще что-то будет искать, т.е. неоптимально уже... Имеются ограничения: java 1.4 и на WL и на tomcat-ах . Но руководство обнадежило, что если на 1.4 совсем ничего вразумительного нельзя будет построить, то будут заморачиваться с переходом на 5-ую, только всей этой бюрократии надо будет эти причины все объективно доказать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.05.2007, 19:06:24
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
Несколько мелких соображений. 1. Если не очень хорошо знаком с hibernate, а требования по производительности высокие - то подумай, точно ли нужно его применять? Пока кажется, что это не самый лучшее место для его использования - плюсы хибернейта практически не при чем, а вот потенциальные минусы можешь получить по полной. Лучше уж сделать нормальный DAO слой, на том же Spring. Заодно и переход можно будет делать постепенный. 2. Кэш можно делать на чем угодно, вплоть до memcached, например, или TreeCache, но лучше будет, если подставить свой фильтр перед любыми способами добавлять данные в БД - а то проблем не оберешься. 3. По протоколу. Ну, если SOAP уже работает, то можно и не трогать. Разве что по производительности XML не проходит - ну тогда нужно свой слой команд делать (т.е. сериализованные вручную Java-объекты, реализующие Command). Возвращать, понятное дело, тоже нормальные сериализованные POJO. 4. Кстати, а зачем привязываться к WebLogic? Как я понимаю, тут кроме servlet-container и кластеризации ничего не нужно (кстати, кластер HA или LB и на чем построен?), так что можно всюду только томкатами и обойтись. Может несколько упростить администрирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
14.05.2007, 23:31:11
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
1. Если есть WebLogic, то почему Hibernate, а не EJB? 2. SOAP, с точки зрения производительности, лучше заменить на RMI (учитывая, что клиент это Java web-приложение) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2007, 00:40:36
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
Kachalov1. Если есть WebLogic, то почему Hibernate, а не EJB? Ну, это-то понятно. Там JDK 1.4, т.е. EJB 2.0 - а в этом случае уж точно лучше Hibernate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2007, 01:28:40
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
да уж с ejb2 там реально работы прибавится... Насчет протокола, да лучше свои команды поверх сериализации делать. С RMI надо будет со стабами разными заморачиваться, rmi сервер держать... На WL планируется весь трудоемкий java процессинг вынести. Несколько томкатов, по каждому на свой континент, видно для того, чтобы http-запросы ближе обрабатывать: типа по xmlrpc с другого материка скачиваем xml-модели, а пользовователю html страницу шлем тут же рядом, с сервера его страны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2007, 07:19:18
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
Если использовать Spring, то у него очень легко использовать протоколы Burlap, Hessian, Http Invocing, можно и RMI. Будет выглядеть примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. на сервере: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. на клиенте: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Насчет hibernate. imho hibernate лучше исползовать когда у вас domain driven design (т.e. когда у вас таблица мапиться на класс), и не нужно объекты собирать из 5-10 таблиц. Работа с хранимыми процедурами появилась, по моему, только в 3.0. Интересно многие ли эту возможность используют? Если все-таки нужно больше контролировать sql выражения, то лучше выбрать Spring Jdbc Template или iBatis, hibernate тут по моему не очень хорошо подходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2007, 12:16:23
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
Т.е. создаем пары интерфейс-имплементер, кладем их в оба конца(и в WL и в tomcat-ы) вместе в spring.jar и необходимыми либами и прописываем конфиги. При этом получается что api взаимодействия будет совершенно одинаковым, как при использовании и Burlap, так и при Hessian, так и при RMI со Spring-ом. Грамотно они все это унифицировали. Спасибо, осталось теперь проанализировать основные моменты отличия этих протоколов и возможно это и будет основным претендентом. По крайней мере, от ограниченности и громоздкости soap-а это точно избавляет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2007, 13:10:11
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
ddockerда уж с ejb2 там реально работы прибавится... - какая работа? создавать компоненты под EJB 2.0 - детский сад :) ddockerС RMI надо будет со стабами разными заморачиваться, rmi сервер держать... - поддержка RMI встроена в сервер приложений (т. е. "держать" RMI-сервер не надо!), а стабы автоматически генерируются при деплое компонентов. ddocker На WL планируется весь трудоемкий java процессинг вынести. Несколько томкатов, по каждому на свой континент, видно для того, чтобы http-запросы ближе обрабатывать: типа по xmlrpc с другого материка скачиваем xml-модели, а пользовователю html страницу шлем тут же рядом, с сервера его страны. - такое ощущение что Java EE для Вас это только сервлеты и JSP. Возможности WebLogic при таком подходе будут использованы примерно на 5% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2007, 17:50:04
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
ddockerНачинали писать тогда еще давно какой-то кеш, но в результе ничего не вышло. Все рано или поздно пытаются изобрести велосипед ;) ddockerПользователей много, во многих континентах. Тормоза на каждом шагу. ddockerПри этом поддерживать кеш, минимизируя обращения к базе. Нестыковка. Тормоза, плятт, везде, а минимизировать хочешь обращения к БД. ddockerИ вот основной вопрос: как бы сообственно все это увязать, что разворачивать на WL в паре с хибером, что на томкатах (там естественно хочется отказаться от старого struts-а в пользу чего более современного и универсального), по какому протоколу обмениваться данными между центральным слоем апп-сервера и разнесенными по нескольких континентам томкатами... Зочем? тормозит же все ! Почему с хибером будет быстрее? для чего нужны томкаты (фсмысле, че они делают)? и где, мать ее, распределенность? обычное 4-звенное приложение. Выкинуть фсе на свалку, поставить APEX. Чем не вариант? А, да. Кэша не будет, чьорт возьми ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.05.2007, 21:42:06
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
блаблаблаВыкинуть фсе на свалку, поставить APEX. Единственно здравая мысль блаблаблаЧем не вариант? А, да. Кэша не будет, чьорт возьми Кэша чего, если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2007, 02:42:38
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
Oracle APEX штука конечно хорошая, все в одном. По форумам посмотришь, ну всем хороша: работает на уровне базы данных, RAD-средство, готовые формы и элементы есть. Народу нравится. Казалось бы, если инфраструктура конторы развернута на базе Оракла, чего бы не использовать? Народ что-то парится с JavaEE, с какими-то серверам приложений, мучается с ORM, с передачей сообщений между серверами, кластеризацией - вот же есть решение. А может быть людям просто жалко времени, потраченного на изучение всего этого, когда большой Оракл сделал такую прикольную штучку и все твои знания оказывается псу под хвост и достаточно знания только PLSQL? Долго искал возможности и недостатки Apex-а, ну вроде всем хорош, народ конечно приводит левые вопросы, можно ли сделать на нем Amazon.com, но это сами понимаете. Жопой чую, ну не может такое решение быть панацеей от всех бед, практика да и может не зря же трехзвенку придумали, хотя на форумах Apex-а говорят, что она как бы нафиг не нужна. PLSQL, при всех его возможностях и работой на уровне базы данных обладает рядом недостатков. Это data centric язык, это язык обработки данных и программировать сложную бизнес-логику на нем будет не то, чтобы тяжело, но просто много. Это язык процедурный, как следствие для сложной бизнес логики порождается огромное количество программных модулей, а это отчасти может привести к тому, что вновь прибывшим разработчикам придется долго разбираться во всем этом. Т.к. язык процедурный, то в нем нет таких вещей как паттерны проектирования, нет объектов тогда, когда они действительно нужны. Все процедуры и функции работают либо с локальными переменными, либо с переменными пакетов, либо с данными, подгружаемыми из таблиц. Есть коллекции, но по функционалу они проигрывают Java Collections Framework. Для прохода по индексам коллекции тоже приходится писать неслабый код. Просто в таких языках как жава, в таких платформах можно иметь объекты уже просчитанные и загруженные в память, можно держать ссылку только на один объект и не париться. Дальше в оракле все выполняется последовательно, нету потоков, job конечно штука хорошая, но требует определенных телодвижений. Сложную бизнес-логику программировать тяжело в силу того, что язык очень простой и для сложных вещей его надо использовать помногу. Ну об этом уже говорилось. Сложности при интеграции с внешними системами, с их API. Сложности в логгинге, программный код засоряется отладочными сообщениями, приходится либо самому писать систему логгинга, а не использовать общедоступную. Язык не лаконичный. В отличие от java не обладает таким большим количеством вспомогательных библиотек. Приходится делать разные костыли, когда надо сынтегрировать с другими системами. Сложности в тестировании бизнес-логики, отсутствие общепризнанных аналогов JUnit. Есть конечно варианты, но писать тесты на них тяжело. Аналогично тяжело задавать данные для тестирования. Насчет кэширования ситуация неясна. Тысячи пользователей, каждый запускает некий сложный и тяжелый отчет, отчет ходит по базе, что-то такое вычисляет в job, т.к. ответ пользователю надо дать сразу, а отчет будет после refresh. Надо продумывать как это все будет работать одновременно, следить за очередностью, чтобы база на подвисла. Как насчет использования apex в качестве складской системы или учетной? К примеру есть оборудование на складе и есть система, позволяющая делать заявки на склад, как она должна быть сделана, чтобы не было проблем? Ну там блокировки, конкуррентный доступ к одним и тем же данным. А когда товаров много? Опять писать костыли для решения этих проблем? Т.е. как Apex ведет себя в многопользовательской системе уровня предприятия, типа ERP или складской программы, в качестве системы которая используется одновременно и по-многу разными пользователями. Блог евангелистов Apex, металинк, AskTom (приложения на Apex) это все системы ориентированные на выдачу контента, это больше read, чем write системы. В этих системах как правило нет конкуррентного доступа к одному и тому же ресурсу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2007, 12:59:31
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
блаблабладля чего нужны томкаты (фсмысле, че они делают)? и где, мать ее, распределенность? обычное 4-звенное приложение. Выкинуть фсе на свалку, поставить APEX. Чем не вариант? А, да. Кэша не будет, чьорт возьми Всмысле где распределенность? "Нацинальные" томкаты нужны для того, чтобы на больших расстояниях пересылать только обмен данными, а вся презентация (html) грузилась пользователю с сервера его страны. Пример, на пальцах: системой пользуются от Японии до Америки, в Америке WL/Oracle, из Тайланда идет запрос, его обрабатывает томкат Тайланда, запрашивает от центрального WL (Америка) данные в виде xml(не самый лучший выбор, просто как пример), где нет ничего лишнего, формирует html страницу, по размеру большую в 10 раз этого полученного xml-ка и шлет тут же рядом в ответ на запрос своего индуса! Логично? APEX - отличная штука, занимает свою заслуженную нишу в специфических случаях, когда с нуля, имея базу, быстро пишется к ней интерфейс. Но лучше все же, как правильно заметили на объектно ориентированной жавке логику-то писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2007, 15:12:49
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
автор"Нацинальные" томкаты нужны для того, чтобы на больших расстояниях пересылать только обмен данными, а вся презентация (html) грузилась пользователю с сервера его страны. Кстати, а насколько много отображаемых страниц (существенно разных)? Не проще ли отображение в браузере сделать в AJAX, пользователям с центрального сервера посылать JSON (компактнее) и не думать о промежуточном уровне? Или это в рамках проекта уже нереально и трогать логику отображения на этих томкатах стоит в последнюю очередь? Просто есть подозрение, что время на пересылку и обратку XMLя может потребоваться не меньше, чем на мгновенную отдачу web-странички из какого-нибудь memcashed? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.05.2007, 19:20:59
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
Антрополог Блин, ну зачем же так писать много букв то? Бизнес-логику на PL/SQL писать можно, и довольно успешно. Проблемы есть, проблем много, и очень даже специфических. Тем не менее, общий вывод довольно правильный. APEX - это довольно простая, легкая и одновременно мощная Web обвязка для Oracle RDBMS. А в остальных случаях - это еще тот вопрос, что же, на самом деле, является костылем, а что нет. -- P.S. На практике же, конечно, все выглядит как в том дурдоме. Когда на J2EE пишут то, что отлично (в разы лучше) работало на PL/SQL, а на PL/SQL пишут то, что нужно было бы (возможно) писать и на J2EE /JSF/JSP. Истины тут нет, и быть не может P.S.S. Озвученные тобой проблемы PL/SQL больше надуманы. Впрочем, у PL/SQL таки есть проблема (навеяно просмотром того же паруса). При некоем количестве объектов (тысяч так несколько), в условиях беспорядочных связей - вся эта кухня становится довольно неповоротливой (в зависимостях и компиляциях). P.S.S.S. При прочих равных - писать на APEX и PL/SQL в разы дешевле и главное - быстрее, чем на чем либо ином (в тех задачах, которые эта связка действительно способна решить). Некоторым (мне) - не в пример приятнее (собственно говоря - язык простой, паттерны - еще проще, можно не задумываться над всей этой мутью аспектов персистентности, сериализации, активации и пассивации, а заниматься делом - прикладной бизнес-логикой, на максимально приблеженном к оной языке (собственно говоря, если брать типичные учётные задачи, то мне откровенно сложно сказать, чего же там (в PL/SQL) не хватает). P.S.S.S.S. А складские системы, как известно, проще писать вон на 1С или на тех же Парусах и иже. Вернее - не писать, а брать за основу 1000+1 уже существующую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
17.05.2007, 19:48:43
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
Мне, кстати, сложно взять и оценить границы осмысленного использования APEX. (Про APEX сужу только по твоим словам, данных очень мало) Сложная бизнес-логика - явно не туда (я писал сложную бизнес-логику на SQL - это где-то в три раза сложнее, чем на C++ и в пять-шесть - чем на Javа). Веб-сайт с сложной логикой отображения или высокой производительностью - тоже не туда. Высокая нагрузка - тоже нужно что-то другое. Активный клиент - тоже лучше нормальную трехзвенку и гомогенную структуру. Т.е. для каких задач таки нужен APEX? Как я понимаю, в основном для отдельных страничек на корпоративных порталах. С одной стороны - рынок большой, с другой - уж очень скучный и в РФ пока не очень востребованный. Или что-то еще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.05.2007, 20:23:43
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
DPHМне, кстати, сложно взять и оценить границы осмысленного использования APEX. (Про APEX сужу только по твоим словам, данных очень мало) Сложная бизнес-логика - явно не туда (я писал сложную бизнес-логику на SQL - это где-то в три раза сложнее, чем на C++ и в пять-шесть - чем на Javа). Веб-сайт с сложной логикой отображения или высокой производительностью - тоже не туда. Высокая нагрузка - тоже нужно что-то другое. именно для таких задач разрабатывался APEX. Погляди на http://apex.oracle.com http://asktom.oracle.com http://metalink.oracle.com (и подумай, какая там нагрузка) АнтропологТ.к. язык процедурный, то в нем нет таких вещей как паттерны проектирования, нет объектов тогда, когда они действительно нужны. Неверный вывод. Паттерны проектирования имеют посредственное к языку отношение (только при реализации). Конечно, для объетко-ориентированных и процедурных они отличаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.05.2007, 00:08:58
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
авторименно для таких задач разрабатывался APEX. Погляди на http://apex.oracle.com http://asktom.oracle.com http://metalink.oracle.com (и подумай, какая там нагрузка) В очевидной документации по APEX ссылок на возможные использования я не нашел. SucessfulStories тоже не вижу. Вообще, судя по документации, я был прав, основное использование APEX - корпоративные порталы. Т.е. простой доступ к не слишком часто изменяющейся информации, правда информации много. Всякая статистика, отчетность, простая бухгалтерия и т.п. на нем, наверно, просто делаются. Сложный Web сайт, где считают каждый килобайт и критично время отклика - это точно не на APEX. Большое количество пишущих и читающих операций (сотни на запись, тысячи на чтение на среднем железе, например) - тоже не на нем. Тот же metalink, с моей точки зрения - как раз не сильно нагруженный сайт - это же практически статический портал, откуда там нагрузка? Да и одновременных активных пользователей, подозреваю, на нем и 1000 не наберется. Да и время отклика на нем маленьким не назовешь. Т.е., возможно, APEX - действительно хороший конкурент связки VB+MS SQL или клепанию сайтов на том же ASP, но не более. Сложные вещи на нем делать явно не стоит. P.S. Вообще, когда идет описание Web-системы и ничего не сказано про управление транзакциями - это сильно... А транзакции-то будут длинные.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.05.2007, 12:29:04
|
|||
|---|---|---|---|
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
DPH авторименно для таких задач разрабатывался APEX. Погляди на http://apex.oracle.com http://asktom.oracle.com http://metalink.oracle.com (и подумай, какая там нагрузка) В очевидной документации по APEX ссылок на возможные использования я не нашел. SucessfulStories тоже не вижу. Чем тебе *.oracle.com не SucessfulStories? А низкое время отклика на metalink - так ты не забывай, что там постоянно гигабайты тянутся патчей, да и часть сайта на JSP крутится (вот уж где тормозная часть, слава богу они её выбрасывают, постепенно). DPH Сложный Web сайт, где считают каждый килобайт и критично время отклика - это точно не на APEX. APEX - это лишь "вершина" айсберга, по сути, уже готовая конфигурация. Базовые же примитивы там - ничем не отличаются от "идеологии" хоть PHP, хоть JSP. DPH Большое количество пишущих и читающих операций (сотни на запись, тысячи на чтение на среднем железе, например) - тоже не на нем. Легко. DPH Тот же metalink, с моей точки зрения - как раз не сильно нагруженный сайт - это же практически статический портал, откуда там нагрузка? Да и одновременных активных пользователей, подозреваю, на нем и 1000 не наберется. Да и время отклика на нем маленьким не назовешь. asktop.oracle.com - приводилась пиковая загрузка порядка 20000 одновременных пользователей. А машинка там заурядная - что то вроде Dual Xeon, или около того. Кроме того, масштабирование там, на самом деле - не органиченное. Ты запросто можешь использовать несколько серверов, хоть RAC-ом, хоть remote link-ом. DPH Вообще, когда идет описание Web-системы и ничего не сказано про управление транзакциями - это сильно... А транзакции-то будут длинные.... Все там сказано, читай внимательнее... В соседний раздел, что ли сходи. А длинные транзакции в Web - это какой то нонсенс, IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.05.2007, 16:25:37
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
grexhide Чем тебе *.oracle.com не SucessfulStories? Интересно увидеть - проект, нагрузку, на каком железе, какой профиль нагрузки, среднее время отклика. e А низкое время отклика на metalink - так ты не забывай, что там постоянно гигабайты тянутся патчей, да и часть сайта на JSP крутится (вот уж где тормозная часть, слава богу они её выбрасывают, постепенно). [/quote] Ну, про JSP ничего не знаю. И не понимаю, как выкачивание патчей может быть связано со временем отклика - это же статический контент, он, по идее, вообще должен идти с других машин и не через APEX. APEX - это лишь "вершина" айсберга, по сути, уже готовая конфигурация. Базовые же примитивы там - ничем не отличаются от "идеологии" хоть PHP, хоть JSP. А вот тут поподробнее. Если сделать трехзвенку - то понятно, как там уменьшать время отклика и делать сложную логику. Но это уже не APEX - который, по сути, двухзвенка, просто в вебе. И каким образом будет быстро работать сложная логика (с сложными, например, синхронизациями по данным) на чистом SQL - мне не очевидно. А требований к такой логике - в куче нагруженных задач. [quot DPH] Большое количество пишущих и читающих операций (сотни на запись, тысячи на чтение на среднем железе, например) - тоже не на нем. Легко. Гм, а как именно - легко? В трехзвенке я могу на двух дешевых серверах получить где-то сто транзакций меняющих и где-то 1000 запросов в секунду на чтение (на одних и тех же данных, понятное дело и с изоляцией данных, транзакциями и т.п.). Мои тесты чистой БД показывают, что только чтение или только запись - можно. Вместе - никак, блокировки мешают. Да, уровень изоляции, понятное дело, RR - как обычно оно и бывает нужно в подобных системах, так что версионность тут только мешать будет. И масштабируемость тут, в общем, горизонтальная примерно на два порядка, дальше уже сложно. e asktop.oracle.com - приводилась пиковая загрузка порядка 20000 одновременных пользователей. А машинка там заурядная - что то вроде Dual Xeon, или около того. [/quote] 20000 запросов в секунду - не поверю :) А 20 000 получивших куку с сеансом - важно только для маркетинга, какую они реально нагрузку дают - не известно. [quote] Кроме того, масштабирование там, на самом деле - не органиченное. Ты запросто можешь использовать несколько серверов, хоть RAC-ом, хоть remote link-ом. [/quote] А как в RAC или remlink получить RR на отдельной записи по всему кластеру? (Это именно вопрос - мне действительно интересно, возможно ли это) Если можешь ссылку кинуть - буду рад, а то это весьма неочевидная задача. [quot] Все там сказано, читай внимательнее... В соседний раздел, что ли сходи. А длинные транзакции в Web - это какой то нонсенс, IMHO. Кинь ссылку, а то искал и не нашел. А по поводу транзакций - так бизнес-транзакции очень часто длинные - так как ждут кучи ввода пользователя. И или их делать руками уже в базе (собирая часть ввода пользователя внутри сеанса, потом уже формируя изменяющую транзакцию и проверяя допустимость в самом конце) или делать таки длинные транзакции. В трехзвенке это можно обойти несколькими хитрыми способами - а вот в БД? Т.е. обойти можно точно так же, но каждая бизнес-транзакция начнет требовать гораздо большего числа чтений и записей, а это почти всегда узкое место системы. Вообще, по опыту, именно БД (операции записи) - являются основным узким местом, все остальное расшивается сравнительно легко. И непонятно, как перенос логики на уровень БД эту задачу может облегчить, скорее наоборот. Впрочем, как я уже говорил, у APEX есть вполне конкретные сферы применения, просто не универсальные. Для корпоративных порталов в качестве замены VB+MSSQL - очень даже неплохо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
25.05.2007, 09:06:37
|
|||
|---|---|---|---|
|
|||
Cовет по архитектуре/фреймворкам больш. распр-системы... |
|||
|
#18+
DPH Гм, а как именно - легко? В трехзвенке я могу на двух дешевых серверах получить где-то сто транзакций меняющих и где-то 1000 запросов в секунду на чтение (на одних и тех же данных, понятное дело и с изоляцией данных, транзакциями и т.п.). Мои тесты чистой БД показывают, что только чтение или только запись - можно. Вместе - никак, блокировки мешают. Простите, а 3-х звенка она как бы транзакции вне базы делает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&mobile=1&tid=2145631]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 289ms |
| total: | 449ms |

| 0 / 0 |
