Presentation is loading. Please wait.

Presentation is loading. Please wait.

CDDLM Configuration Description Language (CDL) Jun Tatemura NEC Laboratories America GGF13, March 15 2005.

Similar presentations


Presentation on theme: "CDDLM Configuration Description Language (CDL) Jun Tatemura NEC Laboratories America GGF13, March 15 2005."— Presentation transcript:

1 CDDLM Configuration Description Language (CDL) Jun Tatemura NEC Laboratories America GGF13, March 15 2005

2 CDL Core concept overview CDL FAQ from draft reviews Essential questions regarding CDL design philosophy

3 User (who deploys) Use of CDL in Deployment Example: Three-tier web applications Component provider App server App server App server DB server DB server DB server Web server Web server Web server Component object Component object Component object Resource Broker CDL Template Application Wrapper Provider (developer) provides (schema, default values, … ) CDL Template CDL Template CDL Template For 3tier app refers to (application structure, … ) CDL For a specific deployment request refers to discovered resources agreed values discovery and agreement Deployment API submit

4 CDDLM XML-based CDL Configuration: Property Lists example.com 80 CDL Notations @cdl:extends – inheritance of prototype @cdl:ref – value reference @cdl:type – data type annotation @cdl:lazy – lazy (runtime) value resolution

5 Prototype References @cdl:extends=xsd:QName <cdl:cdl targetNamespace="urn:tmp-uri1"> 80 8080 200 <cdl:configuration xmlns:tmpl="urn:tmp-uri1"> myweb.com myweb.com 8080 200

6 Value References @cdl:ref=cdl:pathType <password cdl:ref="/dbpassword"/>

7 Schema Annotations @cdl:type @cdl:use 80

8 Laziness Annotation @cdl:lazy=“xsd:boolean” Lazy Property (provide side annotation) Lazy Reference (consumer side annotation)

9 CDL Document cdl import types configuration system ? * ? * ? * ? * *

10 CDL FAQ Inheritance (prototype references) Value references Data Types

11 Inheritance [Q1] Why Inheritance? Isn’t inheritance just a feature of front-end systems? CDDLM could receive a CDL document after inheritance resolved.

12 Inheritance [A1] [A] Inheritance is used between component providers and component users. Standardization is thus required. Component description from a provider describes properties that are supported as a prototype Names, types, default values, optionality, laziness A component provider Inherits the prototype to give property values, composite structures of components Note: CDL provides declarative description through prototype-based inheritance + immutable property lists

13 Inheritance [Q2] Why not inherit a deep tree? Prototype resolution only inherits immediate children. We may want to overload data within a deep structure. a c f a b e cd f 100 1030 120 extends a b e cd f 10030 120

14 Inheritance [A2] (1) It will be difficult to override a property with structured data a c g a b e cd f 100 1030 120 extends h 200 a bcd 120 g 100 h 200 a b e cd f 1030 120 g 100 h 200 ?

15 Inheritance [A2] (2) Parameterization … … … … localhost

16 list2list1 Inheritance [Q3] Why inheritance is defined on an ordered list What makes a difference between property set inheritance and property list inheritance a b c d c e a f a b c d e f extends

17 Inheritance [A3] [A] The CDDLM Component Model needs an ordered tree [A] XML is an ordered tree. A user of CDL may want to have ordered property lists (the Component Model is an example) cdl:extends corresponds to xsd:extension of xsd:sequence

18 Value references [Q1] Why do we need cdl:refroot We may use: We now use:

19 Value references [A1] [A] it will be also complicated when it is combined with prototype resolution Most references will be within a tree (i.e., no need of cdl:refroot) 100 200 200 200 ? <b cdl:refroot=“a” cdl:ref=“/c”/> 100 100

20 Value references [Q2] Why lazy references Isn’t a lazy property (provider-side annotation) enough? Why do we need a consumer-side laziness annotation? Lazy property Lazy reference

21 Value Reference [A2] [A] an example: a reference to a system environment property (e.g., current time). The consumer side wants to control resolution timing <deploymentTime cdl:refroot=“sys:sytemProperties” cdl:ref=“/time” cdl:lazy=“true”/> Note: CDL itself does not define “system properties”

22 Data Types [Q1] Is CDL yet another schema language? Are you trying to replace XML Schema?

23 Data Types [A1] CDL is designed to leverage (not replace) XML Schema How to achieve schema validation in CDL CDL: Prototype-based inheritance to generate configuration data in a flexible and dynamic manner Challenge: how to make use of XML Schema to validate dynamically extensible data Note: Schema validation is optional in CDL

24 Solution: @cdl:type Attribute for Type Annotation @cdl:type=“qname” Type specification for property values Source data can be validated with @cdl:type Resolved data can be validated with @cdl:type (type check) and @cdl:use (optionality check)

25 Generating XML Schema for Validation A CDL processor may optionally generate XSDs for unresolved and/or resolved configuration data CDL XSD CDL processor CDL XSD validates refers-to Resolution result XSD for unresolved data (source data) XSD validates XSD for resolved data (result data)

26 Example of Validation After reference resolution v1 v3 A CDL processor may generate Configuration data v1 v3 XSD for the configuration data …

27 Data types [Q2] How to use cdl:types and cdl:import Should data types be defined internally (using cdl:types) or externally (importing with cdl:import)? …. …

28 Data Types [A2] [A] cdl:type is used when data types are defined within the namespace of the configuration data … … Referred to with the same namespace (uri1)


Download ppt "CDDLM Configuration Description Language (CDL) Jun Tatemura NEC Laboratories America GGF13, March 15 2005."

Similar presentations


Ads by Google