Hallo Michael, etwas verspätet aber immerhin.
Hallo Liste
ganz kurze Frage was ist ein "Wrapper" ???
danke mfg Michael ...
to wrap steht im Englischen für einpacken, einwickeln. Und genau das macht, wenn auch nicht im körperlichen Sinn, ein wrapper in der Software. Dabei wird um eine Schnittstelle eine weitere Schicht (Verpackung) gelegt, die zunächst nur dazu da ist, die darunterliegenden Details zu verbergen. Ziel ist immer eine Form der Abstraktion. So kennt Linux ein virtuelles Dateisystem, unter dem dann die konkreten Dateisystem (ext2fs, xiafs, msdos, hpfs, ...) liegen. In der objektorientierten Programmierung wird auch der Begriff einer Wrapper-Klasse verwendet. Dieses Konzept ist aber nicht an die objektorientierte Programmierung gebunden, sondern ist ganz allgemein auch im prozeduralen Stil (vergl. virtuelles Dateisystem) realisierbar. Mit der Vereinbarung dieser zusätzlichen Schicht entsteht eine Schnittstelle, die, so sie gut geplant ist, die Details der darunterliegenden Ebenen verbirgt und die Möglichkeit schafft nachträglich darunter Veränderungen vornehmen zu können, sowohl zur Laufzeit (siehe Linux modutils) als auch zur Entwurfszeit. Wenn man den Begriff etwas weiter faßt als er üblicherweise verwendet wird, dann findet man das Grundkonzept auch in einem Proxy-Server oder einer Firewall wieder. Beispiele: 1. TCP/IP: Der Dämon inetd nimmt eingehende Anforderungen für den Verbindungsaufbau mit einem bestimmten Port entgegen und startet die durch die services-Datei zugeordneten Dienste. Dieser Mechanismus macht keinerlei Kontrollen. Für einfache Sicherheitsmechnismen auf der Ebene der IP-Adresse des Verbindungaufnehmenden Hosts gibt es tcp_wrapper, bei Linux ist das in der Regel tcpd, der die Möglichkeit hat, auf Ebene der ports und damit der assoziierten Dienste eine Prüfung auf zugelassene oder ausgeschlossene Hosts (= IP-Adressen) vorzunehmen. Hierzu mehr im Security-HOWTO. 2. objektorientierte Programmierung: Eiserne Regel bei der Verwendung vorgefertigter Klassen ist immer zuallererst eine Ableitung dieser (Basis-)Klassen zu machen und erst darauf die eigene Arbeit zu gründen. Unterläßt man das, hat man bei späteren Ergänzungen zwischen der Basisklasse und der eigene Klassenhierarchie ernste Probleme. 3. wrapper.h: ein Beispiel aus den Linux-Kernel-Quellen in der Programmiersprache C, in dem die Verpackung lediglich aus einem Satz von defines besteht, mit dem die standardiesierte Schnittstelle zur Kompilierzeit auf die konkrete Implementierung umgesetzt wird. Ich hoffe, Deine Frage ist damit leidlich beantwortet. Martin -- Martin Jacobs * Windsbach * 100.179370@germanynet.de -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux