Orthogonal
Der Begriff orthogonal leitet sich vom griechischen orthogenios („ortho“ bedeutet „richtig“ und „gon“ bedeutet „angewinkelt“) her. Orthogonale Konzepte stammen aus der höheren Mathematik, speziell aus der linearen Algebra, der Euklidischen Geometrie und sphärischen Trigonometrie. Orthogonal und perpendikular werden häufig synonym verwendet.
Ein verwandter Begriff, orthogonale Projektion, beschreibt eine Methode, um dreidimensionale Objekte mit einer linearen Perspektive zu zeichnen. Der Begriff bezieht sich auf die Linien, die diagonal entlang paralleler Linien gezogen werden, welche sich in einem sogenannten „Fluchtpunkt“ treffen. Solche perspektivischen Linien sind orthogonal oder perpendikular zueinander.
Die Definition von orthogonal wurde auf allgemeine Anwendungen erweitert und bedeutet in diesem Zusammenhang, dass die Eigenschaft unabhängig (in Beziehung zu etwas anderem) ist. Orthogonal kann auch nicht-redundant, nicht überschneidend oder irrelevant bedeuten.
Orthogonale Linien und Mathematik
In der Euklidischen Geometrie beziehen sich orthogonale Objekte durch ihre Perpendikularität aufeinander. Linien oder Liniensegmente, die an ihrem Schnittpunkt perpendikular sind, bezeichnet man als orthogonal bezogen. Ebenso werden zwei Vektoren als orthogonal betrachtet, wenn sie einen 90-Grad-Winkel bilden. Daher führt die Bewegung eines Vektors entlang einer orthogonalen X-Y-Achse nicht zu einer entsprechenden Bewegung des zweiten Vektors. Die Vektoren sind aufeinander bezogen, aber vollständig unabhängig voneinander.
Orthogonale Steuerfunktionen in Computerhardware
In der Computer-Terminologie ist etwas, zum Beispiel eine Programmiersprache oder ein Datenobjekt, orthogonal, wenn es ohne Überlegungen dazu benutzt werden kann, ob und wie es etwas anderes beeinflusst. Mit einer orthogonalen Sprache können Softwareentwickler eine Funktion eines Systems verändern, ohne dass dadurch untergeordnete oder abhängige Funktionen ebenfalls verändert werden. Anders gesagt, bedeutet orthogonales Design, dass es nur eine Methode gibt, die Eigenschaft des zu steuernden Systems zu ändern – die Operation A auszuführen hat keinen Einfluss auf die Operation B. Diese Herangehensweise vereinfacht die Fehlersuche in Programmcode.
Orthogonale Softwareentwicklung strebt nach Einfachheit bei der Zusammenstellung von Befehlssets. Eine Programmiersprache wird aus nur wenigen Komponenten zusammengesetzt, die nur beschränkt kombinierbar sind. Das verringert die Zahl der Fehler und ermöglicht Entwicklern, schneller Programme in der Sprache zu lesen und zu schreiben.
Orthogonale Programmiersprachen
Eine Programmiersprache ist orthogonal, wenn ihre Funktionen benutzt werden können, ohne darüber nachzudenken, wie diese Verwendung andere Funktionen beeinflusst. Pascal wird manchmal als orthogonale Sprache betrachtet, C++ ist eine nicht orthogonale Sprache.
Funktionen eines Programms, die kompatibel zu denen älterer Versionen sind, sogenannte rückwärtskompatible Funktionen, haben eine orthogonale Beziehung zu den Funktionen der früheren Version, weil beide wechselseitig voneinander unabhängig sind; man muss sich keine Sorgen darüber machen, ob die Nutzung der Funktionen der einen Version unbeabsichtigte Auswirkungen hat, weil sie mit Funktionen der anderen Version interagieren. Funktionen und Programme können deshalb als wechselseitig orthogonal bezeichnet werden.
Orthogonale Persistenz und Storage
Die Zeit, für die in einem Computer erzeugte Daten in dessen Storage gehalten werden, bezeichnet man als dessen Persistenz. Orthogonale Persistent (manchmal auch als transparente Persistenz bezeichnet) ist eine Eigenschaft von Programmiersystemen. Sie ermöglicht Programmierern, Daten gleich zu behandeln, egal, wie lange diese Daten gespeichert werden. Häufig müssen Programmierer unterschiedliche Herangehensweisen und Codierungen für den Datenzugriff verwenden, je nachdem, wie lange diese Daten gespeichert wurden. Verwenden sie ein Programmiersystem mit orthogonaler Datenpersistenz, können Programmierer alle Daten unabhängig von ihrer Persistenz-Charakteristik gleich behandeln. Das spart Programmierzeit und vereinfacht es, referentielle Integrität zu erzwingen (eine Beschränkung, die korrekte Datenvalidität sicherstellt)
Orthogonale Persistenz versus nicht-orthogonale Persistenz
Eine charakteristische Eigenschaft orthogonaler Persistenz besteht darin, dass Datenobjekte dann geladen werden, wenn man sie benötigt. So laden navigatorische Datenbankanfragen das jeweilige Zielobjekt, wenn sie zwischen den Referenzen in einem Objekt wechseln. Die meisten Industriestandard-Betriebssysteme (OS) unterstützen orthogonale Persistenz.
Mögliche Nachteile orthogonaler Persistenz kreisen meist um Ineffizienz und Programmierprobleme auf der semantischen Ebene. Orthogonal-persistenten Systemen fehlt ein Fenster höherer Ebene auf den persistenten Datenspeicher. Entwickler können sich also nicht darauf verlassen, dass sich Datenobjekte systematisch aufeinander beziehen.
Nicht-orthogonale Persistenz erfordert, dass Schreib- und Lesevorgänge auf den Speicher programmatisch und basierend auf spezifischen Befehlen in einem Programm oder einer Applikation stattfinden. Das OS stellt nur nichtflüchtigen Speicher zur Verfügung, der für die Applikation „persistent“ ist, sobald die Lese- oder Schreiboperation abgeschlossen ist.
Forscher an der Universität von Sydney, Australien, stellten fest, dass nicht-orthogonale Systeme es ermöglichen, Datenkompression „auf der grob granulierten Objektebene zu implementieren, entweder transparent oder bei Bedarf der Anwender. Ein orthogonal persistentes System muss andererseits Zufallszugriffe auf jedes Objekt jederzeit erlauben, so dass Datenkompression im Allgemeinen nicht implementierbar ist.“
Die Forscher stellten weiter fest, dass ein persistentes System mit grob granulierten Datenobjekten potentiell den Speicherschutz verstärkt und Themen wie „Verteilung, Packen von Daten, das Setzen und Prüfen von Berechtigungen, den Datentransfer zwischen persistenten Datenspeichern und das effektive Implementieren von Persistenz“ vereinfacht.
Orthogonale Funktion bei Vernetzung und Switch-Virtualisierung
Orthogonales Frequenzmultiplex (Orthogonal Frequency-Division Multiplexing, OFDM) ist ein Netzwerkschema mit Mehrfachzugriff, hoher Datenzugriffsrate und großer Bandbreite. OFDM teilt ein Signal auf mehrere schmalbandige Kanäle unterschiedlicher Frequenz auf. Diese Form der digitalen Modulation wurde in den 1960er Jahren entwickelt, um die Signalinterferenz zwischen Kanälen mit benachbarten Frequenzen zu reduzieren. Neben dem Hochgeschwindigkeitsdatenzugriff werden OFDM-modulierte Signale in digitalen Radioübertragungen und beim Digitalfernsehen verwendet.
Außerdem gibt es orthogonale Funktionen in virtualisierten Speichernetzen, die auf intelligenten Switches aufgebaut sind. Die orthogonalen Switching-Funktionen umfassen im Allgemeinen die Verkabelungs- und Transportkomponenten, die Blockspeicher, die Virtualisierung und das RAID-Management sowie die das Dateisystem, das die Datenobjekte speichert.
Folgen Sie SearchStorage.de auch auf Twitter, Google+ und Facebook!