CDDLM: CDL Examples

9
1 CDDLM: CDL Examples Jun Tatemura NEC Laboratories America Feb 1, 2006 GGF OGSA/CDDLM session

description

CDDLM: CDL Examples. Jun Tatemura NEC Laboratories America Feb 1, 2006 GGF OGSA/CDDLM session. Example 1: Application Server. I want to make my web application ready to use. app. DB. Component user. Web server. database server. (any) level of abstraction. Component provider. Tomcat. - PowerPoint PPT Presentation

Transcript of CDDLM: CDL Examples

Page 1: CDDLM: CDL Examples

1

CDDLM: CDL Examples

Jun TatemuraNEC Laboratories America

Feb 1, 2006GGF OGSA/CDDLM session

Page 2: CDDLM: CDL Examples

2

Example 1: Application Server

Webserver

databaseserver

Component provider

Component user

I want to make my web application ready to use

DBapp

PCLinux

Tomcat

PCLinux

MySQL

(any) level of abstraction

Configurable parameters are provided to give

users control

Page 3: CDDLM: CDL Examples

3

Component Description

• Components are provided by component providers• CDDLM does not specify what should/should not be

provided as a component

<WebServer> <cmp:CommandPath> com.example.WebServer </cmp:CommandPath> <cmp:CodeBase/> <hostname cdl:lazy=“true”/> <port>80</port> <datasource cdl:type=“web:datasource”/></WebServer>

<DBServer> <cmp:CommandPath> com.example.DBServer </cmp:CommandPath> <cmp:CodeBase/> <hostname cdl:lazy=“true”/> <port>3306</port> <name/> <user/> <password/></DBServer>

You may add any properties which can be seen as configurable parameters(Note: overlap/relationship between configurable parameters and resource parameters)

Page 4: CDDLM: CDL Examples

4

System composition through Inheritance

• User will use component definitions to compose a system

• CDL supports prototype-based inheritance to do that (@cdl:extends)

• CDL supports value references to relate values in components (@cdl:ref)

<MyServer> <Web cdl:extends=“web:WebServer”> <cmp:CodeBase>http://…</cmp:CodeBase> <datasource> <hostname cdl:ref=“/DB/hostname”/> <port cdl:ref=“/DB/port”/> <name cdl:ref=“/DB/name”/> <user cdl:ref=“/DB/user”/> <pass cdl:ref=“/DB/pass”/> </datasource> <Web> <DB cdl:extends=“web:DBServer”> <cmp:CodeBase>http:://…</cmp:CodeBase> <name>productinfo</name> <user>web</user> <pass>web</pass> </DB></MyServer>

Page 5: CDDLM: CDL Examples

5

System Template Through Parameterization

• User can create a custom template with parameters which will be filled later

<MyServerTmpl> <application/> <data/> <dbName/> <Web cdl:extends=“web:WebServer”> <cmp:CodeBase cdl:ref=“/application”/> <datasource> <hostname cdl:ref=“/DB/hostname”/> … </datasource> <Web> <DB cdl:extends=“web:DBServer”> <cmp:CodeBase cdl:ref=“/data”/> <name cdl:ref=“/dbName”/> </DB></MyServerTmpl>

<MyServer cdl:extends=“MyServerTmpl”> <application>….</application> <data>…</data> <dbName>productinfo</dbName></MyServer>

For each deployment:

(Note: this may be useful for provisioning…)

Page 6: CDDLM: CDL Examples

6

Example 2: HPC Applications• Suppose you want to run simulations with various data and/or codes• Component provider provides common configurable platforms

appappappcodecodedata

job

Scheduling of computationis out of scope of CDDLM

dispatcher worker

Component provider

Component user

(any) level of abstraction

Page 7: CDDLM: CDL Examples

7

Component Description

• Again, a provider can provide any components..

<WorkerCluster> <cmp:CommandPath …/> <cmp:CodeBase …/> <clusterSize/> <hostnames cdl:lazy=“true”/></WorkerCluster>

<WorkerManager> <cmp:CommandPath …/> <cmp:CodeBase …/> <hostname/> <workers/></WorkerManager>

<Worker> <cmp:CommandPath …/> <cmp:CodeBase …/> <hostname cdl:lazy=“true”/></WorkerCluster>

orAlternatively, you can provide(1) Simulator application so the user only need to specify dataOr(2) Linux boxes to let the user install everything

Page 8: CDDLM: CDL Examples

8

System Composition

<MySimulator> <data> <dispatcherCode>..</dispatcherCode> <workerCode>…</workerCode> <workerSize/> <Dispatcher cdl:extends=“c:WorkerManager” …/> <Worker cdl:extends=“c:WorkerCluster” …/></MySimulator>

<MySimulation cdl:extends=“MySimulator”> <data>uri of speficic data</data> <workerSize>8</workerSize></MySimulation>

Page 9: CDDLM: CDL Examples

9

Further Examples: Platform Stack?

• We can also think of composition of components in different platform layers (if you want…)

• CDDLM does not care how they are physically related to each other

<Server> <serverId></Server><Database> <serverId cdl:ref=“…”/></Database>

<ApplicationServer> <machine …/> <machine …/></ApplicationServer>

<LinuxBox> <ApplicationServer …/> <DatabaseServer …/></LinuxBox>

serverDB machinemachine

Appserver

Linux

Appserver DB