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
Closed
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ in the detailed section referring to by linking pull requests or issues.
* Bump `failsafe` library to version 3.2.4 (#1559)
* Harmonize logics of `HttpDataSource` and `HttpDataSink` (#1475)
* Log correct type in contract-definition API (#1584)
* Extended and updated terminology.md (##1306)

#### Removed

Expand Down
84 changes: 52 additions & 32 deletions docs/overview/terminology.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,54 @@
# Terminology

| Name | Description |
|:--- |:--- |
| **Artifact** |
| **Asset** | **Assets**<p>* have one content type<p>* can be a finite as a (set of) file(s) or non finite as a service, stream</br>* are the _unit of sharing_<p>* can point to one or more (physical) asset elements
| **Asset Element** |
| **Asset Index** | **Asset Index**<p>* manages assets<p>* provided by an extension<p>* may support external catalogs<p>* can be queried
| **Broker** | see **IDS Broker**
| **Connector** |
| **Connector Directory** |
| **Contract** |
| **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
| **Contract Offer Template** | Blueprint of a **Contract Offer**
| **Consumer** |
| **Data** |
| **Dataspace** |
| **EDC Extension** |
| **Element** | see **Asset Element**
| **Extension** | see **EDC Extension**
| **Framework** | see **Contract Offer Framework**
| **Identity Provider** |
| **IDS Broker** | IDS version of the **Connector Directory**
| **Offer** | see **Contract Offer**
| **Offer Framework** | see **Contract Offer Framework**
| **Policy** | logical collection of rules
| **Provider** |
| **Resource** |
| **Resource Manifest** |
| **Rule** | **Rules**<p>* bound to a **Contract Offer**, **Contract Agreement** or **Contract Offer Framework**<p>* exist independent from an **Asset**
| **Transfer Process** | **Transfer Process**<p>* based on a **Contract Agreement**
| Name | Description |
|:-----------------------------|:--- |
| **Artifact** | The instance of code which can be modulized used by the EDC
| **Asset** | An **asset** describes **data** that can add value to a **dataspace** and contains the **dataAddress**
| **Asset Index** | **Asset Index**<p>* manages assets<p>* provided by an extension<p>* may support external catalogs<p>* can be queried
| **Broker** | see **IDS Broker**
| **Catalog** | **Catalog** is a directory about all meta-information about the **assets** a **data consumer** can reach in the **dataspace**
| **Configuration** | The EDC allows using a configuration file which will be loaded at every startup of an EDC instance
| **Connector** | **Connector** is the central instance for a participant to join a **dataspace**. The **connector** is the gateway from the user to the **dataspace**.
| **Contract** | **Contract** is the finalized meta-information for a data transfer after a **contract negotiation** including the **policies** who have to be followed
| **Contract Managment** | Includes all parts of **contract offer**, **contract agreement** and **contract negotiation**
| **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.

| **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.

| **Data Consumer** | **Data consumer** are receiver of data in a data transfer
| **Data Provider** | **Data providers** produce data and are the source for data in a data transfer
| **DataAddress** | Reference to the physical Address of an **asset**
| **DataFlow** | Transfer of **data** from **data producer** to **data consumer**.
| **Dataspace** | A **dataspace** is a space where different participants exchange **data** to get an benifit of this
| **EDC Extension** | A module piece of the EDC which can be customized used for the EDC
| **EndpointDataReference** | **EndpointDataReference** describes an endpoint at which one receives data
| **Event** | An **event** is a action which is be observed in the EDC and published by the **Event Framework**
| **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.

| **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.

| **Health** | Infrastructure status of the EDC
| **HTTPDataAddress** | Specific type of **dataaddress** in context of HTTP-endpoints
Copy link
Member

@paullatzelsperger paullatzelsperger Jul 12, 2022

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.

| **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

@paullatzelsperger paullatzelsperger Jul 12, 2022

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.

| **Offer** | see **contract offer**
| **Offer Framework** | see **contract offer framework**
| **Monitor** | The **monitor** is an interface to realise different ways to put out logs and debug information
| **Policy** | logical collection of rules
| **PolicyArchive** | Location to get **policies** by their ID
| **PolicyDefinitionStore** | Storing all **policy definitions** in the EDC
| **PolicyEngine** | Enforcing of **policies** in the EDC
| **Provider** | The participant in an dataspace who is producing and publish sth. See **Data Provider**
| **Resource** | Infrastructure component for data transmission
| **Resource Manifest** | Collection of **resources**
| **Rule** | **Rules**<p>* bound to a **contract offer**, **contract agreement** or **contract offer framework**<p>* exist independent from an **asset**
| **Transfer Process** | **Transfer process**<p>* based on a **contract agreement**
| **Transfer Process Store** | Storing all informations about handled **transfer processes**
| **TypeManager** | **TypeManager** manages system types and is used to deserialize polymorphic types
| **UsageControl** | **Usage Control** is the part of the EDC that is responsible for ensuring that the **policies** for the **data** specified in the **contract** are adhered to.
| **Vault** | Providing secrets