Enterprise JavaBeans (EJB) are server-side components that allow developers to write business logic independently of underlying middleware services like transactions and security. EJBs run within an EJB container managed by an application server, which handles these services automatically. The EJB specification defines standards for container functionality, component model, and interfaces to support portability of EJBs across application servers.