Here's the introduction I'm planning on. If anyone has any opinions, I'd be happy to get them -- is there too much detail for a quick intro? Too little? A crucial bit I left out? Something I got wrong?
############################################################## Introduction to Proton =============================================== The Messenger interface is a simple, high-level API that lets you create point-to-point messaging applications quickly and easily. The interface offers four main categories of functionality. Messenger Operation ----------------------------------------------- There are only a few operations that are not directly concerning with message transmission. A messenger can be created, named, and freed. It can be started and stopped, and it can be checked for errors after any operation. Sending and Receiving ----------------------------------------------- Both sending and receiving happen in two stages, the inner stage moving the message between your application and a queue, the outer stage transmitting messages between your queues and remote messaging nodes. By changing the ratio of transmissions to queue transfers, you can optimize your messaging application for message latency or for overall throughput. Subscriptions control what sources your messenger can receive from, and what sources it can send to. Your messenger subscribes to the sources you want to receive from, while your outgoing messages will be received by messengers that have subscribed to your outgoing address. Message Disposition ----------------------------------------------- When you receive messages, you must either accept or reject them. You can either configure your messenger to automatically accept all messages that you get, or you can exercise finer control over message acceptance and rejection, individually or in groups. Trackers and Windows let you set or check the disposition of messages in groups. Applying the disposition operations to groups of messages can improve your system's throughput. When receiving messages, you can create a tracker for the most recently received message, and later use that tracker to accept or reject all messages up to (and including) that one. When sending messages, you can create a tracker for your most recently sent message, and later use it to inquire about the remote disposition of all sent messages up to that point. If you don't want to let a receiver make you wait forever to see what he's going to do, you can set a timeout that will control how long he can take making up his mind. By using incoming and outgoing Windows, you can limit the number of messages that these operations affect. Security ----------------------------------------------- The messenger interface allows you to use the Secure Sockets Layer by exposing an interface to the OpenSSL library.
