230 likes | 340 Views
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
E N D
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 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 impera • Modular x Global analysis • modular • global {component version check} • classes, methods…. “Theunit of analysiscanneverbebigger than the unit of deployment;thus acomponent 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 ofreadyinga unit for operation in a particular environment • deployment x installation • context/container-based platforms • {beans} deployment descriptor
Units of dispute • Component-based systems: • Failshave 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 hardwareconfiguration 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 Bdepends on version 1 of component A Cdepends on version 2 of component A B and Cexpose definitions from A in their signature Dneeds to use B and C – 1and 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
Patterns, frameworks, architecture Eduardo Santana de Almeida www.cin.ufpe.br/~esa2 esa2@cin.ufpe.br
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 Flexibility • Features • static type systems, polymorphism • functions • exceptions • classes, inheritance • memory management • concurrency • …..
Libraries • Reuse • APIs
Interfaces • Messages and protocols • Patterns • Design patterns x frameworks • Frameworks • black-box, white-box • top down, bottom up, pattern driven, target driven
Applications Libraries OS Kernel Device driv. Hardware System architecture • Strict layer approach • Operating system • Downsides: • Extensibility • Performance
System architecture Non-Strict layer approach
Interoperability, legacy and reengineering • Legacy systems • the problems • cbd architecture benefits{refactoring} • Interoperability • OO Legacy sistems • FAMOOS
Aspects of scale and granularity Eduardo Santana de Almeida www.cin.ufpe.br/~esa2 esa2@cin.ufpe.br