Upload
klaus
View
34
Download
0
Tags:
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
“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
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