[rules-users] Can someone help me understand a java rule? [planner]

Aijin Nakanishi azeitona.azapa at gmail.com
Thu Feb 7 10:10:08 EST 2013


I mean, i know how it is called, it is inside the xml configuration:
----------
  <!-- Domain model configuration -->

<solutionClass>org.drools.planner.examples.cloudbalancing.domain.CloudBalance</solutionClass>

<planningEntityClass>org.drools.planner.examples.cloudbalancing.domain.CloudProcess</planningEntityClass>

  <!-- Score configuration -->
  <scoreDirectorFactory>
    <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>

<simpleScoreCalculatorClass>org.drools.planner.examples.cloudbalancing.solver.score.CloudBalancingSimpleScoreCalculator</simpleScoreCalculatorClass>-->

  </scoreDirectorFactory>
---------

i want to understant the java class doing the assign to cloudcomputers. I
don't see any setCloudProcess to a CloudComputer, even so, when the planner
ends, all process have been distributed to cloudcomputer. That's what I am
trying to understand, how does it works. I did a debug but i didn't catch
the moment a cloud computer receives a cloudprocess


2013/2/7 Geoffrey De Smet <ge0ffrey.spam at gmail.com>

>
> Op 07-02-13 15:43, Aijin Nakanishi schreef:
>
>  I'm trying to understand when is proccess assigned to a computer by that
> java example.
>
> ----------------
>     public HardAndSoftScore calculateScore(CloudBalance cloudBalance) {
>         int hardScore = 0;
>         int softScore = 0;
>         for (CloudComputer computer : cloudBalance.getComputerList()) {
>             int cpuPowerUsage = 0;
>             int memoryUsage = 0;
>             int networkBandwidthUsage = 0;
>             boolean used = false;
>
>             // Calculate usage
>             for (CloudProcess process : cloudBalance.getProcessList()) {
>                 if (computer.equals(process.getComputer())) {
>                     cpuPowerUsage += process.getRequiredCpuPower();
>                     memoryUsage += process.getRequiredMemory();
>                     networkBandwidthUsage +=
> process.getRequiredNetworkBandwidth();
>                     used = true;
>                 }
>             }
>
>             // Hard constraints
>             int cpuPowerAvailable = computer.getCpuPower() - cpuPowerUsage;
>             if (cpuPowerAvailable < 0) {
>                 hardScore += cpuPowerAvailable;
>             }
>             int memoryAvailable = computer.getMemory() - memoryUsage;
>             if (memoryAvailable < 0) {
>                 hardScore += memoryAvailable;
>             }
>             int networkBandwidthAvailable = computer.getNetworkBandwidth()
> - networkBandwidthUsage;
>             if (networkBandwidthAvailable < 0) {
>                 hardScore += networkBandwidthAvailable;
>             }
>
>             // Soft constraints
>             if (used) {
>                 softScore -= computer.getCost();
>             }
>         }
>         return DefaultHardAndSoftScore.valueOf(hardScore, softScore);
>     }
> --------------------
>
>  I didn't understand how the cloudcomputers received it
>
> What do you mean?
> That ScoreCalculator is configured in the SolverConfig.xml, so that's why
> it gets called.
>
>
>
> _______________________________________________
> rules-users mailing listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20130207/022783e8/attachment.html 


More information about the rules-users mailing list