Data Sharing
Overview
io.Connect Desktop provides a wide variety of Interop services – Request/Response, Streaming, Shared Contexts, Channels. The rich Interop functionality of io.Connect Desktop offers you a wide choice of solution options when developing your apps. Each Interop service is best applied in certain scenarios.
Request/Response
If you have an app with existing functionalities which you want to offer to other apps within io.Connect Desktop, you can use the Request/Response Interop API. Your app can register an Interop method which invokes the respective functionality of your app. Other interop-enabled apps can discover this Interop method and invoke it in order to use the said functionality.
Streaming
If you need to stream or capture real-time data, you can use the Interop API to register special Interop methods that allow publishing and subscribing to data streams. Just like with Request/Response, an app can register a method for publishing a stream and another app can invoke that method to subscribe for the stream and receive the published data.
Shared Contexts
If you need to synchronize data across multiple apps (e.g., the user clicks on a client name in a client list app and all other connected apps automatically show relevant data for that client), you can use the Shared Contexts API. A Shared Context is an object holding information in the form of key/value pairs. An app can create, set or update a context object and can also subscribe for changes to that context object in order to react accordingly to context changes and update its information.
Channels
You can use the Channels API when you want to offer the user an UI for choosing which apps to group together and allow them to synchronize data between each other. Channels are based on Shared Contexts and are UI-driven. The user can select from any number of defined color Channels and assign any number and combination of apps to a certain Channel. This way, when the user changes a selection, or updates information in one app, all other apps will synchronize their data according to the user action.
Intents
The Intents API can be used as a means of creating workflow scenarios in which you may want a certain app to start another app (or activate an already running instance of it) in order to handle a specific action. The app that raises an Intent can pass context data to the app that will handle the raised Intent. You can register apps as Intent handlers via configuration or programmatically. The default Intents Resolver UI app provided with io.Connect Desktop enables you to provide the user with a UI from which they can choose which app to handle a raised Intent when there are more than one handlers available for the same Intent.
Pub/Sub
The Pub/Sub API offers only limited Interop functionality – publishing and subscribing on topics, basic targeting, and no streaming. The Pub/Sub support was added to io.Connect Desktop only for porting apps already using a pub/sub technology. It's recommended to use the other higher level Interop services offered by io.Connect Desktop instead of the Pub/Sub API.
FDC3
The io.Connect Desktop platform provides full support for the FDC3 standards. You can use the io.Connect implementations of the FDC3 standards to create FDC3 apps. It's also possible for your io.Connect apps to interoperate with third-party FDC3 apps, as the io.Connect APIs support working with FDC3 contexts.