private void createActivity(JobMetaData meta, Allocation alloc) {

		ArrayList<IJob> list = new ArrayList<IJob>();
		HashMap<Integer, HashMap<Integer, String>> allocs = alloc.getAllocations();

		for (Integer vmId : allocs.keySet()) {
			SlaveVM vm = this.pool.getVMById(vmId);
			
			SocketSender sender = new SocketSender(true, vm.getIp());

			ArrayList<Integer> filelist = new ArrayList<Integer>();
			HashMap<Integer, String> files =  allocs.get(vm.getId());
			filelist.addAll(files.keySet());
			DownloadJob d = new DownloadJob(filelist, meta.getSender());
			CombineJob c = new CombineJob(filelist);
			CompressJob comp = new CompressJob();
			ForwardJob f = new ForwardJob(true);
			c.setIP(meta.getSender());
			comp.setIP(meta.getSender());
			f.setIP(meta.getSender());
			f.setRemoteFileName(vm.getIp().getHostAddress());
			list.add(d);
			list.add(c);
			list.add(comp);
			list.add(f);
			
			Activity activity = new Activity(list);
			activity.setClient(meta.getSender());
			activity.setVM(vm);

			try {
				System.out.println("Sending Activity to "
						+ vm.getId() + "@" + vm.getIp().getHostAddress());
				sender.send(activity, true);
			} catch (IOException e) {
				e.printStackTrace();
			} catch (JSchException e) {
				e.printStackTrace();
			}
		}
		monitor.moveJobToRunning(meta.getId());
	}