Beiträge von zymotic99

    im endeffekt versuche ich rauszufinden ob der einsatz von ajax im domino-umfeld vorteile bietet gegenüber dem einsatz auf herkömmlichen webservern.


    wie bereits herausgestellt spricht der sicherheitsaspekt defintiv für einen domino-server. da hier zum einen programmieraufwand und zum anderen rechenaufwand eingespart werden.


    bei der performance wurde herrausgestellt, dass der domino-server mehr rechenleistung benötigt, aufgrund der dynamischen seitengenerieung, was ja im endeffekt nicht als nachteil bewertet werden kann, da die heutigen seiten immer mehr dynamik prägt.


    im endeffekt könnte man schon sagen, das domino nicht weniger performat ist als andere webserver wenn man auf alle "vor-" und "nachteile" eingeht...

    fakt ist doch aber, dass seiten einer homepage wie bspw. die "impressum"-seite von starren inhalten geprägt sind und das hier ein dynamisches generien eher unvorteilhaft ist.
    aus diesem grund gibt es auch mechanismen, dass derartige seiteninhalte auf dem dominoserver im dateisystem als starre html-seite gespeichert werden können.


    wenn man die entwicklung des www beobachtet, fällt einem auf, dass starre inhalte immer seltener werden. das bedeutet doch letztendlich, dass die dynamische generierung von seiten zunimmt und man die dynamische seitengenerierung nicht mehr als performance-defizit von domino, gegenüber herkömmlichen webservern, hinstellen kann?

    hallo!


    stimmt es, dass der aufruf einer webapplikation mehr rechenleistung von dem domino-webserver abverlangt als von einem herkömmlichen webserver wie bspw. apache?


    beim seitenaufruf muss bei domino ja erst die berechtigungsfrage geklärt werden. danach wird über ein template in erfahrung gebracht welches layout genutzt werden soll. hierbei können mehrere layouts parallel genutzt werden, die sich anhand ihrer parameter unterscheiden. abschließend werden inhalt und layout vereint und als webseite im browser angezeigt.


    das bedeutet, dass die schritte zum aufruf einer webseite über domino wesentlich komplexer sind als bei einem webserver wie apache. beim zugriff generiert domino die seiten dynamisch. apache ist daher ist schneller, da er hauptsächlich mit statischen html-seiten arbeitet.


    ist das so richtig, oder habe ich hier was falsch verstanden?



    in der heutigen zeit werden doch statische seiten immer seltener. hierfür spricht bspw. web 2.0 und ajax.
    aus diesem grund, kann man das dynamische generieren doch gar nicht mehr als performance-defizit bezeichnen...


    gruß, mathias

    na das javascript an sich kein explizites sicherheitsmodell besitzt. das auf der clientseite somit bspw. informationen ausgelesen werden können oder das "denial of service" möglich sind. tunneln von aktiven inhalten über aktivex ist ja auch ein kritikpunkt.


    können denn durch sicherheitsvorkehrungen in domino derartige probleme ausgeschlossen werden?

    danke! na das sind auf jeden fall schonmal punkte die für domino sprechen.


    es ist ja bekannt das javascript in punkto sicherheit einige defizite aufweist. können denn diese nachteile bzw. kritikpunkte von javascript in einer lotus notes/domino umgebung eingegrenzt werden bspw. aufgrund der in domino integrierten sicherheitsmechanismen?


    eine auflistung die notes/domino mit herkömmlichen webservern bzw. groupware anwendungen vergleicht würde mir sehr helfen. leider kann ich sowas nirgends finden...

    Diali:


    stimmt! '?ReadViewEntries' in verbindung mit '&RestricToCategory' ist eine feine sache. die mittelungsdaten in der kundenberatung kann ich darüber sehr einfach auslesen, indem ich nach kunden- bzw. beraternamen kategorisiere. die mitteilungen werden diesen untergeordnet und nach dem datum sortiert, so dass immer die aktuellste nachricht ganz oben in der view vorzufinden ist.
    lediglich diese oberste nachricht lese ich dann via getElementsByTagName aus dem temoprären xml-file aus. zu guter letzt wird dann diese nachricht in dem nachrichten-div-feld mit den vorhergehenden text(string) verkettet.
    absolut klasse und sehr einfach zu realisieren! :)


    bei einer mysql-db brauch man für derartige operation soweit ich weiss ein serverseitiges skript welches die daten aus der db liest.
    bei domino braucht man lediglich eine javascipt funktion im frontend die das ganze bewerkstelligt...


    taurec: ok, aber sind diese sicherheitsvorkehrungen denn nicht auch bei relationalen db's gegeben? derartige sicherheitsvorkehrungen müssen doch überall vorgenommen werden, nicht nur in domino-systemen.


    wie meinst du das mit dem abbilden?


    weiss jemand was man unter "integration check" bei datenaustauschformaten versteht? habe diese frage schon in mehreren foren gestellt und bis jetzt leider nirgends eine antwort bekommen...
    ibm benutzt diesen begriff bei einer gegenüberstellung der datenaustauschformate (s. link letztes post).

    Ok, das klingt sehr einleuchtend.


    Also ich bin momentan an meiner Diplomarbeit mit dem Titel "Potentialanalyse der Anwendung von AJAX in bestehenden und neuen Lotus Notes/Domino Applikationen der Carl Zeiss Gruppe".


    Im Verlauf der Arbeit habe ich Vor- und Nachteile von AJAX herausgearbeitet und AJAX-Alternativen geschildert.


    Im praktischen Teil der Arbeit habe ich eine Kundenberatung mit AJAX-Methodik unter Domino entwickelt.
    Als Lotus Notes Leihe habe ich edafür twas Einarbeitungszeit gebraucht, aber mit eurer Hilfe hier im Forum habe ich mich mit den Sprachen wie LotusScript ziemlich schnell zurechtgefunden.


    Nun bin ich dabei das Potential von AJAX-Anwendungen unter Lotus Notes/Domino herauszustellen.
    Die Performance von Domino-Webanwendungen spielen hierbei natürlich auch eine Rolle.
    Auf der IBM Homepage
    http://www-128.ibm.com/develop…otus/library/domino-ajax/
    habe ich gelesen, dass ein wesentlicher Vorteil von Domino die ausgereifen Sicherheitsmechanismen sind.
    Ein weiterer Vorteil wären laut IBM die kategorisierten VIEWs.


    Wo liegt dann bei diesen Punkten konkret der Vorteil?


    Das Datenbankinhalte mittels DXL in ein XML-File transformiert werden können ist denke ich mal ein absoluter Pluspunkt für den Einsatz von AJAX unter Domino...


    Danke für Eure Hilfe!

    @ dirk: Danke für die schnelle Beantwortung.


    Als Lotus Notes Domino Leihe muss ich allerdings noch etwas nachhaken ;)


    Eine mySQL-DB kann man doch auch ziemlich schnell ins Netz stellen, wo liegen denn bei Domino konkret die Vorteile?


    Unter Domino kommt ja ein Reverse Proxy zum Einsatz der Zugriffe auf den Webserver bspw. beschleunigen kann... Dies könnte man ja auch als Performance Plus bewerten.


    Ok das mit dem "vorhandenen Wissen nutzen [..]" ist ziemlich subjektiv ;) Hat denn Lotus Script gegenüber PHP gewisse Vorteile?

    Hallo,


    ich habe ein Web-Tool programmiert, das als Menütext die Sprachen Deutsch und Englisch bereitstellen soll. Der Menütext soll in Notes-Dokumenten hinterlegt werden, sodass über die VIEW die entsprechenden Dokumente der jeweiligen Sprache ausgelesen werden können.


    Benutzt bspw. der User einen englischsprachigen Webbrowser, soll der Menütext in der Sprache Englisch angezeigt werden.
    Weiss jemand wie ich das umsetzen kann? :)


    Danke.


    MfG,
    Mathias

    das feld heisst ID und die variable id.


    d.h. window.document.forms[0].ID.value müsst richtig sein, erhalte aber die meldung: "has no properties". ID ist kein verstecktes feld.


    hier mal der agent:


    jetzt erhalte ich im log aufeinmal das die objektvariable nicht gesetzt ist. die view zeigt allerdings ein document an mit einer gesetzten ID. schon irgendwie seltsam....

    Zitat
    Code
    [..]
    Set QueueDoc = aktuelleView.GetFirstDocument
    If QueueDoc.HasItem("ID") Then
    'Set item = QueueDoc.GetFirstItem("ID")
    ID = QueueDoc.ID(0)
    End If
    [..]


    Angenommen, das Feld heisst auch ID, dann steht nun in der Variablen ID Deine ID drin


    Hmm ja in dem Agenten steht dann der Wert in ID drin. Aber wie bekomm ich denn nun den Wert von ID in meine Javascript-Funktion, in der ich Abgleiche ob die ID auf die des entsprechenden Kundens ist??

    ich :hammer: bin so doof.... :D


    das mit der id an den url anhängen ist vollkommen falsch. mit dem url wird ja nicht der client adressiert sondern der server. von daher bringt mir das gar nichts.


    ich habe nun eine funktion geschrieben, die automatisch alle 5 sekunden in die view schaut. diese funktion überprüft die id und checkt den berater status.


    Kunde___ID____Time_____Berater
    1______4711___14:13:13__frei
    2______1582___14:14:01
    3______3423___14:15:04
    n______xxxx___xx:xx:xx


    steht in dem 1. dokument "frei" und stimmt die id mit der (globalen) variablen id des kunden überein (==4711), kann der kunde mit dem berater verbunden werden. das erste dokument wird aus der warteschlange entfernt.


    Kunde___ID____Time_____Berater
    1______1582___14:14:01
    2______3423___14:15:04
    n______xxxx___xx:xx:xx


    funktioniert einwandfrei. manchmal liegt die lösung so nah :)

    Sorry wenn ich mich etwas mißverständlich ausgedrückt habe. Ich meine natürlich das erste Dokument. Ich wollte Euch damit auf keinen Fall in die Irre führen falls Ihr das jetzt denkt!


    Die Collection wollte ich nehmen, weil ich dachte das über 'Form=ID' jedes Dokument der Kunden-Maske eine eindeutige ID bekommt, was natürlich Schwachsinn ist...


    OK, ich ermittel nun das erste Dokument.


    Mein Agent dazu sieht folgendermaßen aus:



    Code
    [..]
    Set QueueDoc = aktuelleView.GetFirstDocument
    If QueueDoc.HasItem("ID") Then
        Set item = QueueDoc.GetFirstItem("ID")
    End If
    [..]


    Wie übergebe ich denn nun die ID an meine Javascript Funktion?


    Ist es denn nicht sinnvoller einfach über "ReadViewEntries" die ID auszulesen?

    Also meine VIEW zeigt die Kunden sortiert an. Ganz oben in der VIEW steht der Kunde der am längsten wartet:


    Kunde___ID____Time
    1______4711___14:13:13
    2______1582___14:14:01
    3______3423___14:15:04
    n______xxxx___xx:xx:xx


    Über VIEW.getFirstDocument greife ich mir jetzt also den obersten Kunden bzw. das FirstDocument und lese da die ID aus. Diese ID bekommt nun meine Javascript Funktion die das div-Element im Browserfenster des Kunden 4711 sichtbar macht.


    Wäre ja zu schön um wahr zu sein wenn das funktionieren würde :)

    Stimmt die URL muss natürlich so aussehen! Danke.


    Sobald der Berater frei wird, soll ja wie bereits beschrieben nur bei dem Kunden mit der ID=4711 die NachrichtenBox erscheinen (bspw. sichtbarmachen einen div-elements über style.visible....).




    Am Ende eines Gesprächs klickt der Kunde auf "disconnect". Ein onload-Event ruft dabei eine JavascriptFunktion auf, die über einen Agenten den Kunden ermittelt, der ganz oben in der Warteschlange bzw. in der VIEW steht (das ist der am Längsten wartende Kunde mit der ID=4711).


    Der Agent liest dabei dessen ID aus und gibt sie an die Javascript-Funktion zurück die damit eine URL erzeugen soll:


    url = /localhost/sav/beratungstool.nsf/kunde?OpenForm&ID =4711
    url.ElementById("MessageBox")


    Das div-Element der Maske Kunde mit der ID 4711 wird nun adressiert und sichtbar gemacht. Der Kunde 4711 kann nun über die Messagebox mit dem Berater texten.


    D.h. über die URL soll ein bestehendes Dokument geöffnet werden.
    Die Links zu den Dokumenten tauchen in der Javascript - Funktion auf.


    Nochmal Danke für die Unterstützung! :)

    Danke für die schnellen Antworten! :)


    Im Prinzip dürfte ja dann nur ein Dokument in der Collection stehen, da wie bereits gesagt, jedes Dokument eine eindeutige ID besitzt.
    Speicher ich nun das Ganze:


    Call aktuellesDoc.Save(True, True) müsste ja die ID an den Masken-Namen angehangen werden. Oder?



    Mein eigentliches Problem ist, dass ja über den Befehl "document.getElementById("Messagebox")" alle Browserfenster der Maske Kunde angesprochen werden. Da "document" sich nunmal auf alle Browserfenster eine Maske bezieht.


    Ich möchte aber erreichen, dass jeder Kunde einen eindeutige URL besitzt, was man ja über das hinzufügen einer ID erreichen kann.
    bspw.:


    http://localhost/sav/beratungstool.nsf/kunde&4711?OpenForm


    var url = '/' + $('WebDBName_').value + '/kunde&4711?OpenForm';


    --> url.getElementById("Messagebox")



    Ja bloß wie programmiert man das. Bin langsam am :cry:

    Hallo,


    in meinem vorhergehenden Beitrag habe ich angesprochen, dass ich eine Kundenberatung programmiere und jeden Kunden bzw. jedes Kundendokument der Warteschlange mit einer eindeutigen ID versehe.


    Ich habe mich belesen und bin auf die NotesDocumentCollection gestossen, bin mir allerdings nicht sicher ob das der richtige Weg ist.


    Was genau passiert denn bei dieser Anweisung:


    Set analysenColl = aktuelleDB.Search(|Form = "Kunde" & ID = "| & id & |"|, Nothing, 0)


    Set analyseDoc = analysenColl.GetFirstDocument


    Welche Rolle spielen hier die '|' Seperatoren??


    Danke!
    Mathias

    ok nochmal ein anderer ansatz- vielleicht könnt ihr mir ja dann helfen.


    ich habe 2 views: 1. CustomerID, 2. CustomerQueue


    jeder kunde der sich in die warteschlange einreiht erhält eine eindeutige ID. lediglich die ID's werden in der 1. view sortiert angezeigt.
    in der 2. view werden die ID's nach der zeit erfasst, ausserdem gibt es noch eine spalte berater. wird der kundenberater frei, erfolgt ein vermerkt in dem obersten warteschlangendokument dieser view im beraterfeld. ist dies geschehen soll nun das browserfenster des am längsten wartenden kunden (oberstes warteschlangendokument) mit dem frei gewordenen berater verbunden werden: in dem fenster des kunden soll sich nun das nachrichten-fenster aufbauen mit dem er mit dem berater in kontakt treten kann.
    ja und hier liegt leider auch der hund begraben.


    wie kann ich erreichen, dass sich auch wirklich nur bei dem kunden das nachrichtenfenster aufbaut der ganz oben in der warteschlange steht?


    danke!