Wie kann mein programmiertes Tool mit einer anderen Instanz weltweit kommunizieren?
Das ganze ist ein Gedankenexperiment, es findet noch kein Programmierprojekt statt.
Möchte die genaue Idee nicht teilen, stellt euch einen geteilten Kalender, ein Tool fürs Büro oder einen Countdown vor.
Nehmen wir an das Tool wird lokal gestartet und soll nun mit 10 anderen Instanzen die auch jeweils lokal gestartet werden kommunizieren. Die Rechner befinden sich nicht im gleichem Netzwerk. Andere zusätzliche Instanzen sollen ebenfalls ihren eigenen fest zugewiesenen Kommunikationsraum haben und unabhängig funktionieren.
Jede Eingabe vom Benutzer soll mit den anderen bis zu 10 Instanzen in einem Raum synchronisiert werden.
Ich frage mich nun, wie genau realisiert man so etwas? Welches Protokoll, über welchen Weg? Wie geht man da heran?
Ich dachte daran einen IRC Server zu benutzen aber fairerweise muss ich sagen ich kenne mich (noch) nicht aus und das erscheint mir nicht die moderne Programmierart zu sein. Wie würde das ein Profi machen? Am Allerbesten wäre es, wenn man es so realisieren könnte, dass es sowohl als Anwendung laufen kann als auch im Browser.
Mit welchen Programmiersprachen und anderen Dingen ließe sich dieses Tool am besten umsetzten?
Ich hoffe ich konnte mich verständlich ausdrücken und wäre dankbar wenn mich Jemand in die richtige Richtung weisen könnte.
5 Antworten
zentraler Ansatz mit Server (dafür gibt es fertige Frameworks im Apache-Umfeld, zB Tomcat), HTTP-Protokoll für REST-Service Kommunikation. Aber das ist nur ein Ansatz. Entscheidend ist die Verfügbarkeit (garantiert rund um die Uhr?), die Sicherheit (Datenschutz der Teilnehmer, Schutz des Backend durch DMZ). Sprachen sind unterschiedlich - je weiter hinten desto Java, je weiter vorn desto Skriptsprache.
Danke für die Antwort. Lese mich grade mit dem Stickwort Sockets in Python ein. Das erscheint mir die beste Art.
Am einfachsten ist ein zentraler Ansatz mit Server, Kommunikation über IP, der Server repliziert an die angemeldeten Client.
Dezentral (zumindest für Deine Inseln) kannst Du Multicast auf IP-Basis nehmen.
Allerdings wirst Du dafür ein geeignetes Protokoll entwickeln müssen, oder auf Protokolle für mcast zurückgreifen müssen, die die üblichen Probleme wie Zusicherung der Zustellung lösen.
Da brauchst du halt z.B. einen Server, an dem sich alle Anwendungen anmelden und dann mit den benötigten Informationen versorgt werden.
Das geht in vielen Sprachen.
Das ist ja das lustige. Das kannst du dir aussuchen. Protokoll kannst du dir wenn du willst sogar selber ausdenken, aber HTTP-Requests sind sehr beliebt.
Und APIs können in sehr vielen Programmiersprachen erstellt werden. C#, Python, PHP, Java...
Wenn du schon so fragst, dann such dir lieber einen Entwickler als Geschäftspartner, der das umsetzen kann.
Moin,
im Grunde würde schon ein FTP Server reichen - andere Teilnehmer warten dann auf ihren Zugriff.
Wäre z.B. über C# realisierbar.
LG
Es gibt 2 grundlegende Ansätze:
- Zentral - so wie z.B. Whatsapp... Du hast einen (oder mehrere zur Redundanz) Server, der immer erreicht werden muss und der verteilt dann die Informationen entsprechend den "Gruppen"
- Dezentral - du nutzt ein Peer-to-Peer System. Das wäre wohl der elegante Ansatz. In der Richtung gäbe es zum Beispiel Bittorrent-Protokoll, oder du kannst schauen, wie das Syncthing (Peer-to-Peer Dateisynchronisation) macht. Relay-Server können eingesetzt werden, um Umgang mit Firewalls offenen Ports zu vereinfachen...
Sach bloß.. Welches Protkoll, welche Programmiersprache, wie ist die herangehensweise?