ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/docs/pws2004/goofed.pod
Revision: 1.2
Committed: Mon May 17 14:16:18 2004 UTC (22 years, 5 months ago) by root
Branch: MAIN
Changes since 1.1: +28 -2 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 =head1 GOOFED - Generic Object Oriented Flexible Extensible Daemon
2    
3     =head2 Abstract
4    
5 root 1.2 Perl ist eine tolle Sprache. Leider hat sie auch viele
6     Abhängigkeiten. Besonders bei Embedding muss man im Allgemeinen eine
7     ganze Perl-Installation "mitschleppen". Bei einem bestimmten Projekt
8     musste ich ohne externe Dateien oder andere Abhängigkeiten auskommen. Um
9     trotzdem Perl einsetzen zu können, musste alles in das Binary
10     wandern. Die Probleme und Lösungen, die ich fand, sind im Folgenden
11     beschrieben.
12 root 1.1
13 root 1.2 =head1 Wozu, weshalb und warum?
14    
15     Das Projekt, für das Goofed entstand, bestand darin, den Radius-Server
16     eines großen Internet-Providers in einigen Funktionen zu ersetzen. Da die
17     Anforderungen durch viele Jahre hinweg sehr speziell wurden (ein typisches
18     "I<Wir> setzen den Standard"-Phänomen) und die alte Codebasis neuen
19     Anforderungen nicht mehr gut gewachsen war, musste ein neuer Daemon her.
20    
21     Recht früh kam die Idee, im Kern für die komplizierten Regeln eine
22     High-Level-Skriptsprache zu verwenden und nur für das eigentliche
23     Radius-Paket-Management C zu verwenden.
24    
25     Perl schien zuerst an vielen Gründen zu scheitern: kompliziertes
26     Build-System, viele Abhängigkeiten und Dateien, keine gute Kontrolle
27     über den Speicherbedarf (Leaks wären tödlich für einen Daemon, der
28     meherre Monate durchhalten muss) und Last-not-Least stand zu befürchten,
29     daß die Server-Abteilung die Lösung sofort ablehnen würde, sobald
30     bekannt würde, das sie Perl benutzt (typisches "Real-World - macht keinen
31     Sinn"-Phänomen).
32    
33     =head1 Eckpunkte der Implementierung
34 root 1.1
35     =head1 Implementation
36    
37     =head2 Perl? .... Microperl!
38    
39     =head2 Module Embedden
40    
41     =head2 Bibliothek
42    
43     =head2 Bootstrapping
44