В чем разница между Java для Google App Engine и Java EE?
В чем разница между Java для Google App Engine и Java EE? (Я вообще не знаком с Java, так что, пожалуйста, объясните мне, что в целом и для чего лучше учиться)
Ответы
Ответ 1
Google App Engine для Java построен на контейнере webapp (Jetty), поэтому он явно предлагает только подмножество Java EE с некоторыми ограничениями (но также и дополнениями для использования своей инфраструктуры с использованием стандартизованных API):
- Сервлеты 2.4, JSP 2.0
- Частичная поддержка JDO и JPA для хранилища данных
- JavaMail для... почты
- JAXB
- DOM, SAX и XSLT для API обработки XML
API и технологии Java EE, не поддерживаемые, включают:
- Предприятие Java Beans (EJB)
- JAX-RPC
- JAX-WS
- Подключение к базе данных Java (JDBC)
- Архитектура соединителя Java EE ™ (JCA)
- Расширения Java Management (JMX)
- Служба сообщений Java (JMS)
- Интерфейс именования и интерфейса Java (JNDI)
- Вызов удаленного метода (RMI)
Подробнее в Будет ли он воспроизводиться в App Engine.
Кстати, мы больше не говорим J2EE, это Java EE с 2005 года:)
Ответ 2
Первый anwser, говорящий, что Appengine является подмножеством Java EE, является истинным, но он пропускает некоторую информацию.
Google Appengine действительно поддерживает подмножество Java EE, но Java EE также поддерживает подмножество технологии Appengine.
Appengine поставляется с хранилищем данных с высокой репликацией и эластичным масштабированием. Поэтому вы не платите за бездействующие серверы. Appengine поддерживает Web Hooks, это новая технология, которую можно использовать для создания подобных вещей, таких как JMS. JNDI не поддерживается по какой-либо причине, потому что получение сервисов в Google Appengine осуществляется через простой Java API. Таким образом, упрощение модели. RMI много используется во внутренних приложениях appengine, и вы можете использовать его самостоятельно, если это необходимо. Однако использование RMI в appengine не имеет большого смысла, так как взаимодействие между машинами может быть выполнено через XMPP или посредством высокой репликации.
Таким образом, с помощью Appengine вы можете разрабатывать аналогичные приложения, такие как Java EE, однако вы связаны с инфраструктурой Googles. Большая часть тяжелой работы, такой как конфигурация машины, сетевая конфигурация, масштабирование, выполняется автоматически. Таким образом, нет необходимости в большой команде разработчиков системы.
В целом, Java EE - это старый способ, используемый крупными корпоративными компаниями. Appengine используется стартапами, которые ожидают быстрого роста и должны масштабироваться, но также и незначительные затраты на запуск.
Ответ 3
Механизм Google App предоставляет ограниченное подмножество того, что вы можете сделать с базовой машиной. Самое главное, что вы не можете получить доступ к локальному хранилищу, и ваша обработка запросов должна завершиться с заданным лимитом времени, иначе ваша задача будет прекращена.
Ответ 4
Там нет разницы в языке: они оба Java. Разница в том, какие библиотеки классов доступны для вас.