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

Different result formats #335

Open
1 task done
MichaelHoffmeisterFesto opened this issue Oct 19, 2024 · 5 comments
Open
1 task done

Different result formats #335

MichaelHoffmeisterFesto opened this issue Oct 19, 2024 · 5 comments
Labels
enhancement New feature or request

Comments

@MichaelHoffmeisterFesto

What is missing?

GetAllAssetAdministrationShellDescriptors() and GetAllAssetAdministrationShellIdsByAssetLink() return lists of AAS, but in different formats. Any chance to harmonize that?

How should it be fixed?

Return both time the descriptors

  • I have signed the required Developer Certificate of Origin (DCO) already.
@MichaelHoffmeisterFesto MichaelHoffmeisterFesto added the enhancement New feature or request label Oct 19, 2024
@mjacoby
Copy link
Collaborator

mjacoby commented Oct 21, 2024

GetAllAssetAdministrationShellDescriptors aka /shell-descriptors returns elements of type AssetAdministrationShellDescriptor while GetAllAssetAdministrationShellIdsByAssetLink aka /lookup/shells returns simple strings which represent the identifiers of an AAS.

You are asking to harmonize the output which could be done in two ways - always return AssetAdministrationShellDescriptor or string. Returning only string would make the AAS registry useless so this is out of the question. Always return AssetAdministrationShellDescriptor also does not work, as both operations are part of different service definitions, i.e., can be implemented completely independent of each other which means that the service implementing GetAllAssetAdministrationShellIdsByAssetLink does not have the required information to return descriptor objects.

However, I assume I can see where you are coming from as I guess you assume that the AAS Basic Discovery API might be implemented together with the AAS Registry API, in which case, all the information would be present to return AssetAdministrationShellDescriptor. However, this would be an assumption that is not backed by the specification. There might also be other implementations, for example, FA³ST Service combines the AAS Basic Discovery API with the AAS Repository API.

Does this resolve your issue? If not, could you please provide a more detailed explanation what you think the problem is exactly and how you think it should be harmonized?

Disclaimer
This is just my personal opinion and not the official opinion of the REST API working group.

@MichaelHoffmeisterFesto
Copy link
Author

Yes, intention was to always get shell descriptors.
If you see blocking points to not harmonize in this direction, I am fine. Closing the issue is fine.
Just wanted to point to that possibility.
Best
Michael

@mjacoby
Copy link
Collaborator

mjacoby commented Oct 21, 2024

The issue is that this is conceptually not possible because the operation GetAllAssetAdministrationShellIdsByAssetLink is not part of the AAS Registry Service Specification (see Table 1 at https://admin-shell-io.github.io/aas-specs-antora/IDTA-01002/v3.1/http-rest-api/service-specifications-and-profiles.html) and therefore might be part of a different implementation (or even implemented as stand-alone).

However, it would be possible to change this definition and make the AAS Basic Discovery API part of the AAS Registry Service Specification. This would have the following consequences

  1. Removal of Discovery Service Specification, i.e., there could no longer any stand-alone implementations of that service
  2. Every AAS registry needs to implement GetAllAssetAdministrationShellIdsByAssetLink

With these changes, it would be possible to change the return type to AssetAdministrationShellDescriptor.

Is this something you would like/propose?

@MichaelHoffmeisterFesto
Copy link
Author

Hi, this is nothing that I could decide. And: it is just optimization and it changes interfaces, therefore it is only to be considerated for the next major version. However, in my case, a list of simple ids from GetAllAssetAdministrationShellIdsByAssetLink results in dozens of calls to GetConceptDescriptionById just in order to get the AdministrativeInformation, therefore there is an severe performance penalty.
Again: I am fine if you put it on hold or closed.

@BirgitBoss
Copy link
Collaborator

It would also be possible to extend the Registry Service with
GetAllAssetAdministrationShellIDescriptorsdsByAssetLink
A disadvantage might be a more complex access control implementation.

However, probably these kinds of problems are solved as soon as we support a query language.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants