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 udpcast 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 +-----------+