Read-only mirror of https://github.com/sogis/ccc-service — Kanton Solothurn. Issues & pull requests at the source.
  • Java 98.2%
  • Dockerfile 1%
  • HTML 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Christian Baumann e5b369395b Removed debug log
2026-07-27 11:35:12 +02:00
.github/workflows disconnect message for intentional V1.2 session termination (#62) 2026-04-20 13:54:47 +02:00
config/spotbugs Remove global lock from ErrorSender (#67) 2026-07-06 09:47:09 +02:00
docker CVE comment in Dockerfile 2026-06-25 08:59:21 +02:00
docs typos fixed 2026-06-03 14:14:25 +02:00
gradle bump to newest versions 2025-11-12 15:13:15 +01:00
htmlTestClient documentation (#61) 2026-03-16 15:04:38 +01:00
src Removed debug log 2026-07-27 11:35:12 +02:00
.dockerignore GC log reduced 2026-02-17 10:56:24 +01:00
.gitignore Add global session cap and Tomcat connection limits (#65) 2026-05-28 15:53:11 +02:00
AGENTS.md Add global session cap and Tomcat connection limits (#65) 2026-05-28 15:53:11 +02:00
build.gradle Remove global lock from ErrorSender (#67) 2026-07-06 09:47:09 +02:00
CLAUDE.md Add global session cap and Tomcat connection limits (#65) 2026-05-28 15:53:11 +02:00
gradle.properties Remove global lock from ErrorSender (#67) 2026-07-06 09:47:09 +02:00
gradlew bump to newest versions 2025-11-12 15:13:15 +01:00
gradlew.bat bump to newest versions 2025-11-12 15:13:15 +01:00
README.md Update README with V1.2 geo object changes 2026-04-23 14:14:09 +02:00

CCC-Service

Funktionsweise

Uebersicht.puml

Der CCC-Service verbindet als "Mittelsmann" GIS-unwillige Fachapplikationen mit den Kartenapplikationen des AGI.

Mittels der "INIT"-Nachrichten wird dabei in der User-Session das Pairing für einen User zwischen der Fachapplikation und der entsprechenden GIS-Applikation initialisiert.

Die Session stellt sicher, dass die Nachrichten für den Benutzer korrekt von der Fachapplikation an die Kartenapplikation des AGI weitergereicht wird.

Die Kommunikation erfolgt bidirektional über Web Socket. Sprich die Fach- und Kartenapplikationen sind sowohl Sender wie auch Empfänger von Nachrichten.

Protokoll V1.0 Nachrichten

Name Richtung Typ Beschreibung
connectApp F > CCC INIT Anfrage der Fachapplikation, in die entsprechende Session aufgenommen zu werden.
connectGis K > CCC INIT Anfrage der Kartenapplikation, in die entsprechende Session aufgenommen zu werden.
notifySessionReady CCC > F,K INIT Nachricht des CCC-Service an Fach- und Kartenapplikation, dass beide Seiten der Session beigetreten sind, und nun "RUN"-Nachrichten ausgetauscht werden können.
createGeoObject F > K RUN Versetzt den Web GIS Client, nach Zoom auf den entsprechenden Ort, in den Editiermodus. Anschliessend erfasst der Benutzer an der entsprechenden Stelle die neue Geometrie.
editGeoObject F > K RUN Mit dieser Nachricht wird die bestehende Geometrie eines Fachobjektes im GIS editiert. Verhalten des Web GIS Client analog zu «createGeoObject».
showGeoObject F > K RUN Bewirkt das zentrierte und selektierte Anzeigen des übergebenen Fachobjektes in der Karte des Web GIS Client.
cancelEditGeoObject F > K RUN Aufforderung an die Kartenapplikation, den Edit-Status zu beenden.
notifyObjectUpdated F > K RUN Benachrichtigung, dass Informationen eines Fachobjektes geändert wurde → Kartenapplikation lädt darauf beispielsweise die Karte neu.
notifyEditGeoObjectDone K > F RUN Mit dieser Nachricht sendet der Web GIS Client nach dem Beenden des Editierens die erfasste / geänderte Geometrie des Fachobjektes an die Fachapplikation.
notifyGeoObjectSelected K > F RUN Nach Empfang dieser Nachricht zeigt die Fachapplikation die Informationen des auf der Karte selektierten Fachobjektes an.
notifyError Tri-Dir ERR Damit werden Fach- und Kartenapplikation über Fehler benachrichtigt. Absender ist bei Protokollfehlern der CCC-Service, bei Verarbeitungsfehlern die Fachapplikation oder die Kartenapplikation.

Details: Spezifikation V1.0 (PDF)

Protokoll V1.2 Erweiterungen

Name Richtung Typ Beschreibung
changeLayerVisibility F > K RUN Aufforderung an die Kartenapplikation, eine geladene Ebene auf sichtbar/unsichtbar zu schalten.
reconnectGis / reconnectApp F,K > CCC RUN Anfrage eines V1.2-Clients, nach einem Verbindungsunterbruch wieder in die bestehende Session aufgenommen zu werden.
disconnectGis / disconnectApp F,K > CCC RUN Signalisiert dem Server, dass der V1.2-Client die Session absichtlich beendet. Sofortige Terminierung ohne Reconnect-Grace-Period.
keyChange CCC > F,K RUN Aufforderung des Servers an einen V1.2-Client, die Keys auszutauschen.

notifySessionReady wird mit V1.2 um connectionKey und sessionNr erweitert.

createGeoObject, editGeoObject, showGeoObject wurden mit in V1.2 um optionales style-Objekt erweitert.

Details: Protokoll V1.2 Erweiterung

Dokumentation

Thema Link
Service betreiben (Docker) docs/user/running.md
HTML-Testclient verwenden docs/user/test-client.md
Architektur docs/dev/architektur.md
Entwicklerdokumentation docs/dev/readme.md