Dear Alireza,
The main differences between a distributed Reo engine (as Dreams) and a centralised Reo engine (as a CA-based engine) are:
- In CA there is a unique (centralised) entity that collects information about the components, and decides which can have data flow.
- In Dreams each basic connector is a different entity that runs in parallel, and exchanges messages with each other. Only the basic connectors connected to components will collect their flow-related information.
- In CA all the (future) behaviour is pre-compiled at once, making it better for verification of possible runs of the system.
- In Dreams the behaviour is compiled in a per-round basis, making it better for execution of larger (asynchronous) connectors.
Several techniques exist to allow only regions of a connector to evolve (or to be transformed), without disrupting the rest of the connector, which are typically associated to distributed scenarios.
I hope this helps.
Best,
José