Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Webservices - was ist das und wie programmiert man sie

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 27 Anzeige

Webservices - was ist das und wie programmiert man sie

Herunterladen, um offline zu lesen

Webservices zu programmieren kann ganz einfach sein. Und hat viele Vorteile gegenüber dem Programmieren "dicker" Programmpakete. Ohne Webservices wäre keine moderne Microservice-Architektur möglich. Welche Vorteile Webservices haben und wie man Webservices programmieren kann, zeigen diese Folien am Beispiel eines kleinen BMI-Rechners. BMI (Body Mass Index) ist eine Maßzahl aus dem eigenen Gewicht und der eigenen Körperlänge. BMI sagt etwas darüber aus, ob man normalgewichtig oder adipös ist.

Ein Beispiel eine Webservice-Architektur zu "nachprogrammieren" finden Sie bei dem Naturschutzprojekt:
https://cbrell.de/naturwatch/picam-einfaches-system-fuer-den-ersten-test-einer-webbasierten-raspberry-pi-kamera-naturwatch-lite/

Die Folien sind als Power Point downloadbar und dürfen "raub"kopiert werden. Wenn die eine oder andere Folie hilfreich ist, würde ich mich über feedback freuen.

Description in english:
Programming web services can be very easy. And has many advantages over programming "thicker" packages. Without web services, no modern microservice architecture would be possible. The advantages of web services and how to program web services are shown in these slides using the example of a small BMI computer. BMI (Body Mass Index) is a measure of your own weight and your own body length. BMI says something about being a normal weight or being obese.

An example of "reprogramming" a web service architecture can be found in the nature conservation project:
https://cbrell.de/naturwatch/picam-einfaches-system-fuer-den-ersten-test-einer-webbasierten-raspberry-pi-kamera-naturwatch-lite/

The slides are downloadable as Power Point and may be copied "robbery".

Webservices zu programmieren kann ganz einfach sein. Und hat viele Vorteile gegenüber dem Programmieren "dicker" Programmpakete. Ohne Webservices wäre keine moderne Microservice-Architektur möglich. Welche Vorteile Webservices haben und wie man Webservices programmieren kann, zeigen diese Folien am Beispiel eines kleinen BMI-Rechners. BMI (Body Mass Index) ist eine Maßzahl aus dem eigenen Gewicht und der eigenen Körperlänge. BMI sagt etwas darüber aus, ob man normalgewichtig oder adipös ist.

Ein Beispiel eine Webservice-Architektur zu "nachprogrammieren" finden Sie bei dem Naturschutzprojekt:
https://cbrell.de/naturwatch/picam-einfaches-system-fuer-den-ersten-test-einer-webbasierten-raspberry-pi-kamera-naturwatch-lite/

Die Folien sind als Power Point downloadbar und dürfen "raub"kopiert werden. Wenn die eine oder andere Folie hilfreich ist, würde ich mich über feedback freuen.

Description in english:
Programming web services can be very easy. And has many advantages over programming "thicker" packages. Without web services, no modern microservice architecture would be possible. The advantages of web services and how to program web services are shown in these slides using the example of a small BMI computer. BMI (Body Mass Index) is a measure of your own weight and your own body length. BMI says something about being a normal weight or being obese.

An example of "reprogramming" a web service architecture can be found in the nature conservation project:
https://cbrell.de/naturwatch/picam-einfaches-system-fuer-den-ersten-test-einer-webbasierten-raspberry-pi-kamera-naturwatch-lite/

The slides are downloadable as Power Point and may be copied "robbery".

Anzeige
Anzeige

Weitere Verwandte Inhalte

Ähnlich wie Webservices - was ist das und wie programmiert man sie (20)

Weitere von Claus Brell (20)

Anzeige

Aktuellste (20)

Webservices - was ist das und wie programmiert man sie

  1. 1. 1 Prof. Dr. rer. nat. Claus Brell, Wirtschaftsinformatik, Forschungsinstitut GEMIT (Geschäftsprozessmanagement & IT), Kompetenzzentrum CLAVIS (Informationssicherheit) Hochschule Niederrhein. Mail: claus.brell@hs-niederrhein,de , Twitter: https://twitter.com/clausbrell Web: https://cbrell.de , https://cbrell.de/naturwatch , http://claus-brell.de Webservices
  2. 2. 2Motivation: Warum Webservices? 1 geheim: Algorithmen, die betriebswirtschaftliche wertvolles Know-How enthalten, können vor dem Nutzer versteckt werden. 2 billiger betreiben: Wartung, Leistungsskalierung und Rollout sind für Webservices einfach. 3 mehrfach nutzen: Webservices können ggf. in mehreren Anwendungssystemen gemeinsam verwendet werden. 4 robust: Die Verteilung komplexer Anwendungen auf lose gekoppelte Komponenten erhöht i.d.R. die Robustheit. 5 HR: Personen mit unterschiedlichen Kompetenzen können an der Entwicklung beteiligt werden.
  3. 3. 3z.B. AJAX: asynchrone Kommunikation mit Webservices HTML Browser, Client CSS Webserver http Java- script jQuery PHP node.js Java- script .NETJava .NET JavaJEE REST SOAP TCP / IP Websockets
  4. 4. 4z.B. AJAX: asynchrone Kommunikation mit Webservices Asynchronous JavaScript and XML (AJAX) ist ein Konzept der asynchronen Kommunikation zwischen Browser und Webserver über http. XML kann, muss aber nicht. Häufig: JSON. Häufig: Webservice in PHP (79 % aller Internetseiten) Client (Javasript-Programm im Browser) stellt eine Anfrage an den Webservice (PHP-Programm auf dem Webserver). Der Webservice „tut“ etwas (Berechnung oder Datenbankabfrage oder ...). Das Ergebnis wird an den Client zurück übertragen. Bei asynchroner Kommunikation: Client kann auf Eingaben reagieren, während auf Antwort gewartet wird.
  5. 5. 5 Java- script z.B. .NET Client: synchrone Kommunikation mit Webservices HTML Browser, Client CSS Webserver http jQuery PHP node.js Java- script .NETJava .NET JavaJEE REST SOAP TCP / IP Websockets
  6. 6. 6z.B. .NET Client: synchrone Kommunikation mit Webservices Der gleiche Webservice wie für AJAX kann von einem .NET Client genutzt werden. Der Client (.NET-Konsolen-Programm) stellt eine Anfrage an den Webservice (PHP-Programm auf dem Webserver). Der Webservice „tut“ etwas (Berechnung oder Datenbankabfrage oder ...). Das Ergebnis wird an den Client zurück übertragen. Bei synchroner Kommunikation: Client wartet auf Rückmeldung des Servers und reagiert nicht auf Eingaben.
  7. 7. 7Anwendungsbeispiel BMI-Rechner BMI (Body Mass Index) ist ein Indikator, ob eine Person normalgewichtig, untergewichtig oder übergewichtig ist. BMI wird berechnet aus der Körperlänge in m und dem Gewicht in kg mit BMI=mit Körpergewicht/(Körperlänge zum Quadrat) Typischerweise liegt der BMI zwischen 20 und 26. Im Anwendungsbeispiel wird die Berechnung im Webservice ausgeführt. Der Webservice wird in PHP programmiert. Verwendet wird der Webservice von einem HTML-Formular und einem .NET- Konsolenprogramm.
  8. 8. 8Beispiel BMI-Rechner-Webservice in PHP
  9. 9. 9Beispiel BMI-Rechner-Webservice in PHP <?php $cm=$_GET['cm']; //1 $m=$cm/100; $kg=$_GET['kg']; $bmi=$kg/$m/$m; //2 echo $bmi; //3 ?> //1 In der URI übergebener Parameter steht in der Servervariablen $_GET. $_GET ist ein Array mit den Variablennamen als Keys. Der Inhalt wird einer „normale“ Variable $cm zugewiesen. //2 Der BMI wird berechnet mit Körpergewicht/Körperlänge^2 und der Variablen $bmi zugewiesen. // 3 mit echo wird der BMI zurückgegeben.
  10. 10. 10bmirechnerWS.php mit dem Browser testen
  11. 11. 11bmirechnerWS.php mit dem Browser testen bmirechnerWS.php benötigt eine Laufzeitumgebung. Ein Webserver mit PHP-Modul ist eine solche Laufzeitumgebung. bmirechnerWS.php muss in das Dokumentenverzeichnis des Webservers geladen werden. bmirechnerWS.php kann dann im Browser direkt getestet werden mit http://<serveradresse>/<verzeichnis>/bmirechnerWS.php?cm=190&kg=85 Die Aufrufparameter werden in der URI mit „cm=190“ festgelegt. Mehrere Parameter werden durch „&“ getrennt. Hinter dem Dateinamen des Webservices steht ein „?“ vor den Parametern.
  12. 12. 12bmirechnerWS.php mit einem HTML-Formular testen
  13. 13. 13bmirechnerWS.php mit einem HTML-Formular testen - Topologie Webserver bmiformular.htmlBrowser bmirechnerWS.php
  14. 14. 14bmirechnerWS.php mit einem HTML-Formular testen – Use Case Diagramm BMI-Rechner Gewicht und Größe eingeben BMI ablesen Nutzer
  15. 15. 15bmirechnerWS.php mit einem HTML-Formular testen – Ablauf aus Sicht des Nutzers (eEPK) Nutzer möchte BMI berechnen Seite aufrufen Seite geladen Daten eintragen, absenden Skript ist aufgerufen BMI berechnen, zurücksenden BMI ist berechnet Nutzer bmiformular.html Nutzer bmiformular.html Nutzer bmirechnerWS.php
  16. 16. 16bmirechnerWS.php mit einem HTML-Formular testen Der BMI-Rechner besteht aus zwei Komponenten: einem PHP-Skript und einer HTML-Seite, mit der das Skript bequem aufgerufen werden kann. Der Nutzer lädt die HTML-Datei von einem Webserver, trägt die Parameter Gewicht und Körpergröße in das HTML-Formular ein und drückt den „absenden“-Button. Dadurch wird das PHP-Skript aufgerufen und die Parameter an das PHP Skript übergeben. Das Skript berechnet den BMI. Die Ausgabe des Skriptes (der BMI als Fließkommazahl) wird an den Browser zurückübertragen und angezeigt.
  17. 17. 17Komponentenbasiertes System aus .NET-Client und PHP-Script – Topologie Webserver .NET Konsolen- programm bmirechnerWS.php
  18. 18. 18Komponentenbasiertes System aus .NET-Client und PHP-Script – Ansicht des Client-Bildschirms (Windows Konsole)
  19. 19. 19C# Quelltext
  20. 20. 20C# Quelltext Rahmen using System; using System.Net; using System.IO; namespace bmiClient { class Program { static void Main(string[] args) { ..... Inhalt der Methode Main } } }
  21. 21. 21C# Quelltext Inhalt der Methode Main WebClient myClient = new WebClient(); string url = "https://cbreXXXXXXXXXXXXXXXX/bmirechnerWS.php?"; Console.WriteLine("BMI Rechner Clientrn##################"); Console.WriteLine("Gewicht in kg eingeben:"); string kg=Console.ReadLine(); Console.WriteLine("Größe in cm eingeben:"); string cm = Console.ReadLine(); string parameter="kg="+kg+"&cm="+cm; Stream data = myClient.OpenRead(url+parameter); StreamReader reader = new StreamReader(data); string s = reader.ReadToEnd(); data.Close(); reader.Close(); Console.WriteLine("Ihr BMI: "+s); Console.ReadKey();
  22. 22. 22C# Quelltext Erläuterungen Das Programm enthält nur den Code, der für das Funktionieren erforderlich ist. Es werden keine Fehler abgefangen. Der Zugriff auf den Webservice erfolgt synchron. 1. Ein Objekt für den Internetzugriff wird erzeugt: WebClient myClient = new WebClient(); Dazu wird der Namensraum using System.Net benötigt. 2. In der Variablen url wird die Internet-Adresse des Webservice gespeichert: string url = "https:// ....... 3. Programmzeilen der Form Console.WriteLine("BMI ..... geben etwas auf dem Bildschirm aus.
  23. 23. 23C# Quelltext Erläuterungen 4. Mit ReadLine werden zeilenweise Eingaben eingelesen: string kg=Console.ReadLine(); 5. Für die Verbindung zum Webservice wird ein Handle data benötigt und damit ein lesender Zugriff mit dem Handle reader eröffnet: Stream data = myClient.OpenRead(url+parameter); StreamReader reader = new StreamReader(data); 6. Die Rückgabe des Webservice wird in die Variable s gelesen: string s = reader.ReadToEnd(); 7. Alle Verbindungen werden wieder geschlossen: data.Close(); reader.Close();
  24. 24. 24C# Quelltext Erläuterungen 8. Das Ergebnis wird mit Führungstext auf der Konsole ausgegeben: Console.WriteLine("Ihr BMI: "+s); 9. Damit sich das Konsolenfenster nicht sofort schließt, wartet das Programm auf einen Tastendruck: Console.ReadKey();
  25. 25. 25Noch nicht behandelt: asynchrone Zugriffe Webservices sollten über synchrone Zugriffe angesprochen werden. Ein asynchroner Zugriff kann insbesondere bei komplexeren komponentenbasieren Anwendungssystemen die Robustheit erhöhen. Asynchroner Zugriff auf einen Webservice über eine HTML-Seite mit Javascript: AJAX. Asynchroner Zugriff auf einen Webservice aus .NET: Webzugriff in einen Arbeitsthread auslagern.
  26. 26. 26Lesenswert 1. HTML lernen: de.selfhtml.org 2. PHP lernen: www.selfphp.de 3. Arbeiten mit der WebClient-Klasse: https://docs.microsoft.com/de- de/dotnet/api/system.net.webclient?view=netframework-4.7.2
  27. 27. 27(Verständnis-) Fragen 1. Warum kann es sinnvoll sein, Komponenten eines Anwendungssystems auf Client-Rechner und Webservices zu verteilen? 2. Wie kann ein einfacher Webservice programmiert werden? 3. Was ist der Vorteil bei der Programmierung des Clients, wenn man Webservices einsetzt? 4. Was ist der Unterschied zwischen synchronen und asynchronen Zugriffen auf Webservices?

×