EJB3.1 defines enterprise beans as server-side components that encapsulate business logic. The main types of enterprise beans are session beans, message-driven beans, and entity beans. Session beans are further divided into stateless, stateful, and singleton beans. Enterprise beans provide benefits such as portability, transaction management, and scalability.