1 / 9

CDDLM: CDL Examples

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.

Download Presentation

CDDLM: CDL Examples

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. CDDLM: CDL Examples Jun Tatemura NEC Laboratories America Feb 1, 2006 GGF OGSA/CDDLM session

  2. 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 MySQL Configurable parameters are provided to give users control Linux Linux PC PC

  3. Component Description • Components are provided by component providers • CDDLM does not specify what should/should not be provided as a component <DBServer> <cmp:CommandPath> com.example.DBServer </cmp:CommandPath> <cmp:CodeBase/> <hostname cdl:lazy=“true”/> <port>3306</port> <name/> <user/> <password/> </DBServer> <WebServer> <cmp:CommandPath> com.example.WebServer </cmp:CommandPath> <cmp:CodeBase/> <hostname cdl:lazy=“true”/> <port>80</port> <datasource cdl:type=“web:datasource”/> </WebServer> 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 <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> • 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)

  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> For each deployment: <MyServer cdl:extends=“MyServerTmpl”> <application>….</application> <data>…</data> <dbName>productinfo</dbName> </MyServer> (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 Scheduling of computation is out of scope of CDDLM job app app Component user code app data code (any) level of abstraction dispatcher worker Component provider

  7. Component Description • Again, a provider can provide any components.. <WorkerManager> <cmp:CommandPath …/> <cmp:CodeBase …/> <hostname/> <workers/> </WorkerManager> <WorkerCluster> <cmp:CommandPath …/> <cmp:CodeBase …/> <clusterSize/> <hostnames cdl:lazy=“true”/> </WorkerCluster> or Alternatively, you can provide (1) Simulator application so the user only need to specify data Or (2) Linux boxes to let the user install everything <Worker> <cmp:CommandPath …/> <cmp:CodeBase …/> <hostname cdl:lazy=“true”/> </WorkerCluster>

  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> <LinuxBox> <ApplicationServer …/> <DatabaseServer …/> </LinuxBox> <ApplicationServer> <machine …/> <machine …/> </ApplicationServer> App server App server DB machine DB server machine Linux

More Related