Autor Thema: Webperformancefrage  (Gelesen 1195 mal)

Offline maxg

  • Aktives Mitglied
  • ***
  • Beiträge: 112
  • Geschlecht: Männlich
  • Ich liebe dieses Forum! wirklich!
Webperformancefrage
« am: 11.06.05 - 01:05:33 »
Hallo,

ich möchte gerne auf einer Webseite "News" veröffentlichen, dabei sollen bis zu 6 News gleichzeitig (in 2 Spalten und 3 Zeilen) angezeigt werden, damit man auch bei einer 1024er Auflösung nicht scrollen muss. Alte News sollen weiterhin in Notes gespeichert bleiben und über den Client eingesehen werden können. Nun Suche ich nach Möglichkeiten um das umzusetzen und dabei nicht allzuviele Performanceprobleme zu bekommen. Wie würdet ihr das machen?

- Felder in einer Maske, die über eine Hide-When Formel im Web angezeigt werden oder eben auch nicht
- Eingebette Ansichten
- Jede News als eigenes Dokument und dann immer ein Frame pro Dokument
-...

Im Grunde handelt es sich um ein Mini-CMS
Es ist nicht Deine Schuld, dass die Welt ist, wie sie ist.
Es wär nur Deine Schuld, wenn Sie so bleibt.

Marinero Atlántico

  • Gast
Re: Webperformancefrage
« Antwort #1 am: 11.06.05 - 07:25:44 »
Die beste Performance erhälst du, indem du im Verzeichnis Notes-Data/Domino/Html eine html-Seite legst und die editierst, sobald es eine neue News gibt.
Ist Performance das einzige nicht-funktionale Requirement für dein Projekt? oder gibt es da vielleicht noch andere wie Einfachheit der Bedienung, Administrierbarkeit, Erweiterbarkeit?
Und ein funktionales Requirement ist nicht klar:
Oft sind news ticker so aufgebaut, dass in der Übersicht nicht die ganzen Nachrichten angezeigt werden, sondern nur die Überschrift oder die Zusammenfassung und wenn man auf den entsprechenden Link klickt, die ganze Nachricht in all seiner Komplettheit.

Du willst auch bestimmt sichergehen, dass die User wirklich immer die aktuellsten Nachrichten bekommen und nicht irgendwelche veralteten aus ihrem Cache oder dem Cache der Zwischengelagerten Proxys. Hier eine gute Diskussion dazu im Kontext von Servlet/JSP: http://www.jguru.com/faq/view.jsp?EID=377 . Du musst ein paar html-head Einträge setzen.
In Notes geht das mit der Formelsprache Funktion @setHttpHeader. KANN BITTE MAL JEMAND SAGEN, WO MAN DIESE FORMEL AM BESTEN SETZT. ICH MEINE IN WELCHES EVENT, FELD, ETC. IM DESIGNER.

Das wichtige Performance-Thema sollte so angegangen werden:
Das Projektteam überlegt sich, welche Menge an Zugriffen erwartet werden. Wichtig sind dabei v.a. die Spitzenzeiten. Als nächstes wird ein Wert des Ladens der Seite im Browser bestimmt, der noch akzeptabel. Dann wird mit einem Web-Stresstest-Tool getestet werden, wie sich die Seite bei einer entsprechenden Menge an Zugriffen verhält (http://www.softwareqatest.com/qatweb1.html). Das Tool generiert die entsprechenden Anfragen. Allerdings ist das auch nur eine Annäherung an die Realität.

Wenn du einseitig nach optimaler Performance optimierst, dann leiden darunter vielleicht andere nicht-funktionale Requirements wie Administrierbarkeit, Einfachheit der Bedienung und Erweiterbarkeit. Es bringt nix, wenn deine Seite eine Last von 500 Mio Zugriffen pro Stunde aushält, darauf aber in Spitzenzeiten höchstens 40 people drauf zugreifen.

Sowieso ist der Begriff "Performance" unprofessionell und zu grob-granular. Unter dem Begriff versteht man unterschiedliche Phänomene, bei deren Optimierung Zielkonflikte auftreten können! (dazu später mehr)



Ich würd die eingebettete Ansicht nehmen.
Und nimm keine Applets.
Wir Go-aficionados lieben Applets. Sie sind ein hervorragendes Mittel für interaktive Go-Problemstellungen (www.goproblems.com) oder für anotierte Partien(http://gtl.xmp.net/).
Für die meisten Aufgaben sind sie aber Mist.

Axel
« Letzte Änderung: 11.06.05 - 09:04:01 von Marinero Atlántico »

Offline maxg

  • Aktives Mitglied
  • ***
  • Beiträge: 112
  • Geschlecht: Männlich
  • Ich liebe dieses Forum! wirklich!
Re: Webperformancefrage
« Antwort #2 am: 11.06.05 - 18:55:27 »
Hallo,

um erstmal die Dimensionen zu klären, wir reden hier von max. 4500 Zugriffen am Tag und als Spitze ca. 400 in einer Stunde. Das ist für deine Verhältnisse wahrscheinlich kleinkram.
Das ganze soll hinterher so aussehen (aber das schrieb ich ja schon)
I----I----I
I     I     I
I----I----I
I     I     I
I----I----I
I     I     I
I----I----I
Wobei dann in jedem Feld jeweils eine Nachricht stehen soll und wenn es eben gerade nur vier Nachrichten gibt, dann soll die letzte Zeile entfallen. Das Ganze wird in einen Worklow integriert. Sprich: jeder soll Nachrichten erstellen können, die dann durch den DB-Administrator freigegeben werden. (ob das dann über einen Agenten zeitlich gesteuert wird oder die Sachen manuell ins Archiv kommen ist noch nicht klar) Ältere Sachen sollen in eine Art Archiv verschoben werden aber im Bedarsfall auch wieder zurückgeholt werden können.

Ich frage mich jetzt halt inwieweit es sinnvoll ist das einfach über ein Statusfeld zu regeln und je nach Inhalt (ja/nein) das Feld über eine HideWhen-Formel anzuzeigen. Ich vermute einfach mal, dass das ziemlich nicht unbedingt die Beste Lösung ist und zu einer "verminderten Performance" führt. Daher die Frage.

Kopfschmerzen bereitet mir auch noch die geforderte Zweispaltigkeit, da ich im Moment noch nicht genau weiß, wie ich das realisieren soll.

Max
Es ist nicht Deine Schuld, dass die Welt ist, wie sie ist.
Es wär nur Deine Schuld, wenn Sie so bleibt.

Marinero Atlántico

  • Gast
Re: Webperformancefrage
« Antwort #3 am: 11.06.05 - 19:09:23 »
Das ist für deine Verhältnisse wahrscheinlich kleinkram.
woher weisst du da? Ich habe seit 4 Jahren keine Webanwendung mehr entwickelt.  ;D
Zitat
Wobei dann in jedem Feld jeweils eine Nachricht stehen soll und wenn es eben gerade nur vier Nachrichten gibt, dann soll die letzte Zeile entfallen.
Würd ich per flag machen.
Feld aktuelleNachricht.
Und im QuerySave dieses Flag dann bei der Freigabe für die Nachricht, die aufgrund der neuen Nachricht aus der Ansicht verschwinden soll, leeren auf "0" setzen oder sowas die Art.
Zitat
Ältere Sachen sollen in eine Art Archiv verschoben werden aber im Bedarsfall auch wieder zurückgeholt werden können.
Ich würds in der Datenbank belassen. So groß wird das Nachrichtenaufkommen ja nicht sein. Und eben den Usern die Ansicht anbieten, wo das aktuelleNews="1" in der Ansichtsformel steht.
Zitat
Ich frage mich jetzt halt inwieweit es sinnvoll ist das einfach über ein Statusfeld zu regeln und je nach Inhalt (ja/nein) das Feld über eine HideWhen-Formel anzuzeigen. Ich vermute einfach mal, dass das ziemlich nicht unbedingt die Beste Lösung ist und zu einer "verminderten Performance" führt. Daher die Frage.
Wieso hide-when. Nimm pro Nachricht 1 Dokument. Benutze eine Ansicht.
Zitat
Kopfschmerzen bereitet mir auch noch die geforderte Zweispaltigkeit, da ich im Moment noch nicht genau weiß, wie ich das realisieren soll.
Ansicht. Du kannst in die Spaltenformeln html programmieren und sogar css, JavaScript. Das ist zwar bei wirklich großen Ansichten 1 Problem (>20.000 Dokumente) aber ihr werdet ja nicht 20.000 Nachrichten generieren.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz