A broker is usually a central point for message forwarding and pass-through for clients and backend services. There are many types of brokers that come into mind

  1. Security broker – Usually a gate check for incoming message which transitions from one security protocol to another without mucking with the message most of the time.
  2. Protocol transition broker (http to tcp)
  3. Central work load balancer – Routing of some form

  4. Message transformer and service busses
    1. Aggregators/ Scatter gather/Composition & other patterns
  5. Encoding transition – SOAP/XML/Rest/Binary etc.
  6. Relaying persistent brokers (Persistent stores that holds on the message and later forwards it)
    1. Glorified queuing
  7. The list goes on… and you can derive a ton when using a combination of Message exchange patterns -

But they mostly fall into the below basic model unless the client manages to bypass the broker with a P2P communication with the backend itself.

Router Implementation – Strong Typed with Message Forwarding

 

Update:

Aug’5’10

Here are 2 really good articles on MSDN that I would recommend for the functional aspects to architect your your router.

  1. Building a WCF Router, Part 1 (Addressing semantics)
  2. Building A WCF Router, Part 2 ( Scenarios and Message Exchange patterns)