...
OpenMI components (LinkableComponents) within an OpenMI configuration will always run on the same machine in a single tread. However, if you construct your OpenMI component, using the wrapper pattern (see below), only the wrapper needs to run in the same tread as the other OpenMI components in the OpenMI configuration. The calculation engine, or whatever data source that works in the background can run on a remote machine.
When you use the OpenMI wrapper pattern you will create a new class which implements the ILinkableComponent interface. This component will access your original component in order get and set data. The trick is that all OpenMI specific things can be located in the wrapper, whereas the original component does not depend on anything related to OpenMI. Moreover, the communication between the wrapper and the original component happens in the private area (nobody's business how this takes place). This means that the original component can be located on a remote server (windows, Linux, or whatever).
On figure 2 below you can see an example of a small configuration with two components and a trigger. The configuration runs on the local machine, and the MyLinkableComponent object is communicating with a component on a remote server.
...