DNA //evolutions

JOpt TourOptimizer on Windows Platforms

This document describes how to host JOpt TourOptimizer locally on systems running Microsoft Windows.
It is intended for developers, system engineers, and integrators who want to run JOpt on Windows machines for development, testing, or controlled on-premise deployments.

The document focuses on container-based execution, which is the recommended and supported approach on Windows. Native execution of the Spring application is technically possible but not covered here.


System Requirements

The following prerequisites are required:

  • Windows 10 / 11 (Pro or Enterprise) or Windows Server 2019+
  • Docker-compatible container runtime with Linux container support
  • CPU with hardware virtualization support
  • Minimum recommended resources:
    • CPU: 2 cores
    • Memory: 4 GB RAM

The following Windows features must be enabled:

  • Windows Subsystem for Linux (WSL 2)
  • Hyper-V
  • CPU virtualization enabled in BIOS/UEFI

These features are mandatory for running Linux containers on Windows.


Deployment Model

On Windows, JOpt TourOptimizer runs as a containerized Spring application inside a Linux container:

  • Exposes REST APIs over HTTP
  • Uses environment variables or configuration files for configuration
  • Writes logs to standard output
  • Runs as a single-node deployment

This model is well suited for:

  • Local development
  • Integration and system testing
  • Demonstrations
  • Small or controlled on-premise installations

Container Runtime Setup

Install a Docker-compatible container runtime that supports Linux containers on Windows.

After installation, verify that the runtime is available and running:

docker version

Ensure that the container runtime is configured to use Linux containers, not Windows containers.


Running JOpt TourOptimizer

Basic Startup

Start JOpt TourOptimizer using the following command:

docker run `
  --name jopt-touroptimizer `
  -p 8081:8081 `
  dna-evolutions/jopt-touroptimizer:latest

Once started, the application is reachable at:

http://localhost:8081

Configuration

Environment-Based Configuration

JOpt follows standard Spring configuration conventions.
Configuration is supplied via environment variables.

Example:

docker run `
  --name jopt-touroptimizer `
  -p 8081:8081 `
  -e SPRING_PROFILES_ACTIVE=windows `
  -e DNA_DEFAULT_LIC=<license-key> `
  dna-evolutions/jopt-touroptimizer:latest

Configuration via Files

Configuration files can be mounted into the container:

docker run `
  --name jopt-touroptimizer `
  -p 8081:8081 `
  -v C:\jopt\config\application.properties:/app/config/application.properties:ro `
  dna-evolutions/jopt-touroptimizer:latest

Spring Boot automatically detects configuration files located in standard search paths.


Resource Management

Limit resource usage explicitly to avoid contention on the Windows host:

docker run `
  --name jopt-touroptimizer `
  -p 8081:8081 `
  --cpus="2.0" `
  --memory="4g" `
  dna-evolutions/jopt-touroptimizer:latest

Guidelines:

  • Allocate one CPU core per concurrent optimization run
  • Avoid CPU oversubscription
  • Monitor memory usage closely for large optimization scenarios

Logging and Health Monitoring

Logs

Access application logs using:

docker logs jopt-touroptimizer

Logs are written to standard output and integrate naturally with container tooling.

Health Endpoints

If Spring Boot Actuator is enabled, health endpoints can be used for monitoring:

  • /actuator/health
  • /actuator/health/liveness
  • /actuator/health/readiness

Networking and Security

  • Expose the service only on required interfaces
  • Prefer localhost bindings for development and testing
  • Use HTTPS if the service is exposed beyond the local machine
  • Never embed license keys directly in scripts or PowerShell history
  • Use firewall rules to restrict inbound access where appropriate

Updates and Lifecycle Management

To update JOpt TourOptimizer:

docker pull dna-evolutions/jopt-touroptimizer:<version>
docker stop jopt-touroptimizer
docker rm jopt-touroptimizer
docker run ...

Always validate new versions in a non-production environment before upgrading existing installations.


Limitations

  • Windows deployments are intended for local or small-scale use
  • Horizontal scaling and high availability require Kubernetes
  • Windows containers are not supported
  • Linux containers on Windows introduce additional virtualization overhead

Summary

Running JOpt TourOptimizer on Windows provides a reliable setup for Windows-centric development and controlled on-premise scenarios. Using Linux containers ensures consistent behavior across Windows, macOS, and Linux environments while preserving a unified operational model.

For production-grade, scalable, and high-throughput deployments, Kubernetes on Linux remains the recommended platform.