Thomas S.: Web-Server auf CD ausführen

Hallo Gemeinde,
ich habe folgendes Problem.
User sollen die Möglichkeit bekommen Materialinformationen (Ersatzteile) über das Netz anzufordern.
Es besteht noch keine Hardware und Software Umgebung (Bin noch frei in der Wahl, ob NT, UNIX, Apache,IIS usw.).
Jetzt das Problem: Mancher User hat noch kein Zugang zum WWW. Für solche User soll es eine CD geben
die er in sein PC schiebt, eine index.htm aufruft und die gleichen Informationen erhält wie ein User im Netz.
Auf der CD ist auch die Datenbank mit allen Informationen der Ersatzteile erhalten. Jetzt soll der User die Möglichkeit haben (wie im Web auch) nach
Seriennummern oder nach anderen Kennzeichen zu können (d.h. Datenbankabfragen generieren).
Das soll alles ohne Installation eines Web-Servers auf dem PC des Users funktionieren. Der Web-Server soll sich auf der CD befinden,
so wie die HTML-Seiten und die Datenbank auch. Kann man bestehende Web-Server dazu benutzen und wenn ja, wie? oder gib es eine
andere sinnvolle Lösung.
Die Web-Lösung und die CD-Lösung sollten nicht zuweit abweichen (Scripte, Web-Server), da ich das Rad nicht zweimal erfinden will.
Gibt es eventuell schon solche Lösungen?
Wenn es nur mit einer Installation eines Web-Servers auf dem Client geht, so muß es einfach zu installieren sein.
Die User sind keine PC-Spezialisten.
Ich danke Euch für die Hilfe
Gruß Thomas S.

P.S. Ich war drei Wochen nicht da und habe erst heute von FFH und SELFHTML erfahren.
Na da werde ich doch gleich mal in die Portokasse greifen ;-)

  1. Hallo Thomas!

    Bin erst heute wieder online, daher kann ich jetzt erst antworten. Es gibt einen WebServer (Win32) den man mit auf eine CD brennen kann: TinyWeb (http://www.ritlabs.com/tinyweb/). Dies ist ein einfacher Server, der auch CGI's unterstützt. Er kommt ohne Installation aus und belegt nur wenig Speicher. Der Server wird mit zwei Parametern gestartet: dem WWW-Root-Verzeichnis (dort liegen die HTML-Files) und der Portnummer + IP-Adresse. Es gibt allerdings einige Probleme, die bei der unendlichen Vielfalt der PC-Installationen nicht so einfach zu "umschiffen" sind. Das Beispiel kann wegen des Umfang nur eine Anregeung sein...

    1. Einfache Lösung mittels Batchdatei: für  jeden Browser muss man 1 Batchdatei anbieten.

    #netscape.bat
    #F: ist das CD-ROM aber wie ists beim User ???
    @echo off
    #ggf. temp-Verzeichnis anlegen, dort liegen dann die LogFiles des Servers
    if exist c:\temp goto weiter
    md c:\temp
    :weiter
    #ins temp-Verzeichnis wechseln
    c:
    cd \temp
    #starte WebServer, www_root: f:\www\html, Port 80, IP: 127.0.0.1
    F:\bin\TINY.EXE F:\www\html 80 127.0.0.1
    #Netscape starten mit index.html
    netscape F:/www/html/index.htm

    In der index.html musst Du den User noch auffordern, eine Einstellung im Browser zu überprüfen und ggf. zu ändern: Es darf kein Proxy eingetragen sein, bzw. die Nutzung eines Proxys füe 127.0.0.1 muss ausgeschlossen sein. Diese Änderung kann nur der User machen, es gibt keine Möglichkeit, diese "von Aussen" vorzunehmen.
    Der Aufruf der Seiten erfolgt: http://127.0.0.1/file.htm (CGI's: http://127.0.0.1/file.pl)

    Direktorystruktur auf der CD:
    F:
    +-bin         dort steht der WebServer
    +-perl        der Perlinterpreter
    +-www         www-root
      
      +-html      die html-Files
      +-cgi-bin   die CGI's

    Willst Du Perl als Scriptsprache verwenden, so gilt die Voraussetztung, das Perl bereits installiert ist. Der Server unterstützt allerdings auch andere CGI's, z.B. selbstgeschriebene in C.

    2. Natürlich kannst Du auch Perl mit auf die CD brennen und dann den Start des Servers mittels PerlScript realisieren. Diese Lösung hat den Vorteil, das Du

    1. das aktuelle LW (CD-ROM) ermitteln kannst,
    2. den Suchpfad um den Pfad zu Deinem Perl auf der CD erweitern kannst,
    3. die Extention .pl mit dem Interpreter (perl.exe) verbinden kannst,
    4. nach einem Browser im System suchen kannst,
    5. und diesen sowie den Server starten kannst.

    Als Anregung für so ein "Installationsscript" kannst Du Dir die PerlW32-install.bat der PerlDistribution 5.004 hernehmen.

    Ich habe bereits einmal mit diesem Server eine HTML-Präsemtation auf einer CD erstellt. Leider ist die Lösung nicht Freeware (der Kunde :-( wills so ). Dazu habe ich eine solche Dateistruktur erstellt, PerlW32 (nur teilweise) auf die CD kopiert und ein entsprechendes Perlscript geschrieben.
    Es steckt also viel Arbeit 'drin.

    Ich hoffe, ich konnte Dir einige brauchbare Tipps geben, wünsche viel Erfolg,
    Gruß Frank

    1. Hallo Frank,
      vielen Dank für Deine ausführliche Hilfe. Darf ich Dich nochmal belästigen?
      Eine weitere Frage von mir ist: Wie verhält sich das ganze mit einer zusätzlichen Datenbank auf der CD?
      Und wo kann man die CD von Dir kaufen :-)

      Vielen Dank
      Thomas S.

      1. Hallo Thomas!

        vielen Dank für Deine ausführliche Hilfe. Darf ich Dich nochmal belästigen?

        Bitte,... naklar...

        Eine weitere Frage von mir ist: Wie verhält sich das ganze mit einer zusätzlichen
        Datenbank auf der CD?

        Das hängt von der Datenbank ab. Wenn Du dazu z.B. Access brauchst, dann ist wohl nicht so einfach möglich, denn solche Programme wollen richtig installiert sein. Wenn Du eine Datenbank mit Perl realisieren willst, dann gehts (mittels diverser DBM-Module). Diese Module stellen eine einfach zu verwendende, aber auch recht simple Datenbankschnittstelle zu Verfügung.

        Und wo kann man die CD von Dir kaufen :-)

        Leider garnicht, es ist eine firmeninterne Anwendung mit "vertraulichem Inhalt".

        Gruß Frank

        1. Hi Frank

          Das hängt von der Datenbank ab. Wenn Du dazu z.B. Access brauchst, dann ist wohl nicht so einfach möglich, denn solche Programme wollen richtig installiert sein. Wenn Du eine Datenbank mit Perl realisieren willst, dann gehts (mittels diverser DBM-Module). Diese Module stellen eine einfach zu verwendende, aber auch recht simple Datenbankschnittstelle zu Verfügung.

          Das ist genau mein Problem. Die Datenbank ist Sybase und alles soll ohne Installation auf dem Client, auf der CD ablaufen. Allein die db Datei auf die CD zu brennen bringt ja nichts. Ich brauche eine runtime Umgebung auf der CD die mir auf die Sybase DB-Datei zugreift. Gibt es sowas oder kann man da auch schon mit Perl Modulen weiterkommen. Eine andere Möglichkeit ist z.B Flatt Files zu erstellen (txt-Dateien) auf die die DB Tabellen abgebildet werden und ich greife dann mit perl darauf zu. Da wir aber Datensätze von ca. 1Mio  haben denke ich mal das ich ein Zeitprobleml bekommen werde wenn ich mit Perl auf die txt-Datei zugreife :-). Wie bekommen ich also die Sybase runtime Umgebung auf eine CD, so das alles von der CD aus läuft. Hast Du mir evtl. eine Adresse im Web wo ich sowas nachlesen kann.

          Vielen Dank nochmal für Deine Hilfe

          Thomas S.

          1. Hi Thomas!

            Ich kenne Sybase nicht. Daher kann ich Dir da auch garnicht weiterhelfen. Die Idee, alles als txt abzulegen, ist sicher machbar, aber bei den Datenmengen wahrscheinlich wirklich zu langsam. Vielleicht kann man die Daten sinnvoll stückeln, so dass mehrere Dateien entstehen, deren Auswahl der User dann machen muss. In diesen Fragmenten ist die Suchen dann schneller. Aber das sind natürlich alles nur Notlösungen. Vielleicht fragst Du im Forum nochmal nach einer Lösung mit mySQL auf einer CD. Damit kenne ich mich auch nicht aus, aber vielleicht gibt es eine Möglichkeit, diese DB auf CD zu nutzen.

            Gruß Frank

            1. Hi Frank

              Es ist leider so, daß ein System produktiv läuft mit der Sybase DB. Der Kunde will davon nicht ab. Der Witz an der Sache ist, in der Firma hat ein neur Mitarbeiter angefangen. Heute Morgen gab es ein Gesräch mit dem Kunden und der neue Mitarbeiter war auch dabei. Wie es halt so ist kennt der alles besser und schränkt uns immer mehr ein z.B. nur noch eine Lsg mit Java, kein Perl mehr, kein PHP3, kein ASP usw. Ich dachte immer wir Informatiker müssen die beste Lsg. für den Kunden suchen aber so:-).Naja, vielen Dank nochmal für Deine Hilfe.

              Gruß
              Thomas S.