Application and service discovery

Application and service discovery provides the automatic detection of registered web applications (along with their features) and services.

  • Many applications can be operated using each other's services without the need for frequent human interaction/configuration

  • Services, applications are dynamically interchangeable, expandable without human interaction.

  • Possibility to provide a choice from applications/services of the same type

Basic protocol

Synergy provides /api/discover endpoint where applications can send HTTP GET request for list of available applications and their application info. Request has to be authenticated using JWT token header (see authentication page ) either for current user or service itself. Interactive documentation is available on http://team1.synergy.cxn.io/swagger-ui.html#!/gateway45public45api45controller/discoverUsingGET (to try out change team1 to your subdomain and authorise the requests on gateway-public section by client id and client secret).

Example

HTTP GET https://team1.synergy.example.com/api/discover
Response

[{
displayName: "Fibonacci",
address: "http://localhost:8102",
identities: [
{category: "service", type: "computation"}
],
features: [
{
namespace: "synergy/app-info",
attributes: {
url: "http://localhost:8102/services/app-info"
}
},{
namespace: "synergy/health",
attributes: {
url: "http://localhost:8102/services/health"
}
},{
namespace: "synergy/icon",
attributes: {
url: "http://localhost:8102/services/app-icon"
}
}]
},{
displayName: "Plexus Analysis",
address: "http://localhost:9005",
identities: [
{category: "plexus", type: "analysis"},
{category: "application", type: "data-analysis"}
],
features: [
{
namespace: "synergy/app-info",
attributes: {
url: "http://localhost:9005/plexus-analysis/synergy/analysis/app-info"
}
},{
namespace: "synergy/health",
attributes: {
url: "http://localhost:9005/plexus-analysis/synergy/analysis/health"
}
},{
namespace: "synergy/icon",
attributes: {
url: "http://localhost:9005/plexus-analysis/synergy/analysis/app-icon"
}
},{
namespace: "synergy/web",
attributes: {
mainEntryPoint: "http://localhost:9005/plexus-analysis/login"
}
}]
}]

In order to support application service and feature discovery application must implement few basic Synergy Features.