<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rhein-Ruhr-Informatik</title>
	<atom:link href="https://rhein-ruhr-informatik.de/feed/" rel="self" type="application/rss+xml" />
	<link>https://rhein-ruhr-informatik.de/</link>
	<description></description>
	<lastBuildDate>Mon, 23 Feb 2026 09:51:23 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://rhein-ruhr-informatik.de/wp-content/uploads/2025/03/cropped-favicon-32x32.png</url>
	<title>Rhein-Ruhr-Informatik</title>
	<link>https://rhein-ruhr-informatik.de/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Monitoring in SAP Cloud Integration</title>
		<link>https://rhein-ruhr-informatik.de/2026/02/23/monitoring-in-sap-cloud-integration/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Mon, 23 Feb 2026 09:51:22 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[SAP]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=876</guid>

					<description><![CDATA[<p>In diesem Blogbeitrag möchten wir erklären, wie wir Ihre Prozesse in SAP Cloud Integration überwachen. Dies ist eines der wichtigsten Themen, insbesondere für diejenigen, die sich um die Sicherheit im Middleware sorgen. Cloud Integration erlaubt uns die Veränderung über die Nachricht zu machen, so wie Mappings, oder die Konvertierung von [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2026/02/23/monitoring-in-sap-cloud-integration/">Monitoring in SAP Cloud Integration</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In diesem Blogbeitrag möchten wir erklären, wie wir Ihre Prozesse in SAP Cloud Integration überwachen. Dies ist eines der wichtigsten Themen, insbesondere für diejenigen, die sich um die Sicherheit im Middleware sorgen.</p>



<p>Cloud Integration erlaubt uns die Veränderung über die Nachricht zu machen, so wie Mappings, oder die Konvertierung von einer Struktur zu der anderen. Cloud Integration ist nicht nur stark für die Manipulation der Datei, sondern auch für die Merkmale der Überwachung. Zusätzlich zu Debug- oder Trace-Modus wie in jeder Entwicklungs-IDE ermöglicht es uns auch, die notwendigen Informationen zu überwachen, ohne dass ein Debugging erforderlich ist.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="375" height="425" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image.png" alt="" class="wp-image-877" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image.png 375w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-265x300.png 265w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-11x12.png 11w" sizes="(max-width: 375px) 100vw, 375px" /></figure>



<p>Für jeden Service können wir das Log-Level auf 5 verschiedene Modi einstellen.</p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-1 wp-block-group-is-layout-flex">
<p><strong>None: </strong>Keine Informationen über Prozesse, selbst wenn sie erfolgreich oder fehlgeschlagen sind. </p>



<p><strong>Info: </strong>Standardmodus, um zu sehen, ob der Prozess erfolgreich ist oder nicht. </p>



<p><strong>Error:</strong> Zeigt den Prozess nur an, wenn der Prozess fehlgeschlagen ist. </p>



<p><strong>Debug:</strong> Zeigt die Prozessschritte, jedoch ohne Details. </p>



<p><strong>Trace:</strong> Zeigt alle Informationen wie Headers und Body in jedem Schritt.</p>
</div>



<p>Die Standard-Log-Konfiguration ist auf Info eingestellt. Info ermöglicht es uns, den Status jedes Prozesses zu sehen, wie z.B. abgeschlossen, abgebrochen, fehlgeschlagen usw. In diesem Modus können wir weder die Header noch den Body sehen. Es ist wichtig, die Daten aus Sicherheitsgründen zu schützen und den Speicherverbrauch zu reduzieren.</p>



<p>Aber wenn der Prozess fehlschlägt, wie können wir das Problem herausfinden?<br>Trace-Modus ist nützlich, wenn dieselbe Request-Message empfangen werden kann. Bevor Nachrichten erhalten werden, sollte dieser Modus aktiviert werden. Im Trace können sowohl der Body als auch die Header bei jedem Schritt betrachtet werden.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="945" height="295" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-1.png" alt="" class="wp-image-878" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-1.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-1-300x94.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-1-768x240.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-1-18x6.png 18w" sizes="(max-width: 945px) 100vw, 945px" /></figure>



<p>Der Prozess, der einen Fehler verursacht, wird angezeigt. In diesem Modus ist es viel einfacher und schneller, den Schritt zu identifizieren, in dem der Fehler auftritt.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="945" height="272" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-2.png" alt="" class="wp-image-879" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-2.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-2-300x86.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-2-768x221.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-2-18x5.png 18w" sizes="(max-width: 945px) 100vw, 945px" /></figure>



<p>Allerdings erlaubt CPI uns, nur 10-Minuten im Trace zu bleiben, danach wechselt es automatisch wieder in den vorherigen Modus (Info, Error oder None). Zusätzlich ist die Nachricht nach einer Stunde nicht mehr erreichbar. Während der Entwicklung nutzen wir Trace sehr oft. In der Produktion können wir den gleichen Prozess nicht wieder triggern, wenn er einen Fehler bekommt. Aus Sicherheitsgründen ist es auch nicht empfohlen, die vollständige Nachricht in der Produktion offenzulegen.</p>



<p>Wie können wir in diesem Fall herausfinden, welche Nachricht einen Fehler enthält, ohne die gesamte Nachricht offenzulegen? Folgendes bietet SAP an:</p>



<p>Es gibt einige vorgefertigte Properties zum Überwachen und Filtern von Nachrichten. Diese Funktion ist sehr hilfreich, um den Status bestimmter Nachrichten zu verstehen und die Nachrichten im Monitoring zu filtern. Wir können diese Properties nach Bedarf anpassen. In diesem Beispiel wird die „Application Message ID“ durch die</p>



<p>Bestellnummer festgelegt, und der Bestelltyp wird als „Application Message Type“ bestimmt. Wenn diese Bestellung einen Fehler enthält, können wir die Bestellnummer direkt herausfinden, ohne die gesamte Nachricht offenzulegen.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="446" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-3.png" alt="" class="wp-image-880" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-3.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-3-300x142.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-3-768x362.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-3-18x8.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p>Falls diese vorgefertigten Properties nicht ausreichen oder zusätzliche kundenspezifische Properties benötigt werden, können wir auch Custom-Monitoring-Header hinzufügen. Diese benutzerdefinierten Header gelten nicht als echte Header, und werden nicht an das Empfängersystem gesendet. Sie werden ausschließlich intern zu Monitoring-Zwecken verwendet.</p>



<p>Zusätzlich können wir die Nachrichten anhand von Monitoring-Properties und Custom-Headern filtern. Zum Beispiel haben wir 7 Nachrichten im Status „Completed“ mit dem Message Type „Initial Order“.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="811" height="513" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-4.png" alt="" class="wp-image-881" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-4.png 811w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-4-300x190.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-4-768x486.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-4-18x12.png 18w" sizes="auto, (max-width: 811px) 100vw, 811px" /></figure>



<p>Allerdings haben wir nur eine Nachricht mit der Nummer 1000000 erhalten.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="327" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-5.png" alt="" class="wp-image-882" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-5.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-5-300x104.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-5-768x266.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-5-18x6.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p>Normalerweise ist es nicht möglich, den Inhalt einer Nachricht während oder nach dem Prozess einzusehen. In einigen Fällen müssen wir jedoch den Nachrichteninhalt sehen, insbesondere wenn sich die Nachricht im Fehlerstatus befindet. Dafür können wir ein Attachment zu Monitoring-Zwecken erstellen. Attachments können in jedem Textformat vorliegen und sind konfigurierbar. Sie helfen uns bei der Identifizierung von Fehlern. Außerdem können Attachments so eingerichtet werden, dass sie nur im Fehlerfall angelegt werden.</p>



<p>Typische Szenarien sind:<br>&#8211; Einsicht in den gesamten Nachrichteninhalt an wichtigen Stellen, z. B. vor dem Mapping und nach dem Mapping.<br>&#8211; Im Fehlerfall ist der komplette Nachrichteninhalt an der Fehlerstelle.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="551" height="589" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-6.png" alt="" class="wp-image-883" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-6.png 551w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-6-281x300.png 281w, https://rhein-ruhr-informatik.de/wp-content/uploads/2026/02/image-6-11x12.png 11w" sizes="auto, (max-width: 551px) 100vw, 551px" /></figure>



<p></p>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-2 wp-block-group-is-layout-flex">
<p><strong>In der Middleware gespeicherte Logs können nicht über längere Zeiträume aufbewahrt werden.</strong></p>



<p>Trace kann Nachrichten bis zu 10 Minuten aufnehmen, und diese Nachrichten sind nur 1 Stunde sichtbar.</p>



<p>Debug kann Nachrichten bis zu 1 Tag aufnehmen.</p>



<p>Alle Prozess-Logs werden nach 1 Monat gelöscht.</p>
</div>



<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-3 wp-block-group-is-layout-flex">
<p><strong>Zusammenfassung:</strong></p>



<p>SAP bietet mit Cloud Integration eine schnellere, präzisere und sicherere Middleware-Umgebung.</p>
</div>



<p>Standardmäßig zeigt die Cloud Integration-Schnittstelle keine Nachrichten oder Header für die Benutzer an. Dies ist sowohl aus Sicherheitsgründen als auch für das Speichermanagement wichtig.</p>



<p>In einigen Fällen muss jedoch eine fehlgeschlagene Nachricht ohne Trace- oder Debug-Modus erkannt werden, insbesondere in der Produktionsumgebung. Um dies zu ermöglichen, können im Info-Modus die notwendigen Felder als Custom-Properties und Attachments festgelegt werden. Damit können wir identifizieren, welche Nachricht fehlgeschlagen ist.</p>



<p>Cloud Integration speichert Logs maximal für 1 Monat. Dieser Zeitraum dient dazu, Fehler zu bearbeiten und Probleme zu lösen.</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2026/02/23/monitoring-in-sap-cloud-integration/">Monitoring in SAP Cloud Integration</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mein Weg zum AWS Certified Solutions Architect – Associate</title>
		<link>https://rhein-ruhr-informatik.de/2025/11/14/mein-weg-zum-aws-certified-solutions-architect-associate/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Fri, 14 Nov 2025 10:33:58 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=865</guid>

					<description><![CDATA[<p>Seit einiger Zeit wollte ich meine Cloud-Kenntnisse auf ein neues Level bringen. Da ich beruflich viel mit Cloud-Infrastruktur arbeite, war für mich schnell klar: AWS ist ein Muss. Also entschied ich mich, die Prüfung zum AWS Certified Solutions Architect – Associate abzulegen. In diesem Beitrag möchte ich meine Erfahrungen teilen [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/11/14/mein-weg-zum-aws-certified-solutions-architect-associate/">Mein Weg zum AWS Certified Solutions Architect – Associate</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Seit einiger Zeit wollte ich meine Cloud-Kenntnisse auf ein neues Level bringen. Da ich beruflich viel mit Cloud-Infrastruktur arbeite, war für mich schnell klar: AWS ist ein Muss. Also entschied ich mich, die Prüfung zum AWS Certified Solutions Architect – Associate abzulegen. In diesem Beitrag möchte ich meine Erfahrungen teilen – von der Vorbereitung über die technischen Anforderungen bis hin zur eigentlichen Prüfung.</p>



<h3 class="wp-block-heading">1. Lernen und Vorbereitung</h3>



<p>Bevor ich überhaupt mit dem Lernen angefangen habe, wollte ich verstehen, was mich erwartet. Die Prüfung zum Solutions Architect – Associate prüft ein breites Spektrum an Themen: Architekturprinzipien, Hochverfügbarkeit, Sicherheit, Kostenoptimierung und viele Services wie EC2, S3, RDS, Lambda oder VPC.</p>



<p>Ich habe meine Vorbereitung in drei Phasen eingeteilt:</p>



<p><strong>Phase 1: Grundlagen auffrischen</strong><br>Ich startete mit dem kostenlosen <a href="https://skillbuilder.aws/">AWS Skill Builder</a>, wo es einen offiziellen Kurs namens &#8222;Exam Prep: AWS Certified Solutions Architect – Associate&#8220; gibt. Dort bekommt man ein gutes Gefühl für den Aufbau und die Tiefe der Fragen. Zusätzlich habe ich zwei thematisch passende Kurse auf Udemy gekauft, um mein Wissen weiter zu vertiefen – sie boten viele praktische Beispiele und Erklärungen, die mir beim Verständnis komplexerer Themen sehr geholfen haben.</p>



<p><strong>Phase 2: Intensivtraining</strong><br>Anschließend nutzte ich Udemy-Kurse von Dozenten wie Stéphane Maarek und Tutorials Dojo. Besonders hilfreich fand ich die vielen praxisnahen Labs – zum Beispiel das Aufsetzen einer VPC oder einer Auto-Scaling-Gruppe. Diese Übungen halfen mir enorm, die Konzepte wirklich zu verstehen.</p>



<p><strong>Phase 3: Prüfungssimulationen</strong><br>In den letzten zwei Wochen vor dem Examen konzentrierte ich mich auf Übungsprüfungen. Die Fragen auf Plattformen wie Whizlabs oder Tutorials Dojo waren oft sehr ähnlich wie die echten – manchmal fast identisch in der Art, wie sie gestellt werden.<br>Ich versuchte, nicht nur die richtige Antwort zu kennen, sondern auch zu verstehen, warum die anderen Antworten falsch waren – das ist entscheidend!</p>



<h3 class="wp-block-heading">2. Anforderungen an Ausrüstung und Raum</h3>



<p>Ich entschied mich, die Prüfung online von zu Hause aus abzulegen – bequem, aber mit klaren Regeln.</p>



<p><strong>Technische Anforderungen:</strong></p>



<ul class="wp-block-list">
<li>Ein zuverlässiger Laptop oder PC</li>



<li>Eine stabile Internetverbindung (LAN bevorzugt)</li>



<li>Eine funktionierende Webcam und ein Mikrofon</li>
</ul>



<p>Vor der Prüfung prüft ein Tool von Pearson VUE automatisch, ob Kamera, Ton und Netzwerk in Ordnung sind.</p>



<p><strong>Raumvorbereitung:</strong><br>Der Raum muss sauber und ruhig sein – keine Bücher, keine Notizen, keine zweite Person im Zimmer. Ich musste sogar meine Wände kurz zeigen, indem ich die Kamera herumschwenkte. Mein Schreibtisch war komplett leer, und ich legte mein Smartphone weit weg. Das mag etwas streng wirken, aber es sorgt für Fairness.</p>



<h3 class="wp-block-heading">3. Registrierung und Identitätsprüfung</h3>



<p>Die Registrierung läuft über das AWS Certification Portal. Man kann dort wählen, ob man die Prüfung online oder in einem Testzentrum ablegen möchte.</p>



<p>Nach der Anmeldung erhält man eine E-Mail mit allen Schritten. Am Tag der Prüfung klickte ich einfach auf „Start Exam“. Danach öffnete sich ein Chatfenster mit dem Prüfer (Proctor).</p>



<p>Der Prüfer kontrollierte meine Identität per Ausweis, ließ mich mit der Webcam den ganzen Raum zeigen und prüfte, dass keine unerlaubten Gegenstände in der Nähe sind. Nach ein paar Minuten war alles bereit – und die Prüfung konnte beginnen.</p>



<h3 class="wp-block-heading">4. Der Prüfungsablauf</h3>



<p>Die Prüfung dauert 130 Minuten und besteht aus etwa 65 Multiple-Choice-Fragen. Manche Fragen sind kurz und direkt, andere ziemlich lang und beschreiben komplexe Architekturszenarien.</p>



<p>Ich habe mir angewöhnt, zunächst alle Fragen zu beantworten, bei denen ich mir sicher war, und die restlichen zu markieren. Am Ende blieb mir noch genug Zeit, um etwa 10 schwierige Fragen in Ruhe zu überdenken.</p>



<p>Ein kleiner Tipp:</p>



<p>Lies die Fragen wirklich aufmerksam – manchmal ändert ein einziges Wort („cost-effective“, „highly available“ oder „fault tolerant“) die gesamte Bedeutung.</p>



<p>Nachdem ich die letzte Frage abgegeben hatte, zeigte das System sofort: „Your result will be available in 5 Tages.“<br>Dann kam die E-Mail: „Congratulations! You passed the exam!“<br>Das war ein großartiges Gefühl!</p>



<h3 class="wp-block-heading">5. Nützliche Ressourcen und Tipps</h3>



<p>Wenn du den AWS Certified Solutions Architect – Associate bestehen möchtest, helfen dir folgende Ressourcen:</p>



<ul class="wp-block-list">
<li>AWS Skill Builder: Offizielle, kostenlose Lernplattform</li>



<li>AWS Whitepapers: Besonders „Well-Architected Framework“ und „Security Best Practices“</li>



<li>Udemy: Kurse von Stéphane Maarek oder Neal Davis</li>



<li>Tutorials Dojo / Jon Bonso Practice Exams: Realistische Übungsfragen</li>



<li>AWS Free Tier: Zum Ausprobieren von Services ohne Kosten</li>
</ul>



<h3 class="wp-block-heading">Fazit</h3>



<p>Der Weg zum AWS Certified Solutions Architect – Associate war für mich nicht nur eine technische Herausforderung, sondern auch eine persönliche Reise. Ich habe viel über moderne Cloud-Architektur gelernt und verstanden, wie wichtig gutes Design in AWS ist.</p>



<p>Wenn du also überlegst, diesen Schritt zu gehen: Mach es!Mit Geduld, Neugier und einer guten Vorbereitung kannst du es schaffen. Und das Zertifikat öffnet dir viele Türen in der IT-Welt.</p>



<p>Viel Erfolg und viel Spaß auf deinem eigenen AWS-Abenteuer!</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/11/14/mein-weg-zum-aws-certified-solutions-architect-associate/">Mein Weg zum AWS Certified Solutions Architect – Associate</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Aufbau eines serverlosen REST-APIs mit AWS API Gateway und Lambda</title>
		<link>https://rhein-ruhr-informatik.de/2025/09/29/aufbau-eines-serverlosen-rest-apis-mit-aws-api-gateway-und-lambda/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Mon, 29 Sep 2025 05:33:00 +0000</pubDate>
				<category><![CDATA[API]]></category>
		<category><![CDATA[Artikel]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Serverless]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=852</guid>

					<description><![CDATA[<p>Einführung In der modernen Softwareentwicklung sind Geschwindigkeit und Skalierbarkeit entscheidend. Unternehmen wollen Funktionen schnell bereitstellen, ohne sich um die Wartung von Infrastruktur zu kümmern. Genau hier glänzt Serverless Computing. Mit AWS Lambda und Amazon API Gateway können Entwickler ein voll funktionsfähiges REST API erstellen, ohne Server zu betreiben. AWS kümmert [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/09/29/aufbau-eines-serverlosen-rest-apis-mit-aws-api-gateway-und-lambda/">Aufbau eines serverlosen REST-APIs mit AWS API Gateway und Lambda</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Einführung</h2>



<p>In der modernen Softwareentwicklung sind Geschwindigkeit und Skalierbarkeit entscheidend. Unternehmen wollen Funktionen schnell bereitstellen, ohne sich um die Wartung von Infrastruktur zu kümmern. Genau hier glänzt Serverless Computing.<br><br>Mit AWS Lambda und Amazon API Gateway können Entwickler ein voll funktionsfähiges REST API erstellen, ohne Server zu betreiben. AWS kümmert sich automatisch um Skalierung, Verfügbarkeit und Abrechnung – man zahlt nur für tatsächlich verarbeitete Anfragen.<br><br>In diesem Artikel zeigen wir, wie man mit AWS API Gateway und AWS Lambda ein einfaches REST API aufsetzt, mit Beispielen in Python.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="900" height="484" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-7.png" alt="" class="wp-image-853" style="width:619px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-7.png 900w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-7-300x161.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-7-768x413.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-7-18x10.png 18w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure></div>


<h2 class="wp-block-heading">Was bedeutet Serverless?</h2>



<p>Serverless bedeutet nicht, dass keine Server existieren – sie sind nach wie vor vorhanden, werden aber vollständig vom Cloud-Anbieter verwaltet. Entwickler konzentrieren sich nur auf den Code, während AWS folgende Aufgaben übernimmt:<br><br>&#8211; Bereitstellung und Skalierung (von null bis zu Millionen von Anfragen)<br>&#8211; Hohe Verfügbarkeit<br>&#8211; Sicherheit und Patching<br>&#8211; Abrechnung basierend auf tatsächlicher Nutzung<br><br>Für REST APIs hat sich die Kombination aus API Gateway und Lambda als Standardmuster etabliert. Sehen wir uns an, wie das Zusammenspiel funktioniert.</p>



<h2 class="wp-block-heading">Architekturübersicht</h2>



<p>Der Ablauf sieht so aus:<br>1. Ein Client (Browser, Mobile App, Postman) sendet eine Anfrage an einen API Gateway Endpoint.<br>2. API Gateway leitet die Anfrage an eine konfigurierte Lambda-Funktion weiter.<br>3. Die Lambda-Funktion führt den individuellen Code aus (in unserem Fall Python).<br>4. Lambda gibt eine Antwort zurück, die API Gateway an den Client weiterleitet.<br><br>Diese einfache Architektur ist sehr leistungsfähig, da man verschiedene Lambda-Funktionen mit unterschiedlichen API-Routen und Methoden verbinden kann (z. B. GET /users, POST /orders).</p>



<h2 class="wp-block-heading">Schritt-für-Schritt Anleitung</h2>



<h3 class="wp-block-heading">1. Erstellen einer Lambda-Funktion</h3>



<p>1. Melde dich in der AWS Management Console an.<br>2. Gehe zu AWS Lambda → Funktion erstellen.<br>3. Wähle Author from scratch, gib einen Namen an (z. B. hello-world) und wähle Python 3.x als Laufzeit.<br>4. Füge folgenden Code in den Editor ein:</p>



<pre class="wp-block-code"><code>import json<br><br>def lambda_handler(event, context):<br>&nbsp;&nbsp;&nbsp; name = event.get("queryStringParameters", {}).get("name", "World")<br>&nbsp;&nbsp;&nbsp; return {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "statusCode": 200,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "headers": {"Content-Type": "application/json"},<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;"body": json.dumps({"message": f"Hello, {name}!"})<br>&nbsp;&nbsp;&nbsp; }</code></pre>



<h3 class="wp-block-heading">2. Erstellen eines API Gateways</h3>



<p>1. Gehe zu Amazon API Gateway → API erstellen.<br>2. Wähle HTTP API (einfacher) oder REST API (mehr Konfigurationsmöglichkeiten). Für dieses Beispiel nehmen wir HTTP API.<br>3. Erstelle ein neues API und verknüpfe es mit deiner Lambda-Funktion (hello-world).<br>4. Stelle das API bereit (Deploy).</p>



<h3 class="wp-block-heading">3. Testen des APIs</h3>



<p>Nach der Bereitstellung erhältst du eine Endpoint-URL, z. B.:<br><br><code>https://abc123.execute-api.us-east-1.amazonaws.com/default/hello-world</code><br><br>Nun kannst du testen:<br><br><code>curl "https://abc123.execute-api.us-east-1.amazonaws.com/default/hello-world?name=Alice"</code><br><br>Antwort:<br><code>{ "message": "Hello, Alice!" }</code><br><br>Glückwunsch! Du hast gerade ein serverloses REST API mit AWS gebaut.</p>



<h2 class="wp-block-heading">Warum API Gateway + Lambda?</h2>



<p>&#8211; Skalierbarkeit: Automatische Verarbeitung von Lastspitzen.<br>&#8211; Kosteneffizienz: Man zahlt nur, wenn Funktionen tatsächlich ausgeführt werden.<br>&#8211; Einfachheit: Keine Serververwaltung, keine Updates, keine Skalierungsprobleme.<br>&#8211; Flexibilität: Lambda kann mit Datenbanken (DynamoDB, RDS), Queues (SQS) oder Event-Streams (Kinesis) verbunden werden.</p>



<h2 class="wp-block-heading">Nächste Schritte</h2>



<p>Unser Beispiel ist minimal. In einer Produktionsumgebung könnte man:<br>&#8211; Authentifizierung &amp; Autorisierung hinzufügen (AWS Cognito, IAM Policies, eigene JWTs).<br>&#8211; Infrastructure as Code nutzen (AWS SAM, CDK oder Terraform).<br>&#8211; Logging &amp; Monitoring aktivieren (CloudWatch, X-Ray).<br>&#8211; Lambda mit weiteren AWS-Services kombinieren, um komplexe Anwendungen zu bauen.</p>



<h2 class="wp-block-heading">Fazit</h2>



<p>AWS API Gateway und AWS Lambda ermöglichen es, sehr einfach serverlose REST APIs zu entwickeln. Mit nur wenigen Klicks und einem kleinen Python-Skript lässt sich ein Endpoint bereitstellen, der automatisch skaliert und nur bei Nutzung Kosten verursacht.<br><br>Ob du moderne Anwendungen entwickelst, mit Microservices experimentierst oder einfach Servermanagement vermeiden willst – dieser serverlose Ansatz ist ein hervorragender Startpunkt.</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/09/29/aufbau-eines-serverlosen-rest-apis-mit-aws-api-gateway-und-lambda/">Aufbau eines serverlosen REST-APIs mit AWS API Gateway und Lambda</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Verwaltung von BTP Role Collections über den SAP Cloud Identity Service</title>
		<link>https://rhein-ruhr-informatik.de/2025/09/08/verwaltung-von-btp-role-collections-ueber-den-sap-cloud-identity-service/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Mon, 08 Sep 2025 04:28:02 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[SAP]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=842</guid>

					<description><![CDATA[<p>In diesem Blogbeitrag erfahren Sie, wie Role Collection in SAP BTP zentral über die SAP Cloud Identity Services verwaltet werden können. SAP BTP ermöglicht die Bereitstellung verschiedener Services und Anwendungen, die jeweils eigene Role Collection enthalten. Diese Services werden häufig in unterschiedlichen Subaccounts betrieben. Zwar ist es möglich, Benutzer und [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/09/08/verwaltung-von-btp-role-collections-ueber-den-sap-cloud-identity-service/">Verwaltung von BTP Role Collections über den SAP Cloud Identity Service</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In diesem Blogbeitrag erfahren Sie, wie Role Collection in SAP BTP zentral über die SAP Cloud Identity Services verwaltet werden können.</p>



<p>SAP BTP ermöglicht die Bereitstellung verschiedener Services und Anwendungen, die jeweils eigene Role Collection enthalten. Diese Services werden häufig in unterschiedlichen Subaccounts betrieben. Zwar ist es möglich, Benutzer und Rollen separat in jedem Subaccount zu verwalten, jedoch gibt es auch eine zentralisierte Alternative.</p>



<p>Durch den Aufbau einer Vertrauensbeziehung zwischen dem Identity Service und den BTP-Subaccounts kann die Benutzer- und Rollenverwaltung über einen einzigen Identity Provider erfolgen.</p>



<p>In diesem Beitrag zeige ich Ihnen, wie man Role Collection Mapping zwischen BTP und dem Identity Authentication Service (IAS) einrichtet. Dadurch kann man die Rollenzuweisung für mehrere Subaccounts zentral über einen Identity Provider steuern.</p>



<p><strong>Voraussetzungen</strong></p>



<p>Wenn Sie über einen Identity Provider verfügen, können Sie diesen als benutzerdefinierten Provider für ein BTP-Subaccount konfigurieren. Er kann dann als Quelle für Benutzer und Role Collection verwendet werden.<br>Für die Einrichtung von Role Collection Mapping gelten folgende Voraussetzungen:</p>



<ul class="wp-block-list">
<li>Sie müssen im betreffenden Subaccount, der mit den SAP Cloud Identity Services verknüpft (vertrauend) wird, die Rolle Subaccount Administrator besitzen.</li>



<li>Der SAP Cloud Identity Services-Mandant kann in einem anderen Subaccount abonniert sein, muss jedoch zum gleichen Global Account gehören und sich in derselben Region befinden.</li>
</ul>



<p>Die Schritte zur Konfiguration der Vertrauensbeziehung (Trust Configuration) zwischen Ihrem Subaccount und dem SAP IAS-Mandanten finden Sie in folgendem SAP-Hilfedokument:</p>



<p>👉 <a href="https://help.sap.com/docs/conversational-ai/integration-with-sap-s-4hana/configure-saml-trust-between-sap-btp-subaccount-and-ias?locale=de-DE">SAML-Vertrauensbeziehung zwischen SAP-BTP-Unterkonto und IAS konfigurieren | SAP Help Portal</a></p>



<p>Hinweis: Um die Role Collection Mapping nutzen zu können, müssen Sie sich mit einem Benutzer anmelden, der im Identity Provider definiert ist <em><u>– nicht mit einem BTP-Benutzer.</u></em></p>



<p><strong>Konfigurationen</strong></p>



<ol class="wp-block-list">
<li><strong>BTP Role Collections</strong></li>
</ol>



<p>Bevor ein Role Collection Mapping erstellt wird, stellen Sie sicher, dass Sie über alle benötigten Rollen verfügen, um auf die „Role Collections“ in Ihrem Subaccount zugreifen zu können.</p>



<p>Navigiere zu:</p>



<p><em>&lt;Ihr Subaccount&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; →&nbsp;&nbsp; &nbsp;Security&nbsp; &nbsp;&nbsp;&nbsp;→&nbsp;&nbsp; Role Collections&nbsp;</em></p>



<p>Sie können die Standard Role Collection verwenden, die für BTP-Anwendungen vordefiniert sind.</p>



<p>Alternativ können Sie eine neue benutzerdefinierte Role Collection erstellen, indem Sie oben rechts auf die Schaltfläche Create klicken.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="452" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image.png" alt="" class="wp-image-843" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-300x143.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-768x367.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-18x9.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p class="has-text-align-center"><em>SAP BTP Role Collections</em></p>



<p>In diesem Beispiel wird eine neue benutzerdefinierte Role Collection mit dem Namen „My_Custom_Role“ erstellt.</p>



<ul class="wp-block-list">
<li><strong>SAP Cloud Identity Services</strong></li>
</ul>



<p>Bevor Sie mit der Konfiguration der Role Collection Mapping beginnen, müssen Sie sicherstellen, dass Sie benötigte Attribute an die Anwendung senden. Navigieren Sie in SAP Cloud Identity Service zu:<br><br><em>&nbsp;Application &amp; Resources &nbsp;&nbsp;→ &nbsp;&lt;Ihr Anwendung&gt; &nbsp;→ &nbsp;Single Sign-On &nbsp;→ &nbsp;Assertion Attributes</em></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="424" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-1.png" alt="" class="wp-image-844" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-1.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-1-300x135.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-1-768x345.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-1-18x8.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p class="has-text-align-center"><em>Anwendungsseite in den SAP Cloud Identity Services</em></p>



<p>Unter den Assertion-Attributen muss ein „Groups“-Attribut vorhanden sein. Dieses Attribut wird an die Anwendung als BTP Role übermittelt.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="517" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-2.png" alt="" class="wp-image-845" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-2.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-2-300x164.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-2-768x420.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-2-18x10.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p class="has-text-align-center"><em>Assertion Attributes einer Anwendung in den SAP Cloud Identity Services</em></p>



<p>Anschließend sollten Sie eine Gruppe für die BTP Role erstellen, die Sie zuordnen möchten. Navigieren Sie zu:<br><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Users &amp; Authorizations &nbsp;&nbsp;→ &nbsp;Groups</em></p>



<p>Erstellen Sie eine neue Gruppe, wenn es bereits eine Gruppe existiert, fügen Sie die Benutzer hinzu, die diese Rolle erhalten sollen.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="254" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-3.png" alt="" class="wp-image-846" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-3.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-3-300x81.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-3-768x206.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-3-18x5.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p class="has-text-align-center"><em>Gruppen und Benutzer in den SAP Cloud Identity Services</em></p>



<ul class="wp-block-list">
<li><strong>BTP Role Collection Mapping</strong></li>
</ul>



<p>Jetzt sind wir bereit, das Role Collection Mapping durchzuführen. Navigieren Sie in Ihrem SAP BTP Subaccount zu<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Ihr Subaccount&gt;&nbsp; &nbsp;→ &nbsp;&nbsp;Security &nbsp;&nbsp;→ &nbsp;&nbsp;Trust Configuration,</p>



<p>und klicken Sie auf den benutzerdefinierten Identity Provider, den Sie zu Beginn eingerichtet haben.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="451" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-4.png" alt="" class="wp-image-847" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-4.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-4-300x143.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-4-768x367.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-4-18x9.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p class="has-text-align-center"><em>SAP BTP Trust Configurations</em></p>



<p>Klicken Sie auf New Role Collection Mapping und wählen Sie Ihre gewünschte BTP Role Collection aus (1). Dabei kann es sich sowohl um eine Standard- als auch um eine benutzerdefinierte Role Collection handeln.</p>



<p>Für das Feld „Attribute“ geben Sie bitte den Namen des Attributs an, das Sie im Identity Authentication Service (IAS) als Gruppenattribut definiert haben (2). In der Regel bleibt dies auf „Groups“ gesetzt.</p>



<p>Im Feld „Value“ geben Sie den Namen der IAS-Gruppe an, die der ausgewählten BTP Role Collection zugeordnet werden soll (3).</p>



<p>Speichern Sie anschließend die Konfiguration.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="427" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-5.png" alt="" class="wp-image-848" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-5.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-5-300x136.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-5-768x347.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-5-18x8.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p class="has-text-align-center"><em>SAP BTP Role Collection Mapping</em></p>



<p>Die erstellten Mappings können Sie unter Role Collections einsehen.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="945" height="305" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-6.png" alt="" class="wp-image-849" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-6.png 945w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-6-300x97.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-6-768x248.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/08/image-6-18x6.png 18w" sizes="auto, (max-width: 945px) 100vw, 945px" /></figure>



<p class="has-text-align-center"><em>SAP BTP Role Collections mit IAS-Gruppen verknüpft</em></p>



<p><strong>Fazit</strong>:</p>



<ul class="wp-block-list">
<li>Sie können die zugewiesenen Rollen zentral im SAP Identity Authentication Service (IAS) verwalten, indem Sie die Mitglieder der entsprechenden IAS-Gruppe pflegen.</li>



<li>Im BTP Subaccount sind die durch IAS zugewiesenen Benutzerrollen nicht direkt sichtbar. Diese Rollen werden dynamisch zugewiesen, sobald sich ein Benutzer über den IAS bei Ihrer Anwendung authentifiziert.</li>
</ul>



<p><strong>Hinweis:</strong></p>



<p>Der Benutzer im IAS muss ebenfalls im entsprechenden SAP BTP Subaccount vorhanden sein. Weitere Informationen zur Benutzeranlage in BTP finden Sie unter folgendem Link:</p>



<p>👉 <a href="https://help.sap.com/docs/btp/sap-business-technology-platform/working-with-users?locale=de-DE">Arbeiten mit Benutzern | SAP Help Portal</a></p>



<p><br>Wir hoffen, dass Ihnen dieser Beitrag dabei hilft, Ihre BTP Role Collections effizient über Ihren Identity Provider zu verwalten!</p>



<p></p>



<p><em>Feyza Sahin</em></p>



<p></p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/09/08/verwaltung-von-btp-role-collections-ueber-den-sap-cloud-identity-service/">Verwaltung von BTP Role Collections über den SAP Cloud Identity Service</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Die Rolle von KI im Leben eines Softwareentwicklers</title>
		<link>https://rhein-ruhr-informatik.de/2025/08/15/die-rolle-von-ki-im-leben-eines-softwareentwicklers/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Fri, 15 Aug 2025 02:38:00 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[KI]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=836</guid>

					<description><![CDATA[<p>Künstliche Intelligenz (KI) wird zunehmend zu einem mächtigen Begleiter in der Welt der Softwareentwicklung. Vom Code-Generieren über Performance-Optimierung bis hin zur Automatisierung von Designprozessen – KI verändert rasant die Art und Weise, wie wir Software entwickeln. Aber wie genau beeinflusst KI unsere tägliche Arbeit? Als Frontend-Entwickler habe ich begonnen, KI-Tools [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/08/15/die-rolle-von-ki-im-leben-eines-softwareentwicklers/">Die Rolle von KI im Leben eines Softwareentwicklers</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Künstliche Intelligenz (KI) wird zunehmend zu einem mächtigen Begleiter in der Welt der Softwareentwicklung. Vom Code-Generieren über Performance-Optimierung bis hin zur Automatisierung von Designprozessen – KI verändert rasant die Art und Weise, wie wir Software entwickeln.</p>



<p>Aber wie genau beeinflusst KI unsere tägliche Arbeit?</p>



<p>Als Frontend-Entwickler habe ich begonnen, KI-Tools zu nutzen, um meine Produktivität zu steigern. Mit der Zeit stellte ich mir dabei einige wichtige Fragen:<br>Ist KI eine Bedrohung für unsere Jobs – oder ein Motor für Innovation? Wird sie uns Entwickler irgendwann vollständig ersetzen? Und was kommt als Nächstes?</p>



<p>Schauen wir es uns genauer an.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>💡 <strong>Wie KI die Produktivität von Softwareentwicklern steigert</strong><br>KI-Tools haben viele Aspekte meines Entwicklungsprozesses deutlich beschleunigt. Hier sind einige der wichtigsten Vorteile:</p>



<ul class="wp-block-list">
<li>🔤 <strong>Code-Vorschläge &amp; Autovervollständigung</strong><br>Tools wie Windsurf oder GitHub Copilot sagen vorher, was du als Nächstes schreiben willst – und sparen so Zeit bei Syntax und Boilerplate-Code.</li>



<li>🧱 <strong>Komponentenerstellung</strong><br>Du brauchst eine responsive Navigationsleiste, ein Modal oder ein Formular? KI kann wiederverwendbare UI-Komponenten aus einfachen Anweisungen generieren – oft sogar nach Best Practices.</li>



<li>🐞 <strong>Debugging &amp; Testing</strong><br>KI erkennt Fehler, schlägt Lösungen vor und kann sogar Unit-Tests schreiben – und hilft so, Probleme frühzeitig zu erkennen.</li>



<li>🎨 <strong>Design-to-Code-Umwandlung</strong><br>Manche Tools können Designs aus Figma direkt in sauberes HTML, CSS und JavaScript umwandeln – das reduziert den manuellen Aufwand erheblich.</li>



<li>📚 <strong>Dokumentation &amp; Refactoring</strong><br>Dokumentation schreiben und Code aufräumen ist kein lästiger Task mehr. KI kann lesbare Dokumente erstellen und klarere Code-Strukturen vorschlagen.</li>
</ul>



<p>Durch die Automatisierung repetitiver Aufgaben schafft KI mehr Raum für Logik, Architektur und kreatives Problemlösen.</p>



<p>Doch wie nutzt man KI richtig, um das Beste aus ihr herauszuholen?</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>🧠 <strong>Nutze KI als Helfer, nicht als Ersatz</strong><br>Als ich KI-Tools zum ersten Mal einsetzte, übertrug ich ihnen direkt komplexe Aufgaben – in der Hoffnung, dass sie alles eigenständig lösen. Das Ergebnis? Enttäuschend. Der Output war voller Fehler und unstrukturierter Code.</p>



<p>Mit der Zeit habe ich verstanden: Der Trick ist, KI als Assistenten zu nutzen – nicht als Anführer. Denk an KI wie an einen Junior-Entwickler oder Co-Piloten. Du bist immer noch der Kapitän.</p>



<p>Was gut funktioniert:</p>



<ul class="wp-block-list">
<li><strong>Struktur vorgeben.</strong><br>Du definierst die Architektur – die KI füllt die Lücken: Utility-Funktionen, Hilfsmethoden oder kleinere Features.</li>



<li><strong>Ergebnisse überprüfen und nachbessern.</strong><br>Kontrolliere immer, was die KI liefert. Sie kann den Kontext übersehen, Bugs einführen oder falschen Konventionen folgen.</li>



<li><strong>Die Kontrolle behalten.</strong><br>Überlasse kritische Teile niemals der KI. Du bist der leitende Entwickler – die KI ist dein Werkzeug, kein Ersatz.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>🧾 <strong>Die Kunst, gute Prompts zu schreiben</strong><br>Eine der am meisten unterschätzten Fähigkeiten im Umgang mit KI als Entwickler ist das Schreiben guter Prompts. Die Qualität deiner Eingabe bestimmt direkt die Qualität der Ausgabe. Ein vager oder zu einfacher Prompt führt oft zu unbrauchbarem Code. Ein detaillierter, strukturierter Prompt hingegen liefert erstaunlich präzise Ergebnisse.</p>



<p>Je klarer und kontextreicher deine Anweisung, desto besser das Ergebnis.</p>



<p><strong>Tipps für gute Prompts:</strong></p>



<ul class="wp-block-list">
<li>Gib Sprache, Framework und gewünschtes Ergebnis an (z. B. „React-Funktionskomponente mit Tailwind CSS“).</li>



<li>Füge Beispiele oder Einschränkungen hinzu.</li>



<li>Zerlege große Aufgaben in kleinere, fokussierte Teile.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>🎯 <strong>Guter Prompt = Gutes Ergebnis</strong><br>Wenn der Code nicht funktioniert, ist oft nicht die KI schuld – sondern der Prompt. Behandle Prompt-Schreiben wie das Schreiben klarer Anforderungen an ein Feature. Je mehr Kontext du gibst, desto besser passt das Ergebnis.</p>



<p><strong>Ein schnelles Beispiel:</strong></p>



<ul class="wp-block-list">
<li><strong>Schlechter Prompt:</strong><br>„Mach mir ein Formular.“</li>



<li><strong>Guter Prompt:</strong><br>„Erstelle ein responsives Kontaktformular in React mit Validierung für E-Mail und Telefonnummer, gestaltet mit Tailwind CSS.“</li>
</ul>



<p>Der zweite Prompt gibt der KI eine klare Richtung – und das macht den Unterschied.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>✅ <strong>Vorteile der KI im Entwicklungs-Workflow</strong><br>Neben Geschwindigkeit bringt KI viele praktische Vorteile für moderne Entwickler:</p>



<ul class="wp-block-list">
<li>💼 <strong>Mehr Effizienz</strong><br>Routinetätigkeiten wie Tests schreiben, Konfigurationsdateien anlegen oder Formate konvertieren werden schneller und fehlerfreier.</li>



<li>📈 <strong>Schnelleres Prototyping</strong><br>KI hilft dabei, Ideen schnell umzusetzen – ideal zur Validierung von Designs und Funktionen.</li>



<li>💡 <strong>Wissen auf Abruf</strong><br>KI funktioniert oft wie eine intelligente Suchmaschine: Erklärungen, Code-Snippets oder Best Practices in Sekundenschnelle.</li>



<li>🧠 <strong>Bessere Codequalität (bei richtiger Nutzung)</strong><br>Mit der richtigen Anleitung kann KI sauberen Code nach Standards liefern und Anti-Patterns früh erkennen.</li>



<li>🌐 <strong>Flexibilität im Tech-Stack</strong><br>Auch bei unbekannten Bibliotheken oder Sprachen gibt KI kontextabhängige Hilfestellung.</li>



<li>⏱ <strong>Zeitersparnis</strong><br>Kleinigkeiten wie Regex-Muster, Datenformatierungen oder kleinere Bugfixes lassen sich blitzschnell lösen.</li>
</ul>



<p>Wenn man KI klug einsetzt, wird sie vom Spielzeug zum praktischen Beschleuniger des Arbeitsalltags.</p>



<p>Aber mit all diesen Möglichkeiten kommen natürlich auch Bedenken …</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>🤖 <strong>Wird KI Softwareentwickler ersetzen?</strong><br>Kurze Antwort: Nein – zumindest nicht in absehbarer Zeit.<br>KI kann gewisse Aufgaben automatisieren, aber sie fehlt es (noch) an tiefem Verständnis und Problemlösungskompetenz, wie sie menschliche Entwickler mitbringen.</p>



<p>Eine performante, barrierefreie und skalierbare Anwendung zu bauen, ist weit mehr als nur Code schreiben. Es geht um strategisches Denken, Kreativität und Zusammenarbeit – und hier sind Menschen nach wie vor unschlagbar.</p>



<p><strong>Warum Entwickler unverzichtbar bleiben:</strong></p>



<ul class="wp-block-list">
<li><strong>Kontextverständnis</strong><br>KI versteht keine Geschäftsziele, Nutzerbedürfnisse oder Produktvisionen im eigentlichen Sinne.</li>



<li><strong>Menschliche Zusammenarbeit</strong><br>Entwickler kommunizieren mit Designern, Projektmanagern, Stakeholdern – das kann KI nicht ersetzen.</li>



<li><strong>Kreative &amp; strategische Entscheidungen</strong><br>Die Wahl der richtigen Tools, UX-Optimierung und Architekturentscheidungen erfordern menschliches Urteilsvermögen.</li>



<li><strong>Problemlösung</strong><br>Reale Software ist chaotisch. Sonderfälle, Debugging und Planung erfordern logisches Denken – etwas, das KI (noch) nicht beherrscht.</li>
</ul>



<p>Aber wenn KI all das (noch) nicht kann – wie soll man sie dann nutzen?</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>🧭 <strong>Fazit</strong><br>KI verändert das Spiel für Softwareentwickler – nicht, indem sie uns ersetzt, sondern indem sie unsere Fähigkeiten verstärkt. Sie reduziert Reibung, erhöht die Effizienz und beschleunigt die Entwicklung. Der Schlüssel zum Erfolg liegt darin, zu wissen, wann und wie man sie einsetzt.</p>



<p>Die Zukunft gehört den Entwicklern, die diese Tools mit Bedacht einsetzen – mit einem Gleichgewicht aus Automatisierung, Kreativität, Urteilsvermögen und Führung.</p>



<p>Gleichzeitig entwickelt sich KI rasant weiter. Tools, Fähigkeiten und Best Practices ändern sich ständig. Was gestern funktionierte, ist morgen vielleicht schon veraltet. Deshalb sollten Entwickler KI wie jedes andere Tool im Tech-Stack behandeln: neugierig bleiben, lernen und sich kontinuierlich weiterentwickeln.</p>



<p>Also ja – nutze KI. Lass dich unterstützen.<br><strong>Aber halte stets die Hände am Steuer – und den Blick auf die Straße vor dir gerichtet.</strong></p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/08/15/die-rolle-von-ki-im-leben-eines-softwareentwicklers/">Die Rolle von KI im Leben eines Softwareentwicklers</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Windows in einem Docker-Container? Ja, wirklich!</title>
		<link>https://rhein-ruhr-informatik.de/2025/07/31/windows-in-einem-docker-container/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Thu, 31 Jul 2025 12:28:33 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Virtualization]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=833</guid>

					<description><![CDATA[<p>Wenn man in einem Linux- oder macOS-Haushalt lebt, stößt man früher oder später auf das altbekannte Problem: Man braucht plötzlich eine Anwendung, die nur unter Windows läuft. Sei es ein obskures BIOS-Tool, das sich zwar per Wine starten lässt, aber schlichtweg keine brauchbaren Ergebnisse liefert. Für technisch versierte Menschen lautet [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/07/31/windows-in-einem-docker-container/">Windows in einem Docker-Container? Ja, wirklich!</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wenn man in einem Linux- oder macOS-Haushalt lebt, stößt man früher oder später auf das altbekannte Problem: Man braucht plötzlich eine Anwendung, die nur unter Windows läuft. Sei es ein obskures BIOS-Tool, das sich zwar per Wine starten lässt, aber schlichtweg keine brauchbaren Ergebnisse liefert. Für technisch versierte Menschen lautet der erste Impuls in der Regel: „Ich richte mir eben eine VM ein.“ Klar, geht – aber einfach ist das nicht unbedingt.</p>



<p>Zunächst benötigt man einen Hypervisor, dann eine passende ISO-Datei, muss die VM konfigurieren, Partitionen einrichten, Windows installieren, Treiber hinzufügen und so weiter. Kurzum: Es ist machbar, aber nicht unbedingt angenehm.</p>



<p>Doch was, wenn ich dir sage, dass du eine vollständige Windows-Installation in einem Docker-Container starten kannst – mit geteiltem Speicher, RDP-Zugang und optionalem VLAN-Support? Klingt verrückt? Ist es auch ein bisschen. Aber es funktioniert.</p>



<p><strong>Die Idee hinter dem Projekt</strong></p>



<p>Ein Entwickler namens Kroese hat auf GitHub ein Projekt veröffentlicht, das genau das ermöglicht. Ein Docker-Container, der automatisch eine frische Windows-Installation einrichtet – und das ganz ohne manuelles Setup. Man startet einfach den Container, wartet ein paar Minuten und bekommt eine vollständig einsatzbereite Windows-Umgebung. Zugriff erfolgt bequem über den Browser oder per RDP.</p>



<p>Und das Beste: Man muss Windows nicht mal selbst installieren. Der Container übernimmt den kompletten Prozess – von der Image-Beschaffung bis zur Einrichtung.</p>



<p><strong>Wie funktioniert das technisch?</strong></p>



<p>Wer genau hinsieht, erkennt im Docker-Command das Flag, das /dev/kvm durchreicht – also den Kernel-basierten Virtualisierungsmechanismus von Linux. Kurz gesagt: Es handelt sich hierbei nicht um einen „echten“ Windows-Container, sondern um einen Linux-Container, der eine KVM-basierte VM aufsetzt. Also doch keine Magie, sondern eine clever automatisierte Lösung auf Basis bewährter Technologie.</p>



<p>Die Voraussetzung: Hardware-Virtualisierung muss vorhanden und aktiviert sein – sonst läuft hier gar nichts.</p>



<p><strong>Der große Vorteil: Komfort</strong></p>



<p>Das Besondere ist nicht die technische Innovation, sondern der enorme Komfortgewinn. Die lästigsten Aspekte einer Windows-Installation – wie Partitionierung, Ersteinrichtung oder die Wahl von Sprache und Tastaturlayout – fallen komplett weg. Alles läuft automatisiert ab.</p>



<p>Man erhält trotzdem alle Vorteile einer „normalen“ VM mit KVM: USB- und SATA-Passthrough, limitierbare CPU-Kerne und RAM, und wenn man will, sogar PCIe-Passthrough – wobei letzteres für ambitionierte Setups wahrscheinlich ohnehin in „richtige“ VMs gehört.</p>



<p><strong>Nutzung im Alltag: RDP statt VNC</strong></p>



<p>Die Web-Oberfläche des Containers nutzt VNC, was für den Anfang genügt – aber langsam ist und keinen Ton überträgt. RDP ist hier die bessere Wahl. Der Container unterstützt standardmäßig die Weiterleitung des RDP-Ports, sodass man einfach per Remotedesktop von Mac, Linux oder Windows aus zugreifen kann.</p>



<p>Dank Datenfreigabe kann man auch einfach Ordner vom Host einbinden – und so Dateien zwischen Windows und Linux austauschen. Der Standard-Container bietet 2 CPU-Kerne, 4 GB RAM und 64 GB Festplattenspeicher – alles über Umgebungsvariablen anpassbar.</p>



<p><strong>Multi-Windows? Kein Problem!</strong></p>



<p>Der Container unterstützt neben Windows 11 auch ältere Versionen – von XP bis Server 2022. Wer will, kann sogar abgespeckte Varianten wie Tiny11 oder Tiny10 nutzen – oder eigene ISO-Dateien einbinden. In einem Test liefen fünf Windows-Versionen parallel: XP, Vista, 7, 10 und 11 – alles gleichzeitig, auf einem Intel N100-System mit gerade einmal 18W Stromverbrauch.</p>



<p>Nur Windows 8.1 wollte nicht – aber wer vermisst das schon?</p>



<p><strong>Und die Lizenz?</strong></p>



<p>Die Windows-Images stammen, je nach Version, entweder direkt von Microsoft oder aus offenen Quellen wie Bob Pony. Neue Versionen sind unaktiviert, laufen aber ohne Einschränkungen 30 Tage lang. Wer länger nutzen will, muss einen gültigen Key eintragen. Das Projekt selbst enthält laut Entwickler keine proprietären Inhalte und basiert ausschließlich auf Open-Source-Code.</p>



<p><strong>Fazit: Einfach, praktisch, genial</strong></p>



<p>Ob für das schnelle Testen von Windows-Software, zum Spielen mit Legacy-Systemen oder für spezielle Tools wie BIOS-Editoren – dieses Docker-Projekt bietet eine komfortable, schlanke Lösung, bei der man auf nahezu nichts verzichten muss. Natürlich ersetzt es keine hochperformante VM mit dedizierter GPU, aber das will es auch gar nicht.</p>



<p>Was bleibt, ist ein beeindruckendes Beispiel dafür, was heute mit etwas Kreativität und offenen Standards möglich ist – ganz ohne den altbekannten Installationsfrust.</p>



<p><strong>Und wer weiß – vielleicht rettet dir Windows XP auch heute noch den Tag.</strong></p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/07/31/windows-in-einem-docker-container/">Windows in einem Docker-Container? Ja, wirklich!</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Website-Überwachung mit GitHub: So richtest du kostenloses Uptime-Monitoring mit Upptime ein</title>
		<link>https://rhein-ruhr-informatik.de/2025/07/16/website-ueberwachung-mit-github-so-richtest-du-kostenloses-uptime-monitoring-mit-upptime-ein/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Wed, 16 Jul 2025 05:51:45 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Monitoring]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=828</guid>

					<description><![CDATA[<p>Es gibt kaum etwas Schlimmeres, als morgens aufzuwachen und die Nachricht zu lesen, dass deine Website offline ist – außer vielleicht gar nicht zu wissen, dass sie überhaupt offline ist.Egal ob persönliche Homepage, Kundenprojekt oder SaaS-Anwendung: Ein Uptime-Monitor ist unverzichtbar. Denn Websites können aus den seltsamsten Gründen ausfallen – und [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/07/16/website-ueberwachung-mit-github-so-richtest-du-kostenloses-uptime-monitoring-mit-upptime-ein/">Website-Überwachung mit GitHub: So richtest du kostenloses Uptime-Monitoring mit Upptime ein</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Es gibt kaum etwas Schlimmeres, als morgens aufzuwachen und die Nachricht zu lesen, dass deine Website offline ist – außer vielleicht gar nicht zu wissen, dass sie überhaupt offline ist.<br>Egal ob persönliche Homepage, Kundenprojekt oder SaaS-Anwendung: Ein Uptime-Monitor ist unverzichtbar. Denn Websites können aus den seltsamsten Gründen ausfallen – und du willst nicht von einem verärgerten Kunden darauf aufmerksam gemacht werden.</p>



<h2 class="wp-block-heading">Warum ein Uptime-Monitor Pflicht ist</h2>



<p>Uptime-Monitore benachrichtigen dich, sobald deine Website nicht erreichbar ist. Die meisten Lösungen fallen dabei in zwei Kategorien:</p>



<ul class="wp-block-list">
<li>Gehostete Dienste wie UptimeRobot, Hyperping oder OhDear, die regelmäßig deine Website überprüfen.</li>



<li><strong>Self-Hosted Open-Source-Tools</strong> wie Uptime Kuma oder OpenStatus, die du selbst betreibst.</li>
</ul>



<p>Selbstgehostete Lösungen haben allerdings einen großen Nachteil: Wenn dein gesamter Server ausfällt, ist auch der Monitor betroffen. Daher müsstest du diesen auf einem komplett separaten Server oder Anbieter hosten – das ist aufwendig und fehleranfällig.</p>



<h2 class="wp-block-heading">Die Lösung: Upptime</h2>



<p>Hier kommt Upptime ins Spiel – eine komplett kostenlose und Open-Source-basierte Monitoring-Lösung, die du direkt mit deinem GitHub-Konto betreiben kannst. Keine externen Server, keine Kosten. Upptime nutzt drei zentrale Funktionen von GitHub:</p>



<ol class="wp-block-list">
<li><strong>GitHub Actions</strong></li>



<li><strong>GitHub Issues</strong></li>



<li><strong>GitHub Pages</strong></li>
</ol>



<h3 class="wp-block-heading">1. GitHub Actions für Monitoring</h3>



<p>GitHub Actions ermöglichen automatisierte Abläufe – z. B. Tests, Deployments oder eben das regelmäßige Prüfen, ob deine Website erreichbar ist. Upptime konfiguriert diese Prüfungen über einfache YAML-Dateien im Verzeichnis <code>.github/workflows</code>.<br>Über GitHubs eigene Zeitplanung kannst du Checks beispielsweise alle 5 Minuten automatisiert ausführen lassen.</p>



<h3 class="wp-block-heading">2. Benachrichtigung über GitHub Issues</h3>



<p>Fällt deine Website aus, erstellt Upptime automatisch ein <strong>GitHub-Issue</strong> – eine Art Zwischenfallbericht. Diese Funktion kann erweitert werden, etwa mit Benachrichtigungen via Slack, Telegram, Discord, E-Mail oder sogar SMS.<br>Sobald die Website wieder erreichbar ist, schließt Upptime das Issue automatisch.</p>



<h3 class="wp-block-heading">3. GitHub Pages als Statusseite</h3>



<p>Eine weitere Stärke: Upptime erstellt eine <strong>öffentliche Statusseite</strong> via GitHub Pages.<br>Diese zeigt in Echtzeit die Erreichbarkeit deiner Website, inklusive Ladezeiten und Verlaufsdiagrammen. Kommentare zu Incidents werden automatisch übernommen – perfekt für transparente Kommunikation mit deinen Nutzern.</p>



<h2 class="wp-block-heading">Einrichtung von Upptime</h2>



<p>Die Einrichtung ist einfach:</p>



<ol class="wp-block-list">
<li>Forke das offizielle <a class="" href="https://github.com/upptime/upptime">Upptime-Repository</a> als Vorlage.</li>



<li>Erstelle ein neues öffentliches Repository auf Basis dieser Vorlage.</li>



<li>Generiere ein GitHub Access Token mit den nötigen Berechtigungen (Actions, Issues, Contents, Workflows).</li>



<li>Hinterlege dieses Token in den Repository-Settings unter <strong>Secrets</strong> als <code>GH_PAT</code>.</li>



<li>Konfiguriere deine <code>.upptimerc.yml</code> mit deinem GitHub-Namen, Repo-Namen und den zu überwachenden URLs.</li>



<li>Commits triggern automatisch die Checks und die Statusseiten werden erstellt.</li>
</ol>



<h2 class="wp-block-heading">Fazit</h2>



<p>Upptime ist eine elegante Lösung für Entwickler:innen, Freelancer und Agenturen, die ein kostenloses, zuverlässiges und transparentes Monitoring wünschen – ganz ohne externe Server.</p>



<p>Mit Upptime erhältst du:</p>



<ul class="wp-block-list">
<li>Regelmäßige Checks deiner Website</li>



<li>Automatische Incident-Reports</li>



<li>Öffentliche Statusseiten mit Verlauf und Ladezeiten</li>
</ul>



<p>Alles, was du brauchst, ist ein GitHub-Konto.<br>Du möchtest wissen, wie lange die Einrichtung dauert?<br>Im Video wurden Setup und Videoerstellung mit dem Open-Source-Zeittracker <strong>Solidtime</strong> erfasst – ebenfalls eine spannende GitHub-basierte Lösung.</p>



<p>Links zu Upptime, Dokumentationen und weiteren Tools findest du in der Beschreibung des Videos.<br>Und wer weiß – vielleicht ist Upptime auch genau die Lösung für dein nächstes Projekt.</p>



<p>🔗 <a class="" href="https://github.com/upptime/upptime">https://github.com/upptime/upptime</a></p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/07/16/website-ueberwachung-mit-github-so-richtest-du-kostenloses-uptime-monitoring-mit-upptime-ein/">Website-Überwachung mit GitHub: So richtest du kostenloses Uptime-Monitoring mit Upptime ein</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>EDI, EDIFACT und EANCOM Kurzeinführung</title>
		<link>https://rhein-ruhr-informatik.de/2025/06/30/edi-edifact-und-eancom-kurzeinfuehrung/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Mon, 30 Jun 2025 05:05:51 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[B2B Integration]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=820</guid>

					<description><![CDATA[<p>Was ist und wofür steht EDI? In unserer globalen Geschäftswelt ist die reibungslose Kommunikation zwischen den Geschäftspartnern eines der wichtigsten Kriterien, um den weltweiten Handel in der heutigen Form durchzuführen. Um dieses zu erreichen, wurde EDI (Electronic Data Interchange) mit dem Zweck, den elektronischen Austausch von Geschäftsdokumenten, wie beispielsweise Artikelstammdaten, [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/06/30/edi-edifact-und-eancom-kurzeinfuehrung/">EDI, EDIFACT und EANCOM Kurzeinführung</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>Was ist und wofür steht EDI?</strong></p>



<p>In unserer globalen Geschäftswelt ist die reibungslose Kommunikation zwischen den Geschäftspartnern eines der wichtigsten Kriterien, um den weltweiten Handel in der heutigen Form durchzuführen. Um dieses zu erreichen, wurde EDI (Electronic Data Interchange) mit dem Zweck, den elektronischen Austausch von Geschäftsdokumenten, wie beispielsweise Artikelstammdaten, Bestellungen, Lieferscheine und Rechnungen auszutauschen, eingeführt.</p>



<p>Als Vater des elektronischen Datenaustausches gilt Edward Guilbert der EDI bereits in den 1960er Jahren in den Lieferketten der US-Transportbranche implementierte. Um die globale Reichweite der Technologie zu verbessern schuf 1985 die UN EDIFACT EDI. Diese Dokumente werden in Form von strukturierten Daten und ohne manuelle Eingriffe ausgetauscht.</p>



<p>Gegenüber papierbasierten Geschäftsprozessen hat EDI den entscheidenden Vorteil, dass es eine automatisierte Verarbeitung mit sehr geringer Fehlerquote ist und die Möglichkeit bietet, EDI-Nachrichten automatisch ins ERP-System (Warenwirtschaftssystem des Unternehmens) zu erfassen.</p>



<p><strong>Was ist EDIFACT?</strong></p>



<p><strong>UN/EDIFACT</strong> sind Regeln der Vereinten Nationen und umfassen eine Reihe international vereinbarter Standards, Verzeichnisse und Richtlinien für den elektronischen Austausch von strukturierten Daten zwischen weltweit unabhängigen computergestützten Informationssystemen.“</p>



<p><strong>EDIFACT (Electronic Data Interchange for Administration, Commerce and Transport) </strong>bedeutet zu Deutsch, -elektronischer Datenaustausch für Verwaltung, Handel und Transport-. Dieser besteht aus einer hierarchischen Struktur, bei der die oberste Ebene als Interchange bezeichnet wird. Eine EDIFACT-Nachricht ist eine vollständige, strukturierte Datensequenz, die einen einzelnen Geschäftsvorgang darstellt, wie zum Beispiel eine Bestellung. Die UN/EDIFACT-Syntax ist in der Norm ISO 9735 festgelegt. Er umfasst über 200 verschiedene Nachrichtentypen und wird mittlerweile von mehr als 300.000 Unternehmen weltweit eingesetzt.</p>



<p><strong>EANCOM ein Subset aus EDIFACT</strong></p>



<p><strong>EANCOM®</strong> <strong>(EAN + Communication)</strong> ist ein weltweit gültiger Nachrichtenstandard, mit dem international und branchenübergreifend elektronisch Geschäftsdaten ausgetauscht werden können. Er ist der global am weitesten verbreitete Standard für den elektronischen Datenaustausch EDI. Die Besonderheit von EANCOM® ist die Berücksichtigung der globalen GS1 Standards zur Identifikation wie z.B. GLN, GTIN und SSCC/NVE.</p>



<p><strong>GLN</strong> &#8211; Mit der GLN werden Unternehmen und Unternehmensteile, wie zum Beispiel Standorte oder Lager, weltweit eindeutig und überschneidungsfrei identifiziert und ist 13-stellig.</p>



<p><strong>GTIN</strong> &#8211; Mit der GTIN kann jeder Artikel, jedes Produkt oder jede Produktvariante weltweit überschneidungsfrei identifiziert werden.</p>



<p><strong>SSCC/NVE</strong> &#8211; Der SSCC (Serial Shipping Container Code) ist eine 18-stellige Identifikationsnummer für jegliche Arten von Transporteinheiten, z.B. Paletten und Versandkartons. In Deutschland wird er auch als NVE (Nummer der Versandeinheit) bezeichnet. In der Praxis ist der SSCC wichtiger Bestandteil des GS1 Transportetiketts.</p>



<p>Weitere Infos dazu finden man auf der Seite der GS1 unter www.gs1-germany.de</p>



<p>Im EANCOM-Subset werden nur die benötigten Segmente aus dem unterliegenden UN/EDIFACT-Standard verwendet. Die Besonderheiten eines Subsets stellen die branchenspezifischen Qualifier dar. Diese erweitern den Standard um die in der Branche üblichen und benötigten Ausprägungen.</p>



<p>Der Standard EANCOM® wurde ursprünglich für die Bedürfnisse der Konsumgüterindustrie konzipiert. Heute ist der EDI-Standard jedoch branchenübergreifend aufgestellt. Beispiele hierfür sind das Gesundheitswesen, Logistik, Fashion, eCommerce oder Bargeldlogistik.&nbsp;</p>



<p>EANCOM (EAN + Communication) steht für detaillierte Beschreibungen vereinfachter EDIFACT-Nachrichten, die Anwender leicht verstehen und in der Praxis einsetzen können. GS1 ist für die Weiterentwicklung des EDIFACT-Subsets EANCOM® verantwortlich.</p>



<ul class="wp-block-list">
<li>EANCOM beinhaltet alle&nbsp;GS1 Identifikationsstandards (z.B. GLN &amp; GTIN) und hat dadurch einen sehr hohen Nutzen in der Vereinheitlichung des elektronischen Datenaustausch.</li>



<li>Ermöglicht eine direkte elektronische Verarbeitung nach Erhalt der Daten, mit direktem Zugriff auf die gesendeten Informationen in kürzester Verarbeitungszeit.</li>



<li>Vorteile einer internationale Unternehmenskommunikation in einheitlicher Datenstruktur.</li>



<li>Durch die elektronische Übermittlung ergibt sich eine hohe Sicherheit der Datenkonsistenz gegenüber manuellen Eingaben in den ERP-Systemen und es entfallen aufwendige Kontrollprozesse zur Freigabe der Daten.&nbsp;</li>



<li>Spürbare Reduzierung in den Aufwänden für Verwaltung und Personal sowie Porto und Versandkosten.</li>
</ul>



<p><strong>Struktur einer Übertragungsdatei</strong></p>



<p>Eine einfache Übertragungsdatei besteht aus einem Nutzdaten-Kopfsegment mit den Nutzdaten. Diese interpretieren vereinfacht dargestellt einen Briefumschlag mit Absender und Empfänger, sowie den inhaltlichen Text.</p>



<p>Diese Segmente beginnen immer mit einem “UN“ und werden Service Segmente genannt. Jedes Segment gibt wie in einer XML-Struktur, ein definierter Anfang und Ende zusammenhängender Daten an.</p>



<p>UNB als Anfang und UNZ als Ende (dieses ist der Umschlag)</p>



<p>UNH als Anfang und UNT als Ende (dieses ist der gesamte Brief)</p>



<p>Zusätzlich UNS innerhalb des UNH-UNT das als Abschnitts-Kontrollsegment dient. Je nach Nachrichtenart folgen dann Segmente zur Kontrolle oder nicht.</p>



<p>Innerhalb des UNH-UNT gibt es dann eine Aufteilung, die je nach Nachrichtenart aus drei Teilen besteht.</p>



<ul class="wp-block-list">
<li>Einem Kopfteil der sich auf die gesamte Nachricht bezieht.</li>
</ul>



<ul class="wp-block-list">
<li>Positionsteil, wo sich die angegebenen Daten immer nur auf diese eine Position beziehen.</li>
</ul>



<ul class="wp-block-list">
<li>Einem Summenteil, wo es nur Segmente zu Summen und Kontrollwerte gibt wie z.B. Anzahl der Bestellposition oder Rechnungsgesamtbetrag usw.</li>
</ul>



<p>Zusätzlich gibt es noch die Möglichkeit einen erweiterten Zeichensatz anzuwenden, den auch die meisten Handelspartner anwenden und diesen dadurch kenntlich machen, indem Sie ein UNA der eigentlichen Nachricht voranstellen. Dieses zeigt explizit den Gebrauch der Standard-Trennzeichen innerhalb der Nachricht an.</p>



<p><strong>Nutzdatensegmente</strong></p>



<p>Für die Nutzdatensegmente gibt es eine Vielzahl von Bezeichnern die eine grobe Information und Qualifier, die eine genaue Angabe über die Bedeutung bzw. Zugehörigkeit der übermittelten Daten festlegen. Dazu gibt es noch Code Werte, die eine Nachrichtenfunktion beschreiben.</p>



<p><strong>Zwei Segment Beispiele zur Verdeutlichung:</strong></p>



<pre class="wp-block-code"><code>DTM+137:20250502:102‘
DTM		= Bezeichner für das Segment – Datum/Uhrzeit/Zeitspanne-
+		= Trennzeichen
137		= Qualifier der festlegt, dass es sich um das Dokumentendatum handelt
:		= Trennzeichen
20250502	= Datum, wann der Beleg erstellt wurde
: 		= Trennzeichen
102		= Code der festlegt, wie das Format des Datums anzugeben ist.
‚		= Segmentende Kennzeichen
</code></pre>



<pre class="wp-block-code"><code>BGM+220+2334583161+9'
BGM		= Bezeichner für das Segment – Beginn der Nachricht-
+		= Trennzeichen
220		= Qualifier der festlegt, dass es sich um eine Bestellung handelt
+		= Trennzeichen
2334583161	= Auftragsnummer der Bestellung oder Bestellnummer
+		= Trennzeichen
9		= Code für Original
‚		= Segmentende Kennzeichen
</code></pre>



<p></p>



<p></p>



<p><strong>Beispiel einer einfachen EANCOM ORDERS (Bestellung) mit zwei Positionen</strong></p>



<pre class="wp-block-code"><code>UNA:+.? '	  
UNB+UNOC:3+4888885550836:14+9898999999999:14+250424:1312+16984+++++EANCOM'
UNH+001+ORDERS:D:96A:UN:EAN008'		Referenznummer der ORDERS lautet 001 und Versionsangaben
BGM+220+4700483161+9'			Die Bestellnummer lautet 4700483161
DTM+137:20250424:102'			Das Belegdatum ist der 24.04.2025
DTM+2:20250429:102'				Der Liefertermin soll der 29.04.2025 sein
NAD+BY+4888885550836::9'			Die eindeutige GLN des Bestellers
NAD+SU+9898999999999::9'			Die eindeutige GLN des Lieferanten
NAD+DP+4888885551234::9'			Die eindeutige GLN des Warenempfängers (z.B. ein Lager)
NAD+IV+4888885550001::9'			Die eindeutige GLN an dem die Rechnung zu Auszustellen ist
CUX+2:EUR:9'					Währungsangabe
LIN+1++9898942116455:EN'			Erste Position mit der eindeutigen Artikel GTIN 9898942116455
PIA+1+77315-705:SA'				Interne Artikelnummer des Lieferanten 77315-705
IMD+F++:::BLUSE/BLOUSES'			Artikelbeschreibung
QTY+21:36:PCE'					Menge der Bestellten Artikel ist 36
PAC++1'					Packstück/Verpackung
LIN+2++9898912548068:EN'			Zweite Position mit der eindeutigen Artikel GTIN 9898912548068
PIA+1+77315-732:SA'				Interne Artikelnummer des Lieferanten 77315-732
IMD+F++:::HOSE/PANTS'			Artikelbeschreibung
QTY+21:60:PCE'					Menge der Bestellten Artikel ist 60
PAC++1'					Packstück/Verpackung
UNS+S'						Abschnitts Kontrollsegment
UNT+21+001'					Nachrichtenende, es gibt 21 Segmente inkl. UNH-UNT  
UNZ+1+16984'					Ende, es befindet sich eine Nachricht im Umschlag 16984 
</code></pre>



<p><strong>Datenübermittlung</strong></p>



<p>Für die Übermittlung von EDI-Daten gibt es vielfältige Möglichkeiten. Am häufigsten werden AS2 (Applicability Statement 2, ist ein HTTP-basiertes Protokoll), oder X.400 ( BusinessMail, ein Message Transfer System der Deutschen Telekom) verwendet. Auch gesicherte Verbindungen über z.B. SFTP, SCP, OFTP usw., werden in bilateraler Absprache eingesetzt.</p>



<p><strong>EDI intern oder extern?</strong></p>



<p>Ein Unternehmen kann eine EDI-Abteilung aufbauen, die zusammen mit der eigenen IT aus den internen Systemen Schnittstellen definiert und jeweils ein zugehöriges Mapping erarbeitet, die dann im Datenausgang EDI Nachrichten erzeugt und über die bilateral abgesprochene Verbindung zum Partner versendet. Die von den Partnern versendeten EDI-Nachrichten ans Unternehmen werden in Umkehr durch Mappings in die systemeigenen Schnittstellen konvertiert, um automatisch eingelesen und verarbeitet werden zu können. Da sich Unternehmen ständig an den Markt anpassen müssen oder interne Betriebsabläufe oder Systeme ändern, gibt es auch in der EDI-Verarbeitung meistens kleinere oder größere Projekte, die zu Anpassungen an diesen Schnittstellen führen. Wie viele Mitarbeiter benötigt werden, um eine interne Abteilung aufzubauen, die den Kundenkontakt, Support und IT-Leistungen koordiniert, ist einer der entscheidenden Faktoren, ob diese Lösung in Betracht kommt.</p>



<p>Eine externe Lösung, die viele Unternehmen wählen hat den Vorteil, dass keine Infrastruktur im Unternehmen selbst aufgebaut werden muss. Der EDI-Dienstleister übernimmt alle Aufgaben, die für den elektronischen Datenaustausch mit den Partnern nötig sind. Durch Analysen werden die systemeigenen Schnittstellen des Unternehmens vom EDI-Dienstleister ohne Veränderung aufgenommen. Er verfügt in der Regel über eigene Konverter Systeme, wo die aufgenommenen Schnittstellendaten in abgesprochene EDI-Formate konvertiert werden, um diese an die zugehörigen Partner zu versenden. Der Empfang von Daten, die der Partner versendet hat, wird entsprechend umgekehrt verarbeitet und die passend konvertierten Daten an die Schnittstelle übergeben. Er übernimmt die elektronische Kommunikation zum Unternehmen und den Partnern sowie den AMS-Support.</p>



<p><strong>Fazit:</strong></p>



<p>Die hier dargestellte, kurze Erläuterung von EDI, EDIFACT und EANCOM ist ein sehr kleiner Teil des gesamten Spektrums dieser Thematik und gibt nur einen kurzen Einblick in die Welt des elektronischen Datenaustausches. Es zeigt aber die Möglichkeit auf, einen einfachen und sicheren Datenaustausch zwischen Kunde und Lieferant herzustellen, so dass diese Unternehmen die verschickten Daten ohne manuelle Bearbeitung weiterverarbeiten können. Die Einsatzmöglichkeit von EDI ist sehr vielfältig, effizient und kann Unternehmen große Kosteneinsparungen in der Datenverarbeitung erbringen. Eine umfassende Beratung von EDI-Spezialisten mit anschließender Analyse der internen Unternehmensabläufe, aktueller Datenverarbeitung und bestehenden Systemen sind für die Einführung mehr als empfehlenswert. Es gibt viele Faktoren die bei der Einführung von EDI entscheidend sind, wie z.B., mit wie vielen Partnern soll der Datenaustausch erfolgen, welche Nachrichtenarten möchte man einführen, welche Anzahl an Nachrichten werden pro Tag oder Monat ausgetauscht, wie viele Schnittstellen werden benötigt und noch viele andere.&nbsp; Aus der Analyse können dann auch die möglichen Schlüsse für eine interne oder externe Lösung ausgearbeitet werden, um die optimale Effizienz auszuschöpfen.</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/06/30/edi-edifact-und-eancom-kurzeinfuehrung/">EDI, EDIFACT und EANCOM Kurzeinführung</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Test Coverage mit Jasmine und Karma in 3 einfachen Schritten</title>
		<link>https://rhein-ruhr-informatik.de/2025/06/16/test-coverage-mit-jasmine-und-karma-in-3-einfachen-schritten/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Mon, 16 Jun 2025 05:33:10 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=810</guid>

					<description><![CDATA[<p>In diesem Tutorial lernen wir, wie man die Testabdeckung (Test Coverage) in einem Projekt mit Jasmine einrichtet und wie man die Unit Tests messen kann. Die Testabdeckung ist eine Kennzahl, die angibt, wie viel Code durch Unit Tests abgedeckt wird. Eine gute Abdeckung hilft dabei, ungetestete Teile zu identifizieren und [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/06/16/test-coverage-mit-jasmine-und-karma-in-3-einfachen-schritten/">Test Coverage mit Jasmine und Karma in 3 einfachen Schritten</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In diesem Tutorial lernen wir, wie man die Testabdeckung (Test Coverage) in einem Projekt mit Jasmine einrichtet und wie man die Unit Tests messen kann. Die Testabdeckung ist eine Kennzahl, die angibt, wie viel Code durch Unit Tests abgedeckt wird. Eine gute Abdeckung hilft dabei, ungetestete Teile zu identifizieren und die Zuverlässigkeit der Software zu erhöhen.</p>



<h2 class="wp-block-heading">Voraussetzungen</h2>



<ol class="wp-block-list">
<li>Node.js muss auf Ihrem Computer installiert sein.</li>



<li>Jasmine ist bereits im Projekt eingerichtet.</li>



<li>Grundkenntnisse in Unit-Tests.</li>
</ol>



<h2 class="wp-block-heading">Schritt 1: Karma mit Test Coverage konfigurieren</h2>



<p>Jasmine allein erstellt keine Test Coverage, aber mit Karma können wir das Plugin karma-coverage einfach für diesen Zweck integrieren.</p>



<p><strong>Installieren Sie die erforderlichen Abhängigkeiten:</strong></p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="982" height="60" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-7.png" alt="" class="wp-image-812" style="width:531px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-7.png 982w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-7-300x18.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-7-768x47.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-7-18x1.png 18w" sizes="auto, (max-width: 982px) 100vw, 982px" /></figure>



<ul class="wp-block-list">
<li>Aktualisieren Sie die Konfigurationsdatei von Karma (karma.conf.js), um das Plugin karma-coverage zu benutzen:</li>
</ul>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="588" height="552" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-8.png" alt="" class="wp-image-813" style="width:362px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-8.png 588w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-8-300x282.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-8-13x12.png 13w" sizes="auto, (max-width: 588px) 100vw, 588px" /></figure>



<ul class="wp-block-list">
<li>Wichtig zu wissen:<br>○ preprocessors: Definiert, dass die Dateien im Verzeichnis src/ verarbeitet werden, um die Testabdeckung zu messen.<br>○ coverageReporter: Konfiguriert den Berichtstyp (in diesem Fall HTML) und das Verzeichnis, in dem der Bericht gespeichert wird, wenn der Test Coverage fertig ist.</li>
</ul>



<p><strong>Führen Sie die Tests mit Karma aus:</strong></p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="317" height="56" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-9.png" alt="" class="wp-image-814" style="width:213px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-9.png 317w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-9-300x53.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-9-18x3.png 18w" sizes="auto, (max-width: 317px) 100vw, 317px" /></figure>



<ul start="4" class="wp-block-list">
<li>Nach der Ausführung stehen die Abdeckungsberichte im Verzeichnis coverage/ zur Verfügung.</li>
</ul>



<h2 class="wp-block-heading">Schritt 2: Berichte analysieren</h2>



<p>Öffnen Sie die Datei <code>coverage/index.html</code> in einem Browser, um die folgenden Details anzuzeigen:</p>



<p>● Statements: Prozentsatz der abgedeckten Anweisungen.<br>● Branches: Prozentsatz der abgedeckten Verzweigungen (z. B. if und else).<br>● Functions: Prozentsatz der getesteten Funktionen.<br>● Lines: Prozentsatz der abgedeckten Codezeilen.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="244" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-10-1024x244.png" alt="" class="wp-image-815" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-10-1024x244.png 1024w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-10-300x71.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-10-768x183.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-10-18x4.png 18w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-10.png 1118w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Schritt 3: Abdeckung verbessern</h2>



<p>● Schreiben Sie zusätzliche Tests, um ungetestete Szenarien abzudecken.<br>● Konzentrieren Sie sich auf kritische Bereiche, wie z. B. Funktionen mit komplexer Logik.<br>● Verwenden Sie die Metriken aus den Berichten, um wichtige Teile des Codes zu priorisieren.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>Damit haben Sie eine effiziente Abdeckungsanalyse mit Jasmine und Karma eingerichtet. Jetzt wissen wir, wo wir unseren Code verbessern können, so wird nicht nur die Qualität erhöht, sondern auch mögliche Fehler erkannt, bevor sie die Nutzer erreichen. Ich hoffe, dieses kurze Tutorial war hilfreich. Now let’s code!</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/06/16/test-coverage-mit-jasmine-und-karma-in-3-einfachen-schritten/">Test Coverage mit Jasmine und Karma in 3 einfachen Schritten</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Einstieg in Unit-Tests mit JavaScript, Jasmine und Karma</title>
		<link>https://rhein-ruhr-informatik.de/2025/05/30/einstieg-in-unit-tests-mit-javascript-jasmine-und-karma/</link>
		
		<dc:creator><![CDATA[Rhein-Ruhr-Informatik]]></dc:creator>
		<pubDate>Fri, 30 May 2025 05:58:10 +0000</pubDate>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[Testing]]></category>
		<guid isPermaLink="false">https://rhein-ruhr-informatik.de/?p=800</guid>

					<description><![CDATA[<p>Erfahren Sie, wie Sie zuverlässige JavaScript-Anwendungen durch Unit-Tests erstellen! In diesem praxisnahen Tutorial richten Sie Jasmine und Karma Schritt für Schritt ein, schreiben aussagekräftige Tests und automatisieren deren Ausführung. Ob Sie neu im Testen sind oder Ihre Fähigkeiten vertiefen möchten – diese Anleitung vermittelt grundlegende Praktiken für sauberen, wartbaren Code. [&#8230;]</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/05/30/einstieg-in-unit-tests-mit-javascript-jasmine-und-karma/">Einstieg in Unit-Tests mit JavaScript, Jasmine und Karma</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Erfahren Sie, wie Sie zuverlässige JavaScript-Anwendungen durch Unit-Tests erstellen! In diesem praxisnahen Tutorial richten Sie Jasmine und Karma Schritt für Schritt ein, schreiben aussagekräftige Tests und automatisieren deren Ausführung. Ob Sie neu im Testen sind oder Ihre Fähigkeiten vertiefen möchten – diese Anleitung vermittelt grundlegende Praktiken für sauberen, wartbaren Code. Verwandeln Sie unübersichtlichen Code in vertrauenswürdige Lösungen!</p>



<h3 class="wp-block-heading"><strong>1.</strong><strong> </strong><strong>Voraussetzungen</strong></h3>



<ul class="wp-block-list">
<li>Node.js und npm installiert</li>



<li>Code-Editor Ihrer Wahl</li>
</ul>



<h3 class="wp-block-heading"><a></a><strong>2.</strong><strong> </strong><strong>Abhängigkeiten installieren</strong></h3>



<p>Dieser Schritt richtet die Testumgebung ein. Jasmine liefert die Test-Syntax und Assertion-Funktionen, während Karma als Test-Runner dient, der Tests in echten Browsern ausführt. Der Chrome-Launcher ermöglicht Tests in einer vertrauten Browserumgebung.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="923" height="298" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image.png" alt="" class="wp-image-802" style="width:568px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image.png 923w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-300x97.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-768x248.png 768w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-18x6.png 18w" sizes="auto, (max-width: 923px) 100vw, 923px" /></figure>



<h3 class="wp-block-heading"><a></a><strong>3. Karma konfigurieren</strong></h3>



<p>Der Karma-Konfigurationsassistent hilft bei der Erstellung einer optimalen Testumgebung. Durch die Auswahl von Jasmine als Testframework und Chrome als Zielbrowser stellen Sie sicher, dass Tests konsistent laufen. Die Dateipfade weisen Karma an, wo Quellcode und Tests zu finden sind.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="306" height="50" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-1.png" alt="" class="wp-image-803" style="width:188px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-1.png 306w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-1-300x49.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-1-18x3.png 18w" sizes="auto, (max-width: 306px) 100vw, 306px" /></figure>



<p><strong>Während der Einrichtung:</strong></p>



<ul class="wp-block-list">
<li>Testframework: Jasmine</li>



<li>Browser: Chrome</li>



<li>Dateipfade: <code>src/*.js, test/*.spec.js</code></li>



<li>Behalten Sie die Standardeinstellungen für andere Optionen bei</li>
</ul>



<h3 class="wp-block-heading"><strong> </strong><strong>4. Projektstruktur</strong></h3>



<pre class="wp-block-code"><code>my-test-project/
├── src/
│   └── calculator.js
├── test/
│   └── calculator.spec.js
├── karma.conf.js
└── package.json
</code></pre>



<p>Eine logische Dateistruktur trennt Anwendungscode (src) von Testspezifikationen (test). Die .spec.js-Endung identifiziert Testdateien klar, gemäß JavaScript-Community-Konventionen. Diese Organisation verbessert die Wartbarkeit.</p>



<h3 class="wp-block-heading"><a></a><strong>5. Beispielcode (src/calculator.js)</strong></h3>



<p>Hier ist der Beispielcode, für den wir Tests schreiben werden:</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="331" height="306" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-2.png" alt="" class="wp-image-805" style="width:236px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-2.png 331w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-2-300x277.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-2-13x12.png 13w" sizes="auto, (max-width: 331px) 100vw, 331px" /></figure>



<h3 class="wp-block-heading"><a></a><strong>6. Testfälle (test/calculator.spec.js)</strong></h3>



<p>Jasmines lesbare Syntax verwendet describe-Blöcke, um verwandte Tests zu gruppieren, und it-Aussagen für individuelle Szenarien. Jede expect-Assertion überprüft spezifische Funktionalität und schafft ein Sicherheitsnetz gegen Regressionen.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="661" height="320" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-3.png" alt="" class="wp-image-806" style="width:402px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-3.png 661w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-3-300x145.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-3-18x9.png 18w" sizes="auto, (max-width: 661px) 100vw, 661px" /></figure>



<h3 class="wp-block-heading"><a></a><strong>7. npm-Scripts (package.json)</strong></h3>



<p>Benutzerdefinierte Scripts in package.json automatisieren die Testausführung. Der &#8211;single-run-Modus ist ideal für CI/CD-Pipelines, während der Watch-Modus während der Entwicklung sofortiges Feedback liefert. Diese Shortcuts optimieren Ihren Test-Workflow.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="463" height="130" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-4.png" alt="" class="wp-image-807" style="width:336px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-4.png 463w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-4-300x84.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-4-18x5.png 18w" sizes="auto, (max-width: 463px) 100vw, 463px" /></figure>



<h3 class="wp-block-heading"><a></a><strong>8. Tests ausführen</strong></h3>



<p>Die Testausführung validiert das Codeverhalten in Echtzeit. Karma startet eine Browser-Instanz, führt alle Tests aus und meldet Ergebnisse im Terminal. Grüne Häkchen bestätigen korrekte Funktionalität, während Fehler problematische Bereiche hervorheben.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="420" height="172" src="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-5.png" alt="" class="wp-image-808" style="width:284px;height:auto" srcset="https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-5.png 420w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-5-300x123.png 300w, https://rhein-ruhr-informatik.de/wp-content/uploads/2025/05/image-5-18x7.png 18w" sizes="auto, (max-width: 420px) 100vw, 420px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>Universelle Tipps</strong></p>



<ul class="wp-block-list">
<li>Beginnen Sie mit einfachen Testfällen</li>



<li>Verwenden Sie <code>describe()</code> für Testgruppen</li>



<li>Jedes <code>it()</code> repräsentiert ein Test-Szenario</li>



<li>Gängige Matcher: <code>.toBe(), .toEqual(), .toThrow()</code></li>



<li>Debuggen Sie bei Bedarf mit <code>console.log()</code> in Tests</li>
</ul>



<p><strong>Und jetzt: Frohes Testen!</strong> 🚀</p>
<p>The post <a href="https://rhein-ruhr-informatik.de/2025/05/30/einstieg-in-unit-tests-mit-javascript-jasmine-und-karma/">Einstieg in Unit-Tests mit JavaScript, Jasmine und Karma</a> appeared first on <a href="https://rhein-ruhr-informatik.de">Rhein-Ruhr-Informatik</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
