© aslysun/Shutterstock.com
Windows Developer
Implementierung eines einfachen Web-Chats

Pingpong mit dem HTTP-Protokoll

Mit der Veröffentlichung von ASP.NET Core 2.0 publizierte Microsoft erstmalig eine lang erwartete, stabile Version von SignalR für ASP.NET Core. Es ist also Zeit, sich anzuschauen, welches Problem mit dieser Bibliothek gelöst wird.

Frank Kubis


Es ist kein Geheimnis, dass der Trend ganz klar in Richtung mobiler und webbasierter Anwendungen geht. Webtechnologien drängen durch Technologien wie Electron und Progressive Web Apps auf den Desktop, und mobile Plattformen und sind dadurch in der Lage, das gleiche Verhalten wie native Anwendungen an den Tag zu legen. Ein Wegbereiter für diese Trends war die technologische Voraussetzung zur Implementierung einer Echtzeitanwendung.

Von weicher und harter Echtzeit

Die Definition von Echtzeitsystemen sieht eine klare Abgrenzung in weiche und harte Systeme vor [1]: Sie unterscheiden sich vor allem in ihren Rahmenbedingungen der Echtzeitanforderung. Ein hartes Echtzeitsystem muss auf eine Anfrage innerhalb eines fest definierten zeitlichen Rahmens mit einem vollständigen Ergebnis antworten; wird diese Bedingung nicht eingehalten, hat das System versagt und ein kritischer Abbruch ist die Folge. Die genaue Bestimmung des Zeitraums, der zur Antwort benötigt werden darf, hängt stark von dem Einsatzgebiet des Systems ab.

Weiche Echtzeitsysteme hingegen können den definierten zeitlichen Rahmen überschreiten, ohne dass dies gleich als ein Versagen des Systems gewertet wird. Es ist möglich, dass Ergebnisse nur teilweise ausgeben werden.

Wollte man eine Webanwendung mit der Charakteristik eines Echtzeitsystems implementierten, stolperte man dabei sehr zeitig über ein fundamentales Problem: das HTTP-Protokoll.

Pingpong mit dem HTTP-Protokoll

Das HTTP-Protokoll ist eins der Fundamente des World Wide Webs und maßgeblich für dessen Erfolg mit verantwortlich. Wie in Abbildung 1 dargestellt, erfolgt eine Anfrage der URL eines Browsers an den Webserver über ein durch das Protokoll definiertes Format. Auf diese Anfrage antwortet der Webserver und gibt im besten Fall den Antworttext in Form von HTML zurück. Der Browser parst die Antwort und die darin enthaltenen Links (je nach verwendetem HTML-Tag). Das HTTP-Protokoll erlaubt dabei allerdings, dass diese Verbindung lediglich unidirektional ist, d. h., der Webserver erkennt einen Client nicht ohne Anfrage. Es ist somit nicht möglich, aktiv Informationen vom Server an den Client zu übermitteln, ohne dass der Client vorher schon einmal angefragt hat.

Abb. 1: Pingpongspiel der Anfrage in HTTP

Ein möglicher Lösungsansatz ist der Einsatz von asynchronen Anfragen. Mittels JavaScript werden Anfragen in festen Zeitintervallen ähnlich eines Pings an den Server übermittelt. Auf diesen Ping antwortet der Server gegebenenfalls mit neuen Informati...

Windows Developer
Implementierung eines einfachen Web-Chats

Pingpong mit dem HTTP-Protokoll

Mit der Veröffentlichung von ASP.NET Core 2.0 publizierte Microsoft erstmalig eine lang erwartete, stabile Version von SignalR für ASP.NET Core. Es ist also Zeit, sich anzuschauen, welches Problem mit dieser Bibliothek gelöst wird.

Frank Kubis


Es ist kein Geheimnis, dass der Trend ganz klar in Richtung mobiler und webbasierter Anwendungen geht. Webtechnologien drängen durch Technologien wie Electron und Progressive Web Apps auf den Desktop, und mobile Plattformen und sind dadurch in der Lage, das gleiche Verhalten wie native Anwendungen an den Tag zu legen. Ein Wegbereiter für diese Trends war die technologische Voraussetzung zur Implementierung einer Echtzeitanwendung.

Von weicher und harter Echtzeit

Die Definition von Echtzeitsystemen sieht eine klare Abgrenzung in weiche und harte Systeme vor [1]: Sie unterscheiden sich vor allem in ihren Rahmenbedingungen der Echtzeitanforderung. Ein hartes Echtzeitsystem muss auf eine Anfrage innerhalb eines fest definierten zeitlichen Rahmens mit einem vollständigen Ergebnis antworten; wird diese Bedingung nicht eingehalten, hat das System versagt und ein kritischer Abbruch ist die Folge. Die genaue Bestimmung des Zeitraums, der zur Antwort benötigt werden darf, hängt stark von dem Einsatzgebiet des Systems ab.

Weiche Echtzeitsysteme hingegen können den definierten zeitlichen Rahmen überschreiten, ohne dass dies gleich als ein Versagen des Systems gewertet wird. Es ist möglich, dass Ergebnisse nur teilweise ausgeben werden.

Wollte man eine Webanwendung mit der Charakteristik eines Echtzeitsystems implementierten, stolperte man dabei sehr zeitig über ein fundamentales Problem: das HTTP-Protokoll.

Pingpong mit dem HTTP-Protokoll

Das HTTP-Protokoll ist eins der Fundamente des World Wide Webs und maßgeblich für dessen Erfolg mit verantwortlich. Wie in Abbildung 1 dargestellt, erfolgt eine Anfrage der URL eines Browsers an den Webserver über ein durch das Protokoll definiertes Format. Auf diese Anfrage antwortet der Webserver und gibt im besten Fall den Antworttext in Form von HTML zurück. Der Browser parst die Antwort und die darin enthaltenen Links (je nach verwendetem HTML-Tag). Das HTTP-Protokoll erlaubt dabei allerdings, dass diese Verbindung lediglich unidirektional ist, d. h., der Webserver erkennt einen Client nicht ohne Anfrage. Es ist somit nicht möglich, aktiv Informationen vom Server an den Client zu übermitteln, ohne dass der Client vorher schon einmal angefragt hat.

Abb. 1: Pingpongspiel der Anfrage in HTTP

Ein möglicher Lösungsansatz ist der Einsatz von asynchronen Anfragen. Mittels JavaScript werden Anfragen in festen Zeitintervallen ähnlich eines Pings an den Server übermittelt. Auf diesen Ping antwortet der Server gegebenenfalls mit neuen Informati...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang