Java EE: ¿quién implementa la especificación? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Qué es exactamente Java EE? 4 respuestas

Tengo cierta experiencia en Java central y Java EE. ¿Leí las diversas preguntas sobre SO para comprender qué es exactamente Java EE? Y pocas respuestas en SO son:que-es-exactamente-java-ee , que-es-java-ee

Tengo algunas dudas:

1) Si Java EE es solo una especificación, ¿quién las implementa? ¿Los servidores de aplicaciones (como JBOSS, GlassFish) implementan estas especificaciones?

2) Si estoy en lo correcto, la especificación EJB es implementada por el contenedor EJB, y creo que el Contenedor EJB es parte de Application Server. Ahora, cuando nosotros como desarrolladores escribimos un código EJB, ¿qué estamos haciendo realmente? La duda que tengo es que el contenedor EJB implementa la especificación EJB, entonces ¿estamos anulando alguna "parte de especificación" del EJB? ¿Cómo es que una parte de EJB es implementada por el contenedor de EJB y algo que los desarrolladores están escribiendo? ¿O es que una parte del EJB tiene que ser proporcionada por el contenedor EJB y otra parte debe ser desarrollada por los desarrolladores? Estoy teniendo dificultades para entender esto.

¿Puede alguien ayudarme a entender esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta