Вопрос действительно огромен. В общем, EJB-компоненты пытаются реализовать шаблон проектирования, который инкапсулирует весь ваш повторно используемый код или «бизнес-логику» в определенный уровень вашей архитектуры. Делая это, вы можете повторно использовать этот код, например, для своего веб-уровня / уровня представления и веб-сервисов. EJB предоставляют способ сохранения ваших данных в БД.
Тенденция в разработке Java сейчас - это архитектура, основанная на POJO, которая использует внедрение зависимостей. Spring - популярный инструмент для облегчения этого шаблона проектирования, и я бы посоветовал вам изучить его вместо EJB.