LAMP — это стек, определяемый слева направо (снизу вверх) как Linux/Apache/MySQL/PHP, или в целом вы можете рассматривать его как операционную систему/веб-сервер/базу данных/язык сценариев. В общей форме вы можете вставить любую операционную систему, например Windows, вместо Linux, чтобы получить WAMP или поместить какую-либо другую БД, или даже запустить какой-либо другой язык, отличный от PHP, например Ruby. Однако, как правило, у вас будет только по одной каждой вещи. Одна база данных, одна ОС, один веб-сервер, хотя ваше приложение может переходить с одного стека на другой с некоторым конечным количеством изменений.
Я несколько лет занимался разработкой в стеке LAMP, читал о JSF и библиотеках компонентов RichFaces и IceFaces. Сама идея создания пользовательского интерфейса веб-сайта из компонентов, поддерживающих AJAX, и получения всевозможных отличных вещей, таких как проверка и беспорядочные вызовы AJAX, действительно захватывающая.
Проблема в том, что мне трудно понять, какие общие компоненты составляют стек Java EE. Из моего исследования кажется, что у вас есть следующие категории, из которых можно построить стек Java EE:
Сервер приложений Java EE — JBoss, Tomcat
База данных — MySQL, Oracle
Абстракция базы данных — Hibernate, JPA
Библиотека компонентов JSF с поддержкой Ajax — ICEFaces, RICHFaces
Я чувствую, что определенно упускаю некоторые вещи. Я не уверен, где в это вписывается Seam или Spring. Кроме того, Hibernate использует JPA? Или JPA — это полнофункциональный API, который я могу легко использовать сам по себе? Где контейнеры вписываются в это? Могу ли я пойти и получить контейнер для запуска на моем сервере приложений Java EE? Кроме того, какое место во всем этом занимает Maven? Из того, что я понял, это похоже не на часть стека веб-служб, а на инструмент, используемый перед развертыванием.
Я читал ICEfaces 1.8 Райнера Эшена, и эта диаграмма представлена им как своего рода стек Java EE. Я предполагаю, что AppFuse относится к Java EE так же, как XAMPP к LAMP. Это правда? Если бы кто-то мог разобрать различные части на приведенной ниже диаграмме и понять, как они сочетаются друг с другом, это было бы очень полезно.
Я знаю, что это много разных вопросов. Если я не спросил что-то, что, по вашему мнению, я должен знать, не стесняйтесь выбросить это, или если я сказал что-то неправильно, ПОЖАЛУЙСТА, поправьте меня! Стек Java EE и все, что с ним связано, пугает, если не сказать больше. Я просто хочу получить хорошее представление о высоком уровне, прежде чем погрузиться и начать что-то строить.
Спасибо!