Java EE — является этим просто пух или реальный материал?

Да, вы правы. ?: обычно называется «тернарным условным оператором», который часто называют просто «тройным оператором». Это сокращенная версия стандарта if / else условная.

Тернарный условный оператор

12
задан Arjan Tijms 25 April 2013 в 18:55
поделиться

9 ответов

Ключевой дифференциатор, что предложения EE Java по стеку LAMP могут быть сведены к отдельному слову. Транзакции.

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

, Но каждый сервер EE Java включает менеджера по распределенной транзакции. Это позволяет Вам сделать более сложные вещи, через разнообразные системы, безопасно и надежно.

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

, Очевидно, этот простой сценарий может работаться вокруг, имевший дело с, и т.д. Хорошая вещь с EE Java, тем не менее, состоит в том, что Вы не должны заниматься подобными проблемами - контейнер добирается для контакта с ними.

И, снова, не каждая проблема требует этой обработки транзакции уровня o. Но для тех, которые делают, это неоценимо. И как только Вы привыкаете к использованию их, Вы найдете, что управление транзакциями сервера EE Java большой актив.

18
ответ дан 2 December 2019 в 03:22
поделиться

Веб-серверы EE Java большой пушки (Jboss, WebSphere, WebLogic и т.д.), и Windows Server/IIS/ASP.NET находятся действительно в другой лиге в масштабируемости и производительности, чем Ваша типичная стопка лампы.

Моя команда ответственна за один из самых больших телекоммуникационных торговых сайтов в Соединенных Штатах, обрабатывая миллионы хитов в день (Одна из наших баз данных составляет более чем 1000 ТБ в размере, чтобы дать Вам некоторую перспективу).

Мы используем комбинацию ASP.NET и ISA WebSphere, а также SAP (Который является также решением для EE Java) для различных разделов нашего сайта, нет абсолютно никакого способа, которым стек LAMP мог обработать этот вид загрузки, не масштабируясь к значительным суммам аппаратных средств.... Описатели секции стопки.NET большинство загрузки и работают только на 32 серверах.

Мы также не делаем ничего необычного, такого как использование решения для типа memcached или статического HTTP cacheing... мы действительно кэшируем вызовы SOAP, и база данных обращается к серверам отдельного приложения, но нет смысла в базе данных памяти, и т.д.... наша платформа может обработать его до сих пор.

Так да, его яблоки к апельсинам для сравнения этого вида материала к ЛАМПЕ.

10
ответ дан 2 December 2019 в 03:22
поделиться

Можно создать действительно огромные и масштабируемые приложения с EE Java, и он широко используется в обработке данных предприятия.

, Но:

Мой опыт с EE Java был довольно неудачным, потому что он походил на 90% работы, которую делала моя команда, был шаблон и инфраструктура. Наша производительность в то время была очень, намного ниже, чем она, возможно, имелась, мы использовали другой технологический стек.

4
ответ дан 2 December 2019 в 03:22
поделиться

Amazon.com, eBay, Google - они все используют подмножество EE Java, и они довольно успешны. Они все используют сервлеты и JSPs

, При попытке использовать EJB 1.1 или EJB 2.0, тогда масштабируемость поражена. Производительность разработчика также уменьшается в результате создания поблочного тестирования тяжелее.

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

Так, в зависимости от какой Ваше приложение потребности, использование только те части EE Java, который имеет смысл для Вас. Сделайте демонстрационную POC (подтверждение концепции) с помощью только те части, которые Вы намереваетесь использовать. Эта POC покажет, как хорошо приложение будет работать.

НОВЫМ серверам JAVA EE-приложения не всегда нужно много XML. Они позволят Вам использовать аннотацию, чтобы сделать отображение базы данных и внедрение зависимости.

больше чем 50% всего развития предпринимательства происходят на EE Java (когда я говорю, что, это главным образом использует подмножество стека Java EE. кто-то мог бы использовать сеансовый объект без сохранения состояния EJBs, кто-то мог бы просто JNDI, кто-то мог бы использовать УПРАВЛЯЕМЫЙ СООБЩЕНИЯМИ КОМПОНЕНТ EJB).

Hope это помогает.

4
ответ дан 2 December 2019 в 03:22
поделиться

Почти все ответы упоминают то, что это берет для создания сети Java EE приложение. Позвольте мне упомянуть другое важное соображение. Большинство предприятий имеет значительные требования бэк-офиса, где корпоративное приложение должно интегрироваться с другими приложениями. Это может колебаться от присоединения до некоторой неработоспособной старой программы мэйнфрейма КОБОЛа к стеку LAMP к небольшому приложению Доступа, которое некоторый бухгалтер сделал на скорую руку ночью, и т.д. Обычно это означает необходимость в своего рода решении для обмена сообщениями, чтобы заставить 2 или больше приложения поднимать трубку вместе. По моему опыту, я нашел, что мир EE Java расширяет себя далее для контакта с этими проблемами интеграции, чем типичный стек LAMP.

4
ответ дан 2 December 2019 в 03:22
поделиться

Ядро EE Java является просто набором интерфейсов, которым обеспечил реализации контейнер. Большинство приложений не использует всю спецификацию EE Java.

существует два основных аспекта EE Java, о котором думают люди, когда они обсуждают его: EJBs и Сервлеты.

у меня нет опыта вообще с EJBs. Я использую Платформа Spring и как таковой, она обеспечивает всю "инфраструктуру и шаблон" код, на который ссылаются как в ответе Ben Collins. Это обеспечивает все, что нам был нужен EJBs, чтобы сделать, и затем некоторые (транзакции с доступом к базе данных то, для чего мы используем его специальные функции, хотя мы используем его контейнер IOC также для части Сервлета).

Сервлеты, однако, являются фантастическими. Они - очень хорошая и доказанная технология.

ядро Сервлета является циклом ответа и запросом: пользователь запрашивает что-то, и сервер прерывает запрос и обеспечивает ответ на основе его. Цепочка запросов и ответов может отслеживаться посредством Сессии для отдельного пользователя.

Что касается высокой цены серверов закрытого приложения, я понятия не имею, почему цена так высока, но Tomcat Apache является очень хорошим контейнером Сервлета и свободен. Мы используем Tomcat для тестирования, и WebSphere для развертывания (Websphere предоставляет наш клиент для использования приложений). К сожалению, это - только Websphere 6 (обновите 11, как мы узнали к нашей тревоге, которая не имеет фиксации для обновления 13, который позволяет функциям JSTL работать правильно при содержании в теге JSP), таким образом, мы вынуждены использовать Java 1.4x, не Java 1.5 +.

существует также несколько платформ (см. платформу Spring, на которую ссылаются прежде для примера), которые позволяют легкую разработку Сервлета. Если Вы просто используете это для HTTP/HTML, существует большое количество платформ для легкой помощи Вам в этой разработке.

2
ответ дан 2 December 2019 в 03:22
поделиться

Масштабируемость и другие вопросы в стороне, вот одна простая вещь, которая не была упомянута, который может быть преимуществом: это - Java.

  • Существует колеблющееся количество сторонних библиотек, доступных для Java, и собственного и с открытым исходным кодом. Теперь, я уверен, что существуют огромные свободные библиотеки для Perl, Ruby, PHP, и т.д. - но когда дело доходит до коммерческих библиотек для большего количества нишевых прикладных областей, они не близко подходят к Java (и.NET и вероятно C++). Нужны ли Вам какие-либо специальные сторонние библиотеки, конечно, зависит только от того, какое приложение Вы создаете.
  • Я думаю, что существует больше Java-разработчиков в мире, чем разработчики для любой другой платформы. (Возможно, я неправ, но это - то, что я иногда слышал.)

При выборе платформы в коммерческой установке любой мог бы оказаться важным.

1
ответ дан 2 December 2019 в 03:22
поделиться

С точки зрения масштабируемости Java EE дает Вам огромный выбор, который Вы не имеете со стеком LAMP или Ruby. Весь выбор вращается вокруг приложений N-tier, в то время как большая часть ЛАМПЫ и рубиновых приложений являются 2 уровнями.

Я разрабатываю приложение и план по разрешению людям доступа к API по сети. Java EE позволит мне легко масштабировать средний уровень, не влияя на уровень UI. Поскольку я добавляю интерфейсы к своему приложению, я могу масштабировать средний уровень очень легко. Стек LAMP не имеет никакого понятия этого, встроенного.

Таким образом, я имею к интерфейсам, веб-UI и API SOAP. Теперь я хочу отдых API. Хорошо... Сборка, которые взаимодействуют через интерфейс для удара среднего уровня также.. и добавьте больше компьютеров к кластеру.. или пойдите, мультикластер действительно не имеет значения. Этот средний уровень является всем EJB, более быстрым протоколом затем SOAP во многих отношениях.

Теперь скажем, то, что я хочу добавить, что способность к SMS пишет моим пользователям. Я также должен сделать это на основе того, что они устанавливают, и это прибывает из базы данных. Мудрая масштабируемость, я хочу разъединить фактическую отправку текста от реализации, которую приложения хотят отправить ему. Это кричит JMS. Я могу использовать Боб Таймера, чтобы уйти каждое X количества времени и выяснить то, какие сообщения должны быть отправлены и помещают каждое сообщение в JMS. Теперь я могу управлять очередью и сколько процессоров работает над нею и т.д. Я вижу, сколько текстов выходит. Я могу даже поместить получатели на другое поле, приводящее к небольшому влиянию на мою другую мудрую производительность серверов.

Масштабируясь мудрый, я вижу, какой из моего EJB's становится пораженным больше всего и добавляет больше ресурсов к тем, в то время как удаление ресурсов формирует других. Я могу сделать это с очередями JMS и любой частью стека Java EE технологий. Мало того, что я получаю масштабируемость, я получаю управление своими ресурсами серверов.

Так как ЛАМПА и Ruby еще не имеют JMS как очередь для асинхронной обработки или способности легко поместить бизнес-логику в отдельный уровень, их может быть более трудно масштабировать с несколькими интерфейсами. Что необходимо сделать, срывают логику и делают это доступным для другого интерфейса? Скажем, это теперь Вы не только предоставляете сети UI, но и настольный UI, Интерфейс IVR и интерфейс SOAP для Вашего веб-сайта?

1
ответ дан 2 December 2019 в 03:22
поделиться

EE Java и другие языки программы нужно рассматривать точно так же, как любой другой инструмент. Да, это использовалось в корпоративной среде, и это берет хорошее мастерство, чтобы заставить эти инструменты работать "отлично" и знающий, когда использовать его. Я в настоящее время работаю над Средой мейнфреймов, и EE Java используется в некоторой степени. Если бы высокоскоростная транзакция включена, EE Java был бы моим последним выбором. Если многоплатформенная совместимость необходима, то EE Java, XML и веб-сервисы были бы более соответствующими.

1
ответ дан 2 December 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: