eduardo santana de almeida cin.ufpe.br/~esa2 esa2@cin.ufpe.br

Post on 19-Jan-2016

34 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Aspects of scale and granularity. Eduardo Santana de Almeida www.cin.ufpe.br/~esa2 esa2@cin.ufpe.br. “It is difficult to reduce these obervations to a rule of thumb as to what granulatiry is right . Instead , it is probably best to use the discussed - PowerPoint PPT Presentation

TRANSCRIPT

Eduardo Santana de Almeidawww.cin.ufpe.br/~esa2esa2@cin.ufpe.br

Aspects of scale and

granularity

“It is difficult to reduce these obervations to a rule of thumb as to what granulatiry is right. Instead, it is probably best to use the discussed aspects to perform a detailed analysis for specific cases”.

Clemens Szyperski, pp. 150, section 8.6

Units of abstraction

Benefit• expertise for reuse

Framework• Black-box (unit of abstraction)• …classes, components• component {unit of deployment} • conventional framework• nested frameworks

• cyclic dependency• pre-condition

Units of accounting

Costs• individual blocks• the granularity problem• COTS, reenginering, development…

Units of analysis

Divide et imperaModular x Global analysis

• modular• global {component version check}• classes, methods….

“The unit of analysis can never be bigger than the unit of deployment; thus a component is the largest possible unit of

(complete) analysis”.

Clemens Szyperski, pp.142, section 8.3

Units of compilation

Full interpretation, mixed compilation and interpretation, just-in-time compilation, …..Units

• components {the limit}• modules {component version check}• classes

Units of delivery

Components and applications• contracts, documentation….($)

Units of deployment

Deployment is the process of readying a unit for operation in a particular environment

• deployment x installation• context/container-based platforms• {beans} deployment descriptor

Units of dispute

Component-based systems:• Fails have occurred…Who are the responsible?• fail propagation• exceptions

• contracts

Units of fault containment

Distributed systems• networks, machines• Fault tolerance

• redundancy • physical• temporal {transaction monitor}

Units of installation

Installation is a platform-specific activity that makes an installed unit available for use on a particular hardware configuration supported by that platform

pp. 147, section 8.11

Installation (hardware) x Deployment (platform)

Units of loading

Local x network• component load

Problems• versions {class, interface, method}• recovery• name collisions

• name schemes, globally unique identifiers (GUIDs)Observable state

• COM, CLR {side-by-side installation and loading}• problem

The problem – transitive dependencies

B depends on version 1 of component A

C depends on version 2 of component A

B and C expose definitions from A in their signature

D needs to use B and C – 1 and 2 versions

Units of locality

Distributed computing• tradeoff

• minimize communication cost x distribution to maximize resource utilization• cross process – in process – lans• distributed components

• caching

Units of maintenance and management• problems • tradeoffs

Eduardo Santana de Almeidawww.cin.ufpe.br/~esa2esa2@cin.ufpe.br

Patterns, frameworks,

architecture

Forms of design-level reuse

Sharing: • consistency: programming and scripting languages• concrete solution fragments: libraries• contracts: interfaces• individual interaction fragments: messages and protocols• interaction architectures: patterns• subsystem architecture: frameworks• overall structure: system architectures

Programming languages

Difficulty x FlexibilityFeatures

• static type systems, polymorphism• functions• exceptions• classes, inheritance• memory management• concurrency• …..

Libraries

ReuseAPIs

• Interfaces• Messages and protocols• Patterns

– Design patterns x frameworks

• Frameworks– black-box, white-box– top down, bottom up, pattern driven, target driven

System architecture

Strict layer approach• Operating system

Hardware

Device driv.

OS Kernel

Libraries

ApplicationsDownsides:

• Extensibility• Performance

System architecture

Non-Strict layer approach

Interoperability, legacy and reengineering

Legacy systems• the problems• cbd architecture benefits {refactoring}

InteroperabilityOO Legacy sistems

• FAMOOS

Eduardo Santana de Almeidawww.cin.ufpe.br/~esa2esa2@cin.ufpe.br

Aspects of scale and

granularity

top related