Page tree

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.