Skip to content

Latest commit

 

History

History
2536 lines (2469 loc) · 104 KB

06.-conceptual-model-of-the-main-entities.md

File metadata and controls

2536 lines (2469 loc) · 104 KB

6. Conceptual Model of the Main Entities

This section introduces the main entities of the GLUE information model. They capture the core concepts relevant in a Grid environment. The main entities SHOULD be used to derive specialized information models. In Figure 1, the classes and the related relationships are presented in the form of a UML Class Diagram.

Figure 1 Entities and relationships for the Main Entities conceptual model

6.1. Entity

The Entity class is the root entity from which all the GLUE classes inherit (an exception is made for the Extension class). The specialized classes will inherit both the associations and the attributes of Extension class. The attributes CreationTime and Validity are metadata related to the generation and life of the information. The Name attribute allows a human-readable name to be provided for any object, usable for e.g. monitoring or diagnostic displays. The Name SHOULD NOT have any semantic interpretation.

Entity Inherits from Description

Entity

<<abstract>>

Abstract root concept from which all the other concepts are derived (except the Extension class); it has metadata about information creation and validity plus a key-value pair extension mechanism.
Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated.
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant.

ID [key] URI 1 A globally unique ID.
Name String 0..1 A human-readable name.
OtherInfo String * Placeholder to publish information that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value) pairs are all examples of valid syntax.
Association End Mult. Description
Extension.Key * The entity MAY be associated to zero or more key-value pairs.

Extension

The Extension class provides a general mechanism to add key/value pairs to GLUE classes when suitable specific attributes are not present. The creation time and validity of each Extension instance are those of the extended class instance.

Entity Inherits from Description
Extension A key/value pair enabling the association of extra information not captured by the model with an Entity instance.
Attribute Type Mult. Unit Description
LocalID LocalID_t 1 An identifier unique within the class instance to which it is associated
Key String 1 An identifier local to the container class instance; typically an attribute name not present in the model. This identifier is not required to be unique; several instances of this class MAY hold the same value for this attribute.
Value String 1 A value for the attribute named by the Key.
Association End Mult. Description
Entity 1 The key/value pair is associated to an Entity instance.

Location

The Location class is introduced to model geographical locations where a certain Domain or Service are placed. The aim is to provide a simple way to express geographical information, and it is not intended to be used in complex geographical information systems. Due to different requirements, the granularity is not strictly defined and is left to the information producers depending on their needs. Hence the extent of a geographical location can vary from an exact position to a region spanning several different countries, not necessarily adjacent. The accuracy of the latitude and longitude attributes should be defined in an interoperability profile defined by projects adopting this specification.

Entity Inherits from Description
Location Entity A geographical region where the granularity MAY vary from an exact position to a region spanning several different countries, not necessarily adjacent.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit Description
Address String 0..1 Street address (free format).
Place String 0..1 Name of town/city.
Country String 0..1 Name of country.
PostCode String 0..1 Postal code.
Latitude Real32 0..1 degree The position of a place north or south of the equator measured from -90° to +90° with positive values going north and negative values going south.
Longitude Real32 0..1 degree The position of a place east or west of the primary meridian (located in Greenwich, UK) measured from -180° to +180° with positive values going east and negative values going west (the value -180° is excluded from the range).
Association End Mult. Description
Service.ID * The location is related to zero or more services.
Domain.ID <<abstract>> * The location is related to zero or more domains.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be associated to zero or more key-value pairs.
ComputingService.ID * The location is related to zero or more computing services.
CloudComputingService.ID * The location is related to zero or more cloud computing services
StorageService.ID * The location is related to zero or more storage services.
AdminDomain.ID * The location is related to zero or more admin domains.
UserDomain.ID * The location is related to zero or more user domains.

Contact

The Contact class is introduced to represent contact information for different groups or expert roles responsible for aspects of the operation of services and domains (e.g., user support, security or sysadmin). The various types of contact are identified by the Type attribute. In case of time-dependent contact information (e.g., due to work on shifts), the instances of this entity should represent only the currently active contact information.

The contact information SHOULD be encoded as a URI. There are several specifications recommending how to embed contacts into a URI. The following specifications SHOULD be used:

Entity Inherits from Description
Contact Entity Information enabling the establishment of communication with a person or group of persons related to a Domain.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit Description
Detail URI 1 URI embedding the contact information. The syntax of the URI depends on the nature of the communication channel.
Type ContactType_t 1 Type of contact.
Association End Mult. Description
Service.ID * The contact is related to zero or more services
Domain.ID <<abstract>> * The contact is related to zero or more domains
Inherited Association End Mult. Description
Extension.Key * The entity MAY be associated to zero or more key-value pairs
ComputingService.ID * The contact is related to zero or more computing services
CloudComputingService.ID * The contact is related to zero or more cloud computing services
StorageService.ID * The contact is related to zero or more storage services
AdminDomain.ID * The contact is related to zero or more admin domains
UserDomain.ID * The contact is related to zero or more user domains

Domain

The Domain class is introduced to model and identify groups of actors that MAY play roles in a Grid system. It is an abstract entity that MUST NOT be instantiated; it SHOULD be used in order to derive specialized entities.

Entity Inherits from Description

Domain

<<abstract>>

Entity A collection of actors that MAY be assigned with roles and privileges associated with Entities via Policies. A Domain MAY have relationships to other domains.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit Description
Description String 0..1 A description of the domain (free format).
WWW URL * A URL identifying a web page with more information about the domain.
Association End Mult. Description
Contact.ID * A domain MAY be contacted via zero or more contacts.
Location.ID 0..1 A domain is primarily located at one location.
Association End Mult. Description
Extension.Key * The entity MAY be associated to zero or more key-value pairs.

AdminDomain

The AdminDomain class is introduced to model a collection of actors that manage a number of services. An AdminDomain MAY be associated to both Contact and Location class instances in order to provide contact information and geographical location respectively. An AdminDomain MAY be composed by other AdminDomains in a hierarchical structure. This structure MAY represent a “participates in” association.

Entity Inherits from Description
AdminDomain Domain A collection of actors that MAY be assigned administrative roles and privileges over services via policies. An AdminDomain manages services that MAY be geographically distributed, but nevertheless a primary location should be identified.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Description String 0..1 A description of the domain
WWW URI * The URL identifying a web page with more information about the domain
Attribute Type Mult. Unit Description
Distributed ExtendedBoolean_t 0..1 True if the services managed by the AdminDomain are considered geographically distributed by the administrators themselves.
Owner String * Identification of a person or legal entity which pays for the services and resources (no particular format is defined).
Association End Mult. Description
Service.ID * An AdminDomain manages zero or more Services.
AdminDomain.ID * An AdminDomain aggregates zero or more AdminDomains.
AdminDomain.ID 0..1 An AdminDomain participates in another AdminDomain.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.
ComputingService.ID * An AdminDomain manages zero or more Computing Services.
CloudComputingService.ID * An AdminDomain manages zero or more Cloud Computing Services
StorageService.ID * An AdminDomain manages zero or more Storage Services.
Contact.ID * A domain MAY be contacted via zero or more contacts.
Location.ID 0..1 A domain is primary located at one location.

UserDomain

The UserDomain class SHOULD be used to capture the concept of a Virtual Organization (VO). By VO, we mean a set of individuals and/or institutions having direct access to computers, software, data, and other resources for collaborative problem-solving or other purposes. Resources utilized by a VO are expected to be accessible via network endpoints and constrained by defined utilization targets called shares. The VO MAY exhibit its internal structure in terms of groups of individuals, each of them constituting a UserDomain. UserDomains MAY be hierarchically structured. The “participates in” association MAY represent this structure.

Entity Inherits from Description
UserDomain Domain A collection of actors that MAY be assigned with user roles and privileges to services or shares via policies.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Description String 0..1 A description of the domain
WWW URI * The URL identifying a web page with more information about the domain
Attribute Type Mult. Unit Description
Level UInt32 0..1 The number of hops to reach the root for hierarchically organized domains described by the “composed by” association (0 is for the root).
UserManager URI * An Endpoint ID for the endpoint of a service managing the association of users with the domain, and related attributes such as groups or roles.
Member String * An identifier for a user in this user domain.
Association End Mult. Description
Policy.ID <<abstract>> * A User Domain has associated zero or more policies.
UserDomain.ID * A User Domain aggregates zero or more User Domains.
UserDomain.ID 0..1 A User Domain participates in another User Domain.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.
Contact.ID * The domain MAY be contacted via zero or more contacts.
Location.ID 0..1 A domain is primary located at one location.
AccessPolicy.ID * A User Domain has associated zero or more access policies.
MappingPolicy.ID * A User Domain has associated zero or more mapping policies.

As regards the UserManager attribute, it is RECOMMENDED that its value is an Endpoint ID enabling discovery of the related Service class instance and associated attributes. An example of a User Manager would be an endpoint for a VOMS (Virtual Organization Membership Service, http://en.wikipedia.org/wiki/VOMS\) server.

Service

One of the main goals of the GLUE information model is to enable the discovery of the Grid capabilities available in a certain infrastructure. Based on the use cases and modeling experience, a number of concepts were identified as general building blocks: Endpoint, Share, Manager, Resource. The Service class enables the unique identification of instances of these concepts participating in the provision of some unified capability. The Service class SHOULD be also used to characterize this overall capability.

Entity Inherits from Description
Service Entity An abstracted, logical view of actual software components that participate in the creation of an entity providing one or more functionalities useful in a Grid environment. A service exposes zero or more Endpoints having well-defined interfaces, zero or more Shares and zero or more Managers and the related Resources. The Service is autonomous and denotes a weak aggregation among Endpoints, the underlying Managers and the related Resources, and the defined Shares. The Service enables the identification of this whole set of entities providing the functionality with a persistent name.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit Description
Capability Capability_t * The provided capabilities according to the Open Grid Service Architecture (OGSA) architecture [OGF-GFD80] (this is the union of all values assigned to the Capability attribute of the Endpoints which form part of this service).
Type ServiceType_t 1 The type of service according to a namespace-based classification (the namespace MAY be related to a middleware name, an organization or other concepts; org.ogf.glue.* is reserved for Types defined by the OGF GLUE Working Group).
QualityLevel QualityLevel_t 1 The maturity of the Service in terms of the quality of the underlying software components; the value corresponds to the highest QualityLevel among the available Endpoints.
StatusInfo URL * A URL specifying a web page providing additional information, for example monitoring of the underlying services.
Complexity String 0..1 A human-readable summary description of the complexity in terms of the number of endpoint types, shares and resources. The syntax should be: endpointType=X, share=Y, resource=Z.
Association End Mult. Description
Endpoint.ID * A service exposes zero or more endpoints.
Share.ID <<abstract>> * A service offers zero or more shares.
Manager.ID <<abstract>> * A service offers zero or more managers.
Contact.ID * A service has zero or more contacts.
Location.ID 0..1 A service is primary located at a location.
Service.ID * A service is related to zero or more services.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.

A simple Service aggregates an Endpoint, no Share, no Manager and no Resource (e.g., a metadata catalogue service). In the context of a Service class, the same Resource MAY be exposed via multiple Endpoints based on the defined Shares. For instance, in the area of storage systems, two Endpoints implementing SRMv1 [SRMV1] and SRMv2.2 [SRMV2] interfaces respectively MAY expose the same Resource via different Endpoints offering different interface versions; in the area of computing systems, the CREAM [cream] and GRAM [GRAM] Endpoints MAY expose the Resources locally managed by the same Manager (typically a batch system). Endpoints, Shares, Managers and Resources MUST belong to precisely one Service.

Endpoint

The Endpoint class models a network location that can be contacted to access certain functionalities based on a well-defined interface. The defined attributes refer to aspects such as the network location, the exposed interface name and version, the details of the implementation, the functional state and the scheduled downtime.

Entity Inherits from Description
Endpoint Entity A network location having a well-defined interface and exposing specific service functionalities.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit
URL URL 1 Network location of an endpoint,which enables a specific component of the Service to be contacted.
Capability Capability_t * The provided capability according to the OGSA architecture classification.
Technology EndpointTechnology_t 0..1 The technology used to implement the endpoint interface.
InterfaceName InterfaceName_t 1 The identification name of the primary protocol supported by the endpoint interface.
InterfaceVersion String 0..* The version of the primary interface protocol (free format).
InterfaceExtension URI * The identification of an extension to the interface protocol supported by the Endpoint.
WSDL URL * The URL of a WSDL document describing the offered interface (this applies only to Web Services endpoints).
SupportedProfile URI * A URI identifying a supported profile for the Endpoint interface.
Semantics URL * The URl of a document providing a human-readable description of the semantics of the Endpoint functionalities (e.g. a software manual).
Implementor String 0..1 The name of the main organization implementing this software component (free format, but the chosen names SHOULD be clearly identifiable with the organisation).
ImplementationName String 0..1 The name of the implementation (as defined by the Implementor).
ImplementationVersion String 0..1 The version of the implementation (the syntax is defined by the Implementor, but MAY be: major.minor.patch).
QualityLevel QualityLevel_t 1 The maturity of the endpoint in terms of the quality of the software components which implement it.
HealthState EndpointHealthState_t 1 A state representing the current health of the Endpoint in terms of its ability to properly deliver the expected functionality.
HealthStateInfo String 0..1 A human-readable explanation of the HealthState of the Endpoint (free format).
ServingState ServingState_t 1 A state specifying whether the Endpoint is currently accepting new requests, and whether it is currently servicing requests which have already been accepted.
StartTime DateTime_t 0..1 The timestamp of the start time of the service underlying the Endpoint.
Authentication EndpointAuthentication_t 0..1 Name of the authentication method supported by the endpoint.
IssuerCA DN_t 0..1 The Distinguished Name of the Certification Authority issuing the host/service certificate presented by the Endpoint.
TrustedCA DN_t * The Distinguished Name of a trusted Certification Authority (CA); i.e., certificates issued by the CA are accepted by the authentication process. Alternatively this may identify a standard bundle of accepted CAs, e.g. those accredited by the IGTF. Note that this does not imply that such certificates will be authorized to use the Endpoint.
DowntimeAnnounce DateTime_t 0..1 The timestamp for an announcement of the next scheduled downtime.
DowntimfeStart DateTime_t 0..1 A timestamp describing when the next downtime is scheduled to start.
DowntimeEnd DateTime_t 0..1 A timestamp describing when the next downtime is scheduled to end.
DowntimeInfo String 0..1 A human-readable description of the next scheduled downtime (free format).
Association End Mult. Description
Service.ID 1 An endpoint is part of a Service.
Share.ID <<abstract>> * An endpoint MAY pass activities to zero or more Shares.
AccessPolicy.ID * An endpoint has associated zero or more AccessPolicies.
Activity.ID * An endpoint has accepted and is managing zero or more Activities.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.

For Grid services requiring a richer set of attributes for the Endpoint, specific models MAY be derived by specializing from the Endpoint class and adding new properties or relationships. The current proposal contains the ComputingEndpoint specialization (see Section 8.2) and the StorageEndpoint specialization (see Section 9.4).

The network location of an endpoint MUST be encoded in a URI. When available, standard schemes for the encoding SHOULD be used (e.g., as used for the Java Messaging Service http://www.ietf.org/internet-drafts/draft-merrick-jms-uri-03.txt\).

Concerning the SupportedProfile attribute, if there is no recommended URI for the identification of a certain profile, then the following options SHALL be considered: (1) use the main URL of the document specifying the profile, or (2) use the target namespace URI (in case of an XML Schema representation of the profile).

Share

The Share class is an abstract entity that MUST NOT be instantiated; it SHOULD be used in order to derive specialized entities. At this level, it is introduced to capture the concept of a utilization target, that is a constrained usage of service functionalities or resources that MAY be created based on aspects such as identify or UserDomain membership, usage information or resource characteristics.

Entity Inherits from Description

Share

<<abstract>>

Entity A utilization target for a set of Resources managed by a local Manager and offered via related Endpoints. The share is defined by configuration parameters and characterized by status information.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit Description
Description String 0..1 A human-readable description of this share (free format).
Association End Mult. Description
Endpoint.ID * A share is consumed via one or more endpoints.
Resource.ID <<abstract>> * A share is defined on one or more resources.
Service.ID 1 A share participates in a service.
Activity.ID * A share is consumed by zero or more activities.
MappingPolicy.ID * A share has zero or more mapping policies.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.

Manager

The Manager class is an abstract entity that MUST NOT be instantiated; it SHOULD be used in order to derive specialized entities. At this level, it is introduced to capture the characteristics of a local software layer (not directly exposed via an Endpoint) which has control of the underlying resources. The functionalities of a manager layer that need to be accessible by remote users are typically abstracted by a middleware component via a standard interface, and are modeled by the concept of Endpoint. Examples of managers are: for computing resources, batch systems such as OpenPBS or LSF; for storage resources, GPFS or HPSS.

Entity Inherits from Description

Manager

<<abstract>>

Entity A software component locally managing one or more resources. It MAY also describe aggregated information about the managed resources.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit
ProductName String 1 The name of the software product which implements the Manager functionality. The attribute is free format, but SHOULD correspond to the standard name by which the product is generally known.
ProductVersion String 0..1 The version of the software product which implements the Manager functionality. The attribute is free format, but SHOULD correspond to the primary version as defined by the software provider.
Association End Mult. Description
Service.ID 1 A manager participates in a service.
Resource.ID <<abstract>> 1..* A manager manages zero or more resources.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.

Resource

The Resource class is an abstract entity that MUST NOT be instantiated; it SHOULD be used in order to derive specialized entities. It is introduced to identify and model hardware entities providing capabilities which are exposed via Endpoints. Examples are execution environments for computational activities or data stores for data.

Entity Inherits from Description

Resource

<<abstract>>

Entity An entity providing a capability or capacity, managed by a local software component (Manager), part of a logical Service, reachable via one or more Endpoints and having one or more Shares defined on it. A Resource MAY refer to a specified category of hardware, with summary information on the available resources in that category.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit Description
No extra properties are defined in the specialized entity
Association End Mult. Description
Manager.ID <<abstract>> 1 A resource is managed by a manager.
Share.ID <<abstract>> * A resource provides capacity in terms of shares.
Activity.ID * A resource runs zero or more activities.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.

Activity

The Activity class models units of work which are submitted to Services via Endpoints. Grid jobs, i.e. Computing Activities in GLUE, are example of Activities for a Computing Service. An interesting type of relationship for jobs derives from their propagation through several Services. For instance, a broker Service submits a Grid job to a selected execution Service; upon completion the execution Service submits a logging record to an accounting Service. Each of these Services may have associated an instance of a Grid Activity related to the lifecycle of the job within the service. All instances refer to the same conceptual job submitted by the user.

Entity Inherits from Description
Activity Entity An Activity is a unit of work managed by a Service and submitted via an Endpoint; when accepted by the Endpoint, than it MAY be mapped to a Share and MAY be executed by a local Manager via one or more Resources. An Activity MAY have relationships to other Activities being managed by different Services, in which case it shares a common context.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s

The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed,

the information SHOULD NOT be considered relevant

ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit Description
No extra properties are defined in the specialized entity
Association End Mult. Description
UserDomain.ID 0..1 An activity is managed by a user domain.
Endpoint.ID 0..1 An activity is submitted to an endpoint.
Share.ID <<abstract>> 0..1 An activity is mapped into a share.
Resource.ID <<abstract>> 0..1 An activity is executed in a resource.
Activity.ID * An activity is related to zero or more activities.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.

Policy

The Policy class is an abstract entity that MUST NOT be instantiated; it SHOULD be used in order to derive specialized entities. This class is introduced to model statements, rules or assertions that define the correct or expected behavior of entities. Two specializations are introduced: AccessPolicy related to Endpoints and MappingPolicy related to Shares.

For a given entity to which policies are associated (i.e., Endpoint and AccessPolicy, Share and MappingPolicy), several instances of the Policy class MAY be defined. This is allowed in order to enable the advertisement of policies using different schemes. We RECOMMEND that only one instance per policy scheme is associated to the same entity instance. The evaluation algorithm for the rules SHOULD be defined by the policy scheme.

If an entity instance is associated to different Policy instances, each of them based on a different scheme, then the evaluation process SHOULD consider each set of policies independently. This means that the evaluation SHOULD rely on a certain policy scheme which is selected and understood by the consumer, and not by composing policies expressed using different schemes.

In this document, we provide the definition for a “basic” scheme (see Appendix B.37). Such a scheme is designed to be simple and is inspired by real world scenarios in current production Grid systems. The Rule attribute implicitly contains a reference to the associated User Domains; therefore, in the concrete data model mapping, we RECOMMEND to not represent the association between User Domain and Access Policy or Mapping Policy explicitly since it is already captured by the Rule.

More complex schemes MAY be defined in profile documents describing the usage of the schema in particular Grid infrastructures.

The published Policies do not represent a contract, and hence the associated Service is not bound to honour the decisions implied by the published rules. In addition the published rules may be expressed at a coarse granularity, which may be modified internally by more finely-grained rules which are not published. However, the published rules SHOULD match the decisions which will be made in practice in a substantial majority of cases.

Entity Inherits from Description

Policy

<<abstract>>

Entity Statements, rules or assertions that specify the correct or expected behavior of an entity.
Inherited Attribute Type Mult. Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant
ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Attribute Type Mult. Unit Description
Scheme PolicyScheme_t 1 The scheme used to define the syntax and semantics of the policy Rules.
Rule String 1..* A policy rule (for the basic policy scheme, the syntax is provided in the Appendix).
Association End Mult. Description
UserDomain.ID 1..* A policy is related to a user domain.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.

AccessPolicy

The AccessPolicy class is a specialization of the Policy class. This entity MAY be used to express authorization rules, e.g. which UserDomains MAY access a certain service Endpoint. The granularity of these policies SHOULD be coarse-grained and suitable for pre-selection of services. The actual decision on the service side is performed by an authorization component that MAY contain a finer-grained set of policy rules that in some case MAY contradict the published coarse-grained policy rules. The default policy is assumed to be to deny access, hence Endpoints for which there are no matching Rules SHOULD NOT be selected for possible use.

Examples of actors involved in this entity are UserDomains representing VOs or groups.

Entity Inherits from Description
AccessPolicy Policy Statements, rules or assertions that provide coarse-granularity information about the authorization of access by groups of actors to an Endpoint.
Inherited Attribute Type Mult Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant
ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Scheme PolicyScheme_t 1 Scheme adopted to define the policy rules
Rule PolicyRule_t 1..* A policy rule (for the basic policy scheme, syntax is provide in the Appendix)
Attribute Type Mult. Unit Description
No extra properties are defined in the specialized entity.
Association End Mult. Description
Endpoint.ID 1 An access policy is related to an endpoint.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.
UserDomain.ID 1..* An access policy is related to a user domain.

MappingPolicy

The MappingPolicy class is a specialization of the Policy class. This entity MAY be used to express which UserDomains MAY consume a certain share of resources. The granularity of these policies SHOULD be coarse-grained and suitable for pre-selection of services. The actual decision on the service side is performed by an authorization component that MAY contain a finer-grained set of policy rules that in some case MAY contradict the published coarse-grained policy rules.

Conceptually, the union of all the MappingPolicy rules should match the corresponding AccessPolicy rules, i.e. any authorised UserDomain will be mapped to at least one Share. However, publication of Shares is OPTIONAL, and hence there MAY be no Share with a matching MappingPolicy rule. In this case a consumer SHOULD NOT make any assumption about the properties of the Share to which it will be mapped. Conversely, the published MappingPolicy rules MAY not have a corresponding AccessPolicy, in which case the implication is that there is some unpublished access method enabling access to the associated Share.

When evaluating the mapping to a certain Share using the algorithm implied by the policy scheme, if multiple solutions are available then the consumer SHOULD NOT make any assumption about which Share will be assigned to its Activity, and if it requires a specific Share it SHOULD request that Share explicitly.

Entity Inherits from Description
MappingPolicy Policy Statements, rules or assertions that provide coarse-granularity information about the mapping of User Domain requests to a Share.
Inherited Attribute Type Mult Unit Description
CreationTime DateTime_t 0..1 Timestamp describing when the entity instance was generated
Validity UInt64 0..1 s The duration after CreationTime that the information presented in the Entity SHOULD be considered relevant. After that period has elapsed, the information SHOULD NOT be considered relevant
ID [key] URI 1 A global unique ID
Name String 0..1 Human-readable name
OtherInfo String * Placeholder to publish info that does not fit in any other attribute. Free-form string, comma-separated tags, (name, value ) pair are all examples of valid syntax
Scheme PolicyScheme_t 1 Scheme adopted to define the policy rules
Rule PolicyRule_t 1..* A policy rule (for the basic policy scheme, syntax is provide in the Appendix)
Attribute Type Mult. Unit Description
No extra properties are defined in the specialized entity.
Association End Mult. Description
Share.ID <<abstract>> 1 A mapping policy is related to a share.
Inherited Association End Mult. Description
Extension.Key * The entity MAY be extended via key-value pairs.
UserDomain.ID 1..* An access policy is related to a user domain.