International-Data-Spaces-Association / InformationModel

The Information Model of the International Data Spaces implements the IDS reference architecture as an extensible, machine readable and technology independent data model.
Apache License 2.0
64 stars 37 forks source link

Updating data at Broker #470

Closed MoritzKeppler closed 2 years ago

MoritzKeppler commented 3 years ago

A broker holds a list of ConnectorCatalogs. A ConnectorCatalog holds a list of Connectors (i.e. Connector self-descriptions). A Connector holds a list of ResourceCatalogs. A ResourceCatalog holds a list of offered Resources.

Sending a resource update message will update the corresponding resource entries in all offered Resource lists of all ResourceCatalogs of the connector sending the update. If the resource is not listed in any Catalog it won't get updated. If the Broker already processed a newer message for the same resource it will ignore the message. Right? btw: is it possible that a resource is listed by multiple connectors?

Moritz Keppler moritz.keppler@daimler.com, Daimler TSS GmbH, legal info/Impressum

clange commented 3 years ago

I can help with one point:

is it possible that a resource is listed by multiple connectors?

I do not think so. Multiple connectors might serve resources that have the same content and the same values for most of their metadata properties, but at least the identifiers of the resources would typically differ. (Think of the RDF analogy <uri1> owl:sameAs <uri2>.)

For the further questions, let me involve the Broker component owner @sebbader and the infomodel message expert @HaydarAk.

sebbader commented 2 years ago

Hello @MoritzKeppler,

the currently implemented behavior of an ids:ResourceUpdateMessage is that of a PUT: Overwrite if existing, else Create new one. Therefore, an update to an empty Catalog will result in a newly added ids:Resource.

Second, the order of the incoming messages defines the new state. That means that the reference implementation of the Metadata Broker only looks what is the last received update message, and more or less ignores the time stamp of the other messages.

Does that answer your question?