This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/wiki/do/viewPage/projects.glue-wg/wiki/LDAPForeignKeysDiscussion at Thu, 03 Nov 2022 00:06:16 GMT SourceForge : View Wiki Page: LDAPForeignKeysDiscussion

Project Home

Tracker

Documents

Tasks

Source Code

Discussions

File Releases

Wiki

Project Admin
Search Wiki Pages Project: GLUE     Wiki > LDAPForeignKeysDiscussion > View Wiki Page
wiki2163: LDAPForeignKeysDiscussion
The main idea of this page is to vote on where each Foreign Key should be in each relation. The way to create the following table was to go through all relations from the start avoiding duplicates.

As a general recommendation, on those relations which are one to many, it is advised to put the Foreign Key in the "many" part, except if the other way give advantages on the use cases that we have.

The next table expresses all relations of the GLUE 2.0 Specifications. As an example of interpretation:

Relation 1Mult 1Mult 2Relation 2CommentsVotes on 1Votes on 2
Entity10..*Extension---

This row should be interpreted as follows:

  • Each Entity has zero or more Extensions associated
  • Each Extension has exactly one Entity associated

Table

Relation 1Mult 1Mult 2Relation 2CommentsVotes on 1Votes on 2Votes on both
Entity10..*Extension--LF,SB,ML-
Location0..10..*Service-LF,SB,ML--
Location0..10..*Domain-LF,SB,ML--
Contact0..*0..*Service-LF,SB,ML--
Contact0..*0..*Domain-LF,SB,ML--
AdminDomain10..*ServiceSee Possible Errata-LF,ML-
AdminDomain0..10..*AdminDomain--LF,SB,ML-
UserDomain1..*0..*Policy--LF,SB,ML-
UserDomain0..10..*UserDomain--LF,SB,ML-
Service10..*Endpoint--LF,SB,ML-
Service10..*Share--LF,SB,ML-
Service10..*Manager--LF,SB,ML-
Service0..*0..*Service---LF,SB,ML
Endpoint0..*0..*Share--LF,SB,ML-
Endpoint10..*AccessPolicy--LF,SB,ML-
Endpoint0..10..*Activity--LF,SB,ML-
Share0..*0..*Resource-LF,ML,SB--
Share0..10..*Activity--LF,SB,ML-
Share10..*MappingPolicy--LF,SB,ML-
Manager11..*Resource--LF,SB,ML-
Resource0..10..*Activity--LF,SB,ML-
Activity0..*0..*Activity---LF,SB,ML
ComputingService10..*ComputingEndpointRedefines Service-Endpoint-Redefinition-
ComputingService10..*ComputingShareRedefines Service-Share-Redefinition-
ComputingService10..*ComputingManagerRedefines Service-Manager-Redefinition-
ComputingService10..*ToStorageServiceSee Possible Errata-LF,SB,ML-
ComputingEndpoint0..*0..*ComputingShareRedefines Endpoint-Share-Redefinition-
ComputingEndpoint0..10..*ComputingActivityRedefines Endpoint-Activity-Redefinition-
ComputingShare0..*0..*ExecutionEnvironmentRedefines Share-ResourceRedefinition--
ComputingShare0..10..*ComputingActivityRedefines Share-Activity-Redefinition-
ComputingManager10..*ExecutionEnvironmentRedefines Manager-Resource-Redefinition-
ComputingManager10..*ApplicationEnvironment--LF,SB,ML-
ComputingManager0..10..*Benchmark--LF,SB,ML-
Benchmark*0..1ExecutionEnvironment-LF,SB,ML--
ExecutionEnvironment0..10..*ComputingActivityRedefines Resource-Activity-Redefinition-
ExecutionEnvironment0..*0..*ApplicationEnvironment--LF,SB,ML-
ApplicationEnvironment10..*ApplicationHandle--LF,SB,ML-
ToStorageService-1StorageServiceUnidirectionalLF,SB,ML--
StorageService10..*StorageEndpointRedefines Service-Endpoint-Redefinition-
StorageService10..*StorageShareRedefines Service-Share-Redefinition-
StorageService10..*StorageManagerRedefines Service-Manager-Redefinition-
StorageService10..*StorageAccessProtocol--LF,SB,ML-
StorageService10..*StorageServiceCapacity--LF,SB,ML-
StorageAccessProtocol0..*0..*ToComputingService--LF,SB,ML-
StorageEndpoint0..*0..*StorageShareRedefines Endpoint-Share-Redefinition-
StorageShare0..*0..*DataStoreRedefines Share-ResourceRedefinition--
StorageShare10..*StorageShareCapacity--LF,SB,ML-
StorageManager10..*DataStoreRedefines Manager-Resource-Redefinition-
ToComputingService-1ComputingServiceUnidirectionalLF,SB,ML--
ToComputingService-1StorageServiceUnidirectional. See Possible ErrataLF,SB,ML--

There is also another problem related to ForeignKeys and inheritance. Since we are using LDAP, when you redefine a relationship, we can not hide the own that is in the parent's class. Sometimes, the relationship we are trying to redefine in the parent's class is mandatory, making it inconsistent with what we want to express. Possible solutions: - Make the concrete relations optional instead of mandatory - Make all relations optional - Don't redefine relations

 




The Open Grid Forum Contact Webmaster | Report a problem | GridForge Help
This is a static archive of the previous Open Grid Forum GridForge content management system saved from host forge.ogf.org file /sf/wiki/do/viewPage/projects.glue-wg/wiki/LDAPForeignKeysDiscussion at Thu, 03 Nov 2022 00:06:16 GMT