Academic Über NI Veranstaltungen NI Developer Zone Support Lösungen Online Store Kontakt MyNI

Was versteht man unter "Vereinfachte Entwicklung verteilter Anwendungen"?

Die Verbesserung bestehender Technologien schreitet in hohem Tempo voran - Prozessoren, Kommunikationsschnittstellen, I/O-Karten und Sensoren werden mit erstaunlicher Geschwindigkeit weiterentwickelt und ihr Zusammenspiel optimiert. Ingenieure sind heute in der Lage, Produktentwicklungs-, Steuer- und Regelsysteme sowie Testanwendungen um zusätzliche Prozessoren zu erweitern und besser an ihre individuellen Bedürfnisse anzupassen. Treibende Kraft dieses technologischen Fortschritts ist der Einsatz kommerzieller Bauteile, die dem Mooreschen Gesetz folgend alle 18 Monate mit verdoppelter Transistordichte und Geschwindigkeit aufwarten.

Damit Anwender diese verbesserte Prozessorleistung für ihre Lösungen nutzen können, ist jedoch das bloße Hinzufügen von leistungsfähigeren Prozessoren nicht ausreichend. Entwickler müssen in der Lage sein, ihre auf mehrere Prozessoren verteilte Anwendung zu programmieren. Ingenieure und Wissenschaftler bauen bereits jetzt auf die neuen, leistungsstarken Prozessortechnologien und sind bemüht, ihre Vorteile zu nutzen. Die Programmierung mehrerer Prozessoren, die entweder auf einer Baugruppe untergebracht oder auf verschiedene Bussystem- bzw. netzwerkübergreifende Geräte verteilt sind, stellt Softwareentwickler vor eine Reihe neuer Herausforderungen. Als schwierig erweist sich:

  • die Programmierung verschiedener Prozessoren innerhalb eines Systems - dies gilt insbesondere für Prozessoren, die auf unterschiedlichen Architekturen basieren (Mikroprozessoren im Vergleich zu DSP- und FPGA-Prozessoren),
  • der Datenaustausch zwischen verschiedenen Prozessoren, insbesondere zwischen Echtzeitsystemen und nicht deterministischen Systemen, ohne die Leistungsfähigkeit dieser Systeme zu beeinträchtigen,
  • der Datenaustausch zwischen Prozessoren, die räumlich auf unterschiedliche Systeme in einem Netzwerk verteilt sind,
  • die Verwaltung und Überwachung sämtlicher Knotenpunkte, die ein verteiltes System bilden,
  • die Synchronisierung von Arbeitsprozessen innerhalb von und zwischen dezentralen Geräten und Systemen.

Ein verteiltes System ist ein System, das mehrere Prozessoren zur Ausführung einer Aufgabe nutzt. Diese Systeme können gleiche oder unterschiedliche Architekturen einsetzen - Mikroprozessoren, FPGAs, DSPs oder jede Art von Rechnersystem. Als verteiltes System wird jedes System bezeichnet, das mehrere Rechen-Engines auf einer Baugruppe, innerhalb von rechnergestützten Einheiten (Instrumente) oder auf verteilten Echtzeitsystemen kombiniert. Sie alle stellen hinsichtlich ihrer programmiertechnischen Entwicklung eine Herausforderung dar.

Was versteht man unter "Vereinfachte Entwicklung verteilter Anwendungen"?

National Instruments LabVIEW 8 stellt eine Reihe von Technologien und Werkzeugen zur Verfügung, die es Anwendern ermöglichen, verteilte Systeme sehr schnell zu entwickeln. Mehr noch, mit NI LabVIEW 8 wird die Entwicklung verteilter, leistungsstarker Anwendungen nicht nur Wirklichkeit, sondern auch eine einfach zu bewältigende Aufgabe. Die vereinfachte Entwicklung verteilter Anwendungen mit LabVIEW 8 wird speziell durch folgende Funktionalitäten unterstützt:

  • Möglichkeit zur Programmierung aller Knotenpunkte - Host und Zielgeräte - eines verteilten Systems. Die grafische Programmiersprache LabVIEW verleiht Anwendern die Fähigkeit, Zielgeräte verschiedenster Art mit einer einheitlichen Entwicklungsplattform zu programmieren - Desktop-Rechner, Echtzeitanwendungen, FPGAs, PDAs, Embedded-Mikroprozessoren sowie DSPs.
  • Möglichkeit zur Verwaltung und Überwachung aller Knotenpunkte eines verteilten Systems - mithilfe des LabVIEW-Projekt-Explorers. Der Projekt-Explorer dient dem Anwender als Werkzeug, um allen Programmcode eines Projekts in einem einzigen Fenster anzuzeigen, zu ändern, auszuführen und zu korrigieren, unabhängig davon, auf welchem Zielgerät er ausgeführt wird.
  • Vereinfachter Datenaustausch zwischen verteilten Anwendungen mithilfe einer einfach zu bedienenden Programmierschnittstelle - der Umgebungsvariable. Die Umgebungsvariable ermöglicht den einfachen Datenaustausch zwischen verteilten Anwendungen - einschließlich Echtzeitanwendungen -, ohne die Leistungsfähigkeit dieser Systeme zu beeinträchtigen. Die Umgebungsvariable macht Kommunikationsschleifen und Echtzeit-FIFOs überflüssig. Die Komplexität der Low-Level-TCP-Funktionen entfällt. Anwender können Umgebungsvariablen mithilfe von interaktiven Dialogen einfach konfigurieren und diese zur Datenübertragung zwischen verteilten Systemen bzw. zur Anbindung verteilter Systeme an verschiedene Datenquellen einsetzen. Ebenso ist es möglich, Datendienste wie z. B. Datenaufzeichnungsfunktionen, Alarmfunktionen und Kalenderfunktionen dialoggeführt einzurichten.
  • Möglichkeit zur Datensynchronisierung innerhalb und zwischen verteilten Geräten und Systemen - Das Timing und die Synchronisierung von hochleistungsfähigen, benutzerdefinierten Mess-, Steuer- und Regelanwendungen stellt nach wie vor eine zentrale Herausforderung dar. Auf NI-Technologien basierende Anwendungen zeichnen sich durch ihre offene Architektur und ihre benutzerdefinierte Funktionalität aus. Sie liefern dem Anwender somit Lösungen, die weitaus mehr Flexibilität bieten als herkömmliche Instrumente oder SPS-basierte Lösungen.

Erfahren Sie mehr zur Umgebungsvariablen

Erfahren Sie, wie im LabVIEW-Projekt die Ausführung von Programmcode auf verteilten Zielgeräten koordiniert und verwaltet wird

Informieren Sie sich über Deterministisches Ethernet – eine neue Technologie zur Synchronisierung autarker Geräte und Systeme