Interface Requires<Out extends Software,In extends Service>

All Superinterfaces:
org.gcube.informationsystem.base.reference.Element, org.gcube.informationsystem.model.reference.ERElement, org.gcube.informationsystem.base.reference.IdentifiableElement, org.gcube.informationsystem.model.reference.relations.IsRelatedTo<Out,In>, org.gcube.informationsystem.model.reference.ModelElement, org.gcube.informationsystem.model.reference.relations.Relation<Out,In>, org.gcube.informationsystem.base.reference.relations.RelationElement<Out,In>, org.gcube.informationsystem.base.reference.SchemaMixedElement, Serializable
All Known Implementing Classes:
RequiresImpl

@TypeMetadata(name="Requires", description="Requires is used to indicate that the source {@link Software} when activated requires to interact with a specific {@link Service} instance, i.e., the target of the relation. This relation usually reflects an administrative constraint than a technological limitation. When there are no constraint on the instance the relation is instead {@link DependsOn} which is between two {@link Software}.Not necessarily all the {@link Software} running in the infrastructure are represented as resources. Only the {@link Software} required for infrastructure administration or the ones to be managed with specific policies are represented. Indeed, Requires relation is normally used as policy constraint. Let imagine an open source software which uses a MySQL database as backend. In many cases, what characterises the software instance is the data present in the backend. The infrastructure manager could stipulate an agreement with a provider having a particular set of data which is not for public domain. The software once deployed, giving the business agreement, is entitled to use the instance of the provider and not a generic MySQL database instance. The infrastructure manager imposes the use of such a particular instance because of the data it contains.", version="1.0.0") @Change(version="1.0.0", description="First Version") public interface Requires<Out extends Software,In extends Service> extends org.gcube.informationsystem.model.reference.relations.IsRelatedTo<Out,In>
Requires is used to indicate that the source Software when activated requires to interact with a specific Service instance, i.e., the target of the relation. This relation usually reflects an administrative constraint than a technological limitation. When there are no constraint on the instance the relation is instead DependsOn which is between two Software. Not necessarily all the Software running in the infrastructure are represented as resources. Only the Software required for infrastructure administration or the ones to be managed with specific policies are represented. Indeed, Requires relation is normally used as policy constraint. Let imagine an open source software which uses a MySQL database as backend. In many cases, what characterises the software instance is the data present in the backend. The infrastructure manager could stipulate an agreement with a provider having a particular set of data which is not for public domain. The software once deployed, giving the business agreement, is entitled to use the instance of the provider and not a generic MySQL database instance. The infrastructure manager imposes the use of such a particular instance because of the data it contains. https://wiki.gcube-system.org/gcube/GCube_Model#Requires
Author:
Luca Frosini (ISTI - CNR)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     

    Fields inherited from interface org.gcube.informationsystem.base.reference.Element

    DATETIME_PATTERN, TYPE_PROPERTY

    Fields inherited from interface org.gcube.informationsystem.model.reference.ERElement

    CONTEXTS_PROPERTY

    Fields inherited from interface org.gcube.informationsystem.base.reference.IdentifiableElement

    ID_PROPERTY, METADATA_PROPERTY

    Fields inherited from interface org.gcube.informationsystem.model.reference.ModelElement

    EXPECTED_TYPE_PROPERTY, SUPERTYPES_PROPERTY

    Fields inherited from interface org.gcube.informationsystem.model.reference.relations.Relation

    PROPAGATION_CONSTRAINT_PROPERTY

    Fields inherited from interface org.gcube.informationsystem.base.reference.relations.RelationElement

    SOURCE_PROPERTY, TARGET_PROPERTY
  • Method Summary

    Methods inherited from interface org.gcube.informationsystem.base.reference.Element

    getTypeName

    Methods inherited from interface org.gcube.informationsystem.model.reference.ERElement

    getContexts

    Methods inherited from interface org.gcube.informationsystem.model.reference.ModelElement

    getExpectedtype, getSupertypes

    Methods inherited from interface org.gcube.informationsystem.model.reference.relations.Relation

    getAdditionalProperties, getAdditionalProperty, getPropagationConstraint, getSource, getTarget, setAdditionalProperties, setAdditionalProperty, setSource, setTarget

    Methods inherited from interface org.gcube.informationsystem.base.reference.relations.RelationElement

    getID, getMetadata, setID, setMetadata