hmbdc
simplify-high-performance-messaging-programming
|
hmbdc design follows a mixture of Generic Programming and OO.
HMBDC CONCEPT FLOWCHART+------------------------------------------------------------------—+ | process Foo on host X attach | | +---------------------------------------------------------—>xxxxxxxxxxxxxxxxxxxxxx | | | x xx | | manage +-----------—+ | x an ipc transport xx | | +-----—>| Client_B | | x tying Contexts x attach | | | +-----------—+ | x from different x<---—+ | | | | x process xx | | | | +-----------------------—+ | x x | | | | message| Client_A | | xxxxxxxxxxxxxxxxxxxxxxxxxx | | +-----—+-------—+ M |-----------------------—| | | | | Context_1 |--—>|handleMessageCb(M&){...} | | | | +----------------—+ | | | +------------------------—+ | ^ | | | | | | +--—+---—+ | | | messages | +-----—>|handleMessageCb(N){...} | | | +–+Context_67 | | | | | message | | | | | +—+-----—+ | | xxxxxxxxxxxx | N | | | xx | | |messages M,N... | | x x | +-----------------------—+ | xxxxxxx | manage |from process Foo | | x anywhere x | ^ | xxx xxx | | v | | x in x | manage | | xx x | | +---------—+ | | x process x +--------------------—+ | xx x | +->|Client_K | | | x xx | x x | +---------—+ | | x x manage +------------—+ | x x | | | xx xx +-------—>| Client_C | | x x | | | xx xx | +------------—+ net traffic | xx x | | | xxxxxx | ^ +-------------------—+x x | process Bar | | + | | | +---------—+ | x xx | on host X | | | | |messages | |NetContext | | x x +------------------------—+ | | | | | |---------—| | x x | |messages | | | |holding net | | x x | | +—+----—+ | | |recources | | x x | +--—>| Context_2 +------—+ | +----—+-—+ | x x net traffic | | +--------—+ | | | x network +<----------—+ | | ^ | create | x x | | | | v and | x (pub/sub x v | | messages +---------------------—+ own | x xx +----------------—+ | | (from network) | RecvTransportEngine | | | x via x |host Y | | | | +---------------------—| | | x x | | | | +----—+ also a Client managed <–+ | x mcast x | ... | | | | by a context(not shown)| | | x tcpcast x | | | | +---------------------—+ | | x netmap x | | | | | | x rmcast x | | | | (to network) +---------------------—+ create | x rnetmap) x | | | | messages | SendTransportEngine | and | x x +----------------—+ | +------------------—>|---------------------—| own | x x | | also a Client managed | | | x x net traffic | | by a context(not shown)<–+ | x x<---------—+ | +--------------—+---—+ | x x | | | | x x v +-----------------------------------------------—|---------------—+ x x +--—+--—+ | x x | host Z | | x x | | | xxx x | ... | | net traffic xx x | | +------------------------—> xxxxxxxxxxxxxx +--------—+