OverviewBEEP peers communicate with Messages over predefined Channels. Messages are generated by application defined Profiles. Before message is sent, and once message is received by the peer, Profile defines parsing to provide necessary information.
Messages are initiated by the application, and are prepared by defined Profile. Corresponding profile awaits on other side to parse the message and provide only necessary information.
All exchanges occur in the context of a channel -- a binding to a well-defined aspect of the application, such as transport security, user authentication, or data exchange.
Each channel has an associated "profile" that defines the syntax and semantics of the messages exchanged. Implicit in the operation of BEEP is the notion of channel management. Except for few profiles defined internally in wodBeep, you can define your own profiles: for data exchange, tuning parameters etc.
A BEEP session is mapped onto an underlying transport service. It can be single TCP connection, but also UDP or any higher level two-way transport service - SMTP architecture... wodBeep implements TCP Transport for you - you can implement easily any other transport just by implementing IBeepTransport interface!
Although BEEP is peer-to-peer connection, it is convenient to label each peer to behave in context of a Listener (Server) or Initiator (Client).