Out of the different roles 2 are manual, 2 are automated.
1. Bean Provider - You who are going to code the bean 2. Application Assembler - One who makes the resources like JDBC, JMS, referenced EJB's available 3. Deployer - Tools that validate EJB's and their reference while deploying o the server 4. Container - Runtime environment of the EJB. Example is the server itself.