CCA Common Component Architecture CCA Forum Tutorial Working Group A Simple CCA Component.

Slides:



Advertisements
Similar presentations
Presentation by Prabhjot Singh
Advertisements

Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
CCA Common Component Architecture CCA Forum Tutorial Working Group Language Interoperable.
CCA Common Component Architecture CCA Forum Tutorial Working Group This work is licensed.
Allen D. Malony Department of Computer and Information Science University of Oregon Performance Technology for Scientific (Parallel.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Creating and Linking Components in ESMF and CCA Eric Hutton Cyberinformatics and numerics working group February 2008.
CCA Common Component Architecture Performance Technology for Component Software - TAU Allen D. Malony (U. Oregon) Sameer Shende (U. Oregon) Craig Rasmussen.
Allen D. Malony, Sameer Shende Department of Computer and Information Science Computational Science Institute University.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Principles of Programming Chapter 1: Introduction  In this chapter you will learn about:  Overview of Computer Component  Overview of Programming 
CCA Common Component Architecture CCA Forum Tutorial Working Group This work is licensed.
CCA Common Component Architecture CCA Forum Tutorial Working Group This work is licensed.
CCA Common Component Architecture CCA Forum Tutorial Working Group Language Interoperable.
A Hybrid Decomposition Scheme for Building Scientific Workflows Wei Lu Indiana University.
CCA Common Component Architecture 1**1** Components for High Performance Computing: Common Component Architecture Rob Armstrong & CCA Working.
CCA Common Component Architecture CCA Forum Tutorial Working Group This work is licensed.
CCA Common Component Architecture CCA Forum Tutorial Working Group Components for Scientific.
1 CCA Meeting, Januray 25th 2007 Supporting the Master-Worker Paradigm in the Common Component Architecture Hinde Lilia Bouziane, Christian Pérez, Thierry.
CCA Common Component Architecture CCA Forum Tutorial Working Group 1 Welcome to the Common.
CCA Common Component Architecture CCA Forum Tutorial Working Group Contributors: Language Interoperability Using Gary.
SIAM Computational Science and Engineering1 10 February Components for Scientific Computing: An Introduction David E. Bernholdt Computer Science.
CCA Common Component Architecture CCA Forum Tutorial Working Group Introduction to Components.
CCA Common Component Architecture CCA Forum Tutorial Working Group Introduction to the Ccaffeine.
CCA Common Component Architecture CCA Forum Tutorial Working Group This work is licensed.
XML Registries Source: Java TM API for XML Registries Specification.
CCA Common Component Architecture CCA Forum Tutorial Working Group Introduction to the Ccaffeine.
Components for Beam Dynamics Douglas R. Dechow, Tech-X Lois Curfman McInnes, ANL Boyana Norris, ANL With thanks to the Common Component Architecture (CCA)
Copyright © 2010 Certification Partners, LLC -- All Rights Reserved Perl Specialist.
CCA Common Component Architecture CCA Forum Tutorial Working Group This work is licensed.
Presented by An Overview of the Common Component Architecture (CCA) The CCA Forum and the Center for Technology for Advanced Scientific Component Software.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Kick of WP3 Steps towards building Oxford, first project meeting :30 am – 11:15 am.
CCA Common Component Architecture CCA Forum Tutorial Working Group This work is licensed.
EGEE User Forum Data Management session Development of gLite Web Service Based Security Components for the ATLAS Metadata Interface Thomas Doherty GridPP.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
Copyright © 2003 ProsoftTraining. All rights reserved. Perl Fundamentals.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
CCA Common Component Architecture CCA Forum Tutorial Working Group 1 Welcome to the Common.
Chapter 2: Testing in Software Life Cycle MNN1063 System Testing and Evaluation.
BioPSE NCRR SCIRun2 -THE PROJECT -OBJECTIVES -DEVELOPMENTS -TODAY -THE FUTURE.
Java Software Solutions Lewis and Loftus Chapter 15 Copyright 1997 by John Lewis and William Loftus. All rights reserved. 1 Software Development Process.
Progress on Component-Based Subsurface Simulation I: Smooth Particle Hydrodynamics Bruce Palmer Pacific Northwest National Laboratory Richland, WA.
CCA Common Component Architecture CCA Forum Tutorial Working Group An Overview of Components.
CCA Common Component Architecture CCA Forum Tutorial Working Group This work is licensed.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
1 Craig Rasmussen Advanced Computing Laboratory Los Alamos National Laboratory Introduction to Object- and Component-Oriented Programming.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Gary Kumfert & Scott Kohn Tammy Dahlgren, Tom Epperly, Steve Smith, and Bill Bosl Introducing...
CCA Common Component Architecture CCA Forum Tutorial Working Group Writing Components.
CCA Common Component Architecture CCA Forum Tutorial Working Group A Simple CCA Component Application.
CCA Common Component Architecture CCA Forum Tutorial Working Group Contributors: Introduction to the Ccaffeine Framework.
CCA Common Component Architecture CCA Forum Tutorial Working Group Writing Components.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
CCA Common Component Architecture CCA Forum Tutorial Working Group Writing Components.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
CCA Common Component Architecture CCA Forum Tutorial Working Group Introduction to the Ccaffeine.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
CST 1101 Problem Solving Using Computers
Introduction to Components
John D. McGregor Session 9 Testing Vocabulary
John D. McGregor Session 9 Testing Vocabulary
John D. McGregor Session 9 Testing Vocabulary
Performance Technology for Parallel Component Software
Different Levels of Testing
Object Networks—ATLAS' Future Control Framework For Offline?
Allen D. Malony, Sameer Shende
Software System Integration
Presentation transcript:

CCA Common Component Architecture CCA Forum Tutorial Working Group A Simple CCA Component Application

CCA Common Component Architecture A Simple CCA Component Application 2 Module Overview What the example does: the math. From math to components: the architecture. The making of components: inheritance and ports. Framework-component interactions. Putting it all together: the CCafeine ways. The application in action.

CCA Common Component Architecture A Simple CCA Component Application 3 Goals To show how CCA components are used to build an application to numerically integrate a continuous function using two different integration techniques.

CCA Common Component Architecture A Simple CCA Component Application 4 The Math: Integrator (1) The midpoint numerical integrator a b x

CCA Common Component Architecture A Simple CCA Component Application 5 The Math: Integrator (2) The Monte Carlo integrator x a b

CCA Common Component Architecture A Simple CCA Component Application 6 The math: Functions Linear Function Nonlinear Function Pi Function

CCA Common Component Architecture A Simple CCA Component Application 7 Available Components LinearFunction FunctionPort MidpointIntegrator IntegratorPort NonLinearFunction FunctionPort PiFunction FunctionPortGo Driver IntegratorPortRandomGeneratorPort RandomGenerator FunctionPort MonteCarloIntegrator IntegratorPort RandomGeneratorPort

CCA Common Component Architecture A Simple CCA Component Application 8 Pluggability: Scenario 1 LinearFunction FunctionPort MidpointIntegrator IntegratorPort NonLinearFunction FunctionPort PiFunction FunctionPortGo Driver IntegratorPortRandomGeneratorPort RandomGenerator FunctionPort MonteCarloIntegrator IntegratorPort RandomGeneratorPort

CCA Common Component Architecture A Simple CCA Component Application 9 Pluggability: Scenario 2 LinearFunction FunctionPort MidpointIntegrator IntegratorPort NonLinearFunction FunctionPort PiFunction FunctionPortGo Driver IntegratorPortRandomGeneratorPort RandomGenerator FunctionPort MonteCarloIntegrator IntegratorPort RandomGeneratorPort

CCA Common Component Architecture A Simple CCA Component Application 10 MonteCarloIntegrator in Details FunctionPort MonteCarloIntegrator IntegratorPort RandomGeneratorPort What makes it a component? Inheritance from gov.cca.Component integrators.Integratorgov.cca.Component MonteCarloIntegrator Inheritance Tree Where does IntegratorPort come from? Inheritance from integrators.Integrator Relevant files: integrator.sidl function.sidl random.sidl

CCA Common Component Architecture A Simple CCA Component Application 11 Saying it in SIDL version integrators 1.0; package integrators { interface Integrator extends gov.cca.Port { double integrate(in double lowBound, in double upBound, in int count); } class MonteCarloIntegrator implements-all Integrator, gov.cca.Component { } ……… }

CCA Common Component Architecture A Simple CCA Component Application 12 Notes Inheritance from gov.cca.Component furnishes the only method known to the framework: setServices() “Provides” ports are interfaces that need to inherit from gov.cca.Port (Integrator in this case)

CCA Common Component Architecture A Simple CCA Component Application 13 The Framework Role Framework-to-Component: setServices() –Called after the component is constructed. –The component’s chance to identify: Ports it provides – addProvidesPort() Ports it uses – registerUsesPort() –Component should not acquire the port here – Reason: it may not be there yet !!!! –Also used to “shutdown” the component.

CCA Common Component Architecture A Simple CCA Component Application 14 Component-to-Framework Mainly through Services object passed through setServices(). addProvidesPort(), registerUsesPort(): –Component “pointer”, PortName, PortType, PortProperties. getPort(): –Called by the using component. –Matching using portType (not name). releasePort(), removeProvidesPort(): –When all is done.

CCA Common Component Architecture A Simple CCA Component Application 15 The Life Cycle Revisited Framework PiFunction Create PiFunction create setServices() addProvidesPort() setServices() MonteCarloIntegrator Create MonteCarloIntegrator create addProvidesPort() registerUsesPort() Construction Connect MonteCarloIntegrator, PiFunction getPort() evaluate() integrate() Execution evaluate() integrate()

CCA Common Component Architecture A Simple CCA Component Application 16 Example: setservices() in MonteCarloIntegrator (C++) ……… frameworkServices = services; if (frameworkServices._not_nil ()) { gov::cca::TypeMap tm = frameworkServices.createTypeMap (); gov::cca::Port p = self; frameworkServices.addProvidesPort (p, "IntegratorPort", "integrators.Integrator", tm); // The Ports I use frameworkServices.registerUsesPort ( "FunctionPort", "functions.Function", tm); frameworkServices.registerUsesPort ( "RandomGeneratorPort", "randomgen.RandomGenerator", tm); ……… portName portProperties portType

CCA Common Component Architecture A Simple CCA Component Application 17 Notes setServices() mainly used to inform the framework which ports the current component provides and/or uses. No actual connections between ports are established in setServices(), since the “other” port may not yet exist !!! portName is unique per component. portType identifies the “interface” that the port implements (used to match user and provider). portProperties : list of port-specific key-value pairs.

CCA Common Component Architecture A Simple CCA Component Application 18 Example: integrate() in MonteCarloIntegrator (C++) ……… functions::Function functionPort; randomgen::RandomGenerator randomPort; double sum = 0.0; randomPort = frameworkServices.getPort ("RandomGeneratorPort"); functionPort = frameworkServices.getPort ("FunctionPort"); for (int i = 0; i < count; i++){ double x = lowBound + (upBound - lowBound) * randomPort.getRandomNumber(); sum = sum + functionPort.evaluate(x); } frameworkServices.releasePort ("FunctionPort"); frameworkServices.releasePort ("RandomGeneratorPort"); return (upBound - lowBound) * sum / count; ………

CCA Common Component Architecture A Simple CCA Component Application 19 Putting it all together Getting the application to do something: –Assembling the components into an app. –Launching the Application. App assembly: –Framework need to be told what components to use, and where to find them. –Framework need to be told which uses port connects to which provides port. App execution: the GO port: –Special provides port used to launch the application (after connections are established). –Has one method, go(), that is called by the framework to get the application going.

CCA Common Component Architecture A Simple CCA Component Application 20 Oh Component, where art thou?. Which components, and how to create them More details in the Ccaffeine Module

CCA Common Component Architecture A Simple CCA Component Application 21 App. Assembly The Ccafeine way Command line “script” GUI Interface