LINUX.ORG.RU
ФорумTalks

объясните про j2ee


0

0

предвижу много флейма после ответов по существу, поэтому - в толки.

чем j2ee отличается от обычнной LAMP-архитектуры и что есть "сервер приложений"?

☆☆

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

HEBECTb_KTO
()

J2EE позволяет просто (относительно других вариантов) разрабатывать масшабируемые системы. IMHO это его единственное реальное преимущество перед lightweight-аналогами.

А LAMP здесь как то не в тему. Если хватает PHP, то Java, и тем более J2EE вряд ли нужна.

Legioner ★★★★★
()
Ответ на: комментарий от HEBECTb_KTO

>объекты существуют в памяти сервера не только во время обработки отдельных запросов, но и между ними

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

а терминология сего барахла?

Muromec ☆☆
() автор топика
Ответ на: комментарий от Legioner

>А LAMP здесь как то не в тему. Если хватает PHP, то Java, и тем более J2EE вряд ли нужна.

во-первых, "P" у меня означает не пых-пых, во-вторых, чтобы узнать нужна ли мне жаба или нет, надо понять что это такое :)

Muromec ☆☆
() автор топика
Ответ на: комментарий от Gharik

шлите одкрепление тырпайз опасносте

Muromec ☆☆
() автор топика
Ответ на: комментарий от anonymous

угу. понял. в русской вике вроде бы то же самое, но...

Muromec ☆☆
() автор топика
Ответ на: комментарий от Muromec

> то есть, кроме самого вебсервера, висит отдельный процесс в котором содержится вся логика, сохраняя состояние между запросами?

Совершенно не обязательно держать данные в отдельном процессе - они могут сидеть в постоянном сегменте разделяемой памяти как это практикуется у неджавовских серверов приложений под *NIX, либо шариться между потоками в рамках виртуальной джава-машины.

Опять же - веб-сервера в принципе может и не быть.

> а терминология сего барахла?

Performance, scalability и прочие модное слова :-)

При неграмотном написании логики приложений ещё добавляются такие термины как deadlock, contention, bottleneck :-)

HEBECTb_KTO
()

J2EE - набор стандартных технологий, библиотек и рекомендаций по программированию. AppServer реализует кучу вещей - например, самостоятельно занимается соединениями с СУБД (создаёт пул соединений, обрабатывает кэширование и прочее), реализует JNDI (стандарт именования различных ресурсов, от файлов до баз данных) и прочее, и прочее. Помимо этого в сервер приложений входят контейнеры - э... контексты, что ли, в которых выполняются определённые типы приложений, например сервлеты и EJB.

В принципе, если писать на сервлетах, то это не намного проще, чем писать на том же LAMP. Если писать на EJB - простота написания сильно увеличивается, эффективность кода настолько же уменьшается. Вообще всё это имеет смысл тогда, когда количество программистов, необходимых для реализации системы, превышает десяток человек.

Кроме прочего, J2EE рекомендует стандарт разделения ролей в проекте. Программисты пишут отдельные модули, реализующие конкретную функциональность. Сборщики собирают модули в приложения, настраивают взаимодействие между модулями. Э... deployers размещают приложения на конкретном сервере, настраивая уже взаимодействие с сервером.

Xellos ★★★★★
()
Ответ на: комментарий от true

Миша, ты играешь с огнем. Одумайся.

anonymous
()
Ответ на: комментарий от Xellos

> Если писать на EJB - простота написания сильно увеличивается

Подробнее можно? Чем увеличивается простота написания, если не считать халявной распределённости? Например по сравнению с обычными POJO-s, управляемыми каким нибудь Spring-ом. Не флейма ради - действительно интересно.

Legioner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.