An application framework for dynamic distributed software architectures