The Anatomy and Physiology of the Grid Revisited Nenad Medvidovic USC-CSSE and Computer Science Department University of Southern California

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
High Performance Computing Course Notes Grid Computing.
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.
DataGrid is a project funded by the European Union 22 September 2003 – n° 1 EDG WP4 Fabric Management: Fabric Monitoring and Fault Tolerance
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 11 Prof. Crista Lopes.
2 Object-Oriented Analysis and Design with the Unified Process Objectives  Explain how statecharts can be used to describe system behaviors  Use statecharts.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Distributed Systems Architectures
6th Biennial Ptolemy Miniconference Berkeley, CA May 12, 2005 Distributed Computing in Kepler Ilkay Altintas Lead, Scientific Workflow Automation Technologies.
A brief look at CORBA. What is CORBA Common Object Request Broker Architecture developed by OMG Combine benefits of OO and distributed computing Distributed.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
SWE Introduction to Software Engineering
An Architectural Approach to Robotics Software Design, Implementation, and Deployment Brian D’Souza Joshua Garcia Ivo Krka Natachart Laotheppitak Hossein.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
Architectural Design.
What is Software Architecture?
Chapter 10 Architectural Design
Database System Concepts and Architecture Lecture # 3 22 June 2012 National University of Computer and Emerging Sciences.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
An Introduction to Software Architecture
A Lightweight Platform for Integration of Resource Limited Devices into Pervasive Grids Stavros Isaiadis and Vladimir Getov University of Westminster
GT Components. Globus Toolkit A “toolkit” of services and packages for creating the basic grid computing infrastructure Higher level tools added to this.
Lecture 9: Chapter 9 Architectural Design
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Architecting Web Services Unit – II – PART - III.
The Data Grid: Towards an Architecture for the Distributed Management and Analysis of Large Scientific Dataset Caitlin Minteer & Kelly Clynes.
Architectural Blueprints The “4+1” View Model of Software Architecture
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Grid Workload Management Massimo Sgaravatto INFN Padova.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
CSC480 Software Engineering Lecture 10 September 25, 2002.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
第 1 讲 分布式系统概述 §1.1 分布式系统的定义 §1.2 分布式系统分类 §1.3 分布式系统体系结构.
Basic Concepts and Definitions
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Infosys, Mysore December 19, 2009.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
Chapter 12: Architecture
Architecting Web Services
Architecting Web Services
Software Connectors.
Chapter 12: Physical Architecture Layer Design
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Software Connectors.
An Introduction to Software Architecture
The Anatomy and The Physiology of the Grid
Design Yaodong Bi.
Presentation transcript:

The Anatomy and Physiology of the Grid Revisited Nenad Medvidovic USC-CSSE and Computer Science Department University of Southern California Collaborative work with Joshua Garcia, Ivo Krka, Chris Mattmann, and Daniel Popescu

What is the grid? A distributed systems technology that enables the sharing of resources across organizations scalably, efficiently, reliably, and securely Analogous to the electric grid

Why Study the Grid? A highly successful technology Deficiencies in the existing guidance for building grids  More to come Grids are not easy to build – See CERN’s Large Hadron Collider Their architecture was published very early – “anatomy” and “physiology” Yet “What is (not) a grid?” is still a subject of debate

The Architectural Perspective Grids are large, complex systems – Thousands of nodes or more – Span many agency boundaries Qualities of Service (QoS) are critical – Scalability – Security – Performance – Reliability... Software architecture is just what the doctor ordered  The set of principal design decisions about a software system [Taylor, Medvidovic, Dashofy 2009]

So, What Did We Set out to Do? Study grid’s reference requirements and architecture Study the architectures of existing grid technologies Compare the two  Knowing that there will likely be very few straightforward answers Suggest how to fix any discrepancies  Knowing that there will likely be very few straightforward answers

Architectural Recovery Approach

Original grid reference architecture

Some Reference Requirements

Studied Grid Technologies TechnologyPLKSLOC# Modules AlchemiC# (.NET) Apache HadoopJava, C/C Apache HBaseJava, Ruby, Thrift CondorJava, C/C DSpaceJava GangliaC GLIDEJava257 Globus 4.0 (GT 4.0)Java, C/C Grid DatafarmJava, C Gridbus BrokerJava JcgridJava OODTJava14320 PegasusJava, C79659 SciFloPython iRODSJava, C/C Sun Grid EngineJava, C/C UnicoreJava WingsJava8.897

Architecture Recovery Technique - Focus - Establish idealized architecture and candidate architectural style(s) Identify data and processing components – Groups implementation modules according to a set of rules Map identified data and processing components onto an idealized architecture  Examine  Source code  Documentation  Runtime behavior  Tie to requirements satisfied by component

Rules of Focus 1.Group based on isolated classes 2.Group based on generalization 3.Group based on aggregation 4.Group based on composition 5.Group based on two-way association 6.Identify domain classes 7.Merge classes with a single originating domain class association into domain class 8.Group classes along a domain class circular dependency path 9.Group classes along a path with a start node and end node that reference a domain class 10.Group classes along paths with the same end node, and whose start node references the same domain class

Some Refinements to the Rules Domain class rules – Class with large majority of outgoing calls Exclusion rules – Class with large majority of incoming calls – Utility classes – Heavily passed data-structures – Benchmarking and test classes Additional groupings – By exception – By interface – By package if idealized architecture matches first-class component

Focus Rules for Distributed Systems Infer distributor connectors from idealized architecture Classes with methods and names similar to first-class components are domain classes Classes importing network communication libraries are domain classes main() functions often identify first-class components Classes deployed onto different hosts must be grouped separately

Discovered discrepancies Empty layers Skipped Layers Up-calls Multi-layer components

Empty Layers - Wings -

Skipped Layers - Pegasus -

Upcalls - Hadoop -

Multi-Layer Components - iRODS -

What about Globus?

Two layer boundary AND Upcall Two layer boundary AND Upcall Two layer boundary AND Upcall Couldn’t determine right “layer” upcall What about Globus?

Discrepancies Found

Revised Grid Architecture The connectivity layer is eliminated Explicitly addressing deployment view Subsystem types rather than layer-oriented Four architectural styles comprise the grid – Client/server – Peer-to-peer – Layered – Event-based An improved classification of grid technologies

Revised Grid Reference Architecture

Grid Styles – C/S Application components are clients to Collective components – e.g., application components query for resource component locations from collective components Application components are clients to Resource components – e.g., direct job submission from application components to resource components Resource components can act as clients to Collective components – e.g., resource components may obtain locations of other resource components through collective components

Grid Styles – p2p Resource components are peers – e.g., Grid Datafarm Filesystem Daemon (gfsd) instance makes requests for file data from other gfsds Collective components are peers – e.g., iRODS agents communicate with each other to exchange data to create replicas

Grid Styles – Event-Based Resource components notify Collective components that monitor them – e.g., executors send heartbeats to managers

Grid Architectural Styles – Layered Collective or Resource components request services from Fabric components – e.g., iRODS agent accesses a DBMS with metadata

Grid Technology Classification Computational grid – Implementing all Collective components – e.g., Alchemi and Sun Grid Engine

Grid Technology Classification Data grid – Job scheduling components in Collective subsystem are not required – e.g., Grid Datafarm and Hadoop

Grid Technology Classification Hybrid – Resource components providing services either to perform operations on a storage repository or to execute a job or task – e.g. Gridbus Broker and iRODS File Resource Computational Resource

Correcting Violations in the Reference Architecture Why were there originally so many upcalls? – Legitimate client-server and event-based communication Why so many skipped layer calls? – The Fabric layer was at the wrong level of abstraction – Mostly utility classes that should be abstracted away Why so many multi-layer components? – Connectivity layer was at the wrong level of abstraction – Not a layer, but utility libraries to enable connector functionality – Also accounts for skipped layer calls Benefit of the deployment view – Essential for distributed systems – Helped to identify that the Fabric layer was not abstracted properly

Where Are We Currently? There are remaining violations – Are they legitimate or a result of an improperly recast reference architecture? Original Focus is not ideal for recovering systems of these types – Distributed systems realized by a middleware A more automated approach that combines static and dynamic analysis would be preferable Use the recast reference architecture to build a new grid What are the overarching grid principles?

Evolving Grid Principles 1.A grid is a collection of logical resources (computing and data) distributed across a wide-area network of physical resources (hosts). 2.In a single grid-based application, the logical resources are owned by a single agency, while the physical resources are owned by multiple agencies. 3.All resources in a grid are described using a common meta-resource language. 4.Atomic-level logical resources are defined independently of the atomic-level physical resources. 5.The allocation of the atomic-level logical resources to the atomic-level physical resources can be N:M. 6.All computation in a grid is initiated by a client, which is a physical resource. The client sends the logical resources to the servers, which are also physical resources. A server can, in turn, delegate the requested computation to other physical resources. 7.All agencies that own physical resources in a grid must be able to specify policies that enforce the manner in and extent to which their physical resources can be used in grid applications.