1 / 29

TOSCA Normative Types Proposal

TOSCA Normative Types Proposal. Internal Working Draft v0.3 Submitter: Matt Rutkowski. NodeType. <NodeType name=" xs:NCName " target Namespace= " xs:anyURI "? abstract=" yes| no "? final="ye s| no "? > <Tags> <Tag name=" xs:string " value=" xs:string "/> + </Tags> ?

matana
Download Presentation

TOSCA Normative Types Proposal

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TOSCA Normative Types Proposal Internal Working Draft v0.3 Submitter: Matt Rutkowski

  2. NodeType <NodeType name="xs:NCName" targetNamespace="xs:anyURI"? abstract="yes|no"?final="yes|no"?> <Tags> <Tag name="xs:string" value="xs:string"/> + </Tags> ? <DerivedFrom typeRef="xs:QName"/> ? <PropertiesDefinition element="xs:QName"? type="xs:QName"?/> ? <RequirementDefinitions> <RequirementDefinition name="xs:string" requirementType="xs:QName" lowerBound="xs:integer"? upperBound="xs:integer | xs:string"?> <Constraints> <Constraint constraintType="xs:anyURI"> constraint type specific content </Constraint> + </Constraints> ? </RequirementDefinition> + </RequirementDefinitions> ? <CapabilityDefinitions> <CapabilityDefinition name="xs:string" capabilityType="xs:QName" lowerBound="xs:integer"? upperBound="xs:integer | xs:string"?> <Constraints> <Constraint constraintType="xs:anyURI"> constraint type specific content </Constraint> + </Constraints> ? </CapabilityDefinition> + </CapabilityDefinitions> <InstanceStates> <InstanceState state="xs:anyURI"> + </InstanceStates> ? <Interfaces> <Interface name="xs:NCName | xs:anyURI"> <Operation name="xs:NCName"> <InputParameters> <InputParameter name="xs:string" type="xs:string" required="yes|no"?/> + </InputParameters> ? <OutputParameters> <OutputParameter name="xs:string" type="xs:string" required="yes|no"?/> + </OutputParameters> ? </Operation> + </Interface> + </Interfaces> ? </NodeType>

  3. <none>: RootNodeType – Part 1 Definition The fundamental type that all TOSCA NodeTypes derive from. Note: If lifecycle operations are sequential (i.e. rely upon script completion) then perhaps allowing operations for “transitional” states do not make sense.

  4. <none>: RootNodeType – Part 2

  5. RootNodeType: Tier Definition A tier is a topological concept used to describe sets of nodes (or sub-topologies) that can be deployed and managed as a single logical processing element with specific scalability, availability and other group-wise semantics while supporting a specific kind of application processing (sometimes referred to as “roles”). Tiers that support the same kind of application processing are substitutable. The application processing capability of a tier is a function of the kinds of application components which are hosted by its constituent compute elements. The tier’s scaling discipline defines how and when the capacity of the tier is adjusted.

  6. Compute Types

  7. RootNodeType: Compute (formerly Server) Definition An instantiated compute resource that encapsulates both CPU and Memory. Ideally, this would support a “built-in” host OS (or platform API), as many typical / common use cases assume one.

  8. RootNodeType: OperatingSystem (Optionally merge as a property of VM) Definition TBD – This is typically a guest OS. Ideally, if indeed for 99% of use cases it is simply an OSType and version would like to flatten this conceptually as properties on Server/VM

  9. Application Runtime Types

  10. RootNodeType: WebServer Definition TBD – Ideally, would like to move towards an “Application Runtime” (indicates additive APIs / language to the OS) since that is its primary purpose.

  11. RootNodeType: WebApplication Definition TBD – “Web” is unecessary, any “Application” with exported endpoints is valid, perhaps just use “Application”

  12. Database Types

  13. RootNodeType: DBMS Definition TBD

  14. RootNodeType: Database Definition TBD

  15. Storage Types

  16. RootNodeType: Storage Definition TBD

  17. Network Types

  18. RootNodeType: Network Definition TBD

  19. Composite Node Types (Need mechanism for compositing)

  20. RootNodeType: ApplicationRuntime (Composite Runtime Environment) Definition Implies a WebServer + one or more LangaugeRuntimes (e.g. PHP, Java, etc.)?

  21. RelationshipTypes

  22. RelationshipType <RelationshipType name="xs:NCName" targetNamespace="xs:anyURI"? abstract="yes|no"? final="yes|no"?> + <Tags> <Tag name="xs:string" value="xs:string"/> + </Tags> ? <DerivedFrom typeRef="xs:QName"/> ? <PropertiesDefinition element="xs:QName"? type="xs:QName"?/> ? <InstanceStates> <InstanceState state="xs:anyURI"> + </InstanceStates> ? <SourceInterfaces> <Interface name="xs:NCName | xs:anyURI"> ... </Interface> + </SourceInterfaces> ? <TargetInterfaces> <Interface name="xs:NCName | xs:anyURI"> ... </Interface> + </TargetInterfaces> ? <ValidSource typeRef="xs:QName"/> ? <ValidTarget typeRef="xs:QName"/> ? <AbstractOperations> <Operation/> + </AbstractOperations> </RelationshipType>

  23. <none>: RootRelationshipType Definition The fundamental type that all TOSCA RelationshipTypes derive from.

  24. RootRelationshipType: HostedOn • Definition • Relationship that indicates a node can “host” or contain another node of a specified type. For example: • aDatabase node is “hostedOn” a DBMS (Database Management System) node • a WebServer node is “hostedOn” a n OperatingSystem node.

  25. RootRelationshipType: ConnectsTo • Definition • Relationship that indicates a node can “connect” to another node of a specified type. For example: • A WebApplication node “connectsTo” a Database node. Known Subclasses IPEndpointRequreiment, HTTPEndpointRequirement, IPEndpointCapability, HTTPEndpointCapability Can we not flatten??? Using properties such as “protocol” (or protocol list?)

  26. RootRelationshipType: DependsOn • Definition • Relationship that indicates a node is “dependent” on another node of a specified type. For example: • A PHP runtime “dependsOn”an Apache web server

  27. Backup Charts

  28. Advanced Scenarios: “ScalableSugarCRM Web Application” Scalability DBTier Service Template WebTier Service Template ApacheLB LoadBalancer • “Tier” Node Types convey scalability • The “Web Application Tier” is declared Scalablewith upper bounds “n” instances • Note: the “Database Tier” remains a single instance • A Load Balancer node is added to the previous template to route requests among “Web Application Tier” instances • Both tiers are packaged into their own service templates permitting Substitution SugarCRMApp Web Application SugarCRM Database Database Apache WebServer MySQL DBMS ApacheLinuxOS Operating System MySqlLinuxOS Operating System ApacheVM Server MySqlVM Server 1 1..n DBTier Tier WebTier ScalableTier The range of instances would be a property of the “Tier” Node Type Components grouped into composable service templates.

  29. Base Node – Viewed as “layers”

More Related