lunatic82 Geschrieben 4. Februar 2002 Teilen Geschrieben 4. Februar 2002 Kann mir jemand erklären wobei es sich um Wrapper und Parser handelt bzw. eine Seite nennen auf der es einfach - und gut zu verstehen - erklärt wird? Ich hab' mich schon dumm und dusselig gegoogelt zu dem Thema aber bisher nichts brauchbares gefunden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 4. Februar 2002 Teilen Geschrieben 4. Februar 2002 Diese Begriffe sind teilweise etwas schwammig und manchmal streitet man sich wann jetzt was was ist. Dabei liegt ein Wrapper, Adapter, Emulator, Simulator teilweise so nah beieinander, daß man echte Entscheidungsschwierigkeiten hat, um was es sich nun handelt. Manchmal liegt die Wahrheit dazwischen (wie so oft im Leben). Kurz und bündig könnte man vielleicht sagen, daß ein Parser eine Scriptsprache (kann alles mögliche sein - egall ob Spiel (Textadventure, etc.), Benutzerdaten (Binärdaten in Codewort mit folgenden Dateninhalten) oder sonstwelchen Textinformationen verarbeitet. Wichtig ist dabei, daß ein Parser eine solche Texteingabe analysiert und entweder entsprechend die Dateninhalte und Befehle umsetzt oder in ein anderes Datenformat Konvertiert. Grundsätzlich kann man mal sagen, daß zum Parser immer ein Befehl mit aufgestellten Regeln entspricht und zugehörige Zusatzinformationen gehören, die dann irgendwelche Abläufe in Gang setzen - dabei sollte ein guter Parser auch Syntaxfehler erkennen und entsprechend reagieren. Ein Wrapper ist eine Art Übersetzungsschicht. Z.B. (wenn man schon beim Beispiel mit den Spielen ist) hat 3DFX eine eigene 3D-Schnittstelle für die eigenen Grafikkarten entworfen (Glide). Glide ist sowas ähnliches wie Direct3D oder OpenGL - nur halt wesentlich schneller, weil es auf ein bestimmtes Produkt optimiert ist. Ein Glide-Wrapper ist dann eine Schnittstelle, die sich aufrufen läßt wie ein echter Glide-Treiber und (soweit möglich) alle Funktionen genauso anbietet - also für Programme eine tatsächliche Glide-Schnittstelle darstellt. Die Daten zu "wrappen" bedeutet, daß die Eingangsinformationen sofern machbar auf eine andere Grafikschnittstelle umgeleitet werden (wie das o.g. Direct3D oder OpenGL). Das bedeutet, die Grafikausgabe der reinen 3DFX-Programme funktioniert plötzlich auf anderen Schnittstellen und liefert annähernd gleiche Ergebnisse wie mit einer echten 3DFX-Grafikkarte. Ein Wrapper kann für alles mögliche stehen - um Programmkompatibilitäten zu gewährleisten (bei neuen Versionen, Updates, neue Standards) - um noch nicht vorhandene Hardware zu simulieren (ups - jetzt habe ich noch was anderes ins Feld geworfen, darauf gehe ich zum Schluß kurz ein) und Programmabläufe zu ermöglichen, die so sonst nicht mehr möglich wären. Ein Wrapper kann also auch komplizierte Schnittstellen vereinfachen und stattdessen simplere Benutzerschnittstellen anbieten - also alles unnötig Komplizierte vom Hauptprogramm fernhalten und nur die Funktionen anbieten, die tatsächlich benötigt werden. Das nennt sich dann nebenbei ein Adapter. Vergleichbar ist ein Wrapper fast mit einer Emulation. Eine Emulation gaukelt eine komplette Umgebung bis ins kleinste Detail vor (z.B. einen anderen Computer) und erlaubt es die Programme unabhängig von der Orginalhardware ablaufen zu lassen. Ein Wrapper macht eigentlich dasselbe, kümmert sich jedoch nicht um Details wie eine echte Emulation (sonst wäre er ein Emulator), sondern bietet lediglich die gleichen Schnittstellen nach außen hin an - was dahinter geschieht ist für die Programmschichten nebensächlich - jede ist zufrieden seine Funktionen benutzen zu können und die Daten weiterreichen zu dürfen - und somit lauffähig zu sein. Ganz kurz zum Unterschied zwischen einer Emulation und einer Simulation. Während eine Emulation jedes nur denkbare echte Detail nachstellt (von Taktzyklen, hardwareabhängigen Funktionen, usw.) versucht eine Simulation nur eine annähernde Darstellung der Realität. Man ahmt nur ein Verhalten auf Softwareebene nach - wie das geschieht spielt keine Rolle und das darf von der Realität absolut abweichen, solange die Ergebnisse akzeptabel nah am Orginal sind. Hier wird sogar mit absicht versucht alle überflüssigen Details zu mißachten - es liegt das Augenmerk nur auf das Ergebnis gerichtet - der Weg um dieses zu erreichen spielt nur eine Nebensächliche Rolle. Um das ganze zu verdeutlichen für jeden einen klaren Einsatzbereich: Simulationen werden oft erstellt um Software für noch nicht existierende Hardware zu erstellen und schon im Vorfeld austesten zu können. Emulationen werden verwendet um z.B. fehler in Hardwareschaltungen zu erkennen, bevor sie überhaupt existieren - und somit Kosten zu vermeiden. Wrapper werden verwendet um ein Programm, welches beispielsweise für eine herstellerspezifische Datenbankschnittstelle entworfen ist, mit einer Anderen laufen zu lassen, ohne das Hauptprogramm ändern zu müssen. Der Wrapper versucht so nah wie möglich am Orginal zu liegen und konvertiert dabei Funktionen und Daten "on-the-fly" sozusagen. Ein Addapter macht nahezu dasselbe wie ein Wrapper, wobei hier Wert auf die Abstraktion gelegt wird. Man versucht die Schnittstellen zwischen einer Datenbank und dem Hauptprogramm zu vereinfachen ohne auf die Vorteile der Datenbank verzichten zu müssen. Es wird also bewußt eine abstrakte Schnittstelle geschaffen. Der Adapter kann nach ja nach Bedarf oder Belieben von den echten Schnittstellen abweichen. Reicht das ungefähr als Erklärung? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lunatic82 Geschrieben 4. Februar 2002 Autor Teilen Geschrieben 4. Februar 2002 jo, klingt gut. Jetzt hab' ich was worüber ich brüten kann um es in der gesamtheit zu verstehen :-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.