CDDLM: CDL Examples
-
Upload
salvador-gilmore -
Category
Documents
-
view
27 -
download
0
description
Transcript of CDDLM: CDL Examples
1
CDDLM: CDL Examples
Jun TatemuraNEC Laboratories America
Feb 1, 2006GGF OGSA/CDDLM session
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
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)
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>
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…)
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
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
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>
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