JMMC/ObsPortal: Software architecture

Questions

Several points must be discussed in order to define an architecture.

Usages

  • What do we want to do?
    • Using Aspro2
      • To find past observations about selected targets (with the same interferometer, instrument, configuration, ...)
      • To display these observations by plotting points under "Observability" and "UV coverage" tabs
    • Using a Web portal
      • ???

Data

  • On which metadata to search and filter the observations?
    • target name
    • target coordinates
    • ...
  • Which metadata to display for one observation?
    • To plot the observation under "Observability" tab
      • ...
    • To plot the observation under "UV coverage" tab
      • ...
    • To show inside a tooltip
      • ...
  • Where to find the source metadata?

Protocols and links between software parts

  • Aspro2 <--> "ObsPortal System"
    • How to query the "ObsPortal System" from Aspro2?
      • How?
      • Which protocol?
        • API REST on HTTP/HTTPS
        • SAMP
        • TAP
      • Which parameters?
        • See the question "On which metadata to search and filter the observations?"
    • How to send the query results to Aspro2?
      • How?
        • Directly
        • Via A2P2
        • By a generated intermediary file (OBXml / Asprox)
      • Which protocol?
        • API REST on HTTP/HTTPS
        • SAMP
        • TAP
      • Which data structure?
        • JSON
        • VOTable
        • OBXml
        • Asprox
        • ...
      • Which properties to return?
        • See the questions "Which metadata to display for one observation?"

  • OiDB <--> "ObsPortal System"

Modeling method

The architecture will be designed using the method described on https://c4model.com and the online modeling tool draw.io

Current context around OiDB

JMMC-ObsPortal-C1-current.png

Source: JMMC-ObsPortal-C1-current.drawio

ObsPortal architecture

Level 1: System context

A System Context diagram provides a starting point, showing how the software system in scope fits into the world around it.

JMMC-ObsPortal-C1.png

Source: JMMC-ObsPortal-C1.drawio

Comments

At this step, a first question is related to the integration and the future role of OiDB and A2P2...

Level 2: Container

A Container diagram zooms into the software system in scope, showing the high-level technical building blocks.

Proposition 1

JMMC-ObsPortal-C2.png

Source: JMMC-ObsPortal-C2.drawio

The "Observation system" will be composed by:

  • a dedicated database
  • a backend application ("Core Application")
  • a frontend application ("Web Application"), if needed. Il may be part of "Core Application"...
The backend may be decomposed in:
  • an API application proxying requests from Aspro2 to the database
  • a "data feeder" application retrieving new metadata from sources (ESO, CHARA, ...) and inserting the selected properties into the database

Level 3: Component

A Component diagram zooms into an individual container, showing the components inside it.

Level 4: Code

A code (e.g. UML class) diagram can be used to zoom into an individual component, showing how that component is implemented.

-- Philippe Bollard - 2019-11-26

Topic attachments
I Attachment History Action Size Date Who Comment
Unknown file formatdrawio JMMC-ObsPortal-C1-current.drawio r2 r1 manage 2.9 K 2019-11-27 - 13:49 PhilippeBollard  
PNGpng JMMC-ObsPortal-C1-current.png r2 r1 manage 83.1 K 2019-11-27 - 13:50 PhilippeBollard  
Unknown file formatdrawio JMMC-ObsPortal-C1.drawio r2 r1 manage 2.4 K 2019-11-27 - 10:14 PhilippeBollard  
PNGpng JMMC-ObsPortal-C1.png r2 r1 manage 81.2 K 2019-11-27 - 10:24 PhilippeBollard  
Unknown file formatdrawio JMMC-ObsPortal-C2.drawio r1 manage 2.9 K 2019-11-27 - 16:56 PhilippeBollard  
PNGpng JMMC-ObsPortal-C2.png r1 manage 94.3 K 2019-11-27 - 16:56 PhilippeBollard  
Edit | Attach | Watch | Print version | History: r11 | r7 < r6 < r5 < r4 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r5 - 2019-11-27 - PhilippeBollard
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback