Institute of Computer Science AGH MOCCA – A Distributed CCA Framework based on H2O Maciej Malawski, Dawid Kurzyniec, Vaidy Sunderam Distributed Computing.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

Institute of Computer Science AGH Towards Multilanguage and Multiprotocol Interoperability: Experiments with Babel and RMIX Maciej Malawski, Daniel Harężlak,
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Web Service Architecture
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
1 Introduction to XML. XML eXtensible implies that users define tag content Markup implies it is a coded document Language implies it is a metalanguage.
Cracow Grid Workshop, November 5-6, 2001 Towards the CrossGrid Architecture Marian Bubak, Marek Garbacz, Maciej Malawski, and Katarzyna Zając.
Harness and H2O Alternative approaches to metacomputing Distributed Computing Laboratory Emory University, Atlanta, USA
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Presentation 7 part 2: SOAP & WSDL. Ingeniørhøjskolen i Århus Slide 2 Outline Building blocks in Web Services SOA SOAP WSDL (UDDI)
Latest techniques and Applications in Interprocess Communication and Coordination Xiaoou Zhang.
Technical Architectures
Session 2: task 3.2 GCM, Kracow, June l Current status of GCM Denis Caromel (10 mn each talk) l Wrapping CCA Components as GCM Components Maciej.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
1 Component-based Grid Environment for Programming Scientific Applications Maciej Malawski.
Institute of Computer Science AGH MOCCA - H2O-based CCA component framework for programming grids and metacomputing systems Maciej Malawski, Marian Bubak,
Livermore July Web Services Overview Francisco Curbera IBM T.J. Watson Research Center.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Web Service What exactly are Web Services? To put it quite simply, they are yet another distributed computing technology (like CORBA, RMI, EJB, etc.).
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
Adapting Legacy Computational Software for XMSF 1 © 2003 White & Pullen, GMU03F-SIW-112 Adapting Legacy Computational Software for XMSF Elizabeth L. White.
Web services: Why and How OOPSLA 2001 F. Curbera, W.Nagy, S.Weerawarana Nclab, Jungsook Kim.
NeSC Grid Apps Workshop Exposing Legacy Applications as OGSI Components using pyGlobus Keith R. Jackson Distributed Systems Department Lawrence Berkeley.
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
Distributed Communication via ASP.Net Web Services and.Net Remoting By Richard King.
1 CCA Meeting, Januray 25th 2007 Supporting the Master-Worker Paradigm in the Common Component Architecture Hinde Lilia Bouziane, Christian Pérez, Thierry.
第十四章 J2EE 入门 Introduction What is J2EE ?
WEB SERVICES Mahmoud Rabie – EGJUG W EB SERVICES The world before Situation Problems Solutions Motiv. for Web Services Probs. with Curr. sols. Web.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
Lecture 15 Introduction to Web Services Web Service Applications.
Architecting Web Services Unit – II – PART - III.
The Grid Component Model and its Implementation in ProActive CoreGrid Network of Excellence, Institute on Programming Models D.PM02 “Proposal for a Grid.
Crossing The Line: Distributed Computing Across Network and Filesystem Boundaries.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Grid Computing Research Lab SUNY Binghamton 1 Plans for Babelizing XCAT-C++ Madhu Govindaraju Kenneth Chiu.
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
Client Call Back Client Call Back is useful for multiple clients to keep up to date about changes on the server Example: One auction server and several.
Extreme! Computing Lab, Dept. of Computer Science, Indiana University 1 Programming the Grid with Components Madhu Govindaraju Aleksander Slominski Dennis.
Databases JDBC (Java Database Connectivity) –Thin clients – servlet,JavaServer Pages (JSP) –Thick clients – RMI to remote databases –most recommended way.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
Virtualization in MetaSystems Vaidy Sunderam Emory University, Atlanta, USA
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Introduction to Spring Remoting Simplifying.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
XML and Web Services (II/2546)
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
 Copyright 2005 Digital Enterprise Research Institute. All rights reserved. Enabling Components Management and Dynamic Execution Semantic.
Kemal Baykal Rasim Ismayilov
Distributed Components for Integrating Large- Scale High Performance Computing Applications Nanbor Wang, Roopa Pundaleeka and Johan Carlsson
ProActive components and legacy code Matthieu MOREL.
1 ProActive GCM – CCA Interoperability Maciej Malawski, Ludovic Henrio, Matthieu Morel, Francoise Baude, Denis Caromel, Marian Bubak Institute of Computer.
Presented by The Harness Workbench: Unified and Adaptive Access to Diverse HPC Platforms Christian Engelmann Computer Science Research Group Computer Science.
1 RMI Russell Johnston Communications II. 2 What is RMI? Remote Method Invocation.
Toward a Distributed and Parallel High Performance Computing Environment Johan Carlsson and Nanbor Wang Tech-X Corporation Boulder,
SOAP RMI Aleksander Slominski, Madhusudhan Govindaraju, Randall Bramley, Dennis Gannon Indiana University Extreme! Lab A New-Old Programming Model for.
CCA Distributed Framework Interoperability. Goals Assume you have two (or more) framework instances. –Assume it contains a network of component instances.
Java Distributed Object System
Inventory of Distributed Computing Concepts
Service Oriented Architecture (SOA)
Introduction to Web Services
Distributed System using Web Services
Distributed System using Web Services
Presentation transcript:

Institute of Computer Science AGH MOCCA – A Distributed CCA Framework based on H2O Maciej Malawski, Dawid Kurzyniec, Vaidy Sunderam Distributed Computing Laboratory in the Dept. of Math and Computer Science, Emory University, Atlanta Institute of Computer Science AGH, Krakow, Poland

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 2 Outline CCA and H2O: a good match H2O as underlying platform Goals of MOCCA (Metacomputing Oriented CCA framework) MOCCA technical overview Initial performance results Towards Babel compatibility Future directions and research perspectives

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 3 Why CCA and H2O CCA Component standard for HPC Uses and provides ports described in SIDL Support for scientific data types Existing tightly coupled (CCAFFEINE) and loosely coupled, distributed (XCAT) frameworks H2O Distributed resource sharing platform Providers setup H2O kernel (container) Allowed parties can deploy pluglets (components) Separation of roles: decoupling –Providers from deployers –Providers from each other RMIX: efficient multiprotocol RMI extension

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 4 H2O Resource sharing platform Providers own resources They independently share them over the network –access control policies Clients discover, locate, and utilize resources Resources configurable via plugins Aggregation and reselling: cascading pairwise relationships

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 5 H2O Component Model Nomenclature –container = kernel –component = pluglet Pluglet = remotely accessible object –implements Pluglet interface, used by kernel to signal/trigger pluglet state changes Remote access: based on the RMI model –Pluglets export functional remote interfaces Pluglet Functional interfaces Kernel Clients (e.g. Hello ) tutorial/step1/srv/Hello.java public interface Hello extends Remote { String hello() throws RemoteException; } Interface Pluglet { void init(RuntimeContext cxt); void start(); void stop(); void destroy(); }

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 6 Example scenarios of H2O 1. Provider = deployer e.g. resource = legacy application 2. Reseller:= developer = deployer e.g. computational service offered within a grid system 3. Client = deployer e.g. client runs custom distributed application on shared resources

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 7 RMIX Communication Substrate Extensible framework Remote Method Invocations paradigm Pluggable protocol providers Multiple protocols supported –JRMPX, ONC-RPC, SOAP Request-Response and Asynchronous calls Combines simplicity, flexibility, and performance ONC-RPC Web Services SOAP clients Myrinet RMIX RMIX XSOAP RMIX RPCX RMIX MYRI RMIX JRMPX Java Service

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 8 RMIX: multiple protocols Protocol switching Protocol negotiation Various protocol stacks for different situations –SOAP: interoperability –SSL: security –ARPC, custom (Myrinet, Quadrics): efficiency Harness Kernel Internet security firewall efficiency H2O Kernel

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 9 H2O: Current research areas (More) Interoperability –Support for Globus proxy credentials –Naming services: JNDI bridge to multiple implementations Peer-to-peer grids –JXTA transport provider for RMIX; enables RMI over JXTA sockets –JXTA-JNDI naming provider: peer-to-peer resource sharing and discovery Fault-tolerant MPI across shared resources –FT-MPI & H2O: staging, sharing, heterogeneity, scalability

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 10 H2O: Feature Summary Resource sharing –Deploying components on shared resources Component isolation and hot-swapping –Pluglets deployed in separate class loaders Performance –Pluglets run in a single process; efficient local bindings –Distributed communication: efficient binary protocols –Support for asynchronous calls Security –SSL transport, JAAS authentication, Java sandbox model, security policies Interoperability –Multiple RMI protocols: SOAP, JRMP, RPC, … –API support for native code: resource staging, linking dynamic libraries

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 11 Requirements for a Metacomputing-oriented CCA Framework Facilitated deployment - provide easy mechanisms for creation of components on distributed shared resources; Efficient communication - both for distributed and local components; Flexible - allow flexible configuration of components and various application scenarios; Support native components, i.e. components written in non-Java programming languages and compiled for specific architecture. Interoperable with Grid standards (Web services)

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 12 Existing CCA Frameworks CCAFFEINE –Tightly coupled –Support for Babel –MPI support XCAT –Loosely coupled –Globus-compatible –Java-based DCA –MPI based –MxN problems SCIRun2 –Metacomponent model LegionCCA –Based on Legion Metacomputing system

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 13 MOCCA implementation in H2O Each component running in separate pluglet Thanks to H2O kernel security mechanisms, multiple components may run without interfering Two-level builder hierarchy ComponentID: pluglet URI MOCCA_Light: pure Java implementation (no SIDL)

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 14 Remote Port Call

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 15 How to use MOCCA (step by step) Implement component code extending CCA interfaces (cca.Port, cca.Component) Compile component classes into JAR file Publish application JARs on HTTP server Use the Java client API or write a Jython script to assemble application from components –Specify components and their connections –Specify locations of H2O kernels where to instantiate components Running the script automatically deploys necessary pluglets into H2O kernels and spawns application

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 16 Example script builder = MoccaMainBuilder() uriKernel1 = URI.create(" uriKernel2 = URI.create(" userBuilderID = builder.addNewBuilder(uriKernel1, "MyBuilderPlugletA") providerBuilderID = builder.addNewBuilder(uriKernel2, "MyBuilderPlugletB") properties = MoccaTypeMap() properties.putString("mocca.plugletclasspath", " properties.putString("mocca.builderID", userBuilderID.getSerialization()) userID = builder.createInstance("My StarterComponent", "mocca.samples.pingpong.impl.MoccaStarterComponent”, properties) properties.putString("mocca.plugletclasspath", " properties.putString("mocca.builderID", providerBuilderID.getSerialization()) providerID = builder.createInstance("MyPingComponent", "mocca.samples.pingpong.impl.PingPongComponent", properties) connectionID = builder.connect(userID, "PingPongUsesPort", providerID, "PingPongProvidesPort") MoccaBuilderClient.invokeGo(userID)

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 17 Automatic Flow Composer Example Compose application graph from initial data (e.g. initial ports) or incomplete graph First implemented for XCAT framework Easy migration to MOCCA Modification of code required (xcat.Port) Similar performance for XCAT and MOCCA (exchange of text documents)

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 18 Communication Intensive Application Benchmark Simplified scenario: –2 components –Provides port: receive and send-back array of double (ping-pong) Tested on local Gigabit Ethernet and on transatlantic Internet between Atlanta and Krakow 2.4 Ghz Linux machines Comparison with XCAT

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 19 Small Data Packets Factors: SOAP header overhead in XCAT Connection pools in RMIX

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 20 Large Data Packets Encoding (binary vs. base64) CPU saturation on Gigabit LAN (serialization) Variance caused by Java garbage collection

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 21 Support for Babel Components Currently: MOCCA_Light – pure Java framework Approach: –Use Java bindings to Babelized components –Automatically generate wrapping code Issues: –Babel remote bindings –Remote references –Package hierarchy: gov.cca.Port extends gov.llnl.sidl.BaseInterfac e, sidl.BaseInterface

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 22 Future directions of MOCCA Support for multilingual components –Goal: to enable loading of Babel CCAFFEINE components into MOCCA –Automatic generation of wrappers from SIDL Support for dynamic component reconfiguration and adaptiveness –CCA standard allows for dynamic creation of ports and connecting/reconnecting at runtime –Framework needs to support such behavior –Especially interesting for interactive (portal/PSE) usage Investigation of using hierarchical components –By using CCA BuilderService components may act as sub- frameworks creating hierarchies of subcomponents inside them

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 23 Beyond CCA ? Supporting multiple component standards –Goal: to enable loading of components written for different standards (e.g. Corba CCM, other) –Examples of similar solutions: CCAFFEINE supports „classic” and „Babel” components; SCIRun2 implementing meta- component model Using MOCCA as promising platform for feasibility studies in various aspects of Grid components –For experiments with advanced features Scheduling and load-balancing Fault-tolerance Semantic description and composition –As a platform for higher-level grid services and tools

CCA Meeting, Atlanta, Jan 2005 Institute of Computer Science AGH 24 References Maciej Malawski, Dawid Kurzyniec, and Vaidy Sunderam. MOCCA – towards a distributed CCA framework for metacomputing, Accepted for: 10th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS2005), H2O Project homepage: