Shared Services Framework

BlackBerry Dynamics
 apps can communicate with each other and application servers using the Shared Services Framework, a collaboration system that is defined by two components: one that provides a service and another that consumes the service.
The provider can be a client-side service, which is a 
BlackBerry Dynamics
 app that uses the GDService APIs (Android/iOS), or a server-side service that is provided by an application server or other remote system. The service is consumed by a 
BlackBerry Dynamics
 app that communicates with the provider using AppKinetics (a proprietary 
BlackBerry
 ICC protocol) for client-side services or a protocol such as HTTPS for server-side services.
The typical steps that are required to consume a service:
  1. Service discovery: The 
    BlackBerry Dynamics
     app (the consumer) queries for service providers using the GDAndroid.getServiceProvidersFor API or the GDiOS.getServiceProvidersFor API. Service discovery is optional but recommended for both types of services because it respects user entitlements and permissions.
  2. Provider selection: The consuming app selects the provider. This is handled by the app code.
  3. Service request: The consuming app sends a service request to the provider using the GDServiceClient API (Android/iOS) for client-side services or TCP sockets or HTTP over 
    BlackBerry Dynamics
     secure communication (Android/iOS) for server-side services.
  4. Service response: The consuming app receives the provider response using the same interface that was used for the request (the GDServiceClient API (Android/iOS) for client-side services or 
    BlackBerry Dynamics
     secure communication (Android/iOS) for server-side services). 
Client-side services can be used offline and are ideal if the service requires specific user interaction.
Server-side services can be provided by a clustered application server and are ideal if the server software already exists outside of the 
BlackBerry Dynamics
 platform.
Client-side and server-side services both require user entitlement in the 
UEM
 or standalone 
Good Control
 management console.
If you want your custom 
BlackBerry Dynamics
 app to use the Shared Services Framework, the 
UEM
 or standalone 
Good Control
 administrator must specify the app package ID (
Android
) or bundle ID (
iOS
) in the 
BlackBerry Dynamics
 app settings in the management console. Contact your organization’s administrator to provide this information. For instructions for specifying the package ID or bundle ID for an app, see Manage settings for a BlackBerry Dynamics app in the 
UEM Administration Guide
.
Sample apps that are included with the SDK demonstrate how to use the Shared Services Framework. For more information about how to use the Shared Services Framework, see the following resources:
Server-side services can use the Push Channel API (Android/iOS) to send notifications to 
BlackBerry Dynamics
 apps. The channel is end-to-end secure at the same level as 
BlackBerry Dynamics
 secure communication. As a result, the 
BlackBerry Dynamics
 app does not need to poll the application server, which decreases the load on both the app and the application server. Any application server that is a service provider can use the Push Channel.