Uniformity

Multi- and Distributed-core Programming Platform

Result and Worker Queues could be split between processes and utilize various communication patterns to distribute application and its components.

To support Uniformity of the programming model between local and distributed use cases, Active Queue must provide service discovery, load balancing, and data distribution; network bindings for events; recovery of missed events, etc.

Typical zNet distributed application processing steps shown in the figure:

Uniformity

  1. Register Function
  2. Register Reply Handler
  3. Generate and Submit Events to Result Queue
  4. Events Submitted to Proxy Worker Queue
  5. Proxy Worker Thread picks up Event from Queue
  6. Proxy Worker Thread invokes Dispatcher to map Events to matching Function
  7. Events Dispatched across Network to the Least Loaded Workers
  8. Remote Worker Threads pick up Events from Queues
  9. Remote Worker Threads invoke Dispatchers to match Events to Functions
  10. Remote Worker Threads invoke Functions to process Events
  11. Replies are Dispatched across Network back to the Result Queue
  12. Reply Processing Threads invoke Dispatcher to map Replies to Reply Handlers
  13. Reply Processing Threads invoke Reply Handler to Process Replies