- Middleware is connectivity software that encapsulates a set of services residing above the network operating system layer
Taxonomy of Middleware (Emmerich)
- Transactional
- Message-oriented
- Object-oriented
- Procedural
Types of Object-oriented programming models
- CORBA
- RMI
- DCOM
Supporting paradigms for adaptation include:
- Computational Reflection:
- Component-based design
- Aspect oriented programming
- Software design patterns
- the ability of a program to reason about and alter its own behavior
- Self representation (meta-level objects): implementation aspects of the system
- MOP (meta object protocol): an interface to inspect and modify the base level objects
*Behavioral reflection in middleware: modify the behavior of a program by generating code at the self representation level and injecting it to the base level
Component-based design:
components are self-contained
large scal reuse of components for COTS
late composition and late binding are supported
Examples: DCOM, EJB, Corba Component Model (CCM)
Aspect Oriented Programming
* intervened cross-cutting concerns in complex programs
* disentangling the cross cutting concerns leads to simpler software development, maintenance, and evolution
Software Design Patterns
The goal of software design patterns is to create a common vocabulary for communicating insight and experience about recurring problems and their known refined solutions
4.Taxonomy of Adaptive Middleware
1. Schmidt's classification:
- host infra-structure: higher level API than the OS, NP, generic services
- distributioin: RMI, solves heterogenity of NPs and OSs
- common services: common functionalities such as fault tolerance, security, load balancing, event propagaion, logging, persistence, ...
- domain services: specific class of distributed applications
- application
- Customizable -> static compile time
- Configurable -> static, before starting the system
- Tunable-> dynamic, before using the system. The middleware core remains intact
- Mutable-> dynamic during run-time
- QoS
- Dependable
- Embedded
- Real-time middleware
- Stream-oriented middleware
- Reflection-oriented middleware
- Aspect-oriented middleware
- Structural: ability of a system to inspect and modify its internal architecture (architecture and interface)
- Behavioral: ability of a system to inspect and modify its computation(interception and resources)
Ace
- Layer: Host-infrastructure
- Pattern: Service configurator pattern
- Type: repeatedly tunnable middleware
- Pattern: Strategy Design Pattern
- Type: configurable middleware - repeatedly tunnable middleware
- Layer: distribution
- Pattern: component based design
- Layer: distribution
- Type: configurable middleware
- Pattern: Service configurator
- Type: repeatedly tunnable middleware
- component based design
- Layer: distribution
- Type: Tunnable and Mutable - (not repeatedly tunnable tho! tunning happens just once)
- Type: repeatedly tunnable middleware
- Layer: Host infra-structure layer
- Type: repeatedly tunnable middleware
- Layer: Distribution
- both fine-grained (per interface) and coarse grained adaptation
No comments:
Post a Comment