# grundlegendes j2ee verständniss



## Guest (12. Jul 2007)

ich arbeite haupsächlich und viel mit j2se und schreibe meine guis mit swing.

wenn ich jetzt zb ein servlet habe, dass eine sehr aufwändige opertion durchführen muss, (100000 datensätze laden, etwas damit machen, 100000 datensätze schreiben...)
in einer swing app mach lass ich meine gui über einen oberserver über den fortschritt informieren und zeig das über eine progress bar dem user an.

aber wie mach ich das bei j2ee? ein jsp ruft ein servlet auf, welches die aufgbe erledigt und dann selbst die seite generiert oder auf eine jsp weiterleitet. aber wenn der vorgang zb 2h dauert, sitzt der benutzer dann 2 stunden vor einem leeren browser fenster? gibts da nicht timeouts wie bei php?

oder lässt man eine jsp, jede 5 sekunder oder so, den aktuellen status des servelts abrufen? wie ist hier das vorgehen?

danke für die tips


----------



## SlaterB (12. Jul 2007)

man kann eine einfache Antwortseite
"Vorgang in Bearbeitung, schauen sie in 2 Stunden nochmal nach"
schicken,
bei Nachrfragen "x% fertig", falls noch nicht fertig

die Nachfragen müssen entweder manuell vom User ausgehen 
oder man läßt den Browser automatisch neuladen, das geht mit bestimmten Erweiterung wie AJAX

--------

man kann natürlich auch ewig warten, 
wer da nun die Zeit überprüft? 
vielleicht der Browser, na dazu kann ich wenig sagen

--------

auf jeden Fall kann der Server nicht selbständig Information an den Client senden, 
dieser Weg ist verboten oder zumindest nicht der normale Weg


----------



## Guest (12. Jul 2007)

danke für die antwort



			
				SlaterB hat gesagt.:
			
		

> auf jeden Fall kann der Server nicht selbständig Information an den Client senden,


wie wäre sowas zu lösen? rmi?


----------



## SlaterB (12. Jul 2007)

nicht unbedingt,
auch RMI kann man genau nach diesem Muster bauen:
ein Server hört im Netz auf Anfragen und bearbeitet diese

Clients sitzen blind und taub rum und werden nur aktiv, wenn der User es möchte,

das ist weniger eine Technik-Frage als eine Design/ Logik-Einstellung,


du bräuchtest Kommunikationsparter, die gleichberechtigt jeweils Server und Client sind,
und jeder muss dann die Adresse des/ der anderen kennen


----------



## HLX (12. Jul 2007)

Ich frage mich ob J2EE hier der richtige Ansatz ist. Ich nehme mal an, dass es um eine Einzeloperation geht, die einmal am Tag / in der Woche / im Monat ausgeführt wird. Falls dem so ist, welchen sinn macht es dafür J2EE zu verwenden? Muss eine solche Anwendung überall verfügbar sein? Wird sie von vielen Benutzern gleichzeitig verwendet? Muss sie skalierbar sein? Überlässt man bei sowas dem Container das Transaktionsmanagement?


----------



## SlaterB (12. Jul 2007)

es gibt ja nicht so viele Alternativen, als dass man groß wählen könnte,
J2EE bietet z.B. tolle HTML-Unterstützung, JSP-Tags, Sessions,
mit einem Browser hat man einen kostenlosen Client, der unheimlich viel kann,

das als Java-GUI nachzubauen wäre schon eine Herausforderung,
selbst für ganz normale lokale Programm ist für mich J2EE immer eine interessante Alternative,

kommt natürlich auch auf die Art der Anwendung an, bei Grafik wirds ungünstig


----------



## SnooP (12. Jul 2007)

Nunja... - ich würde das so realisieren, dass ich den Status über die Webseite alle x Sekunden pulle... weil der Server wie schon gesagt nicht direkt pushen kann  ... mit AJAX kann man das ganze noch verschönern, so dass eine Statusanzeige nur auf einem Teil der ganzen Seite aktualisiert wird. Aber nichtsdestotrotz muss man ständig nachfragen.


----------

