framework-like environments that are extensible by components following a clearly defined pattern or protocol.