RadioPlan Service Deployment Strategies: Difference between revisions
(Created page with "=== RadioPlan Service Deployment Strategies === Choose where the client application and radio plan services will run. All four options need access to map data, an AntennaService, and writable prediction-file storage. # '''Everything on one computer.''' Run the client and services locally. This is the simplest option for a workstation or test installation. #:thumb|none|300px|Client and services running on one computer # '''Services on a se...") |
No edit summary |
||
| Line 125: | Line 125: | ||
Also configure RadioPropagationService's prediction directory and any required HTTPS certificate and skywave data as described elsewhere on this page. After starting the hoster, check the services through the '''URLs it actually exposes'''. If a service does not start or is not ready, check the hoster and service logs, manifest paths, proxy routes, and permissions on data directories. | Also configure RadioPropagationService's prediction directory and any required HTTPS certificate and skywave data as described elsewhere on this page. After starting the hoster, check the services through the '''URLs it actually exposes'''. If a service does not start or is not ready, check the hoster and service logs, manifest paths, proxy routes, and permissions on data directories. | ||
[[Category:RadioPlan]] | [[Category:RadioPlan]] | ||
Latest revision as of 08:24, 19 October 2026
RadioPlan Service Deployment Strategies
Choose where the client application and radio plan services will run. All four options need access to map data, an AntennaService, and writable prediction-file storage.
- Everything on one computer. Run the client and services locally. This is the simplest option for a workstation or test installation.
- Services on a separate server. The client connects to the services over the network. Configure reachable service addresses and HTTPS certificates for the names the client uses.
- GDK service hoster. Install the services as hosted external processes. The hoster starts them and provides the configured proxy endpoints; setup details are below.
- Containers. Run the services in containers, with persistent storage for prediction files and access to map and skywave data. Configure the container network or proxy so the client can reach the services.
Coverage files when the client and services are separate
RadioPropagationService stores generated coverage files in its prediction directory. Its SQLite database, coveragepredictions.sqlite, indexes those files so the service can find a matching prediction for a radio. The database is an index, not a replacement for the coverage files.
When the client runs on another computer, give the service and client their own writable coverage-file storage. The client can call GetCoveragePredictionFile before requesting a new calculation: the service returns the existing file if it is indexed and still present, or NotFound if it is unavailable. The client can then request a calculation when needed. Downloaded files must also be available locally to the client for responsive GDK radio plan use; a path on the service's computer is not a client-local file.
Setting up the GDK service hoster on Windows
The following is an example configuration for hosting both AntennaService and RadioPropagationService. Keep your existing settings and add or adjust the sections shown here; do not replace entire configuration files with these excerpts.
1. Install the service packages. Place each complete release package, including its maria-service-manifest.json, in its own subfolder under:
C:\ProgramData\TeleplanGlobe\MariaServiceHoster\HostedExternalServices
In this example, the subfolders are named AntennaService and RadioPropagationService. Their names must match the RelativePath entries below.
2. Register the external processes. In the hoster's appsettings.ExternalProcesses.Local.json, configure the service folders and manifests:
{
"HostedExternalProcesses": {
"Services": {
"AntennaService": {
"RelativePath": "AntennaService",
"Manifest": "maria-service-manifest.json",
"HostedService": "AntennaService"
},
"RadioPropagationService": {
"RelativePath": "RadioPropagationService",
"Manifest": "maria-service-manifest.json",
"HostedService": "RadioPropagationService"
}
}
}
}
3. Configure endpoints and proxy paths. In the hoster's appSettings.Local.json, set the ports and routes it should provide:
{
"GlobalDefinitions": {
"AntennaServiceDisabled": false,
"RadioPropagationServiceDisabled": false
},
"HostedServices": {
"AntennaService": {
"ExecutionMode": "Process",
"EndpointHandling": "AutoEndpoints",
"AutoEndpoints": {
"Endpoints": [ "Http:28081", "Grpc:28080" ],
"AutoProxy": true,
"ProxyPath": "/antservice_web",
"GrpcPostfix": "_grpc"
}
},
"RadioPropagationService": {
"ExecutionMode": "Process",
"EndpointHandling": "AutoEndpoints",
"AutoEndpoints": {
"Endpoints": [ "Http:25081", "Grpc:25080" ],
"AutoProxy": true,
"ProxyPath": "/rpsservice_web",
"GrpcPostfix": "_grpc"
}
}
}
}
You can choose different Endpoints, ProxyPath, or GrpcPostfix values, but update the corresponding client and service addresses as well. Do not confuse a service's internal endpoint ports with the hoster's externally exposed proxy ports.
4. Pass hosted-service settings. In the hoster's appSettings.ServiceSettings.Local.json, configure the settings passed to each process:
{
"HostedServices": {
"AntennaService": {
"Settings": {
"KestrelCertificateHandling": "[KestrelCertificateHandling]",
"UseSwagger": false,
"Disabled": "[AntennaServiceDisabled]",
"PathBase": "/antennaservice",
"service_tag": "antennaservice"
}
},
"RadioPropagationService": {
"Settings": {
"KestrelCertificateHandling": "[KestrelCertificateHandling]",
"UseSwagger": false,
"Disabled": "[RadioPropagationServiceDisabled]",
"PathBase": "/radiopropagationservices"
}
}
}
}
5. Point RadioPropagationService at AntennaService. In the deployed RadioPropagationService appsettings.json or appsettings.Production.json, set the AntennaService addresses to the actual web and gRPC proxy URLs exposed by your hoster. For example, if it exposes them on ports 5110 and 5111:
{
"Services": {
"MariaGdkDataFolder": "C:\\MariaGeoData",
"AntennaServiceAddressWeb": "http://localhost:5110/antservice_web/",
"AntennaServiceAddressGrpc": "http://localhost:5111/antservice_web_grpc/"
}
}
Also configure RadioPropagationService's prediction directory and any required HTTPS certificate and skywave data as described elsewhere on this page. After starting the hoster, check the services through the URLs it actually exposes. If a service does not start or is not ready, check the hoster and service logs, manifest paths, proxy routes, and permissions on data directories.