Für einen Regierungsvertrag schlagen wir vor, eine Verkehrsüberwachungsarchitektur aufzubauen. Wir werden die folgenden Komponenten haben:Also ich spreche hier über eine SOA?
- Videokamera ist rund um den Bereich von Interesse eingerichtet. Die Kameras werden sich ihrer Position und Ausrichtung sowie der Anzeigeparameter bewusst sein.
- Ein GIS-Kartenserver, der für Straßen, Gebäude usw. abgefragt werden kann.
- Ein Algorithmus, der rohe Video- und Straßenstandortinformationen aufnimmt und Autostandorte ausgibt.
- Ein anderer Algorithmus berücksichtigt die Standorte von Autos und sehr niedrige Straßeninformationen und liefert Informationen darüber, welche Autos anomal fahren.
- Eine andere Datenbank nimmt im Zeitverlauf Informationen über Autostandorte und Anomalieberichte auf und kann später abgefragt werden.
- Ein Proxy (oder genauer gesagt eine Fassade) wird über die Archivdatenbank und die Echtzeitalgorithmen eingerichtet, um eine einheitliche Schnittstelle zu den Informationen bereitzustellen.
- Ein Client verbindet sich mit dem Proxy und dem Straßenserver und malt verschiedene Darstellungen der Verkehrssituation auf dem Bildschirm.
Ich lerne gerade jetzt, was eine SOA ist. Ist dies ein idealer Kandidat für eine SOA mit serviceorientierter Architektur? Ich hatte gehört, dass SOA-Dienste zustandslos sein sollten (oder sind das nur REST-konforme Dienste?). Ich hatte auch gehört, dass es nicht ratsam sei, einen Dienst an den nächsten weiterzuleiten, weil dies die verborgene Komplexität erhöht und dass man etwas tun sollte um diese Situation zu verbessern (eine "Orchestrierung"?). Die oben genannten Dienste scheinen modular und wiederverwendbar zu sein. Zum Beispiel wird es viele Kameras, verschiedene Arten von Fahrzeugerkennung und Anomaliealgorithmen, verteilte Datenbanken und viele Kunden geben. Ich werde die Fähigkeit haben müssen, mit Ereignissen umzugehen: zum Beispiel, wenn ich mich für einen Service registrieren und benachrichtigt werden möchte, wenn ein großer Truck an diesem Punkt vorbeikommt.
Wenn dies nicht ideal von einer SOA implementiert wird, wo sonst sollte ich suchen. Wenn dies für eine SOA ideal ist, wo sollte ich dann mit der Entwicklung beginnen? (Und ich beginne grundsätzlich damit, die SOA-Seite von Wikipedia gelesen zu haben.) Gibt es hier gute Fallstudien?
Sehr gute Beratung! Vielen Dank. Ein Kommentar allerdings, es gibt mehrere Dienste in meinem Rahmen, die nicht staatenlos sein können (oder sonst verkenne ich, was zustandslos in diesem Fall bedeutet). Zum Beispiel wird der Fahrzeugortungsdienst ein Client für den Videodienst sein und wird den Standort der Autos (ein Zustand von Art) durch kontinuierliches Betrachten neuer Videorahmen verfolgen. Vielleicht ist es wichtig, dass jede Dienstleistung den Zustand ihrer Kunden nicht erhalten soll. Ich denke, ich kann hier davon wegkommen. – JnBrymn
Was ist, wenn ich möchte, dass der Dienst die Listener verfolgt und sie benachrichtigt, sobald neue Informationen verfügbar sind. Dies würde nicht den Service-Zustand seiner Kunden darstellen, aber es würde bedeuten, dass der Service seine Kunden immer auf dem Laufenden hält. Tut das etwas weh? – JnBrymn
Die Clients und der Service haben eine engere Kopplung. Ein Client könnte offline sein und Sie müssen entscheiden, was der Dienst in einer solchen Situation tun soll, ein anderes System abbrechen, ignorieren, wiederholen oder benachrichtigen? – Kwebble