Message-driven beans allow clients to asynchronously invoke server-side business logic using JMS. Unlike session and entity beans, MDBs do not have remote interfaces and clients do not directly access them. An MDB uses its onMessage() method to process messages received from clients via JMS. The EJB container handles creating MDB instances and delivering messages to them.