Common Component Architecture (CCA)

Slides:



Advertisements
Similar presentations
Institute of Computer Science AGH Towards Multilanguage and Multiprotocol Interoperability: Experiments with Babel and RMIX Maciej Malawski, Daniel Harężlak,
Advertisements

COM vs. CORBA.
The road to reliable, autonomous distributed systems
Broker Pattern Pattern-Oriented Software Architecture (POSA 1)
Seminarium on Component-based Software Engineering Jan Willem Klinkenberg CORBA.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Distributed Service Architectures Yitao Duan 03/19/2002.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.
A Hybrid Decomposition Scheme for Building Scientific Workflows Wei Lu Indiana University.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Component Architecture (CORBA – RMI) -Shalini Pradhan.
Distributed Component Object Model (DCOM)
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
Information Management NTU Interprocess Communication and Middleware.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
1 of of 25 3 of 25 ORBs (Object Request Broker) – A distributed software bus for communication among middleware services and applications – To.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
Components for Beam Dynamics Douglas R. Dechow, Tech-X Lois Curfman McInnes, ANL Boyana Norris, ANL With thanks to the Common Component Architecture (CCA)
Center for Component Technology for Terascale Simulation Software CCA is about: Enhancing Programmer Productivity without sacrificing performance. Supporting.
Distributed Programming CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Extreme! Computing Lab, Dept. of Computer Science, Indiana University 1 Programming the Grid with Components Madhu Govindaraju Aleksander Slominski Dennis.
By: PHANIDEEP NARRA. OVERVIEW Definition Motivation.NET and J2EE Architectures Interoperability Problems Interoperability Technologies Conclusion and.
Presented by An Overview of the Common Component Architecture (CCA) The CCA Forum and the Center for Technology for Advanced Scientific Component Software.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
DEVS Based Modeling and Simulation of the CORBA POA F. Bernardi, E. de Gentili, Pr. J.F. Santucci {bernardi, gentili, University.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
BioPSE NCRR SCIRun2 -THE PROJECT -OBJECTIVES -DEVELOPMENTS -TODAY -THE FUTURE.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
1 ProActive GCM – CCA Interoperability Maciej Malawski, Ludovic Henrio, Matthieu Morel, Francoise Baude, Denis Caromel, Marian Bubak Institute of Computer.
Gary Kumfert & Scott Kohn Tammy Dahlgren, Tom Epperly, Steve Smith, and Bill Bosl Introducing...
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
Toward a Distributed and Parallel High Performance Computing Environment Johan Carlsson and Nanbor Wang Tech-X Corporation Boulder,
CCA Distributed Framework Interoperability. Goals Assume you have two (or more) framework instances. –Assume it contains a network of component instances.
Topic 5: CORBA RMI Dr. Ayman Srour
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
Java Distributed Computing
Java Distributed Object System
Common Object Request Broker Architecture (CORBA)
Java Distributed Computing
CORBA Alegria Baquero.
Programming Models for Distributed Application
Lecture 3 From process-oriented to agent-oriented programming.
Inventory of Distributed Computing Concepts and Web services
Inventory of Distributed Computing Concepts
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Interpreter Style Examples
CORBA Alegria Baquero.
Inventory of Distributed Computing Concepts
Chapter 40 Remote Method Invocation
Distribution Infrastructures
Chapter 46 Remote Method Invocation
CS590L Distributed Component Architecture References: - Objects, components, and framenworks with UML, Ch A Component Based Services Architecture.
Chapter 46 Remote Method Invocation
The Anatomy and The Physiology of the Grid
Quality Assurance for Component-Based Software Development
Design Yaodong Bi.
Copyright 1999 B.Ramamurthy
Inventory of Distributed Computing Concepts
CORBA and COM TIP Two practical techniques for object composition
Presentation transcript:

Common Component Architecture (CCA) Balaprasuna Chennupati Amit Karnik 20-MAR-2002

Outline Motivation and History Relationship to Existing Standards Design Goals Architectural Overview SIDL CCA Ports CCA Services Implementations Example

Motivation High performance computing (HPC) exhibits the following Simulations are increasingly complex Acute need for code reuse and flexibility Combines multi-disciplinary expertise Rapid application development and change Dynamic attachment capabilities Requires distributed execution Fast connections and parallel interactions

History of CCA Developed by the CCA forum (NOV 98) constituted of National energy laboratories like Argonne, Lawrence Berkley, Lawrence Livermore, Los Almos, Oak Ridge, Sandia and Research laboratories from Indiana Univ. and Univ. of Utah Released Version 0.5 in Dec 1999

Relationship to Other Standards Microsoft COM and ActiveX Provides component interoperability on Windows platform with language-independence Lacks abstractions for parallel and scientific computing data types ex. Complex numbers, Dynamic multiD arrays Scientific Computing on Windows is not very popular

Relationship to Other Standards Sun JavaBeans and EJB Cross-platform component architecture based on the Java programming language Although JNI supports language interoperability - leads to intolerable performance penalty (JVM) Composition only by events/listeners CCA shares a similar event subscribe model for event-notification and provides more…

Relationship to Other Standards CORBA 2.0 Cross-language, cross-platform distributed object model Lacks an explicit component model No abstractions for scientific data types Overhead of communication through the ORB – leads to performance penalty No concept of attaching two parallel components together

Design Goals for CCA Should provide language and platform independence (esp. C, C++, Fortran) Support for tightly coupled direct & loosely coupled distributed component communication Allow dynamic component plug ability Represent the abstractions and data types such as complex nos. and dynamic multiD arrays

Architectural Overview [ARM99]

Architectural Overview Scientific IDL (SIDL) – used to define inputs/outputs for components Repository API – used to deposit and retrieve SIDL definitions CCA Ports – enable component interactions CCA Services – services provided by the framework Configuration API – supports interaction between components and builders

SIDL Scientific Interface Definition Language High level description language Provides for scientific data types Provides seamless language interoperability by hiding language dependency Currently mappings to C, C++, Fortran 77/90, Python, Java

SIDL Leverages existing IDL technologies and language mappings (CORBA, Java) Fortran mapping similar to CORBA’s C mapping except, SIDL classes and interfaces map into Fortran integers SIDL-to-language bindings use static IDL stubs and skeletons

SIDL - Example interface Component { package gov.cca void setServices(in Services svc);}; interface ComponentID{ string toString();}; }; // end package gov.cca package gov.cca { interface Port {}; interface PortInfo{ string getType(); string getName(); string getProperty(in string name);}; interface Services { Port getPort(in string name); Port getPortNonblocking(in string name); void registerUsesPort(in PortInfo name_and_type); void unregisterUsesPort(in string name); void addProvidesPort(in Port inPort, in PortInfo name); void removeProvidesPort(in string name); ComponentID getComponentID();};

Ports Based on interactions limited to pipelining I/O Define interactions between tightly coupled parallel components as well as loosely coupled remote components Fast communication and scalable performance Interaction using the very same interface in either of the connection types Support for attaching two parallel components together

Ports JavaBeans components register themselves as listeners and are notified using events CCA uses Provides/Uses design pattern CORBA 3.0 model proposes both Events and Provides/Uses interface exchange mechanism

Ports Provides/Uses interface design pattern Two types of ports Direct component interface connection for HPC Distributed connections through a proxy Two types of ports Provides port : interface that a component provides to other components Uses port : interface that has methods which the component wants to call on other components

Ports Provides ports listen to calls on their functions called by other components through their Uses ports Uses ports maintain a list of listeners Component interaction is achieved by registering the Provides port as a listener of a Uses port of another component A call on a method in the Uses port of one component results in calls to the corresponding member function on each listener resulting in zero or more invocations

Ports [ARM99]

Direct-Connect Ports Used to achieve HPC in CCA Call translates to a single function call Only overhead is incurred due to the SIDL bindings (2-3 function calls) Achieved by directly passing the Provides port supplied by one component as a Uses port for another component

Collective Ports Allows interactions between two parallel components or a serial and a parallel one Provides/Uses port interfaces are available to all threads and processes of the component CCA standard does not restrict the means of sharing (shared or distributed memory models)

Services Presents framework abstraction and defines minimal set of services for CCA compliance Provides Creation of CCA ports Access to CCA ports Additional facilities to handle naming, relationship management, error handling, querying

CCA with CORBA 3.0 CORBA 3.0 introduces the concept of the provides/uses design pattern making CCA components CORBA 3.0-compliant Thus, CCA is a potential piece to sit over CORBA 3.0 However there is no CORBA 3.0 implementation from any vendor currently

CCA Implementations CCAFFEINE from Sandia National Labs CCA Fast Framework Example In Need of Everything Assumes message passing environment Implemented in C++ and allows graphical component composition CCAT from Indian Univ. Service based architecture using Java RMI and Globus NEXUS

CCA Implementations XCAT from Indiana Univ Grid enabled framework of CCA based on Globus Uses RMI and XSOAP

Example ConsumerPort package gov.cca.eg.port; public interface StringConsumerPort extends gov.cca.Port { public void setString(String s) throws Exception; }

Example TimeProducerPort package gov.cca.eg.port; public interface TimeProducerPort extends gov.cca.Port { public String getTime(); }

Example TimeStamper package gov.cca.eg.component; public class TimeStamper implements gov.cca.Component, gov.cca.eg.port.StringConsumerPort { gov.cca.Services svc; gov.cca.eg.port.StringConsumerPort out; gov.cca.PortInfo outInfo; gov.cca.eg.port.TimeProducerPort time; gov.cca.PortInfo timeInfo; public TimeStamper(){ }

Example public void setServices(gov.cca.Services svc) { gov.cca.eg.port.StringConsumerPort stringer =(gov.cca.eg.port.StringConsumerPort) this; svc.addProvidesPort(stringer, svc.createPortInfo("in0", "StringConsumerPort", null)); svc.registerUsesPort(outInfo = svc.createPortInfo("out0", "StringConsumerPort", null)); svc.registerUsesPort(timeInfo = svc.createPortInfo("time0", "TimeProducerPort", null)); }

Example public void setString(String s) { out = (gov.cca.eg.port.StringConsumerPort)svc.getPort("out0"); time = (gov.cca.eg.port.TimeProducerPort)svc.getPort("time0"); out.setString(s+"@"+time.getTime()); svc.releasePort("out0"); svc.releasePort("time0"); }

References [ARM99] Toward a Common Component Architecture for High Performance Scientific Computing. Armstrong et al [ALL00] The CCA Core Specification In A Distributed Memory SPMD Framework. Allan et al www.cca-forum.org www.cs.ucsd.edu/classes/sp00/cse225/notes/jeff/talk.html http://www.extreme.indiana.edu/ccat/ http://www.cca-forum.org/ccafe/ccafe.html http://www.acl.lanl.gov/cca-forum/

Take-Away points Standard for interoperability among HPC components Fast connections and parallel collective interactions using Ports Scientific abstractions for specifying component interfaces using SIDL CORBA 3.0 compliant