Skip to content

Preliminary Domain Model

Nirav Assar edited this page Jun 25, 2019 · 3 revisions

Table of Contents

Summary

Try to create a domain model in JSON so we can base a preiminary screen Ui with a vue app.

- look at docs to see the domain: Existing OpenDDS Monitor GUI.pdf

Domain Model Research


Questions

  • what is the purpose of DomainParticipant
  • if you have publishers then what is a topic for
    • its a container for DataWriters
    • publisher/subscriver
  • hows does a separate application connect to all this? through a subscriber?
    • it says it the application on the subscribing side retrieves the data from the DataReader
  • what is the relationship between publishers/subscribers and topics
  • applications that are using DDS are publishers and subscribers

Domain Model Notes

Topic
	name, id, datatype
	hasMany dataWriters
	hasMany dataReaders
	
Publisher
	hasMany datawriters
	
Subscriber
	hasMany dataReaders
	
DataWriter
	Topic
	
DataReader
	Topic
	
- Monitor topic are enabled for the Monitoring Web Gateway - the UI will look at monitor topics and built in topics	- ops topics are the domain topics like radar, stock, or flight etc - 
	
- had to add hibernate.allow_update_outside_transaction = true - so that the transaction in bootstrap can go through
		- try in grails 3.3.10 and it works
		- maybe we needed to create a service for this but i wont bother
		- to make it render everything just change _object.gson to deep: true
		- cant have the deep and the parent reference at the same time. So just have the topic -> writers and if you need writers write your own query to get that json

Json output

[
  {
    "id": 1,
    "dataWriters": [
      {
        "id": 1,
        "name": "gasPriceWriter"
      }
    ],
    "name": "gasPrice",
    "dataReaders": [
      {
        "id": 1,
        "name": "gasPriceReader1"
      },
      {
        "id": 2,
        "name": "gasPriceReader2"
      }
    ]
  }
]

[
  {
    "id": 1,
    "name": "gasPriceSubscriber",
    "dataReaders": [
      {
        "id": 1,
        "name": "gasPriceReader1"
      },
      {
        "id": 2,
        "name": "gasPriceReader2"
      }
    ]
  }
]

[
  {
    "id": 1,
    "dataWriters": [
      {
        "id": 1,
        "name": "gasPriceWriter"
      }
    ],
    "name": "gasPricePublisher"
  }
]