22
Unlocking the Grid Chris A. Mattmann, Nenad Medvidovic, Paul M. Ramirez, Vladimir Jakobac Monday, June 27, 2022 8 th International ACM SIGSOFT Symposium on Component-based Software Engineering

Unlocking the Grid

  • Upload
    kreeli

  • View
    27

  • Download
    0

Embed Size (px)

DESCRIPTION

Unlocking the Grid. Chris A. Mattmann, Nenad Medvidovic, Paul M. Ramirez, Vladimir Jakobac Monday, October 20, 2014 8 th International ACM SIGSOFT Symposium on Component-based Software Engineering. Outline. Introduction Motivation Lack of understanding of: Grid Architecture - PowerPoint PPT Presentation

Citation preview

Page 1: Unlocking the Grid

Unlocking the Grid

Chris A. Mattmann, Nenad Medvidovic, Paul M. Ramirez, Vladimir Jakobac

Thursday, April 20, 2023

8th International ACM SIGSOFT Symposium on Component-based Software Engineering

Page 2: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-2

Outline

• Introduction• Motivation• Lack of understanding of:

– Grid Architecture– Grid Requirements

• Approach to studying grids• Case Studies• Related Work• Conclusions

Page 3: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-3

Introduction: Grid Computing

• The goal is to provide an infrastructure AND architecture for providing seamless utilization and access of heterogeneous resources

• The big picture– Two predominant types of resources

• Data (large data sets, heterogeneous storage methods, difficult quality of service goals)

• Computational (heterogeneous computing systems, environments, security, types of jobs)

– As such, two predominant types of grids• Data Grids and Computational Grids

Page 4: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-4

Motivation

• Workshop paper– (Paraphrased): “The grid technology

you are studying is nothing more than a simple Object Oriented Framework”

• Ask ourselves the question– Was the reviewer right?

• Alleged Object Oriented Framework was 2003 Runner-up NASA Software of the Year

Page 5: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-5

Motivation (cont)

• State of the practice in grid computing– Little understood or known about the as-implemented

architectures of current grid technologies [FINK04]– Little understood or known about understanding the

requirements of grid computing• Requirements normally written as “high level” objectives,

rather than your everyday software engineering style requirement

• Risk of architectural drift– myriad of grid technologies that all generally claim to

have the same capabilities• but are clearly implemented using different approaches,

technologies, with different requirements in mind

Page 6: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-6

Our Approach

• Object Oriented Grids– Thanks to the reviewer, we wanted to study OO style grids– Also a by product of the chosen architectural recovery approach

• Open Source– Needed source code as input, because many of the grid

technologies had somewhat limited documentation• Off-the-shelf, useful systems

– Globus, the de facto grid technology– OODT, NASA’s and National Cancer Institute’s grid technology– DSpace, rapidly becoming pervasive in the digital library

community as a “data grid” technology– GLIDE, a lightweight, data-intensive grid technology – JCGrid, open source computational grid technology from

Sourceforge.net

Page 7: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-7

Our Approach

• Inputs:– Detailed literature review among 4 seminal grid papers

• Chervenak (data grid), Foster (3 point checklist), Kesselman (anatomy), Foster (physiology)

• Allowed us to distill a set of “reference” requirements for grid technologies

– Along with a “reference” architecture for grid technologies, the famous layered architecture proposed by Kesselman et al.

– Source code/documentation from the 5 selected “representative” grid technologies

• Recover the architecture of the 5 technologies using the Focus [JASE-MED] architecture recovery approach– Gives you “Recovered Architectural Model”, or RAM

Page 8: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-8

Our Approach

Determine GridReference

Requirements

RAM

Application

Fabric

Connectivity

Resource

Collective

Determine Grid Reference

Architecture

1a

1b

2

3a

3b

Cluster Recovered Components According to

Reference Architecture

Analyze Conformance to Reference Requirements

Recover the Architecture

Grid Technology Source Code

Page 9: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-9

Our Approach

• “Cluster components according to reference architecture”– i.e., try and “shoe horn” the components into their appropriate

layer of the 5 layer grid ref. arch– Used:

• Documentation of grid technology (e.g., web site, txt files included with distribution, white papers and research papers, javadocs)

• Reference requirement table, maps layer(s) to requirements• Observation of the component’s role in the running system

(instrumentation)

• “Analyze conformance to reference requirements”– Use the following table to map requirements/desired capabilities

to architectural layers

Page 10: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-10

Reference Requirements

Page 11: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-11

Recovering the RAM of OODT

CORBA_Archive_Serv iceHolder

DatabaseProfileManager

ConfigurationBean

Configuration

SearchBean

QueryClient

RMIQueryServ iceFactory

HTTPFormRecorder

ChunkedProductInputStream

Result

QueryHeader

QueryResult

Transaction

XMLQuery

test c lasses removedsome exception c lasses as well

inheritance rule applied here

2-way assoc. rule applied also here

domain c lasses identified (bolded)

grouping based on interfaces

domain c lass rules

DDMResultParser

ProfileElement

ServerImpl

ServerPOA

DATASET_KEYWORD_LIST

DATA_TYPE

DATASET

JDBC_DB

ArchivePOA

DatasetDisplayer

Dataset

Expression

ProfileClient

ProductClient

QueryServ icePOA

ProfileServ icePOA

ProductServ icePOACORBA_Archive_Serv icePOA

ProfileServ iceAdaptor

ProductServ iceAdaptor

ExecServer

QueryServ iceHolder

Profile

KEYWORD_LIST

PageBean

ProfileAttributes

QueryEngine

ARCHIVE_LIST

AUX_PROCESS

DatabaseProfileHandler

TestCase

Utilities

Server(from prod...

<<Interface>>

query()retrieveChunk()c lose()

Codec(from xmlqu...

<<Interface>>

encode()decode()s izeOf()getInputStream()

Page 12: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-12

“Shoe horn” components into Grid Reference Architecture

Collective

Application

Connectivity

Resource

Fabric

Profile

ProfileAttributes ResourceAttributes

ProfileElement

DDMResultParser

QueryEngine

ServerPOA

ServerImpl

DatabaseProfileHandler

Dataset

DatasetDisplayer

PageBean

XMLQuery QueryResultTransaction

QueryHeader

Configuration

ConfigurationBean

SearchBean QueryClient

Expression

Result

HTTPFormRecorder

Utilities

ChunkedProductInputStream

DatabaseProfileManager

CORBA_Archive_ServiceHolder

ProfileServiceAdaptor

ProductClient

ProductServiceAdaptor

QueryServicePOA

ProfileClient

QueryServiceHolder

ProductServicePOA

ExecServerProfileServicePOA

CORBA_Archive_ServicePOA

RMIQueryServiceFactory

Is there anything wrong with this picture?

Two layer boundary

upcall

Couldn’t determine right “layer”

Examine:

- Documentation about classes - Source code

- functionality of running classes

- which requirements the component satisfies

Page 13: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-13

What about this one?(Globus’s RAM)

Collective

Application

Connectivity

Resource

Fabric

GetOpts

GridContext

Utilities

GlobusDescriptorSetter

ServiceAnnotatorSimpleWriter

CL Option

GenerateUndeploy

WSDDService

ServiceNotificationThread

EJBServiceClient

JMSAdapterClient

GroupLogAttribute

AuthMethod

EJBFactoryCallback

WSDL2Java

ServiceActivatorHolder

PersistentGridServiceImplBasicHandler

JAXRPCHandler

HomeWrapper

SecureContainerHandler

Parser

NotificationSubscriptionFactoryCallbackImpl

DynamicFactoryCallbackImpl

OGSI LoggingFaultElement

OGSI AuthenticationToken

PrivateKey

GSSCredential

BinarySecurityToken

ServiceRequest

ServiceData

SecurityDescriptor

OGSI AuthenticationFaultOGSIHolder OGSIType

UUID

OGSI FaultType

Exception Data

ServiceDesc

X509 Certificate

FlattenedWSDLDefinition

OGSA ClientOperation

TypeEntry

Semaphore

ServiceDataSet WSDLConstants

JavaClassWriterSymbolTable

ServiceEntry

PerformanceLog

ServiceLifecycleMonitorImpl

CommandLineTool

Element

JavaGridServiceDeployWriter

TypeMappingInfo

SecContext

GSSContext

ListDescriptorHandler TimerTask

ServiceDeployment

ExtendedDateTimeType

HandleType

ServiceDataAttributes

ServiceLocator

NotificationSinkNotifyer

PrivilegedInvokeMethodAction

RPCURIProvider MessageContext

Method

CreateInfo

ServiceDataAnnotation

Map

BinarySecurityTokenFactory

NotificationSinkManager

ServiceContainer ServicePropertiesImpl

JavaGridServiceDeployConstants

WSDL2

Emiter

ToolingCommand

CLArgsParserDocument

CLOptionDescriptor

Java2WSDL

Two layer boundary AND

Upcall

Two layer boundary AND

Upcall

Two layer boundary ANDUpcall

Couldn’t determine right “layer”

upcall

upcall

upcall

Page 14: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-14

Numerous violations of the reference architecture

• Component upcalls– Violation of the layered architectural style– Possible architectural “drift”

• Crossing two (or more) layer boundaries– Worst of these was a cross of all four layers in the reference

architecture!– Possibly a “refactorization” problem

• Too many needed capabilities in lower level componet, not enough abstraction

• Can’t determine what layer the component goes in– Not enough documentation, or component with capabilities that

seemed to “span” several layers

Page 15: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-15

Discussion

• Grid technologies appear to be DSSA’s for the domain of grid computing– Each has its own instantiated subset of the core grid

components• Size and Complexity of the Grid technologies

– Large variation– 2000 SLOC in GLIDE to over 55,000 SLOC in Globus– 61 classes in GLIDE to over 14 times as many in

Globus (around 900)– Each technology has its own design foci

• Pervasive grids versus computational grids versus data grids and so on…

Page 16: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-16

Identification of “optional” requirements

• Identified through careful examination of study results– Grid Technology A supports Requirement X and

claims to be Y-type “grid”

• Optional requirements– Enable single sign on– Delegate and authorize– Ensure access control– Ensure “exactly once” level of reliability service– Data Grid requirements

Page 17: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-17

Distinction between “Computational” Grids and “Data”

Grids• In terms of identified requirements

– Distilled from the results of our study

• Data Grid requirements– Ensure neutrality of data sharing mechanism– Ensure neutrality of data sharing policy– Provide uniform information infrastructure– Support metadata management– Interface with heterogeneous storage systems– Manage data replicas

Page 18: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-18

Related Work

• Study by Finkelstein et al. [FINK04]– Journal of Grid Computing– Studies architectural style requirements and patterns

for data grid systems– Level of “conformance” to architectural style– Identification of 83 data grid requirements

• Numerous works in computational grid computing, data grid computing by Foster, Chervenak, Kesselman, et al.

• Architecture recovery of middleware by Ivkovic et al.

Page 19: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-19

Conclusions

• Grid systems regularly violate the reference architecture

• Overlap between grid layers– Components appear to belong in “multiple” layers

• Grid requirements are under-specified and very high level– It’s difficult for most middleware to “not” provide at

least some of the grid requirements

• Grid interoperability poses a problem• An ADL for grid systems would be very useful

Page 20: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-20

Future Work

• Possibly “forward” architecting grid system– Use technique such as CBSP to distill, from recovered

requirements, the appropriate grid components– Compare and contrast results with that of as-implemented

architectures• Discuss more with grid technology experts as to

“reasons” behind the level of non-conformance– Perhaps grid technologies are indeed such project-specific

DSSA’s, that a “reference” architecture for grid computing may be impossible to define

• Address informality of grid requirements– Investigate formal requirements specification

• Address informality of grid architecture, and violations– Conformance to an ADL?

Page 21: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-21

References• [FINK04] A. Finkelstein, et al. Relating Requirements and Architectures: A Study of

Data-Grids. Journal of Grid Computing, 2004.• [JASE-MED] N. Medvidovic and V. Jakobac. Using Software Evolution to Focus

Architecture Recovery. Journal of Automated Software Engineering, to appear, 2005.• [ANATOMY] C. Kesselman, et al. The Anatomy of the Grid: Enabling Scalable, Virtual

Organizations. Journal of High Performance Computing, 2001.• [PHYSIOLOGY] I. Foster, et al. The Physiology of the Grid: An Open Grid Services

Architecture for Distributed Systems Integration. Globus Research Report, work-in-progress, 2002.

• [DATAGRD] A. Chervenak, et al. The Data Grid: Towards an Architecture for the Management of Large-scale, Scientific Datasets. Journal of Network and Computer Applications, 2000.

• [3POINTCHK] I. Foster. What is the Grid?: A Three Point Checklist. GRIDToday, 2002.

• [GLIDE] C. Mattmann, et al. GLIDE: A Grid-based, Light-weight Infrastructure for Data-intensive Environments. Proceedings of the 2005 European Grid Conference, Feb. 2005.

Page 22: Unlocking the Grid

04/20/23 GRID-UNLOCK CAM-22

Questions?