Hallo,
brauche mal Rat bzw. Meinungen..
es geht um ein Softwareprojekt (Webanwendung), wo der User diverse Dinge tut, Berechnungen ausgeführt werden, jeder User ein Set von mehreren hundert Variablen hat, die diverse Werte speichern, und bei jeder Aktion der Anwendung werden da Berechnungen durchgeführt, Überprüfungen, Werte verändert usw usf.
Zur Zeit ist es so dass alle Variablen in der Session gespeichert sind und nur am Anfang und Ende jeder Session ein Datenbankzugriff stattfindet. Beim Start der Session wird alles angelegt, wenn der User fertig ist mit dem Arbeitsprozess alles gespeichert. Zwischendurch findet alles nur in der Session statt. Vorteil: hohe Performance, Nachteil: Probleme bei Abbruch (Session-Timeout) und späterer Fortsetzung. Das ist sozusagen die "stateful" Variante.
Andere Möglichkeit: Alles persisten in der Datenbank halten, die Zugriffe (mehr oder weniger) stateless machen, bei einem Zugriff alle notwendigen Werte aus der Datenbank lesen (können schonmal einige Dutzend sein), die notwendingen Dinge tun, Veränderungen persistieren (und danach natürlich neue Web-Seite anzeigen).
Hat den Vorteil dass man bei Session-Timeout und Fortsetzung "nahtlos" weiter machen kann, wo bei der anderen Variante relativ umständlich und auch leicht fehleranfällig bei Timeout alles "zwischengespeichert" und bei Fortsetzung wieder gelesen wird.
Performance ist aber auch durchaus ein Aspekt der Anwendung. Aber das "normale" bei einer Webanwendung wäre eher die zweite Variante, oder?
Was meinen die Experten?
Als Technologie soll Seam 2 oder JEE6 mit JPA eingesetzt werden, aber gegen ein bisschen selbstgebautes SQL zwecks Performance-Tuning spricht nix.
Gruß+Danke
Jan
brauche mal Rat bzw. Meinungen..
es geht um ein Softwareprojekt (Webanwendung), wo der User diverse Dinge tut, Berechnungen ausgeführt werden, jeder User ein Set von mehreren hundert Variablen hat, die diverse Werte speichern, und bei jeder Aktion der Anwendung werden da Berechnungen durchgeführt, Überprüfungen, Werte verändert usw usf.
Zur Zeit ist es so dass alle Variablen in der Session gespeichert sind und nur am Anfang und Ende jeder Session ein Datenbankzugriff stattfindet. Beim Start der Session wird alles angelegt, wenn der User fertig ist mit dem Arbeitsprozess alles gespeichert. Zwischendurch findet alles nur in der Session statt. Vorteil: hohe Performance, Nachteil: Probleme bei Abbruch (Session-Timeout) und späterer Fortsetzung. Das ist sozusagen die "stateful" Variante.
Andere Möglichkeit: Alles persisten in der Datenbank halten, die Zugriffe (mehr oder weniger) stateless machen, bei einem Zugriff alle notwendigen Werte aus der Datenbank lesen (können schonmal einige Dutzend sein), die notwendingen Dinge tun, Veränderungen persistieren (und danach natürlich neue Web-Seite anzeigen).
Hat den Vorteil dass man bei Session-Timeout und Fortsetzung "nahtlos" weiter machen kann, wo bei der anderen Variante relativ umständlich und auch leicht fehleranfällig bei Timeout alles "zwischengespeichert" und bei Fortsetzung wieder gelesen wird.
Performance ist aber auch durchaus ein Aspekt der Anwendung. Aber das "normale" bei einer Webanwendung wäre eher die zweite Variante, oder?
Was meinen die Experten?
Als Technologie soll Seam 2 oder JEE6 mit JPA eingesetzt werden, aber gegen ein bisschen selbstgebautes SQL zwecks Performance-Tuning spricht nix.
Gruß+Danke
Jan