JMMC/ObsPortal: Software architecture


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

Vollt library (CDS) provides a TAP reference implementation:


  • What do we want to do?
    • Using Aspro2
      • To find past observations about selected targets (with the same interferometer, instrument, configuration, ...) directly from the GUI or using SAMP + web portal
      • To display these observations by plotting points under "Observability" and "UV coverage" tabs
    • Using a Web portal
      • May provide an advanced web interface to search / filter observation logs
      • Could provide SAMP interoperability (like CDS simbad / vizier) to ASPRO2 (custom messages + votable output)


  • On which metadata to search and filter the observations?
    • target name
      • will not work !
    • target coordinates
      • Requires cone-search (like TAP)
    • ...
  • Which metadata to display for one observation?
    • To plot the observation under "Observability" tab
      • LST ranges or MJD ranges (converted by ASPRO2 at the given interferometer)
    • To plot the observation under "UV coverage" tab
      • UV point per baseline (radius, angle in ESO archive) + instrument wavelength range to draw the UV segments per baseline
    • To show inside a tooltip
      • Observation setup (interferometer, instrument, mode, identifiers ...)
  • Where to find the source metadata?
    • Extracted from headers provided by the ESO Archive but stored in a 'standard' DM to also handle CHARA observation logs in the future
    • See the page JmmcObsPortalDataAnalysis for the keywords mapping

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 (maybe)
        • SAMP (maybe with web portal)
        • TAP (?)
      • Which parameters?
        • See the question "On which metadata to search and filter the observations?" (target coordinates first ie 1 object per query)
    • How to send the query results to Aspro2?
      • How?
        • Directly
        • Via A2P2 (NO)
        • By a generated intermediary file (OBXml / Asprox)
      • Which protocol?
        • API REST on HTTP/HTTPS
        • SAMP
        • TAP
      • Which data structure?
        • JSON (NO)
        • VOTable (1)
        • OBXml (2)
        • Asprox (NO)
        • ...
      • 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 and the online modeling tool with the extension

Current context around OiDB


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.


Source: JMMC-ObsPortal-C1.drawio


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


Source: JMMC-ObsPortal-C2.1.drawio

The frontend ("Web Application") may be part of "Core Application"...

Proposition 2


Source: JMMC-ObsPortal-C2.2.drawio

The frontend ("Web Application") may be part of "Backend Application"...

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 r4 r3 r2 r1 manage 2.9 K 2019-12-03 - 10:40 PhilippeBollard  
PNGpng JMMC-ObsPortal-C1.png r4 r3 r2 r1 manage 88.5 K 2019-12-03 - 10:40 PhilippeBollard  
Unknown file formatdrawio JMMC-ObsPortal-C2.1.drawio r1 manage 3.3 K 2019-12-03 - 15:43 PhilippeBollard  
PNGpng JMMC-ObsPortal-C2.1.png r1 manage 100.2 K 2019-12-03 - 15:43 PhilippeBollard  
Unknown file formatdrawio JMMC-ObsPortal-C2.2.drawio r1 manage 3.4 K 2019-12-03 - 15:38 PhilippeBollard  
PNGpng JMMC-ObsPortal-C2.2.png r1 manage 106.1 K 2019-12-03 - 15:38 PhilippeBollard  
Edit | Attach | Watch | Print version | History: r11 < r10 < r9 < r8 < r7 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r11 - 2020-01-14 - PhilippeBollard
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback