Szyperski`s book

Download Report

Transcript Szyperski`s book

Aspects of scale and
granularity
Eduardo Santana de Almeida
www.cin.ufpe.br/~esa2
[email protected]
“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….
“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-intime 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
Patterns, frameworks,
architecture
Eduardo Santana de Almeida
www.cin.ufpe.br/~esa2
[email protected]
Forms of designlevel 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
System architecture
Strict layer approach
• Operating system
Applications
Libraries
OS Kernel
Device driv.
Hardware
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
[email protected]