# Java statt herkömml. Website?



## alex0815 (5. September 2003)

Hallo, 

mir ist der Gedanke gekommen, meine geplante Website (Shopsystem etc.) statt in PHP/HTML über Java als Webapplikation auszuliefern. 
Das hat m.e. den Vorteil, daß der Traffic sinkt, da die Applikation ja nur bei neuen Versionen neu heruntergeladen wird und ansonsten nur die Daten von und zum DB-Server übertragen werden müssen. 
Ausserdem glaube ich dass man das System auf diese Weise benutzerfreundlicher gestalten kann. 
Was meint ihr dazu? 
Und ist es überhaupt sicher, eine solche Anwendung über Java zu machen? Wie siehts mit dem Ausschnüffeln von DB-Passwörtern aus wenn die Applikation dann bei jedem auf der Platte liegt?

Thankz in advance...

Alex


----------



## Thomas Darimont (5. September 2003)

Servus!



> Das hat m.e. den Vorteil, daß der Traffic sinkt, da die Applikation ja nur bei neuen Versionen neu heruntergeladen wird und ansonsten nur die Daten von und zum DB-Server übertragen werden müssen.





Na ja, mit Java kannst du so ziemlich alles machen. Ich glaube du solltest du mal noch einmal gedanken, über den Aufbau deiner zukünftigen WebApplication machen...

Im Normalfall ist die Architektur wie folgt:


```
Server --->Datenbank (Oracle, Postgres, MySQL, MSSQL...)
            In der Datenbank werden alle deine Daten (Objekte etc.) persitent gemacht
            (=langfristig gespeichert)
             --->Präsentationsebene: (JSP, HTML, XML-->XSLT-->HTML)
             Das ist die Schicht die für das Darstellen der Daten zuständig ist
             ---> (Tomcat oder ein Applikationsserver) --> (Servlets)
             Die Servlets steuern sozusagen deine Geschäftslogik
```

Der Client braucht eigentlich nur einen hundsgewöhnlichen Webbrowser um die Datenanzeigen zu können. Es gibt jedoch div. andere Möglkichkeiten eine eventuelle Rich GUI (Swing GUI Client) anzusprechen bzw. umgekehrt... ^^ 
Die Technologien, die da in Frage kommen sind Webservices, SOAP, XML, RMI, Corba ...

...

Wenn du deine Anwendung (Rich GUI) bei jedem Benutzer installieren willst, musst du leider damit rechnen, das jemand nen Decompiler auf deine Class-Files ansetzt und damit an etwaige sensible Daten herankommen kann ...
Deshalb solltest du die Client Authentifizierung nicht auf Clientseite sondern auf Serverseite durchführen...

und ja die Verbindung ziwschen Client -Server kannst du verschlüsseln Beispielsweise  wenn du den SSLSocket statt eines normalen Sockets zur Netzwerk kommunikation verwendest.

...

HTH a bit. Gruß Tom


----------



## Dario Linsky (5. September 2003)

Hi,

ich denke, Du solltest Dir evtl. erstmal Gedanken darüber machen, ob Du nun eine Webanwendung auf dem Server oder eine ausführbare Anwendung auf dem Client haben willst.
Bei der Webanwendung läuft wie gesagt alles auf dem Server und wird durch einen Client (meistens ein Webbrowser) entsprechend angezeigt. Der Traffic, der dabei entsteht, ist der gleiche, wie bei einem PHP-Skript, da der HTML-Code ja so oder so zum Client übertragen werden muss. Aber Java bietet mehr Möglichkeiten.

Wenn Du Dich aber für eine clientseitige Anwendung entscheidest, solltest Du wirklich ein Auge auf die Sicherheit werfen. Grundsätzlich ist es AFAIK mit relativ wenig Aufwand möglich, Java-Bytecode zu dekompilieren und an den Quelltext selbst zu kommen. Also solltest Du (gilt auch für fast alle andere Sprachen) niemals ein Kennwort direkt im Code als Konstante festlegen.
Bei einer Webanwendung fällt das Problem aber wieder weg, da Deine Anwendung ja nur auf einem einzigen Rechner läuft, an den eigentlich niemand rankommen sollte um die Klassen zu dekompilieren.


----------

