Uploaded image for project: 'OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC'
  1. OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA) TC
  2. TOSCA-19

The current version of TOSCA does not support to share EnvironmentConstraint among several NodeTemplate. This document presents a method to realize the element sharing.

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: CSD04
    • Fix Version/s: CSD04
    • Component/s: Spec
    • Labels:
      None
    • Proposal:
      Hide

      My suggestion is that as well as EnvironmentConstraint in EnvironmentConstraints defined in a NodeTemplate, it can be defined under a TopologyTemplate. So, the one defined in a TopologyTemplate can be referred by several NodeTemplate. The following is an example. Two applications are respectively deployed on two application servers. The two servers employ a same security setting, which is defined in an EnvironmentConstraint. So, the shared EnvironmentConstraint (named "SecuritySetting") included in an EnvironmentConstraints can be defined under the "webApplication" TopologyTemplate, and then be referred by the two servers' NodeTempalte (see those words in red).

      <TopologyTemplate id="webApplication">
      <EnvironmentContraints>
      <EnvironmentContraint name=" SecuritySetting",
      contraintType="example.com/securitysetting">
      constraint type specific content
      </EnvironmentContraint >
      </EnvironmentContraints >

      <NodeTemplate id="MyApplication1", name="My First Application ",
      nodeType="Application" />
      <NodeTemplate id="MyApplication2", name="My Second Application ",
      nodeType="Application" />

      <NodeTemplate id="MyAppServer1", name="My First Application Server",
      nodeType="AppServer">
      <EnvironmentContraints>
      <EnvironmentContraint name="MySecuritySetting1", ref="SecuritySetting">
      </EnvironmentContraints >
      </NodeTemplate>
      <NodeTemplate id="MyAppServer2", name="My Second Application Server",
      nodeType="AppServer">
      <EnvironmentContraints>
      <EnvironmentContraint name="MySecuritySetting2", ref="SecuritySetting"/>
      <EnvironmentContraint constraintType="example.com/AuthenticationSettings/MyAuthenticationSetting"/>
      </EnvironmentContraints >
      </NodeTemplate>

      <RelationshipTemplate id="MyDeploymentRelationship1",
      relationshipType="deployedOn">
      <SourceElement id=" MyApplication1"/>
      <TargetElement id="MyAppServer1"/>
      </RelationshipTemplate>
      <RelationshipTemplate id="MyDeploymentRelationship2",
      relationshipType="deployedOn">
      <SourceElement id=" MyApplication2"/>
      <TargetElement id="MyAppServer2"/>
      </RelationshipTemplate>
      </TopologyTemplate>

      Show
      My suggestion is that as well as EnvironmentConstraint in EnvironmentConstraints defined in a NodeTemplate, it can be defined under a TopologyTemplate. So, the one defined in a TopologyTemplate can be referred by several NodeTemplate. The following is an example. Two applications are respectively deployed on two application servers. The two servers employ a same security setting, which is defined in an EnvironmentConstraint. So, the shared EnvironmentConstraint (named "SecuritySetting") included in an EnvironmentConstraints can be defined under the "webApplication" TopologyTemplate, and then be referred by the two servers' NodeTempalte (see those words in red). <TopologyTemplate id="webApplication"> <EnvironmentContraints> <EnvironmentContraint name=" SecuritySetting", contraintType="example.com/securitysetting"> constraint type specific content </EnvironmentContraint > </EnvironmentContraints > <NodeTemplate id="MyApplication1", name="My First Application ", nodeType="Application" /> <NodeTemplate id="MyApplication2", name="My Second Application ", nodeType="Application" /> <NodeTemplate id="MyAppServer1", name="My First Application Server", nodeType="AppServer"> <EnvironmentContraints> <EnvironmentContraint name="MySecuritySetting1", ref="SecuritySetting"> </EnvironmentContraints > </NodeTemplate> <NodeTemplate id="MyAppServer2", name="My Second Application Server", nodeType="AppServer"> <EnvironmentContraints> <EnvironmentContraint name="MySecuritySetting2", ref="SecuritySetting"/> <EnvironmentContraint constraintType="example.com/AuthenticationSettings/MyAuthenticationSetting"/> </EnvironmentContraints > </NodeTemplate> <RelationshipTemplate id="MyDeploymentRelationship1", relationshipType="deployedOn"> <SourceElement id=" MyApplication1"/> <TargetElement id="MyAppServer1"/> </RelationshipTemplate> <RelationshipTemplate id="MyDeploymentRelationship2", relationshipType="deployedOn"> <SourceElement id=" MyApplication2"/> <TargetElement id="MyAppServer2"/> </RelationshipTemplate> </TopologyTemplate>

      Description

      In the current version of TOSCA, the EnvironmentConstraint in EnvironmentConstraints is defined in a NodeTemplate. So, if several NodeTempalte have the same EnvironmentConstraint, this EnvironmentConstraint should be defined in each NodeTemplate. Therefore, one EnvironmentConstraint is defined several times totally.

        Attachments

          Activity

          Hide
          dpalma Derek Palma (Inactive) added a comment -

          Are you trying to model two applications in the same Service Template? What I mean is if this would be like two SugarCRMs if yo look at our SugarCRM usecase.

          It is fine to have multiple apps in the same template, it just means you won't be able to deploy them separately. This may or may not be a consideration.

          You'll need to have some NodeTypes and RelationshipTypes (either your own or the proposed ones) in addition to your templates.

          We are thinking to add a new kind of constraint which can reference properties from other nodes in the current context. The context would be defined by the containing node, i.e. hostedOn one or any others in this hierarchy.

          If you want a "root node" (which is natural and expected) you can get it by using the ApplicationContainer NodeType, again from the set of proposed NodeTypes (see https://tools.oasis-open.org/issues/browse/TOSCA-12)

          Show
          dpalma Derek Palma (Inactive) added a comment - Are you trying to model two applications in the same Service Template? What I mean is if this would be like two SugarCRMs if yo look at our SugarCRM usecase. It is fine to have multiple apps in the same template, it just means you won't be able to deploy them separately. This may or may not be a consideration. You'll need to have some NodeTypes and RelationshipTypes (either your own or the proposed ones) in addition to your templates. We are thinking to add a new kind of constraint which can reference properties from other nodes in the current context. The context would be defined by the containing node, i.e. hostedOn one or any others in this hierarchy. If you want a "root node" (which is natural and expected) you can get it by using the ApplicationContainer NodeType, again from the set of proposed NodeTypes (see https://tools.oasis-open.org/issues/browse/TOSCA-12 )
          Hide
          lippa02 Paul Lipton (Inactive) added a comment -

          Tabled until issue creator can fix telecom problems. He will notify.

          Show
          lippa02 Paul Lipton (Inactive) added a comment - Tabled until issue creator can fix telecom problems. He will notify.
          Hide
          paulzhang Paul Zhang (Inactive) added a comment -

          I have submitted a revised document for this issue. The link is:
          https://www.oasis-open.org/apps/org/workgroup/tosca/download.php/46413/TOSCA-19_revised.docx

          Show
          paulzhang Paul Zhang (Inactive) added a comment - I have submitted a revised document for this issue. The link is: https://www.oasis-open.org/apps/org/workgroup/tosca/download.php/46413/TOSCA-19_revised.docx
          Hide
          thomas.spatzier Thomas Spatzier (Inactive) added a comment -

          Hi Paul (Zhang),

          I had a look at your document and got a good understanding of what you want to do. However, we will shortly bring forward a proposal for expressing Requirements and Capabilities for nodes in ServiceTemplates, and my feeling is that "Requirements" will likely cover what EnvironmentConstraints are today. That is, with the upcomming concept of Requirements/Capabilities (which is required in context of several issues), I would actually suggest to drop EnvironmentConstraints since otherwise we end up with too many ways of expressing constraints. So I would suggest to table this issue until we see the proposal I'm talking about so we can consolidate our work.

          Would that make sense to you?

          Regards,
          Thomas

          Show
          thomas.spatzier Thomas Spatzier (Inactive) added a comment - Hi Paul (Zhang), I had a look at your document and got a good understanding of what you want to do. However, we will shortly bring forward a proposal for expressing Requirements and Capabilities for nodes in ServiceTemplates, and my feeling is that "Requirements" will likely cover what EnvironmentConstraints are today. That is, with the upcomming concept of Requirements/Capabilities (which is required in context of several issues), I would actually suggest to drop EnvironmentConstraints since otherwise we end up with too many ways of expressing constraints. So I would suggest to table this issue until we see the proposal I'm talking about so we can consolidate our work. Would that make sense to you? Regards, Thomas
          Hide
          paulzhang Paul Zhang (Inactive) added a comment -

          @Thomas: I think it is better discuss this issue along with your proposal, if "Requirements" can cover "EnvironmentConstraints". However, Paul Lipton has scheduled to discuss this issue on today's CC meeting, so it is better suggest to modify the agenda at the beginning of the meeting. BTW, I am very interested in your proposal, in particular for "Capabilities" for nodes. Will you define the metadata of these two elements? Look forward to your proposal.

          Show
          paulzhang Paul Zhang (Inactive) added a comment - @Thomas: I think it is better discuss this issue along with your proposal, if "Requirements" can cover "EnvironmentConstraints". However, Paul Lipton has scheduled to discuss this issue on today's CC meeting, so it is better suggest to modify the agenda at the beginning of the meeting. BTW, I am very interested in your proposal, in particular for "Capabilities" for nodes. Will you define the metadata of these two elements? Look forward to your proposal.
          Hide
          lippa02 Paul Lipton (Inactive) added a comment -

          Paul, I wanted to make sure your issue has opportunity to be socialized. That said; I agree that the agenda could be accepted until the Requirements and Capabilities proposal, which is being developed by several persons, has been discussed. If you feel that this issue should still be discussed at that time, I will gladly put this issue back on the agenda.

          Show
          lippa02 Paul Lipton (Inactive) added a comment - Paul, I wanted to make sure your issue has opportunity to be socialized. That said; I agree that the agenda could be accepted until the Requirements and Capabilities proposal, which is being developed by several persons, has been discussed. If you feel that this issue should still be discussed at that time, I will gladly put this issue back on the agenda.
          Hide
          lippa02 Paul Lipton (Inactive) added a comment -

          Paul Z., when you've examined WD10 and the requirements/capabilities proposal, please let me know if you feel this issue is addressed or should be further discussed. Thanks.

          Show
          lippa02 Paul Lipton (Inactive) added a comment - Paul Z., when you've examined WD10 and the requirements/capabilities proposal, please let me know if you feel this issue is addressed or should be further discussed. Thanks.
          Hide
          lippa02 Paul Lipton (Inactive) added a comment -

          Closed by motion in TC meeting of 8/16/2012 along with approval of WD10 (see minutes of that meeting for details). Issue reporter agreed with this decision.

          Show
          lippa02 Paul Lipton (Inactive) added a comment - Closed by motion in TC meeting of 8/16/2012 along with approval of WD10 (see minutes of that meeting for details). Issue reporter agreed with this decision.

            People

            • Assignee:
              Unassigned
              Reporter:
              paulzhang Paul Zhang (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated: