IBM RPG und Java im Vergleich – Terminologie, Konzepte und Einsatzgebiete auf IBM i

Modernes Artikelbild mit IBM RPG und Java als visuelle Gegenüberstellung für Softwareentwicklung und Modernisierung auf IBM i.
RPG und Java sind keine Gegner. Auf IBM i erfüllen sie oft unterschiedliche Rollen – und genau diese saubere Einordnung verhindert teure Architekturfehler.

Was bedeutet „Library“ im Vergleich zu einem Schema? Ist ein IBM-i-Job ein Thread? Und wann ist RPG die bessere Wahl als Java – oder umgekehrt?

Wer aus der Java-Welt auf IBM i trifft, stolpert schnell über Begriffe, die vertraut klingen, aber anders funktionieren. Und wer seit Jahren RPG entwickelt, merkt bei modernen Java-Architekturen: Viele Konzepte sind ähnlich, aber die Denkweise ist eine andere. Dieser Artikel ordnet die wichtigsten Begriffe, Einsatzgebiete und Modernisierungsstrategien ein – plagiatsfrei überarbeitet, fachlich aktualisiert und im aktuellen tiny-tool-Artikelstil gestaltet.

1. Kurzfassung: RPG vs. Java auf IBM i

RPG und Java werden oft gegeneinander gestellt. Das ist verständlich, aber meistens zu grob. RPG ist auf IBM i tief verwurzelt, sehr nah an klassischen Geschäftsprozessen, Batch-Verarbeitung, 5250-Anwendungen und Db2-for-i-Datenstrukturen. Java ist stärker in plattformübergreifenden Architekturen, APIs, Webanwendungen, Frameworks, Integrationen und verteilten Systemen zu Hause.

Die wichtigste Einordnung: RPG ist nicht automatisch „alt“ und Java ist nicht automatisch „modern“. Entscheidend ist, ob Sprache, Laufzeitmodell, Team-Know-how und Zielarchitektur zusammenpassen.

Modernes RPG, insbesondere ILE RPG mit freier Syntax und vollständig freiem Quellformat, ist deutlich lesbarer und modularer als ältere feste Spaltenformate. Java wiederum bringt ein riesiges Ökosystem mit: Build-Tools, Frameworks, Testbibliotheken, REST-Stacks, Observability, Cloud-Integration und eine große Entwicklerbasis.

Frage RPG ist oft stark bei … Java ist oft stark bei …
Wo läuft die Kernlogik? Direkt auf IBM i, nahe an Db2 for i und bestehenden Programmen. Auf IBM i, Linux, Container-Plattformen oder anderen JVM-Umgebungen.
Welche Art Anwendung? Transaktionslogik, Batch, klassische IBM-i-Anwendungen, bestehende Geschäftsregeln. APIs, Webanwendungen, Microservices, Integrationen, moderne Frontend-Backends.
Was ist das Hauptziel? Bestehende IBM-i-Logik stabil weiterentwickeln. Systeme öffnen, integrieren, skalieren oder plattformübergreifend bereitstellen.
Typischer Fehler Neue Anforderungen zu lange in alte Muster pressen. Bewährte Geschäftslogik vorschnell neu schreiben und dabei Fachdetails verlieren.

2. AS/400, System i, IBM i – erst die Namen sortieren

Viele sprechen bis heute von „AS/400“. Gemeint ist damit in der Praxis häufig eine moderne IBM-i-Umgebung auf IBM Power Systems. Historisch ist das aber nicht dasselbe. Die AS/400 wurde 1988 vorgestellt. Später kamen Namen wie iSeries und System i. Seit 2008 spricht man vom Betriebssystem IBM i auf IBM Power Systems.

Wording-Tipp: In modernen Artikeln ist „IBM i“ der sauberste Begriff für das Betriebssystem. „AS/400“ kann als historischer oder umgangssprachlicher Suchbegriff vorkommen, sollte aber nicht so verwendet werden, als wäre es der aktuelle Produktname.

Diese Unterscheidung ist mehr als Kosmetik. Wer „AS/400“ sagt, meint manchmal Hardware, manchmal Betriebssystem, manchmal 5250-Oberfläche, manchmal RPG-Anwendung und manchmal einfach „das alte System im Keller“. Für technische Entscheidungen ist das zu ungenau. Besser ist:

  • IBM i für das Betriebssystem.
  • IBM Power Systems beziehungsweise Power-Server für die Plattform.
  • Db2 for i für die integrierte relationale Datenbank.
  • RPG / ILE RPG für die Programmiersprache beziehungsweise Laufzeitumgebung.
  • 5250 für die klassische Terminal-orientierte Benutzeroberfläche.

3. RPG und Java: zwei Sprachen, zwei Denkwelten

RPG entstand aus der Welt der geschäftlichen Datenverarbeitung. Ursprünglich ging es stark um Berichte, Dateien, Satzverarbeitung und klar strukturierte Geschäftsabläufe. Genau deshalb passt RPG bis heute gut zu vielen Kernprozessen: Auftrag, Kunde, Bestand, Buchung, Rechnung, Versand, Tagesabschluss.

Java entstand später mit einem anderen Versprechen: eine Sprache und Laufzeitumgebung, die auf unterschiedlichen Plattformen lauffähig ist. In Unternehmenssystemen wurde Java vor allem durch die JVM, breite Bibliotheksunterstützung, Server-Frameworks und eine große Community stark.

Modernes RPG: Fully free-form RPG beginnt mit **FREE. IBM dokumentiert, dass vollständig freier RPG-Code ab Spalte 1 beginnen kann und die alten Spalten 6 und 7 keine Sonderrolle mehr haben. Das ist ein massiver Unterschied zu alten RPG-Quellen im festen Format.

Der spannendste Punkt ist: Beide Sprachen können auf IBM i relevant sein. IBM i unterstützt Java über IBM Technology for Java beziehungsweise aktuelle JDK-Optionen. Gleichzeitig bleibt RPG für bestehende IBM-i-Geschäftsanwendungen sehr wichtig, weil dort oft jahrzehntelang gewachsene Fachlogik steckt.

Dimension RPG / ILE RPG Java
Herkunft Geschäftliche Datenverarbeitung, IBM-Midrange, Datei- und Transaktionslogik. Plattformübergreifende Laufzeit, objektorientierte Unternehmenssoftware, Web und Services.
Stärke Nähe zu IBM i, Db2 for i, bestehenden Programmen und Geschäftsprozessen. Ökosystem, Frameworks, APIs, Testing, Integrationen, Teamverfügbarkeit.
Typische Architektur ILE-Programme, Serviceprogramme, Batch, 5250, Stored Procedures, native IBM-i-Aufrufe. JVM-Anwendungen, REST-Services, Spring/Jakarta/Open Liberty, Integrationsschichten.
Modernisierungsrolle Bestehende Logik stabilisieren, modularisieren, in Services kapseln. Neue Schnittstellen, moderne Frontends, externe Integration, plattformübergreifende Services.

4. Terminologie: IBM-i-Begriffe sauber übersetzt

Viele Übersetzungen von IBM-i-Begriffen sind nur Annäherungen. Eine Library ist nicht einfach ein Ordner. Ein Job ist nicht einfach ein Thread. Und ein Logical File kann je nach Kontext eher an einen Index, eine View oder einen Zugriffspfad erinnern. Genau deshalb lohnt sich eine vorsichtige Terminologie-Tabelle.

IBM-i-Begriff Grobe Entsprechung in anderen Welten Saubere Einordnung
Library Schema, Namespace, Objektcontainer Eine Library gruppiert IBM-i-Objekte. Bei SQL-Objekten liegt der Vergleich mit einem Schema nahe, aber eine Library enthält nicht nur Tabellen.
Physical File Tabelle Ein physisches Datenbankdateiobjekt speichert Daten. SQL-Tabellen und traditionelle Physical Files treffen sich in Db2 for i, sind aber historisch unterschiedlich entstanden.
Logical File Index, View, Zugriffspfad Ein Logical File beschreibt eine logische Sicht oder einen Zugriffspfad auf Physical Files. Es ist nicht immer 1:1 eine SQL-View und auch nicht immer nur ein Index.
Member Teil einer Datei, Source-Member Source Physical Files können mehrere Member enthalten. In moderner Entwicklung werden Quellen oft zusätzlich oder stattdessen im IFS und Git verwaltet.
Object Datei, Programm, Ressource IBM i ist stark objektorientiert auf Betriebssystemebene. Programme, Dateien, Queues, Jobbeschreibungen und vieles mehr sind Objekte mit Typ und Berechtigungen.
Job Prozess, Task, Ausführungskontext Ein Job ist die zentrale Ausführungseinheit auf IBM i. Er ist näher an einem Prozess- oder Serverkontext als an einem einzelnen Java-Thread.
Subsystem Service-Umgebung, Workload-Container Subsysteme steuern, wo und wie Jobs laufen. Das ist eher Betriebs- und Workload-Steuerung als ein Application Server im Java-Sinn.
Job Queue Warteschlange für auszuführende Jobs Hier warten Batch-Jobs auf Ausführung. Nicht zu verwechseln mit Messaging-Queues wie JMS oder RabbitMQ.
Data Queue Message Queue, einfache Interprozess-Kommunikation Data Queues sind schnelle IBM-i-Objekte für den Nachrichtenaustausch zwischen Programmen. Sie sind konzeptionell verwandt mit Queues, aber kein vollständiger JMS-Ersatz.
Message Queue Systemnachrichten, Bedienerhinweise, Fehlerkanal Message Queues dienen auf IBM i stark der System- und Programmnachrichtenverarbeitung. Das ist nicht dasselbe wie Enterprise Messaging.
Journal Transaction Log, Änderungsprotokoll Journale zeichnen Änderungen auf und sind zentral für Commitment Control, Recovery, Replikation und Audit-Szenarien.
Commitment Control Transaktionssteuerung Commitment Control steuert Commit und Rollback. Voraussetzung ist in vielen Fällen eine passende Journalisierung der beteiligten Objekte.
Spool File Druck-/Ausgabedatei Spool Files sind aufbereitete Ausgaben, häufig für Druck, PDF-Erzeugung oder Nachverarbeitung.
IFS Stream File Datei im Unix-/Windows-Sinn Das Integrated File System bietet Pfade und Streamfiles, etwa für Java, Open Source, Git-Workflows, SQL-Skripte und Konfigurationsdateien.
Praxis-Tipp: Übersetze IBM-i-Begriffe nie mechanisch. Frag immer: Geht es um Datenbankmodell, Betriebssystemobjekt, Laufzeitverhalten, Berechtigung oder Entwicklerworkflow?

5. Datenbankdenken: Physical Files, SQL-Tabellen und Db2 for i

Db2 for i ist tief in IBM i integriert. Das unterscheidet die Plattform deutlich von Umgebungen, in denen Datenbankserver, Betriebssystem und Anwendungsschicht klar getrennte Produkte sind. Auf IBM i können traditionelle Datei-Zugriffe und SQL-Zugriffe auf ähnliche Datenbestände treffen – aber sie sprechen teilweise unterschiedliche Sprachen.

Der alte Artikel setzte „Physical File = SQL Table“ und „Logical File = SQL Index / SQL View“ sehr direkt gleich. Als Einstieg ist das okay, aber fachlich sollte man vorsichtiger sein. Eine Physical File kann wie eine Tabelle behandelt werden. Eine SQL-Tabelle ist ebenfalls ein Datenbankobjekt. Aber die Historie, DDS-Definitionen, Member-Konzepte, Zugriffspfade und Namenslogik können Unterschiede machen.

Wichtig bei Modernisierung: Bevor eine RPG-Anwendung Richtung Java oder REST geöffnet wird, sollte das Datenmodell verstanden werden: echte Primärschlüssel, referenzielle Integrität, Journalisierung, Datentypen, CCSID, Dezimalfelder, Datumslogik und implizite Geschäftsregeln.

Gerade Java-Teams unterschätzen oft, wie viel Geschäftslogik in Datenstrukturen, DDS-Beschreibungen, Triggern, Programmen, Jobumgebung, Bibliotheksliste und Batch-Abläufen steckt. Umgekehrt unterschätzen klassische IBM-i-Teams manchmal, wie wichtig explizite API-Verträge, automatisierte Tests und saubere Deployment-Pipelines für moderne Systemlandschaften sind.

6. Laufzeitmodell: Jobs, Programme, Threads und Services

Ein IBM-i-Job ist eine eigene Welt: Benutzerprofil, Jobbeschreibung, Bibliotheksliste, Aktivierungsgruppen, Meldungen, Protokoll, Umgebung und Ressourcen hängen daran. Deshalb ist die Gleichsetzung „Job = Thread“ zu kurz.

Konzept IBM i / RPG Java-Welt Was beim Vergleich wichtig ist
Ausführungseinheit Job, Programm, Aktivierungsgruppe Prozess, JVM, Thread, Executor Ein IBM-i-Job trägt viel Umgebung mit sich. Java-Threads teilen sich dagegen typischerweise eine JVM.
Modularisierung Programme, Module, Serviceprogramme, Prozeduren Klassen, Packages, JARs, Module, Services RPG kann sehr modular sein, aber die Artefakte und Deployment-Muster unterscheiden sich deutlich.
Fehleranalyse Joblog, Messages, Dumps, Spool Logs, Exceptions, Stacktraces, Metrics, Traces Für hybride Systeme braucht man oft beide Diagnosewelten.
Transaktionen Commitment Control, Journale, Db2 for i JDBC, JTA, Framework-Transaktionen Beide Seiten können transaktional arbeiten. Die Grenzen müssen aber sauber definiert sein.

Für Integrationsarchitekturen ist diese Ebene entscheidend. Java kann RPG-Programme aufrufen, Daten über JDBC lesen, REST-Schnittstellen bereitstellen oder als separate Service-Schicht neben IBM i laufen. Aber jeder Zugriff auf bestehende Logik muss die IBM-i-Laufzeitrealität respektieren: Bibliotheksliste, Berechtigungen, CCSID, Sperren, Commitment Control, Fehlerkanäle und Antwortzeiten.

7. Mini-Codevergleich: gleiche Aufgabe, anderes Denken

Ein einfaches Beispiel zeigt den Unterschied ganz gut. Die fachliche Aufgabe lautet: Für einen Kunden wird der Umsatz aus Bestellungen gelesen und ausgegeben. In RPG denkt man häufig näher an Db2 for i und bestehender Programmlogik. In Java denkt man oft stärker in Repository, Service und Objektmodell.

ILE RPG · vollständig freies Format, stark vereinfacht
**FREE
ctl-opt dftactgrp(*no) option(*srcstmt:*nodebugio);

dcl-s customerNo packed(7:0) inz(4711);
dcl-s amount     packed(11:2) inz(0);

exec sql
  select coalesce(sum(order_total), 0)
    into :amount
    from orders
   where customer_no = :customerNo;

dsply ('Umsatz: ' + %char(amount));

*inlr = *on;
return;
Java · stark vereinfachte Service-Sicht
import java.math.BigDecimal;

public class CustomerRevenueService {
    private final OrderRepository orders;

    public CustomerRevenueService(OrderRepository orders) {
        this.orders = orders;
    }

    public BigDecimal revenueForCustomer(int customerNo) {
        return orders.sumOrderTotalByCustomerNo(customerNo);
    }
}

Das Beispiel ist bewusst klein. In echten Anwendungen wäre die RPG-Seite oft in bestehende Programme, Serviceprogramme oder Stored Procedures eingebettet. Die Java-Seite hätte Tests, Dependency Injection, Logging, Fehlerbehandlung, Transaktionsgrenzen und eine API-Schicht. Der Punkt ist: Beide können dieselbe Fachfrage beantworten, aber sie organisieren Verantwortung unterschiedlich.

8. Einsatzgebiete: Wann RPG, wann Java?

Die beste Wahl hängt selten nur an der Sprache. Wichtiger sind Zielbild, Risiko, Datenmodell, Schnittstellenbedarf, Team und Lebensdauer der Anwendung.

Szenario Empfehlung Warum
Bestehende Kernlogik mit stabilen Geschäftsregeln RPG modernisieren und modularisieren Fachlogik bleibt nah am System. Risiko ist geringer als bei kompletter Neuentwicklung.
Neue REST-API für bestehende Funktionen RPG kapseln, Java oder IBM-i-native API-Schicht prüfen Oft reicht eine kontrollierte Schnittstelle. Nicht jede API rechtfertigt einen Rewrite.
Modernes Web-Frontend Java/TypeScript-Frontend-Backend plus IBM-i-Integration Java-Ökosystem und moderne Web-Stacks sind hier meist produktiver.
Batch-nahe Massenverarbeitung auf IBM i RPG oder SQL auf IBM i bevorzugen Datenlokalität, Stabilität und bestehende Betriebsprozesse sprechen oft dafür.
Plattformübergreifender Service Java stark prüfen JVM, Frameworks, Deployment und Observability sind hier große Vorteile.
Unverstandene Altlogik ersetzen Erst analysieren, nicht sofort neu schreiben Der größte Fehler ist ein Rewrite ohne vollständiges Fachverständnis.
Meine klare Meinung: Der beste Modernisierungspfad ist häufig nicht „RPG raus, Java rein“, sondern „RPG dort behalten, wo es fachlich und betrieblich stark ist – und Java dort einsetzen, wo Integration, APIs und moderne Entwicklungsprozesse den größten Nutzen bringen“.

9. Modernisierung: Ergänzen ist oft klüger als Ersetzen

Modernisierung bedeutet nicht automatisch Migration. Ein gesundes Zielbild kann so aussehen:

  • Alte RPG-Programme in verständliche Module und Serviceprogramme schneiden.
  • Feste Formatquellen schrittweise in freiere, lesbarere RPG-Formen überführen.
  • SQL-Zugriffe, Datenmodell und Transaktionsgrenzen dokumentieren.
  • RPG-Fachlogik über definierte Schnittstellen verfügbar machen.
  • Neue APIs, Weboberflächen und Integrationen mit Java oder anderen modernen Stacks bauen.
  • Tests, Logging, Monitoring und Deployment-Pipelines ergänzen.

Ein Rewrite kann sinnvoll sein, wenn die bestehende Anwendung fachlich verstanden, technisch stark begrenzt, schlecht wartbar oder strategisch nicht mehr tragfähig ist. Aber ein Rewrite ist kein Selbstzweck. Gerade bei IBM-i-Systemen steckt viel Wissen in kleinen Details: Sonderfälle, Datenkorrekturen, jahrzehntelang gewachsene Regeln, Betriebsfenster, Sperrlogik, Batch-Reihenfolgen und Ausnahmebehandlungen.

Rewrite-Falle: Wenn niemand mehr erklären kann, warum ein RPG-Programm etwas tut, ist das kein Argument für schnelles Neuschreiben. Es ist ein Argument für Analyse, Tests und fachliche Sicherung, bevor man die Axt ansetzt.

10. Entscheidungsmatrix für Projekte

Für konkrete Projekte hilft eine nüchterne Matrix. Nicht sexy, aber wirksam. Architekturentscheidungen sollten nicht aus Bauchgefühl entstehen, sondern aus nachvollziehbaren Kriterien.

Kriterium Spricht eher für RPG Spricht eher für Java
Daten liegen vollständig auf IBM i Sehr stark Nur bei API-/Integrationsbedarf
Bestehende Fachlogik ist in RPG implementiert Sehr stark Java eher als Hülle oder Ergänzung
Neue externe Schnittstellen nötig Möglich, aber oft Zusatzaufwand Stark
Team hat primär Java-Know-how Nur mit IBM-i-Schulung realistisch Stark
Batch-Verarbeitung mit engem IBM-i-Betrieb Stark Nur bei sauberer Betriebsintegration
Cloud- oder Container-Zielbild Eher indirekt Stark
Regulatorisch kritische Altlogik Modernisieren statt riskant ersetzen Nur mit Tests, Spezifikation und Migrationsplan
Langfristige Talentstrategie RPG-Wissen sichern und dokumentieren Java kann Recruiting und Ökosystem verbreitern

Eine gute IBM-i-Modernisierung respektiert die Plattform und öffnet sie gleichzeitig dort, wo es fachlich sinnvoll ist. Genau darin liegt der Charme: Nicht nostalgisch am Alten kleben, aber auch nicht blind alles neu bauen, nur weil ein Stack moderner klingt.

11. Fazit

RPG und Java sind Werkzeuge, keine Glaubensrichtungen. RPG bleibt auf IBM i stark, wenn es um bestehende Geschäftslogik, Transaktionsnähe und stabile Kernprozesse geht. Java glänzt bei APIs, Integrationen, Webanwendungen, Frameworks und plattformübergreifenden Architekturen. Die Kunst besteht darin, beide Welten sauber zu verbinden.

Der alte Vergleich „RPG ist Legacy, Java ist Zukunft“ ist zu billig. Besser ist: RPG ist oft das fachliche Gedächtnis des Unternehmens. Java ist oft die Brücke zu modernen Architekturen. Wer beides versteht, kann IBM-i-Landschaften deutlich risikoärmer modernisieren.

Glossar

Kurz erklärt – für alle, die zwischen RPG-, IBM-i- und Java-Welt übersetzen müssen.

IBM i
Aktuelles IBM-Betriebssystem für Power Systems, historisch aus OS/400 und i5/OS hervorgegangen.
AS/400
Historischer IBM-Systemname von 1988. Wird umgangssprachlich noch oft für IBM-i-Umgebungen verwendet, ist aber nicht der aktuelle Produktname.
ILE RPG
RPG im Integrated Language Environment. Ermöglicht modulare Programme, Serviceprogramme, Prozeduren und moderne Entwicklungsformen.
Fully free-form RPG
RPG-Quellformat mit **FREE, bei dem Code ab Spalte 1 beginnen kann und die alte Spaltenlogik weitgehend entfällt.
Db2 for i
In IBM i integrierte relationale Datenbank. Sie unterstützt SQL und traditionelle IBM-i-Dateizugriffe.
Library List
Suchpfad für nicht qualifizierte Objektzugriffe in einem IBM-i-Job. Für Java-Teams grob mit Classpath-/Suchpfad-Denken vergleichbar, aber fachlich anders.
JT400 / IBM Toolbox for Java
Java-Bibliothek zur Integration mit IBM i, etwa für Datenbankzugriffe, Befehle, Programme und Systemressourcen.

Quellen

Transparenzhinweis


Transparenzhinweis:
Die Inhalte auf tiny-tool.de werden sorgfältig recherchiert, redaktionell geprüft und regelmäßig aktualisiert. Quellen und Zitate werden möglichst nachvollziehbar angegeben. Dennoch übernehmen wir keine Garantie für Richtigkeit, Vollständigkeit oder Aktualität der bereitgestellten Informationen. Irrtümer sind nicht ausgeschlossen.

Redaktion und Einsatz von KI: Bei der Erstellung von Inhalten können digitale Werkzeuge – darunter auch KI-basierte Assistenzsysteme – unterstützend eingesetzt werden, etwa bei Recherche, Strukturierung, sprachlicher Überarbeitung, Übersetzung, Codeanalyse oder visueller Gestaltung. Veröffentlichte Inhalte werden redaktionell geprüft, bearbeitet und von Guido Zeuner freigegeben. Auswahl, Einordnung und Veröffentlichung liegen beim Menschen. KI-Ausgaben gelten nicht als eigenständige Quellen. KI-Systeme sind keine verantwortlichen Autoren oder Redakteure. Weitere Informationen zu Texten, Bildern, Videos und digitalen Personas findest du auf unserer Seite Transparenz beim Einsatz von Künstlicher Intelligenz.

Reichweitenmessung (VG WORT / METIS): Zur Ermittlung der Reichweite einzelner Texte können Zählmarken der VG WORT eingesetzt werden. Im Rahmen der METIS-Zugriffszählung kann eine Client-ID gebildet und ein sogenanntes „METIS Session Cookie“ gesetzt werden. Die Messung dient der statistischen Ermittlung von Textzugriffen und als Grundlage für mögliche Ausschüttungen der VG WORT. Nach Angaben der VG WORT werden dabei keine personenbezogenen Nutzungsprofile erstellt; die Messung dient nicht der Werbung oder dem Marketing-Tracking. Weitere Informationen findest du in unseren Datenschutzhinweisen.

Bitte beachte: Die Inhalte dienen ausschließlich der allgemeinen Information und stellen keine fachliche Beratung dar, insbesondere keine rechtliche, steuerliche, medizinische, technische oder finanzielle Beratung. Die Nutzung der Inhalte erfolgt auf eigene Verantwortung.

Werbung und Affiliate-Links: Einige Beiträge können werbliche Hinweise oder sogenannte Affiliate-Links enthalten. Diese werden entsprechend gekennzeichnet. Beim Klick entstehen dir keine zusätzlichen Kosten; wir erhalten gegebenenfalls eine kleine Provision.

Markenrechtlicher Hinweis: Alle Markennamen, Logos und Produktbezeichnungen sind Eigentum der jeweiligen Rechteinhaber und werden ausschließlich zur Identifikation und Beschreibung verwendet. Eine Verbindung zu den genannten Unternehmen besteht nur, wenn dies ausdrücklich angegeben wird.

Externe Links: Diese Website enthält Verweise auf externe Websites Dritter. Trotz sorgfältiger Prüfung übernehmen wir keine Verantwortung für deren Inhalte. Bei Bekanntwerden rechtswidriger Inhalte werden entsprechende Links geprüft und gegebenenfalls entfernt.