Hi All,

I have been engaging with the SMILES project to implement the Gateway and
its necessary components. Just to give you a brief introduction, the SMILES
project has three types of data that need to be combined for publication:
Computational DB, Literature DB, and Experiment DB. There should be a
frontend to filter, create, and delete data products, with a Django app as
the backend that will communicate with Apache Airavata Data Catalog [1].

Mainly, I have been exploring two approaches.

1.
[image: approach1.png]

The frontend will communicate with the Django app via REST, and the Django
app will manage the manipulation of data products through gRPC calls to the
Data Catalog API. Django models will be used to represent the
Computational, Literature, and Experiment data products, without storing
the data. In the end, these data products will reside in the Data Catalog,
following its established conventions.

POC - https://github.com/lahirujayathilake/SEAGrid
This has been implemented to cover the data product creation

2.
[image: with-grpc.png]

In this approach, the distinction will be a gRPC server operating within
the Django app. To represent the three data products, protobufs will be
defined that extend the DataCatalog proto messages [2]. The frontend will
communicate using gRPC calls.
The gRPC API can be used to manipulate data from other clients, resulting
in improved performance.

POC - https://github.com/lahirujayathilake/SEAGrid/tree/with-grpc
(The frontend is inprogress)

I would like to hear your thoughts and feedback on the designs to improve
and to go with the right approach.


[1] - https://github.com/apache/airavata-data-catalog
[2] -
https://github.com/apache/airavata-data-catalog/blob/main/data-catalog-api/stubs/src/main/proto/DataCatalogAPI.proto

Cheers!
Lahiru

Reply via email to