/**
   * Creates instances of CloudSim's DatacenterBroker class from a list of customer registers.
   *
   * @param customerList a list of customer instances.
   * @return a map containing names of customers as keys and DatacenterBroker instances as values.
   * @since 1.0
   */
  static HashMap<String, DatacenterBroker> createBrokers() {
    List<CustomerRegistry> customerList = CustomerRegistryBusiness.getListOfCustomers();
    HashMap<String, DatacenterBroker> map = new HashMap<String, DatacenterBroker>();

    try {
      for (CustomerRegistry cr : customerList) {
        UtilizationProfile up = cr.getUtilizationProfile();
        String name = cr.getName();

        Optional<DatacenterBroker> broker =
            DATACENTER_BROKER.getExtensionInstanceByName(up.getBrokerPolicyAlias(), name);

        if (!broker.isPresent()) {
          Dialog.showErrorMessage(
              null, format("Error on loading datacenter broker [%s]", up.getBrokerPolicyAlias()));
          return null;
        }

        int brokerId = broker.get().getId();

        List<Vm> vmList = createVms(cr.getVmList(), brokerId);

        if (vmList == null) {
          return null;
        }

        broker.get().submitVmList(vmList);

        List<Cloudlet> cloudletList =
            createCloudlets(up, brokerId, new CustomerRegistryDAO().getNumOfVms(cr.getId()));

        if (cloudletList == null) {
          return null;
        }

        broker.get().submitCloudletList(cloudletList);
        map.put(cr.getName(), broker.get());
      }
    } catch (IOException | ServiceDeniedException ex) {
      LOG.error(ex.getMessage(), ex);
    }

    return map;
  }