Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs(terminology): extended and updated terminology #1653

Closed

Conversation

janpmeyer
Copy link
Contributor

What this PR changes/adds

The documentation on terminology has been extended and adapted.

Why it does that

The previous documentation under the area of terminology has not been complete so far and has been partly outdated.

Linked Issue(s)

Closes #1306

Checklist

  • added appropriate tests?
  • performed checkstyle check locally?
  • added/updated copyright headers?
  • documented public classes/methods?
  • added/updated relevant documentation?
  • added relevant details to the changelog? (skip with label no-changelog)
  • formatted title correctly?

@github-actions github-actions bot added this to In progress in Connector Jul 12, 2022
Copy link
Member

@paullatzelsperger paullatzelsperger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Explanations, that deal with actual Java classes, should be put into the respective Javadoc comments. Also, many of the explanations are completely redundant. Please do not just paraphrase the class name, because that does not add value.

Documenting something in a markdown file should only be done if it cannot be done in Javadoc, e.g. overarching or architectural concepts.

The terminology.md really is useful to explain more abstract or overarching concepts such as "Dataspace" or "Extension", as long as they are correct.

| **Contract Offer Template** | Blueprint of a **contract offer**
| **Consumer** | see **data consumer**
| **Consumer Pull** | The data transfer is initilazied by the Consumer
| **Data** | **Data** describes the properties of business objects
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is plain wrong. Business objects' properties are described by fields, at least in an OOP sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have tried to reformulate it in the sense that data have the task to represent information. Honestly, however, a good description for data is to be found, because from different points of view data are always defined slightly differently. Hope it fits better now.

| **Contract Agreement** | **Contract Agreement**<p>* points to a **Contract Offer**<p>* results from a **Contract Negotiation Process**<p>* has a start date and may have a expiry date and a cancellation date
| **Contract Negotiation** | * MVP: only possible to accept already offered contracts. Counter offers are rejected automatically.
| **Contract Offer** | **Contract offer**<p>* set of obligations and permissions<p>* generated on the fly on provider side (see **Contract Offer Framework**)<p>* are immutable<p>* persisted in **contract negotiation process** once the negotiation has started<p>
| **Contract Offer Framework** | **Contract offer framework**<p>* generates **contract offer templates**<p>* provided by **extensions**<p>* may be implemented in custom **extensions** to created **contract offers** based on existing systems
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The term "Contract Offer Framework" is not in use anymore.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok sorry, deleted it now. I wasn't aware of it.

| **Federated Catalog** | A decentralized **catalog**
| **Framework** | see **contract offer framework**
| **Health** | Infrastructure status of the EDC
| **HTTPDataAddress** | Specific type of **dataaddress** in context of HTTP-endpoints
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HTTPDataDdress: yeah, but which one?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Deleted this term now in context of your advice that something like this should be in the javadoc and not in an markdown.

| **Event Router** | **Event router** is the central part of the **event framework**, which collects all published **events**
| **Extension** | see **EDC Extension**
| **Federated Catalog** | A decentralized **catalog**
| **Framework** | see **contract offer framework**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comment there.

| **Event Framework** | **The event framework** is a way to react to actions in the EDC and can also be extended
| **Event Router** | **Event router** is the central part of the **event framework**, which collects all published **events**
| **Extension** | see **EDC Extension**
| **Federated Catalog** | A decentralized **catalog**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since Catalog and Federated Catalog are two entries here, it would be necessary to distinguish between them.

Copy link
Contributor Author

@janpmeyer janpmeyer Jul 12, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have now tried to better illustrate that the catalog is a standalone component of a dataspace, while the federated catalog is a decentralized approach that is placed within each connector.

| **Health** | Infrastructure status of the EDC
| **HTTPDataAddress** | Specific type of **dataaddress** in context of HTTP-endpoints
| **Identity Provider** | Management of the correct identification of all participants in the **dataspace**.
| **Injection** | **Artifacts**/**EDC Extensions** can be injected in different parts of the EDC to be used
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Injection: That's just plain wrong.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I deleted this also because of your advice in context of what has to be in javadoc and what in markdown.

Only my question about it is this. The Injection Interface is used to make the different modules usable among each other. So to give a module of the EDC the possibility to find the COde of another used module within the EDC. If this is a complete misconception of your injection mechanism, I need to look deeper into your injection mechanism.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

first of all, we don't inject extensions or modules, we simply inject services. this is a very wide-spread concept that deals with object instantiation.
Here, we use it to achieve loose coupling through interfaces, and determine the runtime type of a field ... well... at runtime.

I strongly suggest diving deeper into the code and reading the appropriate documentation, and only add documentation if really necessary.

@jimmarino
Copy link
Contributor

jimmarino commented Jul 13, 2022

Part of my issue with the documentation in general (not related just to this PR) is that it is mixing concepts with implementation details and duplicating this in multiple places. @janpmeyer unfortunately this problem pre-dates your work here but I think we should address it now before it gets worse.

For example, we have conceptual documentation here:

https://github.com/eclipse-dataspaceconnector/Publications/blob/main/Dataspaces/Dataspace%20Context%20Model%20and%20Conceptual%20Architecture.md

and here:

https://github.com/eclipse-dataspaceconnector/DataSpaceConnector/tree/main/docs/architecture/diagrams

Parts of the terminology in this PR are not aligned with either. For example, in EDC there is no concept of a broker in the IDS sense, just FCNs and FCCs. A connector is not responsible for handling the process of joining a dataspace, etc.

Can we first align on an overall strategy for the documentation? As a starter, I agree with @paullatzelsperger that implementation details - items which are not represented at a conceptual level - should only be described in Javadoc and referenced in technical implementation documentation (e.g. a Decision Record). For example, AssetIndex is an implementation detail, not a concept like a Connector or a Participant Agent.

If we adopt that approach, shouldn't terminology be defined as part of the conceptual architecture document?

@github-actions
Copy link

This pull request is stale because it has been open for 7 days with no activity.

@github-actions github-actions bot added the stale Open for x days with no activity label Jul 21, 2022
@github-actions
Copy link

This pull request was closed because it has been inactive for 7 days since being marked as stale.

@github-actions github-actions bot closed this Jul 29, 2022
Connector automation moved this from In progress to Done Jul 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
stale Open for x days with no activity
Projects
No open projects
Connector
  
Done
Development

Successfully merging this pull request may close these issues.

Update terminology.md
3 participants