public static double calculateCostDesired(MSApplicationNode node, IMSProvider prov) { double costPerStorage = (Double) prov.getStorage().getCharacteristic().get(Constant.COST_STORAGE); long storage = (long) node.getDesiredCharacteristic().get(Constant.STORE); Double costS = storage * costPerStorage; Double costPerMem = (Double) prov.getCharacteristic().get(Constant.COST_MEM); Integer ram = (Integer) node.getDesiredCharacteristic().get(Constant.RAM); Double costM = ram * costPerMem; Double costPerCPU = (Double) prov.getCharacteristic().get(Constant.COST_SEC); Integer cpu_number = (Integer) node.getDesiredCharacteristic().get(Constant.CPU_NUMBER); Double costCPU = cpu_number * costPerCPU; return costS + costM + costCPU; }
private static double storageCost(MSApplicationNode node, IMSProvider prov) { double costPerStorage = (Double) prov.getStorage().getCharacteristic().get(Constant.COST_STORAGE); long storage = (long) node.getStorage().getCharacteristic().get(Constant.STORE); Double cost = storage * costPerStorage; return cost; }
private static double netCost( int gene_index, IChromosome chromos, IMSApplication app, IMSProvider prov) { Double costPerNet = (Double) prov.getNetwork().getCharacteristic().get(Constant.COST_BW); Gene[] genes = chromos.getGenes(); int current_prov = (int) genes[gene_index].getAllele(); MSApplicationNode curr_node = app.getNodes().get(gene_index); // this is safe int geneVmId = curr_node.getID(); MSApplication am = (MSApplication) app; double cost = 0; Set<ApplicationEdge> set = am.getEdges(); for (ApplicationEdge e : set) { if (e.getSourceVmId() == geneVmId) { int target_index = MSPolicy.getGeneIndexFromNodeId(e.getTargetVmId(), genes, app); int tProvId = (int) genes[target_index].getAllele(); cost += CostComputer.computeLinkCost(e, geneVmId, current_prov, tProvId, costPerNet); } } return cost; }
private static double cpuCost(MSApplicationNode node, IMSProvider prov) { Double costPerCPU = (Double) prov.getCharacteristic().get(Constant.COST_SEC); Integer cpu_number = (Integer) node.getComputing().getCharacteristic().get(Constant.CPU_NUMBER); Double cost = cpu_number * costPerCPU; return cost; }
private static double ramCost(MSApplicationNode node, IMSProvider prov) { Double costPerMem = (Double) prov.getCharacteristic().get(Constant.COST_MEM); Integer ram = (Integer) node.getComputing().getCharacteristic().get(Constant.RAM); Double cost = ram * costPerMem; return cost; }