J2EE-Philosophie, .NET und Co

Hallo,
Zwar weiß ich halbwegs einiges über J2EE und
Application Server (AS), aber so richtig eingeleuchtet
hat es mir noch nicht, daher dieser Artikel. Ich habe da einige Fragen
und ich würde mich freuen, wenn ihr darauf Antworten findet :smile:

1- Ich weiß, daß J2EE ein Komponentenmodell darstellt. Aber was ist das genau?

2.-Wenn ich mein „Hello World“ in JSP bzw. Servlets schreibe, benötige ich einige Kbytes,
aber mit EJB und Co. benötige ich einige Mbytes! Also wozu ist es also gut?
Ich kann ja auch mit JSPs und Servlets ein 3 schichtiges Modell aufbauen und auf die „J2EE-Dienste“
zurückgereifen (RMI, JDBC, JMS…).Welche Argumente können diesen „Overhead“ rechtfertigen?

3.- .Net fährt ja eine ähnliche Strategie. Was aber unterscheidet diese Technologien?
Wann sollte man sich für welche Technologie entscheiden?

Danke,
Fabian

Antwort zu .NET. und Frage 1
Moin

1- Ich weiß, daß J2EE ein Komponentenmodell darstellt. Aber
was ist das genau?

Die standart-installation enthält einen gewissen fixen Satz von Packages. Mit diesen kann man die Standart-Applicationen laufen lassen. Braucht eine Anwendung mehr (z.b. direkten Zugriff auf die serielle Schnittstelle) so kann man diese Komponente (on-the-fly) runterladen und installieren. Also muss man nicht immer alles „mitschleppen“ sondern kann sich auf das wesentliche Beschrängken. Die nachträgliche Installation setzt nur einen Web-zugang (und java.sun.com) vorraus und ist im laufenden Betrieb möglich.

3.- .Net fährt ja eine ähnliche Strategie. Was aber
unterscheidet diese Technologien?

.Net läuft viel näher an der Hardware und dem OS. Es kann also leichter auf OS-spezifische Dinge zugreiffen. Das ist einerseits gut (bessere Ausnützung der vorhandenen Hardware, anpassung an die Hardware), andereseits schlecht (Viren werden möglich, siehe Demo-Virus der vor .NET erschienen ist, Portatbilität leidet)

Wann sollte man sich für welche Technologie entscheiden?

wenn man Sicherheit, Portabilität und Robustheit brauch java.

wenn man Leistung und Zugriff auf die Hardware braucht .NET.

cu