A Graph-Oriented Approach to the Description and Implementation of Distributed and Dynamic Software Architecture