A skeleton based programming paradigm for mobile multi-agents on distributed systems and its realization within the MAGDA Mobile agents Platform