Existing Desktop Interop Broker is implemented using following architecture, including main components:
- Interop Broker - process which handles application connections, routes calls between them and able to launch new applications instances on demand.
- App Life Cycle Manager - component inside Broker which tracks active connections and can trigger launch of an application on demand by sending a request to the appropriate Application Launcher.
- App Launcher - responsible for launching of Applications and reporting about their status to App Life Cycle Manager.
- Interop Transport - plagguble transport implementation, used by both Broker and App Instance for comminication
Current Broker Implementation for Stand alone Browser based on same principles, therefore already defined required interfaces:
Also default implementation of some components, like InteropRegistryProvider/Broker/Discovery Handler/etc, will work well in Node JS environment. So we can start with adopting everything we already have and implement missed Desktop implementations like native App Life Cycle Manager.
As described above - we need to adopt existing functionality of JS Broker for Stand Alone Browser to Desktop environment.
Node JS Broker, which supports Web Sockets Transport for connectivity, basic Discovery, fully compatible with both Generic and Generated Typescript/.Net clients.
Implement all functionality, already available in .Net Broker implementation
Supports all existing functionality and Transport Implementation, including:
- Different Launch Modes
- Named Pipes Transport for .Net
- Full Discovery Support
- etc
We still need to support ProtobufJS based transport for .Net <-> JS communication and for support of existing clients. However we would like to add JSON based serialization for JS clients to significantly decrease Generated JS bundle size and unblock usage of Generic API (no code generation).
Plexus Client can choose one of two serialization mechanisms during connection to Broker.
Support of all supported methods of Common Interop API
Applications implemented with Common Interop API can use Plexus Interop as InteropPlatform.