Part 2 of this book covers how you can use EJB 3 components (session beans and message-driven beans) to build business logic for your enterprise Java applications. Chapter 3 covers session beans in detail and describes the development of both stateless and stateful beans and their clients. The chapter provides guidelines to help you decide whether to use stateless or stateful session beans. Asynchronous communication is accomplished by messaging, and chapter 4 explores messaging and message-driven beans. You can use several advanced features, such as dependency injection, interceptors, and timers; these topics are examined in chapter 5. Chapter 6 covers enterprise applications development concerns, such as transaction and security.