{"id":2492,"date":"2026-06-27T20:58:06","date_gmt":"2026-06-27T20:58:06","guid":{"rendered":"https:\/\/www.pickplace.de\/?post_type=projekt&#038;p=2492"},"modified":"2026-06-27T20:58:11","modified_gmt":"2026-06-27T20:58:11","slug":"middleware","status":"publish","type":"projekt","link":"https:\/\/www.pickplace.de\/de\/projekte\/middleware\/","title":{"rendered":"Middleware"},"content":{"rendered":"\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Inhalt<\/h2><nav><ul><li class=\"\"><a href=\"#das-wichtigste-in-kurze\">Das Wichtigste in K\u00fcrze<\/a><\/li><li class=\"\"><a href=\"#was-ist-middleware\">Was ist Middleware?<\/a><\/li><li class=\"\"><a href=\"#warum-braucht-ein-gerat-uberhaupt-middleware\">Warum braucht ein Ger\u00e4t \u00fcberhaupt Middleware?<\/a><\/li><li class=\"\"><a href=\"#welche-aufgabe-ubernimmt-middleware-zwischen-hardware-und-anwendung\">Welche Aufgabe \u00fcbernimmt Middleware zwischen Hardware und Anwendung?<\/a><\/li><li class=\"\"><a href=\"#weitere-fachliche-einordnung\">Weitere fachliche Einordnung<\/a><ul><li class=\"\"><a href=\"#typische-ausgangslagen-in-middleware-projekten\">Typische Ausgangslagen<\/a><\/li><li class=\"\"><a href=\"#technische-abhangigkeiten\">Technische Abh\u00e4ngigkeiten<\/a><\/li><li class=\"\"><a href=\"#ubergang-von-analyse-zu-umsetzung\">\u00dcbergang von Analyse zu Umsetzung<\/a><\/li><li class=\"\"><a href=\"#beispiele-fur-middleware\">Beispiele f\u00fcr Middleware-Software<\/a><\/li><\/ul><\/li><li class=\"\"><a href=\"#unsere-leistungen\">Unsere Leistungen<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 id=\"das-wichtigste-in-kurze\" class=\"wp-block-heading\">Das Wichtigste in K\u00fcrze<\/h2>\n\n\n\n<div class=\"wp-block-stackable-icon-list stk-block-icon-list stk-block stk-ee3ac56\" data-block-id=\"ee3ac56\"><svg style=\"display:none\"><defs><g id=\"stk-icon-list__icon-svg-def-ee3ac56\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 190 190\"><polygon points=\"173.8,28.4 60.4,141.8 15.7,97.2 5.1,107.8 60.4,163 184.4,39 173.8,28.4\"\/><\/svg><\/g><\/defs><\/svg><ul class=\"stk-block-icon-list__ul stk-block-icon-list--column\">\n<li class=\"wp-block-stackable-icon-list-item stk-block-icon-list-item stk-block stk-d1878a6\" data-block-id=\"d1878a6\"><div class=\"stk-block-icon-list-item__content\"><span class=\"stk--svg-wrapper\"><div class=\"stk--inner-svg\"><svg aria-hidden=\"true\" width=\"32\" height=\"32\"><use xlink:href=\"#stk-icon-list__icon-svg-def-ee3ac56\"><\/use><\/svg><\/div><\/span><span class=\"stk-block-icon-list-item__text\">Middleware bildet eine Verbindungsschicht zwischen Betriebssystem, Hardware, Anwendungen und Kommunikation.<\/span><\/div><\/li>\n\n\n\n<li class=\"wp-block-stackable-icon-list-item stk-block-icon-list-item stk-block stk-d4da0b2\" data-block-id=\"d4da0b2\"><div class=\"stk-block-icon-list-item__content\"><span class=\"stk--svg-wrapper\"><div class=\"stk--inner-svg\"><svg aria-hidden=\"true\" width=\"32\" height=\"32\"><use xlink:href=\"#stk-icon-list__icon-svg-def-ee3ac56\"><\/use><\/svg><\/div><\/span><span class=\"stk-block-icon-list-item__text\">Middleware hilft dabei, komplexe Systeme modularer und wartbarer zu machen.<\/span><\/div><\/li>\n\n\n\n<li class=\"wp-block-stackable-icon-list-item stk-block-icon-list-item stk-block stk-17fab12\" data-block-id=\"17fab12\"><div class=\"stk-block-icon-list-item__content\"><span class=\"stk--svg-wrapper\"><div class=\"stk--inner-svg\"><svg aria-hidden=\"true\" width=\"32\" height=\"32\"><use xlink:href=\"#stk-icon-list__icon-svg-def-ee3ac56\"><\/use><\/svg><\/div><\/span><span class=\"stk-block-icon-list-item__text\">Middleware kann Daten verteilen, Schnittstellen kapseln und Anwendungen entkoppeln<\/span><\/div><\/li>\n\n\n\n<li class=\"wp-block-stackable-icon-list-item stk-block-icon-list-item stk-block stk-c6893c9\" data-block-id=\"c6893c9\"><div class=\"stk-block-icon-list-item__content\"><span class=\"stk--svg-wrapper\"><div class=\"stk--inner-svg\"><svg aria-hidden=\"true\" width=\"32\" height=\"32\"><use xlink:href=\"#stk-icon-list__icon-svg-def-ee3ac56\"><\/use><\/svg><\/div><\/span><span class=\"stk-block-icon-list-item__text\">Eingesetzt wird sie h\u00e4ufig, wenn mehrere Softwaremodule zuverl\u00e4ssig zusammenarbeiten m\u00fcssen.<\/span><\/div><\/li>\n<\/ul><\/div>\n\n\n\n<div class=\"wp-block-stackable-image stk-block-image stk-block stk-c6ab3fa\" data-block-id=\"c6ab3fa\"><style>.stk-c6ab3fa .stk-img-wrapper{width:70% !important;}.stk-c6ab3fa .stk-img-wrapper img{border-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;}<\/style><figure><span class=\"stk-img-wrapper stk-image--shape-stretch\"><img loading=\"lazy\" decoding=\"async\" class=\"stk-img wp-image-1563\" src=\"https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/03\/embedded-software-support-hardware-support-pcbdesign-pickplace-1200.jpg\" width=\"1200\" height=\"675\" alt=\"Middleware Entwickler Embedded Software \"\/><\/span><\/figure><\/div>\n\n\n\n<h2 id=\"was-ist-middleware\" class=\"wp-block-heading\">Was ist Middleware?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Middleware ist eine vermittelnde Softwareschicht, die Funktionen bereitstellt, ohne selbst die eigentliche Fachlogik der Anwendung zu sein. Sie liegt zwischen der hardwarenahen Ebene und den dar\u00fcberliegenden Anwendungen. In einem eingebetteten System kann sie beispielsweise Zugriffe auf Sensoren, Aktoren, Speicher, Bussysteme, Netzwerkschnittstellen oder interne Kommunikationskan\u00e4le b\u00fcndeln. Die Anwendung muss dann nicht jedes Detail der Hardware, jedes Register oder jede Protokollbesonderheit direkt kennen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In einem Projekt entsteht Middleware h\u00e4ufig dort, wo ein System nicht mehr aus einer einzelnen monolithischen Anwendung besteht. Sobald mehrere Komponenten Daten austauschen, unterschiedliche Aufgaben zeitlich koordiniert werden oder verschiedene Schnittstellen bedient werden m\u00fcssen, wird eine strukturierte Verbindungsebene ben\u00f6tigt. Diese Ebene kann Nachrichten weiterleiten, Datenformate vereinheitlichen, Hardwarefunktionen abstrahieren oder Protokollabl\u00e4ufe kapseln.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr PICKPLACE ist Middleware keine isolierte Softwarekomponente, sondern ein Teil der Systemarchitektur. Sie muss zu den Eigenschaften der Hardware, zu den Anforderungen der Anwendung und zu den Kommunikationswegen passen. In der Praxis beginnt die Arbeit deshalb nicht mit einer einzelnen Schnittstelle, sondern mit Fragen wie: Welche Module greifen auf dieselben Daten zu? Welche Komponenten d\u00fcrfen direkt mit Hardware arbeiten? Welche Aufgaben laufen zyklisch, ereignisgesteuert oder zeitkritisch? Welche Funktionen sollen sp\u00e4ter austauschbar bleiben?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Middleware kann sehr unterschiedlich ausgepr\u00e4gt sein. In kleinen Ger\u00e4ten besteht sie m\u00f6glicherweise aus einer \u00fcberschaubaren Abstraktionsschicht f\u00fcr Peripherie, Zust\u00e4nde und Nachrichten. In gr\u00f6\u00dferen Systemen kann sie mehrere Dienste umfassen, etwa Konfigurationsverwaltung, Protokollumsetzung, interne Datenverteilung, Diagnosezugriffe oder Kommunikationsmanager. Entscheidend ist nicht die Gr\u00f6\u00dfe der Middleware, sondern ihre Aufgabe im System: Sie reduziert direkte Abh\u00e4ngigkeiten zwischen Anwendung, Hardware und Kommunikation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein typischer Fall ist ein Steuerger\u00e4t, das Sensordaten erfasst, verarbeitet und an andere Ger\u00e4te weitergibt. Ohne Middleware greifen mehrere Softwareteile m\u00f6glicherweise direkt auf Treiber, Kommunikationsstacks oder globale Datenstrukturen zu. \u00c4nderungen an einer Schnittstelle betreffen dann viele Stellen im Code. Mit einer klar definierten Middleware werden diese Zugriffe \u00fcber festgelegte Dienste gef\u00fchrt. Dadurch l\u00e4sst sich erkennen, welche Komponente welche Daten nutzt, wo Umwandlungen stattfinden und welche Schnittstellen bei einer \u00c4nderung betroffen sind.<\/p>\n\n\n\n<h2 id=\"warum-braucht-ein-gerat-uberhaupt-middleware\" class=\"wp-block-heading\">Warum braucht ein Ger\u00e4t \u00fcberhaupt Middleware?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Ger\u00e4t braucht Middleware, wenn die direkte Kopplung zwischen Anwendung und Hardware zu un\u00fcbersichtlich wird oder wenn mehrere Softwaremodule kontrolliert zusammenarbeiten m\u00fcssen. Das betrifft besonders Systeme, die wachsen, Varianten bilden oder \u00fcber l\u00e4ngere Zeit gepflegt werden. In solchen Projekten reicht es oft nicht aus, einzelne Funktionen direkt in die Applikation zu integrieren. Die Software ben\u00f6tigt eine Struktur, in der Zust\u00e4ndigkeiten getrennt und Schnittstellen nachvollziehbar beschrieben sind.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Grund liegt in der Wiederverwendung. Wenn dieselbe Anwendung auf mehreren Hardwarevarianten laufen soll, darf sie nicht an jede konkrete Pinbelegung, jedes Kommunikationsmodul oder jede Treiberimplementierung gebunden sein. Eine Middleware kann zwischen Anwendung und Hardware eine Abstraktion einf\u00fchren. Die Anwendung ruft dann eine fachlich benannte Funktion auf, w\u00e4hrend die Middleware entscheidet, welche hardwarenahe Umsetzung dahintersteht. Bei einem Hardwarewechsel muss nicht die gesamte Applikation angepasst werden, sondern vor allem die betroffene Anbindung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein weiterer Grund ist die Wartbarkeit. In langlebigen Systemen werden Fehler behoben, Funktionen erg\u00e4nzt, Protokolle erweitert oder Bauteile ersetzt. Wenn alle Ebenen direkt voneinander abh\u00e4ngen, wird jede \u00c4nderung schwer absch\u00e4tzbar. Middleware schafft definierte \u00dcberg\u00e4nge. Dadurch l\u00e4sst sich genauer pr\u00fcfen, ob eine \u00c4nderung nur eine Treiberschicht betrifft, eine Protokollanpassung erfordert oder Auswirkungen auf die Anwendung hat. Das ersetzt keine Analyse, reduziert aber die Anzahl ungekl\u00e4rter Abh\u00e4ngigkeiten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Ger\u00e4ten mit mehreren Softwaremodulen kann Middleware au\u00dferdem die Entkopplung unterst\u00fctzen. Ein Modul muss dann nicht wissen, welches andere Modul eine bestimmte Information erzeugt. Es nutzt eine definierte Schnittstelle oder empf\u00e4ngt eine Nachricht \u00fcber einen festgelegten Mechanismus. Das erleichtert sp\u00e4tere Erweiterungen, weil neue Module erg\u00e4nzt werden k\u00f6nnen, ohne bestehende Komponenten direkt umzubauen. Die Grenzen dieser Entkopplung m\u00fcssen jedoch im Projekt bewusst festgelegt werden. Zu viele Zwischenschichten k\u00f6nnen ein System schwer nachvollziehbar machen, zu wenige f\u00fchren zu enger Kopplung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 id=\"welche-aufgabe-ubernimmt-middleware-zwischen-hardware-und-anwendung\" class=\"wp-block-heading\">Welche Aufgabe \u00fcbernimmt Middleware zwischen Hardware und Anwendung?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Zwischen Hardware und Anwendung \u00fcbernimmt Middleware vor allem die Aufgabe, technische Details in nutzbare Dienste zu \u00fcbersetzen. Die Hardware stellt Register, Signale, Buszugriffe, Interrupts, Speicherbereiche oder Kommunikationskan\u00e4le bereit. Die Anwendung ben\u00f6tigt dagegen fachlich nutzbare Informationen und Aktionen, etwa einen Messwert, einen Ger\u00e4tezustand, einen Bedienbefehl oder eine Steuerungsfreigabe. Eine solche Mittelschicht bildet die Ebene, auf der diese beiden Sichtweisen zusammengef\u00fchrt werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein wesentlicher Bestandteil ist die HAL-Anbindung. Eine Hardware Abstraction Layer trennt die Anwendung von konkreten Hardwaredetails. PICKPLACE arbeitet in solchen Projekten daran, vorhandene Treiber, Board-Support-Pakete oder hardwarenahe Funktionen so einzubinden, dass dar\u00fcber klare Schnittstellen entstehen. Dabei wird festgelegt, welche Funktionen synchron oder asynchron arbeiten, wie Fehler zur\u00fcckgegeben werden, welche Initialisierungsreihenfolge gilt und welche Zust\u00e4nde ein Hardwarezugriff annehmen kann.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In Form von Protokoll-Systemen kann eine Middleware au\u00dferdem Daten aufbereiten. Ein Sensor liefert m\u00f6glicherweise Rohwerte, Zeitstempel oder Statusbits. Die Anwendung ben\u00f6tigt daraus abgeleitete Werte, Grenzzust\u00e4nde oder Ereignisse. Die Middleware kann hier die Erfassung, Plausibilisierung und Weitergabe strukturieren, sofern diese Aufgaben nicht zur eigentlichen Fachlogik geh\u00f6ren. Im Projekt muss gekl\u00e4rt werden, welche Umrechnung hardwarenah ist und welche Bewertung in die Anwendung geh\u00f6rt. Diese Abgrenzung verhindert, dass sp\u00e4tere \u00c4nderungen an fachlichen Regeln tief in hardwarenahe Software eingreifen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Kommunikationsschnittstellen \u00fcbernimmt Middleware h\u00e4ufig die Protokollkapselung. Ein Protokoll besteht nicht nur aus gesendeten und empfangenen Bytes. Es umfasst Rahmenaufbau, Zust\u00e4nde, Timeouts, Wiederholungen, Fehlerbehandlung, Adressierung und Dateninterpretation. Wenn diese Details in vielen Anwendungsteilen verteilt sind, entstehen schwer pr\u00fcfbare Abh\u00e4ngigkeiten. Eine Middleware kann das Protokoll in einem abgegrenzten Modul b\u00fcndeln und der Anwendung eine klarere Schnittstelle anbieten. PICKPLACE unterst\u00fctzt in diesem Bereich bei der Protokoll-Entwicklung und bei der Einordnung, welche Teile generisch gehalten werden k\u00f6nnen und welche projektspezifisch bleiben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine weitere Aufgabe ist die interne Datenverteilung. In HMI-Systemen, Gateways oder Maschinensteuerungen werden dieselben Informationen oft an mehreren Stellen ben\u00f6tigt. Ein Bedienzustand kann angezeigt, gespeichert, an eine Steuerung \u00fcbertragen und f\u00fcr Diagnosezwecke bereitgestellt werden. Middleware kann Regeln schaffen, wie Daten ver\u00f6ffentlicht, aktualisiert und konsumiert werden. Dabei geht es nicht nur um den Transport, sondern auch um Lebensdauer, Aktualit\u00e4t, Priorisierung und Fehlerf\u00e4lle. Ein Projekt muss kl\u00e4ren, ob Daten zyklisch \u00fcbertragen werden, ob Ereignisse ausreichen oder ob ein gemischtes Modell erforderlich ist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Middleware kann auch Diagnose- und Erweiterungspunkte bereitstellen. Wenn Ger\u00e4te im Feld aktualisiert oder erweitert werden, m\u00fcssen Zust\u00e4nde nachvollziehbar bleiben. Nicht jede interne Information sollte \u00fcber jede Schnittstelle zug\u00e4nglich sein, und nicht jede Diagnosefunktion geh\u00f6rt dauerhaft in das Serienverhalten eines Ger\u00e4ts.<\/p>\n\n\n\n<div class=\"wp-block-stackable-columns stk-block-columns stk-block stk-f980141 stk-block-background stk--has-background-overlay\" data-block-id=\"f980141\"><style>.stk-f980141 {background-image:url(https:\/\/www.pickplace.de\/wp-content\/uploads\/2026\/03\/programming-background-with-person-working-with-codes-computer-1200.jpg) !important;border-top-left-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;border-top-right-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;border-bottom-right-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;border-bottom-left-radius:var(--stk--preset--border-radius--xx-large, 32px) !important;overflow:hidden !important;}<\/style><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-f980141-column\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-3eb05d6\" data-v=\"4\" data-block-id=\"3eb05d6\"><style>.stk-3eb05d6 {border-top-width:0px !important;border-right-width:0px !important;border-bottom-width:0px !important;border-left-width:0px !important;}.stk-3eb05d6-container{padding-top:var(--stk--preset--spacing--60, 2.25rem) !important;padding-right:var(--stk--preset--spacing--60, 2.25rem) !important;padding-bottom:var(--stk--preset--spacing--60, 2.25rem) !important;padding-left:var(--stk--preset--spacing--60, 2.25rem) !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-3eb05d6-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-3eb05d6-inner-blocks\">\n<div class=\"wp-block-stackable-heading stk-block-heading stk-block-heading--v2 stk-block stk-61c3574\" id=\"heading-placeholder\" data-block-id=\"61c3574\"><style>.stk-61c3574 {align-items:center !important;max-width:500px !important;min-width:auto !important;display:flex !important;}<\/style><h2 class=\"stk-block-heading__text\"><span style=\"color: #ffffff;\" class=\"stk-highlight\">Embedded Software-Entwicklung mit PICKPLACE <\/span><\/h2><\/div>\n\n\n\n<div class=\"wp-block-stackable-text stk-block-text stk-block stk-628a190\" data-block-id=\"628a190\"><p class=\"stk-block-text__text\"><span style=\"color: #ffffff;\" class=\"stk-highlight\"><strong>Entwickeln Sie mit PICKPLACE robuste und zuverl\u00e4ssige Echtzeitsysteme.<\/strong><\/span> <br><span style=\"color: #ffffff;\" class=\"stk-highlight\"><strong>Jetzt Projekt anfragen und Ihr elektronisches System effizient in die Umsetzung bringen.<\/strong><\/span><\/p><\/div>\n\n\n\n<div class=\"wp-block-stackable-button-group stk-block-button-group stk-block stk-f2b9581\" data-block-id=\"f2b9581\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-button-group\">\n<div class=\"wp-block-stackable-button stk-block-button stk-block stk-027953f\" data-block-id=\"027953f\"><a class=\"stk-link stk-button stk--hover-effect-darken\" href=\"https:\/\/www.pickplace.de\/category\/software\/\"><span class=\"stk-button__inner-text\">Mehr <\/span><\/a><\/div>\n<\/div><\/div>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<h2 id=\"weitere-fachliche-einordnung\" class=\"wp-block-heading\">Weitere fachliche Einordnung<\/h2>\n\n\n\n<h3 id=\"typische-ausgangslagen-in-middleware-projekten\" class=\"wp-block-heading\">Typische Ausgangslagen<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Middleware-Projekte starten h\u00e4ufig mit einer bestehenden Softwarebasis, die \u00fcber mehrere Entwicklungszyklen gewachsen ist. Funktionen wurden erg\u00e4nzt, Kommunikationswege erweitert oder Hardwarevarianten eingef\u00fchrt. Dadurch entstehen direkte Abh\u00e4ngigkeiten zwischen Anwendungscode, Treibern und Protokollen. Eine erste Aufgabe besteht dann darin, diese Abh\u00e4ngigkeiten sichtbar zu machen. PICKPLACE analysiert, welche Module auf welche Daten zugreifen, wo Hardwaredetails in der Anwendung auftauchen und welche Schnittstellen mehrfach oder uneinheitlich umgesetzt wurden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine andere Ausgangslage ist die Neuentwicklung eines Ger\u00e4ts oder einer Plattform. In diesem Fall wird die Middleware nicht aus bestehendem Code herausgel\u00f6st, sondern als Teil der Architektur geplant. Dabei werden Schnittstellen, Zust\u00e4ndigkeiten und Datenfl\u00fcsse fr\u00fch beschrieben. Die Umsetzung kann dann schrittweise erfolgen: zuerst grundlegende Hardwareanbindung, danach Kommunikationsdienste, anschlie\u00dfend Verteilung und \u00dcbergabe an die Anwendung.<\/p>\n\n\n\n<h3 id=\"technische-abhangigkeiten\" class=\"wp-block-heading\">Technische Abh\u00e4ngigkeiten<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Middleware h\u00e4ngt von mehreren Ebenen ab. Das Betriebssystem oder Laufzeitsystem bestimmt, welche Tasks, Threads, Interruptmechanismen oder Speichergrenzen verf\u00fcgbar sind. Die Hardware legt fest, welche Schnittstellen, Timings und Ressourcen ber\u00fccksichtigt werden m\u00fcssen. Die Anwendung definiert, welche Daten ben\u00f6tigt werden, welche Latenzen akzeptabel sind und welche Zust\u00e4nde sichtbar sein m\u00fcssen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese Abh\u00e4ngigkeiten wirken sich direkt auf die Architektur aus. Eine Middleware f\u00fcr ein kleines Ger\u00e4t ohne Betriebssystem unterscheidet sich von einer Middleware auf einem Embedded-Linux-System. Auch die Frage, ob Daten zyklisch, ereignisgesteuert oder \u00fcber Nachrichten verarbeitet werden, ergibt sich aus diesen Rahmenbedingungen. <\/p>\n\n\n\n<h3 id=\"ubergang-von-analyse-zu-umsetzung\" class=\"wp-block-heading\">\u00dcbergang von Analyse zu Umsetzung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nach der Analyse werden Schnittstellen und Verantwortlichkeiten festgelegt. Dazu geh\u00f6ren Namensr\u00e4ume, Datenmodelle, Fehlercodes, Initialisierung, Lebensdauer von Objekten und Regeln f\u00fcr die Kommunikation zwischen Modulen. Erst danach ist sinnvoll erkennbar, welche Teile neu entwickelt, welche weiterverwendet und welche angepasst werden k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bei bestehenden Systemen kann die Umsetzung schrittweise erfolgen. Zuerst werden besonders eng gekoppelte Stellen identifiziert. Danach werden einzelne Hardwarezugriffe, Protokollteile oder Datenpfade in Middleware-Module \u00fcberf\u00fchrt. So l\u00e4sst sich der Umbau in nachvollziehbare Arbeitspakete teilen. Bei Neuentwicklungen kann die Middleware parallel zur Applikation entstehen, sofern die Schnittstellen fr\u00fch genug beschrieben werden.<\/p>\n\n\n\n<h3 id=\"beispiele-fur-middleware\" class=\"wp-block-heading\">Beispiele f\u00fcr Middleware-Software<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Protocol Stack <a href=\"https:\/\/savannah.nongnu.org\/projects\/lwip\/\" target=\"_blank\" rel=\"noopener\">lwIP<\/a><\/li>\n\n\n\n<li>Protocol Stack <a href=\"https:\/\/www.wolfssl.com\/\" target=\"_blank\" rel=\"noopener\">wolfSSL<\/a><\/li>\n\n\n\n<li>Protocol Stack <a href=\"https:\/\/mosquitto.org\/\" target=\"_blank\" rel=\"noopener\">Eclipse Mosquitto<\/a><\/li>\n\n\n\n<li>GUI Stack <a href=\"https:\/\/lvgl.io\/\" target=\"_blank\" rel=\"noopener\">LVGL<\/a><\/li>\n\n\n\n<li>Protocol Stack <a href=\"https:\/\/www.trustedfirmware.org\/projects\/mbed-tls\/\" target=\"_blank\" rel=\"noopener\">Mbed TLS<\/a><\/li>\n\n\n\n<li>Protocol Stack <a href=\"https:\/\/github.com\/CANopenNode\/CANopenNode\" target=\"_blank\" rel=\"noopener\">CANopenNode<\/a> <\/li>\n\n\n\n<li>Protocol Stack <a href=\"https:\/\/cyclonedds.io\/\" target=\"_blank\" rel=\"noopener\">Eclipse Cyclone DDS<\/a>.<\/li>\n<\/ul>\n\n\n\n<h2 id=\"unsere-leistungen\" class=\"wp-block-heading\">Unsere Leistungen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PICKPLACE unterst\u00fctzt Middleware-Projekte von der Architektur bis zur konkreten Anbindung einzelner Schnittstellen. Im Mittelpunkt stehen dabei klare Zust\u00e4ndigkeiten zwischen Hardware, Betriebssystem, Kommunikationsschicht und Anwendung.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>HAL-Anbindung: <\/strong>Wir binden hardwarenahe Funktionen \u00fcber definierte Schnittstellen an und trennen dabei Hardwaredetails von der Anwendungslogik. Dazu geh\u00f6ren Initialisierung, Zugriffsmuster, Fehlerbehandlung und die Abstimmung mit vorhandenen Treibern oder Board-spezifischer Software.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Protokoll-Entwicklung: <\/strong>Wir entwickeln oder strukturieren Kommunikationsprotokolle und kapseln deren Abl\u00e4ufe in abgegrenzten Modulen. Dazu z\u00e4hlen Nachrichtenaufbau, Zustandsverhalten, Timeouts, Fehlerpfade und die \u00dcbergabe der Daten an interne Softwaremodule.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Architektur: <\/strong>Wir erarbeiten Middleware-Strukturen f\u00fcr Ger\u00e4te, Steuerungen und vernetzte Systeme. Dabei beschreiben wir Modulgrenzen, Datenfl\u00fcsse, Schnittstellen und Abh\u00e4ngigkeiten, damit Weiterentwicklung, Fehlersuche und Migration auf neue Plattformen planbar werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Je nach Projektstand analysiert PICKPLACE bestehende Software, bewertet Kopplungen zwischen Modulen, entwirft eine Middleware-Struktur oder setzt einzelne Bestandteile um. Bei Redesigns liegt der Schwerpunkt darauf, bestehende Funktionen nicht unn\u00f6tig zu ver\u00e4ndern, sondern klare \u00dcberg\u00e4nge einzuf\u00fchren. Bei neuen Systemen liegt der Schwerpunkt auf einer Architektur, die Hardwareanbindung, Kommunikation und Anwendung nachvollziehbar voneinander trennt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Middleware beschreibt die Softwareebene zwischen Betriebssystem, Hardware, Kommunikationsschnittstellen und Anwendung. PICKPLACE arbeitet in Middleware-Projekten vor allem dort, wo Ger\u00e4te, Steuerungen oder vernetzte Systeme aus mehreren Softwaremodulen bestehen und klare \u00dcberg\u00e4nge zwischen Hardwarezugriff, Datenverarbeitung und Applikationslogik ben\u00f6tigen. Typische Projektkontexte sind Steuerger\u00e4te, HMI-Systeme, Gateways, Maschinensteuerungen und langlebige Ger\u00e4teplattformen, die \u00fcber Jahre gepflegt, erweitert oder auf neue Hardware \u00fcbertragen werden.<\/p>\n","protected":false},"featured_media":1562,"template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-2492","projekt","type-projekt","status-publish","has-post-thumbnail","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/projekt\/2492","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/projekt"}],"about":[{"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/types\/projekt"}],"version-history":[{"count":1,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/projekt\/2492\/revisions"}],"predecessor-version":[{"id":2493,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/projekt\/2492\/revisions\/2493"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/media\/1562"}],"wp:attachment":[{"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/media?parent=2492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/categories?post=2492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pickplace.de\/de\/wp-json\/wp\/v2\/tags?post=2492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}