Angular Tutorial

Das Tutorial zeigt, wie die folgende GĂ€stebuch Anwendung realisiert werden kann: Die folgenden Anwendungen werden benötigt: Node.js npm Angular CLI Bootstrap Installation von Angular CLI npm install -g @angular/cli Neues Projekt (GĂ€stebuch) generieren ng new guestbook Installation der Bootstrap Bibliothek via ’npm’ Paketmanager: npm install –save bootstrap Developer Server starten, um die Anwendung zu testen: ng serve Die Anwendung ist anschließend unter der folgenden Adresse erreichbar: http://localhost:4200/ ...

MongoDB Tutorial

MongoDB (abgeleitet vom engl. humongous, „gigantisch“) ist eine dokumentenorientierte NoSQL-Datenbank, die in der Programmiersprache C++ geschrieben ist. Da die Datenbank dokumentenorientiert ist, kann sie Sammlungen von JSON-Ă€hnlichen Dokumenten verwalten. So können viele Anwendungen Daten auf natĂŒrlichere Weise modellieren, da die Daten zwar in komplexen Hierarchien verschachtelt werden können, dabei aber immer abfragbar und indizierbar bleiben. [Wikipedia] Mit dem folgenden Befehl kann der MongoDB Server gestartet werden. Jedoch muss der folgende Ordner zunĂ€chst einmal anlegelgt werden: C:\data\db. Hier werden die DB Daten gespeichert. mongod ...

OAuth 2.0 Prozess (high level)

Das erste Bild zeigt, wie ein Anwender mit seinem Device ĂŒber eine mobile Anwendung z.B. E-Mail Programm von einem unbekannten Unternehmen die E-Mails (Resources) von einem z.B. Google Server (Resource Server) abfragen möchte. FĂŒr das Vorhaben muss der Anwender innerhalb der mobilen Anwendung seine Google Zugangsdaten eingeben. Jedoch ist das Ganze mit gewissen Risiken verbunden, da a) das E-Mail Programm das Passwort speichern kann und b) die Anwendung das Passwort verwenden kann, um z.B. auf andere Google Dienste zuzugreifen. ...

JMeter Tutorial - Teil 1

Download JMeter Start JMeter: C:\apache-jmeter-5.1.1\bin\ApacheJMeter.jar HTTP(S) Test Script Recorder Um mit JMeter eine Webseite auf Performance zu testen, mĂŒssen wir den Workflow (request/response) zunĂ€chst einmal aufnehmen. Die Aufnahme des Workflows bei einer HTTPS Verbindung wird wie folgt vorgenommen: JMeter stelle ein Proxy Server zur VerfĂŒgung, der in der Standardeinstellung auf den Port 8888 hört. Da wir uns nicht fĂŒr die Grafiken, CSS Datein etc. interessieren, schließen wir diese aus: ...

Alexa Skill & AWS Lambda & npm Pakete & Cumulocity

Das folgende Beispiel zeigt die Erstellung einer einfachen Alexa Anwendung (Skill) mit Hilfe von ‘Alexa Developer Console’ und ‘AWS Lambda’. Alexa Developer Console Die ‘Alexa Developer Console’ hilft uns dabei, das sogenannte ‘Interaction Model’ zu erstellen. Dieses Modell dient dazu, die gewĂŒnschte Anwendung zu beschreiben und die SĂ€tze und Parameter zu definieren, worauf Alexa spĂ€ter reagieren sollte. Die Programmierung der Logik wird NICHT in der Developer Console vorgenommen sondern in AWS Lambda. ...

IBM Cloud & Node-RED

Zielsetzung Einrichtung des Node-RED Editors innerhalb der IBM Cloud Das Versenden von Nachrichten via MQTT an ein Node-RED MQTT-Node Den IBM Cloud Zugang könnt Ihr unter der folgenden URL beantragen: IBM Cloud Anschließend kann hier eine neue ‘Ressource’ erstellt werden. Innerhalb des Kataloges werden uns diverse Cloud Ressourcen (Anwendungen) zur VerfĂŒgung gestellt. Wir wĂ€hlen Node-RED aus. Diese Anwendung stellt uns den Node-RED Editor innerhalb der IBM Cloud zur VerfĂŒgung. ...

MQTT + Cumulocity IoT Plattform

MQTT Zusammenfassung [Quelle: Wikipedia] MQTT (Message Queuing Telemetry Transport) ist ein offenes Nachrichtenprotokoll fĂŒr Machine-to-Machine-Kommunikation (M2M), das die Übertragung von Telemetriedaten in Form von Nachrichten zwischen GerĂ€ten z.B. Sensoren ermöglicht. Die Internet Assigned Numbers Authority (IANA) reserviert fĂŒr MQTT die Ports 1883 und 8883. MQTT-Nachrichten können mit dem TLS-Protokoll verschlĂŒsselt werden. Die MQTT-Spezifikation unterscheidet TCP/IP-basierte und Nicht-TCP/IP-Netzwerke. MQTT ist ein Client-Server-Protokoll. Clients senden dem Server (“Broker”) nach Verbindungsaufbau Nachrichten mit einem Topic, welches die Nachricht hierarchisch einstuft; zum Beispiel KĂŒche/KĂŒhlschrank/Temperatur oder Auto/Rad/3/Luftdruck. Clients können diese Topics abonnieren, wobei der Server die empfangenen Nachrichten an die entsprechenden Abonnenten weiterleitet. ...

TestCafé Beispiel

Download Link Configuration der Umgebung Beispiel 1: Beispiel 2: Einsatz von einem page object Login wurde in einem page object ausgelagert: npm run test:firefox -c 8 fĂŒhrt den Test parallel unter 8 Firefox Instanzen aus.

IO-Link Device Description (high level)

Mit dem Markennamen IO-Link ist ein Kommunikationssystem zur Anbindung intelligenter Sensoren und Aktoren an ein Automatisierungssystem in der Norm IEC 61131-9 unter der Bezeichnung Single-drop digital communication interface for small sensors and actuators (SDCI) normiert. Die Standardisierung umfasst dabei sowohl die elektrischen Anschlussdaten als auch ein digitales Kommunikationsprotokoll, ĂŒber das die Sensoren und Aktoren mit dem Automatisierungssystem in Datenaustausch treten. Ein IO-Link-System besteht aus einem IO-Link-Master und einem oder mehreren IO-Link-GerĂ€ten, also Sensoren oder Aktoren. Der IO-Link-Master stellt die Schnittstelle zur ĂŒberlagerten Steuerung (SPS) zur VerfĂŒgung und steuert die Kommunikation mit den angeschlossenen IO-Link-GerĂ€ten. ...

Modbus: Zusammenfassung der Spezifikation (high level)

Das Modbus-Protokoll ist ein Kommunikationsprotokoll, das auf einer Master/Slave- bzw. Client/Server-Architektur basiert. Es wurde 1979 von Gould-Modicon fĂŒr die Kommunikation mit seinen speicherprogrammierbaren Steuerungen ins Leben gerufen. In der Industrie hat sich der Modbus zu einem De-facto-Standard entwickelt, da es sich um ein offenes Protokoll handelt. Seit 2007 ist die Version Modbus TCP Teil der Norm IEC 61158. [Wikipedia] Wie das folgende Schaubild zeigt, erlaub Modbus die Kommunikation ĂŒber unterschiedliche Netzwerke: ...

E.D.D.I - Open Source Chatbot Platform Installation

Installation E.D.D.I kann sowohl aus den Quellen als auch als Docker Container installiert werde. Ich werde die Installation aus den Quellen vornehmen. ZunĂ€chst mĂŒssen wir die folgenden Anwendungen installieren: Java SDK in der Version 8 git Maven mongoDB community Server Umgebungsvariablen fĂŒr Java und Maven setzen: Pfade fĂŒr Java, Maven und mongoDB setzen: Pfade testen: Quellen via git downloaden: cd git clone https://github.com/labsai/EDDI.git Anwendung via Maven bauen: ...

CoAP: Zusammenfassung der Spezifikation (high level)

Constrained Application Protocol (CoAP) CoAP ist ein Internet Anwendungsprotokoll, welches innerhalb der RFC 7252 spezifiziert wurde. Das Protokoll dient der Kommunikation von GerĂ€ten ‘Nodes’ z.B. embedded devices, die besonders wenig Energie verbrauchen (low-power) und in einem Netzwerk mit erhöhtem Datenverlußt (lossy networks) z.B. IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) zum Einsatz kommen. CoAP kann zusĂ€tzlich innerhalb Internet basierten Netzwerken zur mobilen Kommunikation via SMS verwendet werden. CoAP wird hauptsĂ€chlich im Rahmen von Internet of Things (IoT) und Machine-to-Machine (M2M) eingesetzt, da hier meistens GerĂ€tedaten/Sensordaten mit geringer GrĂ¶ĂŸe ĂŒbertragen werden. Dadurch, dass diese Art von Daten in regelmĂ€ĂŸigen AbstĂ€nden (Zyklen) ĂŒbertragen werden, haben einzelne (verlorengegangene) Datenpakete keine GrĂ¶ĂŸe Auswirkung auf die verarbeitenden Systeme bzw. Anwendungen wie z.B. eine IoT-Plattform, der entsprechende Sensordaten (Temperatur, Umdrehungszahl etc.) verarbeitet und/oder grafisch darstellt. ...

Wireshark Tutorial

Wireshark ist ein freies Programm zur Analyse und grafischen Aufbereitung von Datenprotokollen (Sniffer). Solche Datenprotokolle verwenden Computer auf verschiedensten Kommunikationsmedien wie dem lokalen Netzwerk oder USB. Das Mitschneiden der Kommunikation kann bei der Fehlersuche oder bei der Bewertung des Kommunikationsinhalts sinnvoll sein. Wireshark zeigt bei einer Aufnahme sowohl die Protokoll-Header als auch den transportierten Inhalt an. Das Programm stĂŒtzt sich bei der grafischen Aufbereitung auf die Ausgabe von kleinen Unterprogrammen wie pcap oder usbpcap, um den Inhalt der Kommunikation auf dem jeweiligen Übertragungsmedium mitzuschneiden. [wikipedia] ...

MQTT: Zusammenfassung der Spezifikation (high level)

MQTT (Message Queue Telemetry Transport) ist ein offenes Nachrichtenprotokoll fĂŒr Machine-to-Machine-Kommunikation (M2M), das die Übertragung von Telemetriedaten in Form von Nachrichten zwischen GerĂ€ten ermöglicht, trotz hoher Verzögerungen oder beschrĂ€nkter Netzwerke. Entsprechende GerĂ€te reichen von Sensoren und Aktoren, Mobiltelefonen, Eingebetteten Systemen in Fahrzeugen oder Laptops bis zu voll entwickelten Rechnern. [Wikipedia] Die unten aufgefĂŒhrten Informationen ĂŒber die Spezifikation stammen unter anderem aus der aktuellen MQTT Spezifikation der IBM. OSI Innerhalb des OSI-Modells ist MQTT wie folgt angesiedelt: Die MQTT-Spezifikation unterscheidet TCP/IP-basierte und Nicht-TCP/IP-Netzwerk. StandardmĂ€ĂŸig verwendet MQTT das TCP Protokoll/Verbindung (Port 1883 und 8883 fĂŒr eine SSL-Verbidung). Bei MQTT-SN (MQTT for Sensor Networks) wird statt TCP das UDP Protokoll verwendet. ...

API Definition mit Hilfe von Swagger und YAML

Swagger Installation: npm install -g swagger Projekt Erstellung: swagger project create <project_name> Projekt Starten: swagger project start Projekt editieren: swagger project edit Die Notation wird innerhalb der OpenAPI Specification festgelegt. Visuelle Darstellung der Spezifikation von Arnaud Lauret: Link Definition der API (Ausschnitt): Download swagger.yaml YAML Code Verifizieren: swagger project verify Mock Datei einbinden In dem Projektordner unter dem Verzeichnis ‘mocks’ eine neue Mock-Datei erstellen z.B. getAllEntries.js . ...

Spring Cloud Netflix Konzepte

Was ist Spring? Das Spring Framework (kurz Spring) ist ein quelloffenes Framework fĂŒr die Java-Plattform. Ziel des Spring Frameworks ist es, die Entwicklung mit Java/Java EE zu vereinfachen und gute Programmierpraktiken zu fördern. Spring bietet mit einem breiten Spektrum an FunktionalitĂ€t eine ganzheitliche Lösung zur Entwicklung von Anwendungen und deren GeschĂ€ftslogiken; dabei steht die Entkopplung der Applikationskomponenten im Vordergrund. [wikipedia] Zu den Hauptprojekte von Spring gehören: Spring Boot Spring Framework Spring Cloud Date Flow Spring Cloud Spring Data Spring Integration Spring Batch Spring Security Spring HATEOAS spring REST Docs Spring AMQP Spring Mobile Spring for Android Spring Web Flow Spring Web Services Spring LDAP Spring Session Spring Shell Spring Flo Spring Kafka Spring Statemachine Sprin IO Platform ZusĂ€tzlich beinhaltet Spring die beiden community Projekte: ...

Microservice Beispiel mit Spring Boot & Netflix (Zuul & Eureka)

Die Anwendung: Folgende Microservices wurden erstellt: microservice-frontend microservice-backend microservice-proxy-zuul microservice-discovery-eureka Download: Microservices Eureka Ausgabe:

BPMN 2.0: Spickzettel fĂŒr die Basis-Notation

Da ich nicht tĂ€glich modelliere, dient mir dieses BPMN-Diagramm mit seiner bewusst einfachen Notation als effiziente GedĂ€chtnisstĂŒtze fĂŒr die wichtigsten Grundlagen.

DTLS (TCP vs. UDP)

Transport Layer Security (TLS) bekannt als Secure Sockets Layer (SSL) ist ein VerschlĂŒsselungsprotokoll (basiert auf x.509) zur sicheren DatenĂŒbertragung. Datagram Transport Layer Security (DTLS) basiert auf TLS und verwendet UDP statt TCP. Der Unterschied zwischen TLS und DTLS ist gleichzusetzen mit dem Unterschied zwischen TCP und UDP. TLS benötigt die ZuverlĂ€ssigkeit der Daten unter anderem zur EntschlĂŒsselung von Daten. Wenn z.B. die Datenpakete in falscher Reihenfolge ankommen, so wird TLS kein IntegritĂ€tscheck durchfĂŒhren können, das der Check die Sequenznummer der Pakete einbezieht d.h. nach Paktet N wird das Paket N+1 erwartet. ...

Ansible: Vagrant VM Provisionierung

// Ansible wird fĂŒr die Konfiguration bzw. Provisionierung // der folgenden Vagrant VM-Infrastruktur verwendet // Installation aus “Personal Packages Archiv (PPA)” sudo -s apt-get install software-properties-common apt-add-repository ppa:ansible/ansible apt-get update apt-get install ansible // Kontrolle ansible –version ansible-playbook –version ansible-galaxy –help // Erstellung einer neuen/eigenen ‘hosts’ bzw. ‘inventory’ Datei // fĂŒr die Konfiguration der ‘dev’ Umgebung cd ~ mkdir ansible cd ansible vi dev // Erstellung einer eigenen Config-Datei (ansible.cfg) // Referenz auf die inventory (hosts) Datei cd ~/ansible vi ansible.cfg [defaults] inventory=./dev ...