Architektur des Web's
Die Architektur des Internets
Webclient und -ServerEin Webclient, der HTML verarbeiten und darstellen kann, wird Browser genannt.
Vorteile
- mit Browsern wurde weltweit eine standarisierte Schnittstelle zum Navigieren durch Hypertext etabliert
- HTML5/CSS/JavaScript stellt den wohl verbreitetsten Standardbaukasten für die Implementierung von GUI's dar
- Clientseitig plattformübergreifend: fast alle PC's, Tablets und Smartphones haben einen Browser installiert
- Im Falle von RESTful- Webanwendungen ein hohes Maß an Skalierbarkeit
- Robust gegenüber Verbindungen mit langen Latenzzeiten - Zugriff auf nahezu beliebig weit entfernte Ressourcen möglich
REST
REST allgemein.Ein in seiner Bedeutung sehr weitreichendes Architekturmuster ist Rest. Obwohl bereits durch Roy Fielding 1994 in Form des HTTP Protokolls implementiert und durch seine Dissertation im Jahre 2000 verallgemeinert, wird es erst in letzter Zeit bewusst in Webanwendungen umgesetzt. Dabei spielt die Umsetzung einer zentralen Eigenschaft von REST eine Rolle, dem HATEOAS ("Wer REST will, muss mit HATEOAS ernst machen") . folgende abbildung veranschaulicht die zusammenhänge
REST durch HTTP implementieren
- HTTP- Protokoll (Wikipedia)
- HTTP- Stautscodes
-
Content Negotiation
- Mime Type Liste der IANA
-
Content Negotiation in der ASP.NET WebAPI
Achtung: Der Default- Negotiator der WebApi serialisiert im Falle, das kein passender MediaTypeFormatter gefunden wird, mit dem erstbesten Formatter, der den Typ serialisieren kann.
Clients von REST- Anwendungen dürfen sich wünschen, wie die abgerufene Ressource formatiert wird. Dazu
wird in einem GET- Befehl ein ACCEPT - Header
definiert.
Bezüglich der Formatierung oder besser dem Repräsentationsformat der Ressource ist REST völlig offen. Wenn der Server das Wunschformat unterstützt, liefert er es in einem Response an den Client aus und quittiert den Request mit dem HTTP- Statuscode 200.
Kann der Server die Ressource in keinem der Wunschformate liefern, dann wird der HTTP Statuscode 406 (Not Acceptable) zurückgeliefert.
Beispiel einer REST- Anwendung: Projekt Plan
Eine Projektverwaltung mit einer REST- Architektur stellt das Projekt insgesamt, als auch seine einzelnen Phasen als Ressourcen dar. Jede Ressource kann mittels eines GET- Befehls abgerufen werden. Die Repräsentation der Ressource stellt die Projektphase in ihrem aktuellen Zustand dar. Zudem liefert sie Links, über die Aktualisierungen der Ressourcen möglich sind.
Vorteile sind:
- Jederzeit können neue Projekt und ihre Phasen in Form neuer Ressourcen angelegt werden.
- Auf gesamte Projekt und seine Phasen können aus anderen Anwendungen heraus Links gesetzt werden, um z.B. den Bezug eines Dokumentes, welches eine Anwendung verwaltet, mit einer Projektphase zu dokumentieren.
- Der Zustand eines Projektes bzw. eine seiner Phasen kann in mehreren Formen repräsentiert werden: z.B. für die unmittelbare Auswertung durch einen Sachbearbeiter als HTML- Formular, oder zur machinellen Verarbeitung mit einem Programm als JSON.
Klassifikation von Rest- Anwendungen
Klasse | Mensch/Maschine | Maschine/Maschine |
---|---|---|
Layer | Frontend | Backend |
Frameworks | ASP.NET MVC | Web Api 2, OData |
Präsentation | text/html (View), application/javascript | application/json, application/xml, text/csv |
Ressourcenverknüpfung |
|
<link rel="CanvasScript" type="application/json" href="http://mk-org-net.de/CanvasScript/Anton/T1"/>
|