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

    Chemaxon Cloud provides /api/discover endpoint where applications can send HTTP GET request to receive the list of available applications and their application info. Request has to be authenticated using JWT token header (see Application authentication page) either for current user or service itself.

    {info} Interactive API documentation is available at: http://team1.cloud.chemaxon.com/swagger-ui.html#!/gateway45public45api45controller/discoverUsingGET

    {info} Note: To try out change team1 to your subdomain and authorize the requests on gateway-public section by client id and client secret.

    Example

    GET /api/discover
    [
      {
        "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.