poa-manager

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
poa-manager [2018/08/03 14:52]
rafael [Implementation Details]
poa-manager [2018/08/03 15:04]
rafael [Usage]
Line 22: Line 22:
 } }
 </file> </file>
 +
 +A cada intervalo
 +<file java PoAMan.java>
 + /**
 +   * Checks if all Gateways are working and executes the load balancing algorithm
 +   
 +   * {@inheritDoc}
 +   */
 +  @Override
 +  public void run() {
 +    System.out.println("this.loadReportsByGateway.size() " + this.loadReportsByGateway.size());
 +
 +    this.detectFailedGateways();
 +
 +    if (((System.currentTimeMillis() - this.lastLoadBalacingExecutionTime) > PoAMan.DELAY_BETWEEN_TWO_LOAD_BALANCING_EXECUTIONS_IN_MILLIS)
 +      && (this.loadReportsByGateway.size() > 1)) {
 +
 +      List<LoadReportTopicComparable> analysis = this.loadReportsAnalyzer.runAnalyzer(this.loadReportsByGateway);
 +
 +      List<PrivateMessage> privateMessageList = this.planningExecutor.RunPlanningExecutor(analysis, this.vehiclesByGateway);
 +
 +      if (privateMessageList.size() > 0) {
 +        this.sendPrivateMessages(privateMessageList);
 +
 +        this.lastLoadBalacingExecutionTime = System.currentTimeMillis();
 +      }
 +
 +    }
 +  }</file>
 ===== Architecture ===== ===== Architecture =====
 Descrever a arquitetura do componente. As principais classes e relações que sustentam o componente. Descrever a arquitetura do componente. As principais classes e relações que sustentam o componente.
Line 30: Line 59:
 ===== Implementation Details ===== ===== Implementation Details =====
 Para exercer sua função, o PoA-Manager ouve (i.e., assina) os tópicos LoadReport e ConnectionReport. O tópico ConnectionReport é utilizado para informar quando um MN se conecta ao SDDL, assim, o PoA-Manager pode enviar o objeto “PointsOfAttachment” contendo a lista de GWs ativos no SDDL logo que o MN se conecta. O tópico LoadReport, por sua vez, possui o ID do GW, o uso de CPU, memória livre, número de MNs conectados ao GW e o IP externo do GW. Este tópico é enviado periodicamente pelos GWs para que o PoA-Manager possa fazer o monitoramento dos GWs. Para que o GW possa enviar o tópico LoadReport, é preciso que a máquina onde o GW está sendo executado tenha a biblioteca “**libsigar**” (está na pasta lib do projeto do Gateway) configurada no ambiente.  Para exercer sua função, o PoA-Manager ouve (i.e., assina) os tópicos LoadReport e ConnectionReport. O tópico ConnectionReport é utilizado para informar quando um MN se conecta ao SDDL, assim, o PoA-Manager pode enviar o objeto “PointsOfAttachment” contendo a lista de GWs ativos no SDDL logo que o MN se conecta. O tópico LoadReport, por sua vez, possui o ID do GW, o uso de CPU, memória livre, número de MNs conectados ao GW e o IP externo do GW. Este tópico é enviado periodicamente pelos GWs para que o PoA-Manager possa fazer o monitoramento dos GWs. Para que o GW possa enviar o tópico LoadReport, é preciso que a máquina onde o GW está sendo executado tenha a biblioteca “**libsigar**” (está na pasta lib do projeto do Gateway) configurada no ambiente. 
 +
 +Como o PoA-Manager é responsável por fazer o balanceamento de carga dos GWs, ele possui uma política de balanceamento de carga que está implementada na classe **SimpleLoadReportsAnalyzer**. Originalmente a política implementada foi para verificar a diferença de MNs conectados entre os Gateways. Caso essa diferença passe de um limiar (originalmente 15%), a política de balanceamento informará qual deve ser a nova quantidade de MNs conectados em cada GW. A saída gerada pelo SimpleLoadReportsAnalyzer é repassada para a classe **PlanningExecutor**, esta responsável por gerar todas as mensagens de handover mandatório que serão enviadas para os MNs que deverão migrar de GW.
 ===== References ===== ===== References =====
 Bibtex/PDF entry dos papers sobre esse componente. Bibtex/PDF entry dos papers sobre esse componente.
  
  • poa-manager.txt
  • Last modified: 2018/08/03 15:12
  • by rafael