In order to integrate any (interactive) application the following three parts need to be available, otherwise the integrator will have trouble one way or another:
- objects, representing the domain model; these would be inspectable in order to get the contained information,
- behaviours, allows the external user to invoke them,
- notifications, to react to state changes
E.g. not only does an application need to expose its windows, but also it needs
to allow to close or open a window and finally send updates if a window was
closed or opened. Notifications in particular need to be in a channel that
allows to poll multiple of them at the same time - if communication is done
over a socket select
and friends would allow the other side to control and
react to multiple applications at the same time.