The main design goals of the JMS message model as defined in the specification are:
A single unified interface for messaging
An interface for creating messages that match the format used by existing non-JMS applications
An interface that supports heterogeneous applications that span across operating systems and machine architectures
An interface that supports the creation of messages that can hold Java objects in their content
An interface that supports the creation of messages that can hold data in their content