|
|
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomjustforsqlruУважаемый svenom как в ejb 2.1 реализуется DI ? Приведите плиз пример.В EJB2.1 использутеся подход Service Locator, а не Dependency Injection. Можете пояснить как ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 18:22:34 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
justforsqlruМожете пояснить как ?1) Открыть гугл, вбить туда "Inversion of Control Service Locator", вкурить 2) Открыть гугл, вбить туда "EJB 2.1 example", вкурить, найти пример использования паттерна Service Locator. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 18:25:45 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomjustforsqlruМожете пояснить как ?1) Открыть гугл, вбить туда "Inversion of Control Service Locator", вкурить 2) Открыть гугл, вбить туда "EJB 2.1 example", вкурить, найти пример использования паттерна Service Locator. Покурил посмотрел инициализацию полей через Service Location (банальная фактори). Но где подобное в EJB 2.1 расскажите пожалуйста уважаемый svenom ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 23:02:26 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. Вторая строка это классический сервис локатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 23:09:12 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
justforsqlruПокурил посмотрел инициализацию полей через Service Location ( банальная фактори )Типичное заблуждение. Factory это creational pattern, он создает объекты. Service Locator в общем случае возвращает объект из некоего контекста. Он его не создает, и это не creational pattern. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 23:10:55 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenom Код: java 1. 2. Вторая строка это классический сервис локатор. :) а в 3-м ejb нет jndi ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2011, 23:35:07 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
justforsqlruа в 3-м ejb нет jndi ?Разве я где-то это сказал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 00:06:12 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomНу да. EJB тоже IoC. Вы это к чему говорите?к вот этому смешному коду применения IoC - код будет забавен что на Spring что на EJB. Код: java 1. 2. 3. 4. 5. 6. svenomГде и кто говорил про создание EJB через new? вы показали попытку создать spring bean через new. я провел доступную аналогию. svenomОчередная глупость. Вы мне только что привели пример - Terracota. Мы говорим не про кластеры на основе самих апп серверов, а про сторонние кластеры. Вопрос вам - если я могу настроить Терракоту через Spring, что мне помешает сделать это без него? Да, будет геморенее, тут спору нет. То есть вы путаете кластеры на основе апп серверов - которые мы создаем через конфигурацию инстансов этих серверов, и 3rd-party кластеры, которые к апп серверу вообще никакого отношения не имеют.а вы не задумывались, что сами АппСервера это 3rd-party для вашей компании? мне без разницы от какой 3rd-party будет логотип на том наборе компонент из которых я строю систему. я оцениваю - затраты времени, затраты на лицензии и результат в виде как самого продукта, так и архитектурных возможностей. кластера на JavaEE строятся быстрее, но не такие гибкие. кластера через terracotta (к примеру)подобные реализации возможно будут строиться дольше, но обладать более гибкими политиками репликации, а значит возможность масштабироваться у них выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 01:16:18 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomVoDAHibernate - конечно пропишу. Логгеры несколько иные по природе, потому их инстанциируют напрямую без привязки к контейнеру.То есть вы отказыаетесь от вашего утверждения, что именно Spring определяет, какие классы/либы грузить, а какие нет?вы будете к словам цепляться или общую мысль выделять? в подавляющем большинстве случаем именно Spring IoC определяет какие именно функции из ареала Spring * запускать. Сами же подсистемы Spring * уже поднимают и конфигурируют внешние подсистемы. Таким образом если приложению нужен Spring JMS реализованные через внешнюю зависимость, то Spring JMS и внешняя зависимость будут загружены. Если же приложению Spring JMS и внешняя зависимость не нужны, при учете того, что Spring используется адекватно(*), то ни сама прослойка Spring JMS ни внешняя зависимость не будут загружены. (*) адекватно в этом вопросе означает что используются механизмы предложенные Spring IoC, напрямую же через new объекты не создаются. Для сравнения - даже если JavaEE приложению не нужна подсистема JMS она будет запущена вне зависимости от настроек приложения. svenomVoDAПри этом даже если приложение не использует JMS от сервера. Совсем не использует. Даже в этом случае подсистема JMS все равно будет загружена.И? Какое следствие? Да, JMS скорее всего будет загружен где-то в верхних класслоадерах WebSphere, так как это часть инфраструктуры.Аве!!! наконец то дошли И? - дополнительные затраты ресурсов. в том числе времени загрузки. время загрузки важно для разработчиков, т.к. не всегда интересно ждать по 5-10 минут на загрузку АппСервера там, где Tomcat взлетает за минуту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 01:26:28 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomVoDA2) Определяемся с реализацией JavaEE сервера если выбран JavaEE или реализацией web-container если в качестве основного контейнера выбран SpringSpring это не контейнер в понятиях Java контейнеров. Spring это реализация DI. Вы никак не можете это понять.м... ок. ваше мнение Spring не контейнер. Инженеры Interface21 (еще до смены имени на SpringSources) называли и продолжают именовать Spring именно контейнером. По крайней мере Spring IoC container. Я придерживаюсь официальной политики. svenomVoDAа с чем вы будете сравнивать Spring WebServices? а Spring Timers? а Spring MVC? тут явно не обойтись одними EJB.Эмм, а зчем мне их с чем-то сравнивать? Это не основа спринга, а лишь вспомогательные классы. А Spring MVC и вовсе преследует иные цели, чем DI - это реализация паттерна MVC.э... так вы спрингом называете IoC? под названием Spring я подразумевал (и считал, что меня понимают) всю совокупность проектов реализованных в рамках Spring Framework. IoC лишь малая часть. И да если рассматривать только IoC половина предыдущих высказываний кажется бредовыми. Давайте договоримся, что под названием Spring рассматриваем весь зонтик Spring * технологий, а IoC будем именовать Spring IoC. Помня, что Spring IoC без остальных технологий Spring * - это бесполезная часть. ---- - Just Do IT! (c) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 01:26:52 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Итог дискуссии - идеи разделились на две группы: которые просто просмотрели и по которым вышел спор. Без спора прошли следующие идеи: CDI хотя, возможно, CDI больше наследник Guice, чем Spring возможность конфигурировать сервлет через аннотацию, не прописывая в web.xml появление стандартного механизма JAAS-авторизации из кода приложения. Раньше приходилось городить вендор-специфичные реалмы для каждого производителя и адский гов** код для проброса аутентификационных данных в реалм и получения ответа от него. Спорные мысли, которые я слегка перефразировал, чтобы уменьшить спорность момента: появление профилей как реакция на то, что Спринг может подниматься только с требуемым набором технологий ( ибо не требуемые технологии не вносятся ни в maven ни в applicationContext ), а JavaEE всегда запускал все-что-только-можно, даже если большая часть технологий не применяется. возможность удобно использовать JPA внутри WAR, включая декларативное использование транзакций и иные бонусы предлагаемые EJB lite . мое мнение что инженеры Sun и других компаний, которые эти технологии перенесли в JavaEE, подсматривали на реализацию от Spring. ибо слишком уж много совпадений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 01:34:03 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Собсно не совсем понимаю смысл использования IoC. Описываем класс. Потом в xml файле описываем бин ссылающийся на наш класс. В контейнере создается экземпляр. Далее получаем контекст ApplicationContext context = new ClassPathXmlApplicationContext(... Далее из конекста получаем наш экземпляр context.getBean(... Аналогично можно было бы напрямую создать экземпляр класса через new. Я продвинулся в понимании дальше, чем вы, но тоже не смог найти в Spring полезной функциональности. Сам принцип DI я, как мне кажется, понял. Попробую объяснить его на следующем примере. Допустим, нам надо написать функцию, которая проводит какие-либо вычисления и присылает результаты на почту. Простая реализация будет выглядеть так: Код: java 1. 2. 3. 4. Теперь, если нам иногда надо отправлять результаты на email, а иногда печатать на принтере, то придется обобщать: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. Второй вариант написан в DI стиле, первый в обычном. Второй сложнее, но более гибкий. DI делает код более слабо связанным, и его легче тестировать - например первую реализацию функции doStuff невозможно протестировать, а вторую можно - надо передать ей mock, реализующий интерфейс ResultReporter. Наверное, DI это полезный подход, хотя, как мне кажется, в Java мире им злоупотребляют. Если мы написали какое-то количество классов в стиле DI, то чтобы получить работающую программу, необходимо 1)Создать экземпляры всех классов. 2)Связать их друг с другом, примерно так же, как doStuff связывается с ResultReporter. Штука, которая это делает, называется IoC контейнером. Дальше встает вопрос, нужна ли какая-то специальная библиотека, которая служила бы IoC контейнером? Мое мнение, что нет. Самодельный контейнер выглядит примерно так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. На мой взгляд, преимущества такого подхода по сравнению со спринг xml-конфигурацией очевидны: 1)Соответствие типов проверяется java-компилятором. 2)При создании классов у нас есть целиком язык Java, а не ограниченный xml-язык спринг конфигураций. 3)Не надо тянуть большие дополнительные библиотеки. В Spring есть Spring AOP, с помощью которого можно разом запроксировать много объектов. Но я не знаю, как это можно было бы применить. В документации говорится, что Spring AOP используется в первую очередь для транзакций, но мне это кажется надуманным - все можно сделать проще. Вообще Spring у меня оставил такое впечатление: там нет настоящих технологий, только обертки над существующими API. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 04:08:10 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAк вот этому смешному коду применения IoC - код будет забавен что на Spring что на EJB.То есть вы не смогли осознать, что в приложении не все происходит через DI, особенно в сторонних библиотеках? Мой пример был призван продемонстрировать именно это. VoDAвы показали попытку создать spring bean через new. я провел доступную аналогию.Ничего подобного. Если вы внимательно и вдумчиво посмотрите на мой пример - 11757590 , то вы увидите что у меня есть два класса и только один бин, и никакие спринговые бины через new я не создавал. VoDAкластера на JavaEE строятся быстрее, но не такие гибкие. кластера через terracotta (к примеру)подобные реализации возможно будут строиться дольше, но обладать более гибкими политиками репликации, а значит возможность масштабироваться у них выше.0_о Тааак, вижу тотальное непонимание того, что подразумевается под термином "кластер" и какие типы кластеров бывают. Вы опять сравниваете несравнимое. То, что вы называете "кластера на JavaEE" (я так понимаю, что это кластера из AppServer'ов) решают широкий спектр задач - от распределения нагрузки на веб-сервер, до кэширования сесссий. Кластера Terracota решают ограниченный спектр задач, как-то кеширование веб-сессий и хранения большого объема данных где-то вне AppServer'а. Если у вас стоит сервер приложений и на него вдруг навалилось 100500 миллионов пользователей, то никакая терракота вас не спасет, поможет только кластер на уровне web-сервера с лоад-балансером. Более того, некоторые фичи терракоты, например WebSessions, вообще не имеют смысла без вышележащего кластера на основе AppServer/WebServer, ибо какой смысл кешировать сессию, если у нее только один "потребитель"? То есть вы опять сравниваете несравнимые вещи. И вот вопрос еще - а в чем проявляется "негибкость политик репликации" у кластеров на основе AppServer'ов? VoDAв подавляющем большинстве случаем именно Spring IoC определяет какие именно функции из ареала Spring * запускать. Сами же подсистемы Spring * уже поднимают и конфигурируют внешние подсистемы. Таким образом если приложению нужен Spring JMS реализованные через внешнюю зависимость, то Spring JMS и внешняя зависимость будут загружены. Если же приложению Spring JMS и внешняя зависимость не нужны, при учете того, что Spring используется адекватно(*), то ни сама прослойка Spring JMS ни внешняя зависимость не будут загружены.Это звучит уже более вменяемо, значит не зря я тут время трачу Хотя глупости все еще присутствуют, например фраза: авторпри учете того, что Spring используется адекватно(*), то ни сама прослойка Spring JMS ни внешняя зависимость не будут загружены...лишена смысла, ибо если приложению не нужен JMS, то он не будет загружен (приложением) хоть там есть спринг, хоть нет. Я просто вам напомню ваши слова (только вот почему вы называете это "придиркой", я не понимаю - скажи вы такое на собеседовании, вам бы в лицо рассмеялись). 11753879 : VoDAСпринг заметно быстрее поднимает приложение просто потому, что грузит ровно то, что требуется и не более.Не спринг определяет что грузить, а что нет, а разработчик. 11757407 : VoDAjar ники конечно maven закидывает. только если конфигурация компонента не прописана в applicationContext, то и компонент не грузится самим Спрингом - к нему просто нет обращений.Спринг не грузит никакие компоненты, компоненты загружаются класслоадерами. Что грузить, а что нет, определяется внутренними зависимостями приложения, а не контекстом. авторСпринг (из applicationContext) вытаскивает знания что нужно грузить.Ну тут без комментариев - бред сивой кобылы. VoDAм... ок. ваше мнение Spring не контейнер. Инженеры Interface21 (еще до смены имени на SpringSources) называли и продолжают именовать Spring именно контейнером. По крайней мере Spring IoC container. Я придерживаюсь официальной политики.Вот ваша фраза: VoDA2) Определяемся с реализацией JavaEE сервера если выбран JavaEE или реализацией web-container если в качестве основного контейнера выбран SpringВы можете мне пояснить, что значит выражение "основной контейнер"? Какие еще "основные контейнеры" вы знаете? VoDAПомня, что Spring IoC без остальных технологий Spring * - это бесполезная часть.Очень смело. На самом деле Spring IoC это основная и самая главная часть. Использовать или нет все остальное - зависит от требований. Spring MVC это веб-фреймворк, он к разговору вообще отношения не имеет. У меня может быть весь каркас приложения собран на основе Спринга, а веб реализован на чем-то отличном от SpringMVC, нисколько не уменьшит ценность Spring IoC. Далее, Spring WebService - имеет крайне узкую область применимости. Во-первых, он поддерживает только bottom-up подход, во-вторых его использование на серверах приложений, которые уже имеют свою реализацию движка веб-сервисов, лишено смысла. Но на Томкате пойдет на ура, факт. Далее, Spring Timers - ну я вообще не понимаю, зачем вы его привели. А если у меня нет в приложении никаких таймеров, что Spring IoC становится бесполезным? Вывод: Spring IoC это самая важная и самая главная часть из всего Spring'a. Все остальное имеет гораздо более узкую область применения, а потому второстепенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 09:21:20 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪВторой вариант написан в DI стиле, первый в обычном. Второй сложнее, но более гибкий. DI делает код более слабо связанным, и его легче тестировать - например первую реализацию функции doStuff невозможно протестировать, а вторую можно - надо передать ей mock, реализующий интерфейс ResultReporter. Наверное, DI это полезный подход, хотя, как мне кажется, в Java мире им злоупотребляют.Абсолютно неверно. В вашем примере есть такие понятия, как интерфейс и реализации, но нет DI в принципе. Йуный джавистЪЕсли мы написали какое-то количество классов в стиле DIКласс не может быть написан "в стиле DI". DI всегда вынесен за пределы класс, а потому в самом классе не виден. Смотря на класс вы никак не можете знать, используется ли реально DI или нет. Йуный джавистЪто чтобы получить работающую программу, необходимо 1)Создать экземпляры всех классов. 2)Связать их друг с другом, примерно так же, как doStuff связывается с ResultReporter. Штука, которая это делает, называется IoC контейнером.Первое неверно, второе близко к истине. Йуный джавистЪДальше встает вопрос, нужна ли какая-то специальная библиотека, которая служила бы IoC контейнером? Мое мнение, что нет. Самодельный контейнер выглядит примерно так:То, что вы написали назвать контейнером можно с огромной натяжкой. Йуный джавистЪ1)Соответствие типов проверяется java-компилятором.И? В чем преимущество то заключается? Йуный джавистЪ2)При создании классов у нас есть целиком язык Java, а не ограниченный xml-язык спринг конфигураций.В конфигурации спринга мы определяем только зависимотси, то есть что куда вставить. Мы никак не ограничены по части Java-кода. Йуный джавистЪ3)Не надо тянуть большие дополнительные библиотеки.В чем заключается проблем подтянуть несколько мегабайт библиотек? Мы же не в 80-е годы живем. Йуный джавистЪВ Spring есть Spring AOP, с помощью которого можно разом запроксировать много объектов. Но я не знаю, как это можно было бы применитьТранзакции, безопасность, логирование. Почитайте про AOP в целом, поймете. Йуный джавистЪВ документации говорится, что Spring AOP используется в первую очередь для транзакций, но мне это кажется надуманным - все можно сделать проще.Что такое декларативное управление транзакциями знаете? Можете предлолжить что-то "проще"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 09:32:14 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
С интересом почитал дискуссию. Даже не дискуссию, а битву :) Из прочтенного у меня появился вопрос к svenom: svenomVoDA2) Определяемся с реализацией JavaEE сервера если выбран JavaEE или реализацией web-container если в качестве основного контейнера выбран Spring Spring это не контейнер в понятиях Java контейнеров. Spring это реализация DI. Вы никак не можете это понять. Мне не понятна выделенная фраза, Вы знаете какое то тайное понятие Java контейнеров не иначе. Вы абсолютно правы в том что Spring это не контейнер в понятиях Java контейнеров, но само упоминание именно понятия контейнера в Java не понимаю зачем здесь. З.Ы. Победил VoDA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 13:43:59 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomSpring это не контейнер в понятиях Java контейнеров. Spring это реализация DI. спринг - это контейнер. как и авалон и пикоконтейнер, которые померли уже, наверное. и че там ещё было. ты же сам пишешь: svenomКонтейнер - это инфраструктура, Spring/EJB - это реализация DI ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 13:54:05 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Кстати вот интересная статейка - http://zeroturnaround.com/java-ee-productivity-report-2011/ (единственное, меня немного напрягло, что там Hibernate засунут в категорию веб-фреймворков). Касательно популярности Tomcat/неTomcat полностью коррелирует с моей таблицей, сделанной по сайту hh.ru. Pavel KurakinМне не понятна выделенная фраза, Вы знаете какое то тайное понятие Java контейнеров не иначе. Вы абсолютно правы в том что Spring это не контейнер в понятиях Java контейнеров, но само упоминание именно понятия контейнера в Java не понимаю зачем здесь.Ну да, фраза некорректная. Я здесь имел ввиду то, что есть контейнеры "инфраструктурные" - Tomcat (контейнер сервлетов), EJB-контейнер в AppServer'ах и т.д.. Spring же - это просто одна из реализаций DI, выполненная в виде контейнера объектов, она работает на другом уровне - уровне приложения. К чему я все это писал? Пока не знаю, надо дождаться комментариев по фразе: VoDA2) Определяемся с реализацией JavaEE сервера если выбран JavaEE или реализацией web-container если в качестве основного контейнера выбран Spring ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 13:55:19 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomнадо дождаться комментариев по фразе: VoDA2) Определяемся с реализацией JavaEE сервера если выбран JavaEE или реализацией web-container если в качестве основного контейнера выбран Spring что тут дожидаться-то. можно прекрасно жить и без web, например, если приложение - десктопное, в котором спринг используется как контейнер. чотакогото. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 13:58:47 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
grasoff.netsvenomSpring это не контейнер в понятиях Java контейнеров. Spring это реализация DI. спринг - это контейнер. как и авалон и пикоконтейнер, которые померли уже, наверное. и че там ещё было. ты же сам пишешь: svenomКонтейнер - это инфраструктура, Spring/EJB - это реализация DIили вот http://hivemind.apache.org/ HiveMind is an services and configuration microkernel. Its features are also referred to as Inversion of Control (IoC) Container or Lightweight Container. тоже контейнером назвали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:03:37 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomVoDAк вот этому смешному коду применения IoC - код будет забавен что на Spring что на EJB.То есть вы не смогли осознать, что в приложении не все происходит через DI, особенно в сторонних библиотеках? Мой пример был призван продемонстрировать именно это.поразите меня - вы в своих JavaEE приложениях EJB связываете без применения EJB DI? svenomVoDAвы показали попытку создать spring bean через new. я провел доступную аналогию.Ничего подобного. Если вы внимательно и вдумчиво посмотрите на мой пример - 11757590 , то вы увидите что у меня есть два класса и только один бин, и никакие спринговые бины через new я не создавал.ок, тогда пример не имеет смысла в данном контексте. я рассказывал про spring beans и работу согласно спеке Спринга. svenomТааак, вижу тотальное непонимание того, что подразумевается под термином "кластер" и какие типы кластеров бывают. Вы опять сравниваете несравнимое. То, что вы называете "кластера на JavaEE" (я так понимаю, что это кластера из AppServer'ов) решают широкий спектр задач - от распределения нагрузки на веб-сервер, до кэширования сесссий. Кластера Terracota решают ограниченный спектр задач, как-то кеширование веб-сессий и хранения большого объема данных где-то вне AppServer'а.terracotta это инфраструктура через которую можно кэшировать как веб-сессии, так и любые другие сессионные или не сессионные данные. svenomЕсли у вас стоит сервер приложений и на него вдруг навалилось 100500 миллионов пользователей, то никакая терракота вас не спасет, поможет только кластер на уровне web-сервера с лоад-балансером.а вы считаете, что web-server с лоад-балансером эта фича которую только AppServer-а умеют делать? такое даже на PHP можно реализовать без привлечения какой либо java svenomТо есть вы опять сравниваете несравнимые вещи. И вот вопрос еще - а в чем проявляется "негибкость политик репликации" у кластеров на основе AppServer'ов?Тот же JBoss, который полноценный JavaEE compatible server, довольно интересно реплицирует web-sessions. Репликация идет все-со-всеми. Как результат при интенсивной работе не рекомендуется больше 4-х нод. Выше падает производительность из-за высоких затрат на репликацию между нодами кластера. В качестве рекомендаций были либо использовать специальный "плагин" который реализует репликацию внутри группы, и сразу предупреждение о слабой протестированности оного. Либо предложение деления всего кластера на независимые группы и управление балансировщиком, чтобы пользователя всегда направляло на определенную группу (пока жива сессия). Первое - совсем странно для продакшена, второе проще сделать самостоятельно ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:10:59 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
svenomVoDAПомня, что Spring IoC без остальных технологий Spring * - это бесполезная часть.Очень смело. ... Вывод: Spring IoC это самая важная и самая главная часть из всего Spring'a. Все остальное имеет гораздо более узкую область применения, а потому второстепенно.Я технологии рассматриваю с точки зрения "что мне это дает". Важно: Ниже идут примеры для Spring. Spring выбран как аксиома, чтобы не вносить двойственность, что в Spring вот так, а в JavaEE подумали за вас и нужно сделать то-то. Мне нужны декларативные транзакции - потому я применяю Spring обертку поверх JTA и мне приходится воспользоваться IoC. Мне нужно закрыть страницы от несанкционированного доступа - я применяю Spring Security и, как следствие, пользуюсь IoC. Для реализации требований ТЗ мне нужно чтобы перед вызовом определенных методов вызывались некие другие. Я реализую требование через интерсепторы. Для того, чтобы интерсепторы работали я опять же вынужден использовать IoC. Потому для меня требования заказчика - точка отсчета. Способ реализации - основное действие, а применение IoC просто особенность реализации. Именно поэтому я считаю Spring IoC второстепенным, а основным, для чего нужен IoC, системы типа Spring Security. svenomЯ просто вам напомню ваши слова (только вот почему вы называете это "придиркой", я не понимаю - скажи вы такое на собеседовании, вам бы в лицо рассмеялись).думаю, что при личной встрече мы бы намного быстрее пришли к единой терминологии и раньше сошлись на общем понимании. Есть доска, есть бумага - можно написать и объяснить =) личное общение в формате face-to-face очень важно для программистов. О понимании: к сожалению даже понятие "контейнер" у нас с вами различно. и практически несколько страниц текста исписано пытаясь друг другу объяснить используя одни слова, но вкладывая разный смысл. А еще остались такие казалось бы базовые вещи как "кластер" или "Spring", применяя которые мы опять же говорим о разных вещах. Мир, труд, жвачка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:13:10 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
Pavel KurakinЗ.Ы. Победил VoDAСпасибо =) Хотя моя задача была поделиться своими знаниями и пониманием, что в разных ситуациях выгодными могут быть различные подходы. Когда полноценный AppServer в лице WebSphere или JBoss, а когда солянка сборная решение индивидуальное в виде Spring*, работающем поверх web-container или вообще отдельным приложением ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:16:14 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAдумаю, что при личной встрече мы бы намного быстрее пришли к единой терминологии и раньше сошлись на общем понимании. Есть доска, есть бумага - можно написать и объяснить =) личное общение в формате face-to-face очень важно для программистов. Мир, труд, жвачка? о. дак предлагаю сегодня на крестовском острове собраться в "карл и фридрих". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:16:39 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
grasoff.netVoDAдумаю, что при личной встрече мы бы намного быстрее пришли к единой терминологии и раньше сошлись на общем понимании. Есть доска, есть бумага - можно написать и объяснить =) личное общение в формате face-to-face очень важно для программистов. Мир, труд, жвачка? о. дак предлагаю сегодня на крестовском острове собраться в "карл и фридрих".я за, только по вечерам я учусь. сейчас напишу тебе на email - дальше договоримся ;) PS учусь пять вечеров в неделю плюс суббота до 16-30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:21:15 |
|
||
|
Какие приемущества использования IoC контейнера?
|
|||
|---|---|---|---|
|
#18+
VoDAпоразите меня - вы в своих JavaEE приложениях EJB связываете без применения EJB DI?Это вы на основании чего сделали такой вывод? Перечитайте то, что я написал: svenomТо есть вы не смогли осознать, что в приложении не все происходит через DI, особенно в сторонних библиотеках ?Напомню, что это относится к вашим интересным утверждениям типа "Spring решает, что грузить, а что нет". VoDAок, тогда пример не имеет смысла в данном контексте. я рассказывал про spring beans и работу согласно спеке Спринга.Пример преследует лишь одну цель - опровергунть ваши некорректные утверждения о том, что спринг как-то влияет на загрузку классов и библиотек. VoDAterracotta это инфраструктура через которую можно кэшировать как веб-сессии, так и любые другие сессионные или не сессионные данные.Да. VoDAа вы считаете, что web-server с лоад-балансером эта фича которую только AppServer-а умеют делать? такое даже на PHP можно реализовать без привлечения какой либо javaДа, можно. Вопрос вот в чем - какой смысл использовать Terracota WebSessions, если у нас только один web-сервер? Этот пример призван показать, что кластеризация на уровне серверов приложений решает задачи, отличные от тех, которые решает та же Terracota. VoDAТот же JBoss, который полноценный JavaEE compatible server, довольно интересно реплицирует web-sessions. Репликация идет все-со-всеми. Как результат при интенсивной работе не рекомендуется больше 4-х нод. Выше падает производительность из-за высоких затрат на репликацию между нодами кластера. В качестве рекомендаций были либо использовать специальный "плагин" который реализует репликацию внутри группы, и сразу предупреждение о слабой протестированности оного. Либо предложение деления всего кластера на независимые группы и управление балансировщиком, чтобы пользователя всегда направляло на определенную группу (пока жива сессия). Первое - совсем странно для продакшена, второе проще сделать самостоятельно ;)Ну ок, так вы тогда и говорите, что "JBoss имеет негибкие политики репликации", а не обобщайте это на все JavaEE сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2011, 14:22:42 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37575298&tid=2132896]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 351ms |
| total: | 503ms |

| 0 / 0 |
