This article is from the Mac Programming FAQ, by Jon Watte firstname.lastname@example.org with numerous contributions by others.
AppleEvents are a level-5 network protocol. If you are not familiar
with the ISO network stack, this means it's a way of structuring sessions
between network entities (programs) that is not dependent on the
underlying protocol (such as PPC or TCP/IP) Despite being a network
protocol, they can be very useful on Macs that are not on a network. In
short, they provide applications with a comprehensive way to send
arbitrary structured data to other applications (or themselves) which
receive the events through their main event loop.
The AppleEvent Object Model is a way of looking at applications and the
data they contain, and also a level-6 network protocol. You _can_ send
AppleEvent Object Model data through AppleEvents (and the standard
AppleEvents defined in the AppleEvent Registry use it) but you don't have
to - unless you want to talk with other applications, of course, then the
AEOM is a lingua franca.