Scope Management
[coming soon]
Contents
What's in Scope?
Any gCube resource may only be shared within one or more scopes in the infrastructure on which it is deployed. Outside its scopes, in particular, the resource can neither be discovered nor used.
Scope is a multi-valued property of all gCube resources.
Modelling Scope
Three levels of scope may be assigned to a resource: a gCube Infrastructure (GI), a Virtual Organisation (VO), or a Virtual Research Environment (VRE).
The levels are hierarchically ordered: GIs are above VOs and VREs are below VOs.
We follow a grammar to denote scopes in a way which explicitates their hierarchical relationships:
SCOPE : = = GI | VO | VRE GI :== /l VO :== GI/l VRE :== VO/l
where l ranges over an alphabet of labels.
For convenience, we write S1 below S2 to indicate that S1 and S2 denote the scope or that S1 is directly or indirectly below S2. Similarly, we write S1 above S2 to indicate that S1 and S2 denote the scope or that S1 is directly or indirectly above S2.
We model scoping as a binary relationship between resource and scopes. We write R in S to denote a pair (R,S) of a resource R and a scope S in the scoping relationship.
Scope Rules
Scoping is constrained by a number of scope rules.
Scope rules are specific to resource types. A default rule, however, applies to all of them:
Let VRE range offer virtual research environments, R be a resource and VO virtual organisation.
DEF) if R is shared in a VOs then it is also shared in VREs below: R in VO => for each VRE in VO. R in VRE
- NB: The opposite does not always hold: depending on resource type, a resource may be shared in a VRE but not in the VO above.
- NB: Most definitely, a resource shared in a GI is not automatically shared in the VOs. For this to happen, the resource may have to explicitly join a VO.
Scoping Rules for gCube Hosting Nodes
Let GI range over gCube Infrastructures and GHN be a hosting node.
GHN1) GHN may only be shared in one infrastructure: exist GI. GHN in GI and (GHN in S => S below GI)
GHN2) if a GHN is shared in a scope is also shared above it: GHN in S => for each S' above S. GHN in S'
- NB: GHN2 proves that the converse of DEF) hold for GHNs: A GHN cannot be shared in VRE(VO) if it is not shared also in the VO(GI) above.
gCore specifications:
- DEF) + GHN2 => model GHN scope as a list of one GI and zero or more VOs.
- on add, enforce GHN1) and retain only VO from VRE scopes (GCUBEHostingNode)
- on remove, prevent removal of GI if attempted (GCUBEHostingNode)
- on bootstrap, require configuration of single GI and allow zero ore more start VOs (GHNBuilder)
gCube Calls & the gCube Handler
[coming soon]
Scope Managers
[coming soon]