Softwarefundament

ULTRAMEGA S1

Et softwarefundament til driftskritiske applikationer.
ULTRAMEGA S1 samler runtime, SDK og fælles platformfunktioner til modulær software med høje krav til robusthed, sikkerhed og forudsigelig adfærd.

Styring C# / .NET Analyse Python Integration C++ / gRPC AI-agent MCP ... S1 Gateway REST API · WebSocket · SignalR · Adgangskontrol S1-platform (procesafvikling) Processtyring · Porte · Genstart · Driftsovervågning Fejlisolering Separate processer IPC i realtid Beskeder med lav latenstid Åbne API'er .NET · gRPC · REST Ved fejl Tre mekanismer Centrale NuGet-pakker: Client · Hosting · Runtime.{rid}
Overblik

Hvad er ULTRAMEGA S1?

ULTRAMEGA S1 er et generelt softwarefundament til udvikling og drift af robuste, driftskritiske applikationer. Det er målrettet systemer med høje krav til stabilitet, sikkerhed og forudsigelig adfærd, hvor nedbrud eller tab af data kan have store konsekvenser.

Platformen omfatter runtime, SDK og fælles funktioner til modulopbygning, kommunikation, konfiguration og fejlhåndtering. Det giver forsknings-, udviklings- og tekniske miljøer et sammenhængende grundlag for at bygge og vedligeholde applikationer til krævende driftsforhold.

S1 kan danne fundament for specialiserede applikationer på tværs af fagområder, hvor driftssikkerhed, kontrolleret fejlhåndtering og krav til deterministisk adfærd er centrale for systemets design.

Under motorhjelmen anvender S1 centrale platformkomponenter kompileret til maskinkode med fokus på høj ydeevne og effektiv ressourceudnyttelse. SDK’et giver udviklingsteamet adgang til platformens funktioner fra C#/.NET.

MODULER OG KLIENTER — .NET · gRPC · REST · MCP DAQ-adapter Adapter worker Databehandling Python PLC-forbindelse C++ · gRPC AI-agent MCP Alarmstyring C# · .NET ULTRAMEGA S1 RUNTIME · SDK · API'ER Procesisolering · Beskedbus · Overvågning og genstart · REST · WebSocket · MCP Instrumenter PLC'er · Controllere Procesdatabaser HMI · SCADA AI-tjenester JERES EKSISTERENDE SYSTEMER, UDSTYR OG DATA
Grundfunktioner

Det håndterer S1 under drift

Procesisolering

Hvert modul kører i sin egen proces og bruger sit eget hukommelsesområde. S1 håndterer opstart, porte og automatisk genstart. Det isolerer fejl i processerne, men applikationen skal stadig håndtere moduler, der ikke svarer, og opgaver, der bliver afbrudt.

Detaljer

Beskeder i realtid

Modulerne udveksler hændelser og kommandoer gennem en beskedbus med lav latenstid. Hændelser kan sendes som beskeder uden svar, mens synkrone kommandoer returnerer et resultat. Levering i rækkefølge kan konfigureres. Kontrol af beskedernes datatyper og struktur hjælper med at opdage fejl i kommunikationen mellem modulerne.

Detaljer

REST API og hændelsesstrømme

11 HTTP-API-grupper giver adgang til modulstyring, beskeder, kommandoer, konfiguration, driftsstatus og diagnostik. Klienter kan modtage hændelser over WebSocket og modulspecifikke beskeder via SignalR.

Detaljer

Når et modul eller en forbindelse fejler

Circuit breakers stopper gentagne kald til moduler, der ikke svarer. S1 forsøger at genetablere afbrudte gRPC-forbindelser og genstarter moduler, der er brudt ned. Moduler kan gendanne deres tilstand fra gemte checkpoints, hvis de understøtter det.

Detaljer

Kontrol af modulernes indstillinger

Indstillinger sendes til modulerne gennem én fælles funktion. Det er muligt at kontrollere, om de er taget i brug, ved at sammenligne den ønskede konfiguration med den, det kørende modul rapporterer. Kontrollen bruger statusoplysninger og konfigurationsfingeraftryk, som ikke afslører hemmelige værdier.

Detaljer

Driftsstatus og overvågning

Driftskontroller viser, om systemet svarer, er klar til brug og er startet, samt detaljeret og samlet driftsstatus. De relevante endpoints kan bruges af orkestreringsværktøjer og load balancere. Driftsmålinger, revisionsspor og status for hvert modul hjælper med at finde årsagen til driftsproblemer.

Detaljer

Samspil mellem moduler

Beskeder med definerede datatyper, routingregler, planlagt levering og checkpoints bestemmer, hvordan en opgave går fra modul til modul. Sagaer understøtter forløb med flere trin, hvor applikationen skal angive, hvad der sker, hvis et trin fejler.

Detaljer

Styring af forløb med flere trin

S1 følger hvert trin i et forløb, begrænser antallet af samtidige kørsler og identificerer operationerne med entydige korrelations-ID'er. Fejler et trin, kalder S1 de kompensationsfunktioner, applikationen har registreret. I bestemmer, hvordan de skal håndtere fejlen; fysiske processer kan ikke generelt rulles tilbage.

Detaljer

Federation

Flere S1-instanser kan forbindes, så moduler kan sende beskeder mellem dem. S1 kontrollerer modtagernes endpoints og beskytter mod SSRF. Platformen overvåger, om de øvrige instanser svarer, og bruger timeouts ved videresendelse.

Detaljer

Beskeder på planlagte tidspunkter

Beskeder kan sendes på et bestemt tidspunkt eller med faste intervaller. Planen gemmes og bevares efter genstart. Funktionsflag kan slå den planlagte levering fra under drift. Ved opslag hentes resultaterne i sider med et begrænset antal poster.

Detaljer

Fordeling af beskeder efter indhold

Routingregler fordeler beskeder efter headere, beskedtype eller destinationspræfiks. Reglerne oprettes gennem API'et og sender beskederne til de relevante moduler. De kan tilføjes, fjernes og ændres under drift uden at genstarte modulerne.

Detaljer

Beskedjournal og checkpoints

En vedvarende journal gemmer beskeder til senere opslag og genafspilning. Moduler kan gemme og gendanne deres tilstand gennem checkpoint-API'et. Automatisk komprimering af journalen begrænser lagerforbruget, og driftsmålinger viser opbevaring og kassering af beskeder.

Detaljer
Fejlhåndtering

Når et modul eller en forbindelse fejler

S1 forsøger at genetablere afbrudte forbindelser, stopper gentagne kald til moduler, der ikke svarer, og genstarter moduler efter nedbrud.

Circuit breakers

Når et modul ikke svarer, stopper en circuit breaker nye kald til det, så forespørgsler og timeouts ikke hober sig op. Nye kald får straks en tydelig fejlstatus. S1 afprøver med mellemrum, om modulet svarer igen.

  • Beskytter kommunikationen mellem moduler
  • Konfigurerbare tærskler for hvert modulpar
  • Tilstand tilgængelig gennem status-API'et
Detaljer

Automatiske forsøg på at genetablere forbindelser

S1 forsøger automatisk at genetablere afbrudte gRPC-forbindelser. Pauserne mellem forsøgene bliver længere og varierer tilfældigt, så klienterne ikke alle forsøger igen samtidigt. Indstillingerne afgør, hvordan beskeder håndteres under afbrydelsen, og når forbindelsen vender tilbage.

  • Beskytter gRPC- og TCP-forbindelser
  • Fordeler genforbindelsesforsøg over tid
  • Forbindelsesstatus rapporteres i realtid
Detaljer

Procesovervågning

S1 registrerer processer, der er brudt ned, rydder op efter dem og genstarter modulerne med deres senest kendte indstillinger. Platformen følger proces-ID'er og opdager efterladte processer, så de ikke optager ressourcer unødigt.

  • Overvåger modulernes opstart, drift og afslutning
  • Begrænset antal genstartsforsøg
  • Gendannelse fra checkpoint ved genstart
Detaljer
AI-integration

Model Context Protocol (MCP)

AI-værktøjernes adgang til S1-funktioner styres med udtrykkeligt tildelte rettigheder.

MCP-endpoint

Den indbyggede MCP-server stiller 56 Gateway-systemværktøjer til rådighed samt værktøjer registreret af moduler. Autoriserede klienter kan administrere moduler, sende beskeder og undersøge driftsstatus. Adgangen styres for hver session.

Detaljer

Adgang efter tildelte rettigheder

Hver session får tildelt rettigheder som system:read, system:module_management, messaging:send og system:admin. Rollebaseret adgangskontrol bestemmer, hvilke værktøjer sessionen kan finde og kalde.

Detaljer

Sessionsstyring og revisionsspor

Hver session knyttes til en identitet, og værktøjskald gemmes i en revisionslog. Klienter på samme S1-instans kan koordinere deres arbejde gennem beskeder mellem sessionerne.

Detaljer

Beskrivelser af værktøjer og parametre

Egne værktøjer beskrives med JSON Schema. Klienter kan finde tilgængelige operationer og parametre i registret frem for at bruge en særskilt vedligeholdt liste.

Detaljer
MCP-værktøjer

56 Gateway-systemværktøjer

AI-agenter og operatører kan bruge Gateway-systemværktøjer og moduldefinerede værktøjer gennem ét fælles interface.

Modulstyring

Moduler kan registreres, startes, stoppes, genstartes og fjernes. Deres tilstand og driftsstatus kan læses gennem værktøjerne.

Detaljer

Beskeder

Beskeder kan sendes enkeltvis, samlet eller til alle modtagere. Værktøjerne understøtter forespørgsler med svar og routing af beskeder med definerede datatyper.

Detaljer

Konfiguration

Autoriserede brugere kan læse og opdatere platformkonfigurationen samt undersøge og ændre funktionsflag.

Detaljer

Systemstyring

Nedlukning, genstart, systemoplysninger, ydelsesstatistik og platformmetadata.

Detaljer

Klynge

Styring af noder, valg af leder, tjenesteopslag og distribueret tilstand.

Detaljer

Gateway-oplysninger

Værktøjerne viser version, produktoplysninger, runtimestatus og ydelsesdata.

Detaljer

Registrering og opslag af tjenester

Tjenesteendpoints kan registreres og slås op efter navn.

Detaljer

Typesystem

Beskedtyper registreres med skemaer og kan findes i typeregistret.

Detaljer

Fordeling af beskeder efter indhold

Regler for fordeling af beskeder kan tilføjes, fjernes og vises gennem værktøjerne.

Detaljer

Beskedjournal

Beskedhistorikken kan søges frem og genafspilles, og journalens statistik kan undersøges.

Detaljer

Checkpoint

Modulets tilstand kan gemmes i checkpoints. De gemte checkpoints kan vises og bruges til gendannelse efter nedbrud.

Detaljer

Planlægning

Beskeder kan planlægges til senere eller gentagen levering. Planlagte job kan vises og annulleres.

Detaljer

Sagaer

Forløb med flere trin gemmer fremdriften og håndterer fejl med kompensationsfunktioner. De kan startes, følges og annulleres gennem værktøjerne.

Detaljer

Federation

Eksterne S1-instanser kan registreres, forbindelserne mellem dem kan administreres, og deres driftsstatus kan kontrolleres.

Detaljer
Pakker og installation

S1 som del af jeres applikation

.NET-klient- og hostingpakkerne bruges til integration. Udviklerpakken indeholder SDK-værktøjer, skabeloner og runtime-programfiler.

Ultramega.S1.Client

En .NET-klient med typede kald til Gateway REST API. Den understøtter login, modulstyring, beskeder, synkrone kommandoer, tjenesteopslag, konfiguration, driftsstatus, målinger og funktionsflag. Hændelser kan modtages over WebSocket eller via SignalR med automatisk genetablering af forbindelsen.

  • AddS1GatewayClient() til dependency injection
  • AddS1EventStream() til WebSocket
  • AddS1HubClient() til SignalR

Ultramega.S1.Hosting

Starter og overvåger S1's Gateway- og ModuleHost-processer. Pakken tildeler porte, kontrollerer, hvornår processerne er klar, lukker dem kontrolleret ned og genstarter dem efter nedbrud. Den kan enten styre egne processer eller forbinde til processer, der allerede kører.

  • AddS1Platform() som IHostedService
  • API til modulregistrering
  • Procesovervågning med automatisk genstart og circuit breakers

Udviklerpakke og runtime-programfiler

Udviklerpakken indeholder S1-programmer, der er klar til brug, samt SDK-filer. Runtime-pakkerne kopierer de nødvendige programfiler til applikationens outputmappe.

  • Udviklerpakker til Windows, Linux og macOS
  • Selvstændige eksekverbare filer uden eksterne afhængigheder
  • Udrulning uden særskilt installation af runtime
Integration

Integration af moduler

S1 gør det muligt at opbygge applikationer med komponenter udviklet i forskellige programmeringssprog. LabVIEW, C++, C#, Python og andre sprog kan kombineres gennem platformens åbne grænseflader. Udviklingsteamet kan dermed vælge sprog og værktøjer efter opgaven og integrere eksisterende software i løsningen.

Moduler i C# og .NET

Moduler udviklet med .NET SDK'et kan bruge S1's beskeder, processtyring og konfiguration. De registreres gennem hosting-API'et og angiver, hvilke funktioner klienterne kan bruge.

  • Direkte SDK-integration via IModule
  • Platformen holder styr på hver modulinstans
  • Konfigurationsfingeraftryk, der ikke afslører hemmelige værdier
  • Angivelse af rettigheder til MCP og værktøjer

Eksterne moduler og klienter

Eksisterende software kan forbindes gennem de publicerede API'er og gRPC-kontrakter. External-module v1 understøtter konfigurationsopdateringer gennem ApplyConfiguration. Adapter-worker v1 understøtter ikke anvendelse af konfiguration i selve workeren.

  • Eksterne moduler i Python og C++ via gRPC
  • Gateway-klienter på protokolniveau og adapter-worker-skabeloner
  • REST API til registrering, tjenesteopslag og overførsel af konfiguration
  • Faste kontrakter for modulernes opstart, drift, afslutning, beskeder og konfiguration
Anvendelse

Anvendelseseksempler

Eksempler på, hvor en fælles runtime til moduler kan være relevant.

Industrielle styresystemer

Moduler og adaptere forbinder styresoftware fra forskellige leverandører. Python-, C++- og .NET-komponenter kan arbejde sammen, mens S1 styrer deres processer og kommunikation.

Test og måling

S1 understøtter testforløb med høj afviklingshastighed og dataopsamling i realtid. Testfiksturer, visionsystemer og kvalitetsdatabaser kan arbejde sammen gennem sagaer, beskeder med definerede datatyper, routingregler og planlagt levering.

Modernisering af systemer

Eksisterende PLC- og SCADA-systemer kan forbindes via API'er til software til analyse og fjernovervågning. Integrationen kan indføres i etaper, hvor test og idriftsættelse planlægges i forhold til anlæggets drift.

HIL og digitale tvillinger

Fysisk udstyr og simulerede komponenter kan forbindes til hardware-in-the-loop-test. Hændelsesstrømme viser deres adfærd. Tidskravene skal verificeres for den konkrete testopstilling.

Robotter og automation

Moduler til robotkoordinering, sensorbehandling og baneplanlægning kan udveksle beskeder gennem S1. Applikationen leverer algoritmerne og skal opfylde maskinernes tids- og sikkerhedskrav.

AI-understøttet drift

AI-værktøjer kan forbindes gennem det indbyggede MCP-endpoint for at undersøge systemtilstand og hjælpe med diagnostik. Skrive- og styringsrettigheder skal tildeles udtrykkeligt efter jeres driftsprocedurer.

REST-integration

Gateway-API

11 endpointgrupper til godkendelse, modulstyring, beskeder og driftsdata.

Godkendelse

JWT-login, fornyelse af tokens, logout, ændring af adgangskode og tokenkontrol.

Detaljer

Moduler

API'et giver adgang til at registrere, starte, stoppe, genstarte og slette moduler. Det omfatter også driftsstatus, logs og understøttelse af eksterne moduler.

Detaljer

Beskeder

Klienter kan sende beskeder enkeltvis eller samlet, angive deres datatype og slå leveringsstatus op efter besked-ID.

Detaljer

Tjenesteopslag

Tjenester kan registreres og slås op. Belastningen fordeles med round-robin-valg.

Detaljer

Driftsstatus

Endpoints, der viser, om systemet svarer og er klar til brug, samt detaljeret driftsstatus. Til load balancere og orkestreringsværktøjer.

Detaljer

Konfiguration

Klienter kan læse platformens indstillinger og opdatere modulernes konfiguration. API'et giver adgang til skemaer, aktuel status, korrelationsfelter og anvisninger til nye forsøg. Konfigurationsfingeraftryk bruges til kontrol uden at afsløre hemmelige værdier.

Detaljer

Funktioner

API'et viser alle funktionsflag og giver mulighed for at kontrollere de enkelte flag. Ændringer under drift sker gennem autoriserede administrations- og værktøjsinterfaces.

Detaljer

Driftsmålinger

Driftsmålinger er tilgængelige i JSON- og Prometheus-format og viser blandt andet, hvordan beskedkøerne tømmes.

Detaljer

WebSocket

Hændelses- og beskedstrømme i realtid samt et endpoint med forbindelsesoplysninger til klienter.

Detaljer

Typer

Beskedtyper, modultilstande og værdier for leveringsgarantier kan registreres og slås op gennem API'et.

Detaljer

Diagnostik

Systemoplysninger og målinger af, hvor hurtigt beskedkøerne tømmes, hjælper med at finde flaskehalse i beskedbehandlingen.

Detaljer
Materiale

Dokumentation

Dokumentation og pakker

Teknisk whitepaper (engelsk)

Arkitekturoverblik, ydelsesegenskaber og designvalg bag den beskedbaserede mikrokerne.

Se downloads

SDK-reference (engelsk)

API'er, datakontrakter, hændelser ved modulernes opstart og afslutning, trådmodel, genetablering af forbindelser og kodeeksempler til moduludvikling.

Se downloads

Guide til hostingpakker (engelsk)

Guide til at tage NuGet-pakkerne S1.Client, S1.Hosting og S1.Runtime i brug. Med tjekliste til overgangen og eksempler på dependency injection.

Se downloads

Guide til MCP-integration (engelsk)

Tilslutning af AI-agenter til S1: værktøjsregistrering, opslag af rettigheder, RBAC-konfiguration og sessionsstyring.

Se downloads

Integrationseksempler (engelsk)

Gennemgange af integration med PLC'er, SCADA, virksomhedssystemer og eksterne moduler via gRPC og WebSocket.

Se downloads

Gateway-API-reference (engelsk)

REST API-dokumentation for gatewayens endpointgrupper: skemaer for forespørgsler og svar, godkendelse og WebSocket-protokoller.

Se downloads

Hent ULTRAMEGA S1

S1-kerneplatformen er gratis, også til kommerciel brug. Den findes som udviklerpakke og som NuGet-pakker til jeres .NET-applikation. Vi hjælper gerne med integration eller systemudvikling.