SymetryML6.1
  • Introduction
  • Guides
    • Onboarding Guide
    • Technical Requirements
    • Admin User Guide
    • Installation Guide
      • Installation Guide - GPU
      • Installation Guide - Spark
  • SymetryML GUI
    • ML Toolkit
      • The SymetryML Difference
      • Data Mining Lifecycle
      • SymetryML Concepts
      • Data Sources
      • Streams
      • Encoders
      • Projects
      • Models
    • Sequence Models
    • SymetryML Federated Learning
      • Creating the Federation
      • Load data to local project
      • Requesting Federation Information from Admin Node
      • Joining a Federation with a peer node
      • Federated Data & Modelling
      • Appendix
    • DEM Generator
  • SymetryML Rest Client
    • REST API Reference Guide
      • SymetryML REST API Security
      • SymetryML JSON API Objects
      • Encoder Object REST API
      • SymetryML Projects REST API
      • About Federated Learning
      • Hipaa Compliance and Federated Learning
      • Federated Learning API
        • Federated Learning Topologies
        • Federated Learning with Nats
        • Federated Learning with AWS
        • Fusion Projects
      • Exploration API
      • Modeling API
      • Exporting and Importing Model
      • Third Party Model Rest API
      • SymetryML Job Information
      • Prediction API
      • Data Source API
      • Project Data Source Logs
      • Stream Data Source API
      • AutoML with SymetryML
      • Transform Dataframe
      • Select Model with SymetryML
      • Auto Select with SymetryML
      • Tasks API
      • Miscellaneous API
      • WebSocket API
      • Appendix A JSON Data Structure Schema
      • Appendix B Sample Code
  • SymetryML SaaS
    • SaaS Homepage
    • SaaS Dashboard
    • SaaS Account
    • SaaS Users
    • SaaS Licence
Powered by GitBook
On this page
  • About Fusion Projects
  • Real Time Streaming Data Scaling
  • Fusion Project and Federated Learning
  • Fusion Projects REST API
  • Create New SymetryML Fusion Project
  • URL
  • Create New Fusion SymetryML project Body
  • Create Project Query Parameters
  • HTTP Responses
  • Fusion Project Cell Status About Specific Cells
  • URL
  • Fusion Cell Body
  • HTTP Responses
  • HTTP Response Entity
  • Update Cells Information of a Fusion Project
  • URL
  • Create New Fusion SymetryML project Body
  • HTTP Responses
  1. SymetryML Rest Client
  2. REST API Reference Guide
  3. Federated Learning API

Fusion Projects

PreviousFederated Learning with AWSNextExploration API

Last updated 2 years ago

About Fusion Projects

Fusion projects bring 2 major functionalities to the SymetryML environment

  1. Allows to scale to real time streaming data with a very large number of IO (Gigabytes per secs)

  2. Allows to create centralized federated learning setting where the data privacy of each cells in preserved. Please consult for more details.

Real Time Streaming Data Scaling

Fusion Project allows to handle data coming from a stream with very high throughput. It is possible to scale the system to handle millions of rows / tuples per seconds. SymetryML Fusion projects do not process any data per say, instead they are reliant on other projects (called cell projects) to process streaming data in parallel. This is shown here:

One important thing to know about Fusion project is that all components (the main fusion project and its cell projects should reside relatively close to each other in order to minimize network latency. Ideally they should reside in the same rack mount.

Fusion Project and Federated Learning

A Fusion Project also allow to create a centralized federated learning setting where only the a central server can leverage data from various site without never accessing the actual data. That is privacy of data is preserved. In the image before the 3 cells could be 2 individual doctor offices + 1 laboratory situated at different location in a country. These 2 doctor and laboratory would be feeding data to a central server - possibly a larger organization that oversees model building and then distribute them back to the doctors and laboratory organizations.

Fusion Projects REST API

The following section describes the rest endpoint pertaining to fusion projects. Please note that once a Fusion project is created almost all of the other functionality of normal SymetryML project is available for this project. We say almost available because some functionalities are not available:

  • Data source cannot be attached to a Fusion project because the processing of data needs to happen on the project cells of the fusion project

    • Data source statistics are also not available for same reason

On the other hand its possible to

  • All other project lifecycle endpoints like deleting a project, renaming, info, etc.

Create New SymetryML Fusion Project

This API function call create a new SymetryML Fusion project.

URL

POST /symetry/rest/{cid}/projects/fusion/create [Encrypted [FusionCellInfoList]]

Create New Fusion SymetryML project Body

Create Project Query Parameters

Parameter

Required / Optional

Description

pid

Required

Name of the new SymetryML project.

persist

Optional

Whether to persist or not a project. Valid values are * true * false

HTTP Responses

HTTP Status Code

HTTP Status Message

Description

201

CREATED

Success. {"statusCode":"CREATED","statusString":" + SYMETRYML Created with id:r1","values":{}}

409

CONFLICT

SymetryML project already exists. {"statusCode":"CONFLICT","statusString":" + Customer [c1] already have SYMETRYML with id[r1], ","values":{}}

Fusion Project Cell Status About Specific Cells

Request status for a specific list of cells.

URL

POST /symetry/rest/{cid}/projects/fusion/{pid}/cellsStatus [body=Encrypted FusionCellInfoList]

Fusion Cell Body

HTTP Responses

HTTP Status Code

HTTP Status Message

Description

200

OK

Success.

400

BAD REQUEST

SymetryML project does not exist. {"statusCode":"BAD_REQUEST","statusString":"Cannot Find SYMETRYML id[r5] for Customer id [c1]","values":{}

HTTP Response Entity

HTTP Response Entity

Description

cellsStatusEncrypted

Update Cells Information of a Fusion Project

This REST endpoint allows to update the list of cells for a Fusion project.

URL

POST /symetry/rest/{cid}/projects/fusion/{pid}/updateCellsInfo [body=Encrypted FusionCellInfoList]

Create New Fusion SymetryML project Body

HTTP Responses

HTTP Status Code

HTTP Status Message

Description

200

OK

Success.

400

BAD REQUEST

SymetryML project does not exist. {"statusCode":"BAD_REQUEST","statusString":"Cannot Find SYMETRYML id[r5] for Customer id [c1]","values":{}

When a request is made to or fusion project will take care of interrogating its cell projects to get the latest data in a just in time fashion. Under the hood, the Fusion project refresh the data when needed, but no less that a pre-defined number of seconds. The default value is 15 seconds but can easily be adjusted with the rtlm.option.sml.fusion.prefetch.min.time.ms config parameter of the symetry-rest.txt configuration file. Please consult the for details.

Again please consult for more details on how fusion can be used to create a centralized federated learning system.

Use the

Use the and

The body of the request consist of an encrypted . It is mandatory and contains login information to access the REST-API of each cells.

The body of the request consist of an encrypted . It contains login information to access the REST-API of each cells.

The json string representation of a encrypted with the user secret key.

The body of the request consist of an encrypted . It contains login information to access the REST-API of each cells.

Model API
Exploration API
Installation Guide
About Federated Learning Topologies
Exploration API
Model API
Prediction API
About Federated Learning Topologies
FusionCellInfoList
FusionCellInfoList
FusionCellInfoList
FusionCellStatusList
Example of 3 Cells Fusion Project