Table of Contents

Architecture

Sinapse is organized in layers, from the message bus up:

  • Sinapse Common Libraries: the foundational layer everything else builds on.
  • Server Host: the server-side component that hosts execution logic; plugins are nested within a communication chain described by an execution topology.
  • Dual Face Plugins: the core extensibility unit — a single plugin that handles both data elaboration and its own graphical representation, exposed to external systems.
  • GUI Objects: plugins/components dedicated purely to the graphical interface (as opposed to elaboration). See GUI objects.
  • Configurator: a WPF-based, plugin-and-graphical-object-extensible design tool. It is the only component authorized to make changes to the server configuration.
  • Client Run-Time: connects to the Sinapse server, retrieves the graphical and functional configuration, renders the interface, and executes the operations the functional logic requires.
  • External Systems: whatever the Dual Face Plugins connect out to (databases, field devices, web services, other software).

Communication between plugins happens via event messages: each plugin exposes specific or generic messages, each message carries multiple properties, and each property carries specific event information — a structured, typed event model rather than raw byte streams.

Sync and async plugin interaction

A plugin (e.g. Plugin B) can synchronously invoke a method on another plugin (Plugin D) via the Method Invocation service and use the returned result immediately in its own processing — while Plugin D can also serve requests from other plugins asynchronously, without interrupting its own main message elaboration. This dual sync/async model is built into the plugin execution engine, not something each plugin has to implement itself.

Terminology

Use Dual Face Plugin and GUI Object for the plugin/component model — these are the platform's actual architectural vocabulary, not generic terms. Server Host, Configurator, and Client Run-Time are the three deployable components; the Configurator is the only one authorized to change server configuration.