VL 8 Einführung in Domino Designer LV Groupware- und Workflowsysteme Universität Potsdam Lehrstuhl für Wirtschaftsinformatik und Electronic Government Univ.-Prof. Dr.-Ing. Norbert Gronau August-Bebel-Str. 89 14482 Potsdam Tel. (0331) 977-3379 Fax (0331) 977-3406 http://wi.uni-potsdam.de Prof. Dr.-Ing. Norbert Gronau Dipl.-Inform. Barbara Pogorzelska Wintersemester 2008/2009 Agenda Notes/Domino, Administrator und Designer Programmierkonzepte Domino Designer Gestaltungselemente Übung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Die verschiedenen Notes Clients 1. Lotus Notes – damit arbeitet der Anwender 2. Lotus Domino Designer – damit arbeitet der Anwendungsentwickler 3. Lotus Domino Administrator – damit arbeitet der Administrator 4. IBM Lotus Domino Web Access (DWA) (ehemalige Bezeichnung iNotes WebAccess) läuft im Webbrowser und kann (konfigurierbar) Active-X verwenden JAVA wird in DWA nur verwendet, wenn Instant Messaging (SameTime) verwendet wird 5. IBM Lotus Domino WebMail – läuft im Webbrowser und bietet eine geringere Funktionalität als DWA Webmail verwendet JAVA und ist für jene Anwender gedacht, deren Browser nicht mit DWA arbeiten 6. IBM Lotus Domino Access für Microsoft Outlook (DAMO) – ein Zusatzprogram für Microsoft Outlook um auf den Domino Server zuzugreifen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Notes/Domino, Administrator und Designer Notes-Client Grafischer Personal Information Manager (PIM) mit integriertem Webbrowser Grundfunktionen: E-Mail, Calendaring, Scheduling, Task-Management, elektronische Formulare, ... Server-Funktionen, die auch im Client zur Verfügung stehen: Volltextsuche, Replikation, Komprimierung von Datenbanken, Agenten, ... Client kann auch als eigenständige Anwendung betrieben werden c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Notes/Domino, Administrator und Designer Domino Administrator Grafische AdministrationsBenutzeroberfläche Verteilung der Administrationsaufgaben auf mehrere Bildschirme und Registerkarten Administration des Domino-Servers auch über Web-basierte Oberfläche c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Notes/Domino, Administrator und Designer Domino Designer Spezieller Notes-Client Integrierte Entwicklungsumgebung zum Entwurf von Anwendungen Gesamte Prozess der Anwendungsentwicklung vom Entwurf, über die Implementierung, das Debugging und die Dokumentation findet im Rahmen einer einheitlichen grafischen Benutzeroberfläche statt Verwendung von verschiedenen Programmiertechniken (einfache Makrosprache Java-Anwendung) c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Agenda Notes/Domino, Administrator und Designer Programmierkonzepte Domino Designer Gestaltungselemente Übung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Programmierkonzepte Allgemein Auswahlkriterien Entwicklungsmethoden Einfachheit Portabilität Ablaufgeschwindigkeit Wartungsaufwand Notwendiger Schulungsaufwand Native Domino-Methoden (einfache Aktionen, Formeln, JavaScript, LotusScript und Java) Externe Methoden (Entwicklung außerhalb der Entwicklungsumgebung von Notes, z.B. API-Programmierung) Mächtigkeit und Flexibilität APIProgrammierung NotesFormeln Java JavaScript/ LotusScript Einfache Aktionen Erforderliche Programmierkenntnisse Grundsätzlich existieren mehrere Möglichkeiten zur Entwicklung einer Anwendung im Domino-Umfeld. c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Programmierkonzepte Programmierkonzepte von Notes 1/3 Einfache Aktionen Vordefinierte Bausteine Recht komplexe Befehlssequenzen möglich Z.B. Dokumente löschen, verschieben, senden, Feldwerte verändern, Agenten starten, ... Richten sich in erster Linie an Endbenutzer Notes Formeln Vergleichbar mit dem Konzept eines programmierbaren Taschenrechners Auswertung von einfachen bis hin zu sehr komplexen Ausdrücken Ausführen von Notes-spezifischen Befehlen Wenn-Dann-Bedingungen oder einfache strukturierte Programmierung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Programmierkonzepte Programmierkonzepte von Notes 2/3 Lotus Script Im Gegensatz zu Notes-Formeln ist LotusScript eine Programmiersprache Objektorientiertes Basic-Derivat (ausgestattet mit Notes-spezifischen Klassen) Entwicklung von Anwendungen in strukturierter Gestaltung Konzept der Objektorientierung Java Script Ausführung einer Webanwendung auf dem Client (Serverentlastung) Direkte Eingabe von JavaScript-Codefragmente zu jedem Seitenelement Programmierer wird durch die automatische Anzeige der relevanten Events, die Syntax-Prüfung, farbliche Kennzeichnung des Codes sowie einen Referenzbrowser zur Anzeige des Domain-Object-Modells unterstützt c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Programmierkonzepte Programmierkonzepte von Notes 3/3 Java Objektorientierte Sprache zur Entwicklung von netzwerkorientierten Anwendungen Client-Seite: Java-Programme in Form von Applets (kleine Anwendungen) oder Stand-alone-Anwendungen Server-Seite: Java-Anwendungen in Form von Servlets (serverseitige Pendant zu Applets) oder Stand-alone-Anwendungen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Programmierstil Konfigurierbarkeit einer Anwendung Anwendungen sollen in beliebigen Umgebungen laufen, daher keine Referenzen auf Datenbanken oder Server im Code Konfiguration von Referenzen über Profildokumenten Ermöglicht das schnelle Anpassen einer Anwendungen Schlüsselwortfelder Werte für ein Schlüsselwortfeld können zur Laufzeit berechnet werden Schlüsselwörter in Profildokumenten hinterlegen Alias-Werte verwenden (Wert | Alias) Subs und Funktionen Verwendung von LotusScript-Libraries Einzelne Library: kleine funktionelle einheitenstrukturierte Library LotusScript-Libraries sollten sich nicht rekursiv verwenden Namensgebung für Designelemente Designelement mit denen der Anwender nicht direkt arbeitet, sollten versteckt werden Designelemente, die innerhalb der Codierung verwendet werden, sollten durch ein dem Namen vorangestelltes spezielles Zeichen ($) kenntlich gemacht werden c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Agenda Notes/Domino, Administrator und Designer Programmierkonzepte Domino Designer Gestaltungselemente Übung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Vorteile des Designers Wiederverwendung durch Schablonen und gemeinsame Elemente Eine Schablone ist das Gerüst einer Domino-Datenbank Ermöglichen den Aufbau eines Repository von Gestaltungselementen Vereinfachen die Verteilung von Anwendungen Schablonen bereits vorhanden, z.B. DiskussionsDB, Dokumentenverwaltung, Teamroom, Persönliches Journal Prototyping-orientierte Entwicklung Integrierte Entwicklungsumgebung ermöglicht schnelle prototypische Entwicklung von Anwendungen (Rapid Application Development) Breites Angebot an unterstützten Programmierkonzepten (einfache Aktionen, Formeln, JavaScript, LotusScript, Java) Bereits eingebaute Funktionen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Domino Designer Erstellung neuer Datenbanken Änderung des Designs vorhandener Datenbanken Anlegen und Verändern der verschiedenen Gestaltungselemente wie Masken, Ansichten, Seiten, Rahmen Entwicklungsumgebung für Formelsprache (sog. @Befehle und @Funktionen), LotusScript (mit Debugger), Java oder JavaScript Grundelemente einer Notes-Datenbank sind Masken (Forms) zum Erstellen, Ändern und Anzeigen von Dokumenten Masken lassen sich vielfältig dynamisch darstellen Ansichten (Views) zur tabellarischen Darstellung von Dokumenten Für die Anzeige im Web-Browser kann HTML-Quellcode direkt vorgegeben werden, bzw. man kann HTML-Gestaltungselemente wie Layer grafisch erzeugen und diese zum Beispiel auch dynamisch einund ausblenden c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam http://de.wikipedia.org/wiki/Lotus_Domino#Der_Domino_Server Domino Designer Notes Datenbanken Allgemein Im Gegensatz zu relationale Datenbanken Dokumenten-basierte Datenbanken Dateinamen von Lotus-Notes-Datenbanken enden mit dem Suffix .NSF „Notes storage facility“ Datenbankvorlagen (Schablonen) enden mit dem Suffix .NTF „Notes template file“ Dokument Daten und Gestaltungselemente werden in Form von Dokumenten abgelegt Jedes Dokument hat eine eindeutige ID Änderung am Masken- oder Ansichtenlayout hat keine Auswirkung auf gespeicherte Daten Mehrere Felder (Items) unterschiedlicher Typen (z.B. Text oder Zahl) Inhalt ist von der Anzeige entkoppelt Masken (Forms) zum Anzeigen und Ändern der Dokumentinhalte Masken können frei gestaltet werden Ansichten (Views) zur tabellarischen Anzeige von gefilterten Dokumenten Ausführung von ereignis- oder zeitgesteuerten Aktionen mittels Agenten Eine Datenbank hat folgende Identifikationsmerkmale Datenbanktitel: für den Anwender sichtbar Dateiname: je nach darunterliegendem Dateisystem Replik-ID: eine 16 Hex-Zeichen lange Zahl, die beim Erstellen der Datenbank zufällig generiert wird c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Domino Designer Startbildschirm c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Domino Designer Lesezeichen Arbeitsfenster Objekt- bzw. Referenzfenster Aktionsfenster Gestaltungsfenster mit den Gestaltungselementen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Programmierfenster Domino Designer Kompilieren Kompilieren erfolgt automatisch Speicherdialog erscheint falls Änderungen noch nicht gespeichert wurden 1 3 2 c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam 1. Preview im Notes Client 2. Preview im Notes Browser Client 3. Preview im Web Browser, ACL für Anonymous muss gesetzt sei Domino Designer Arbeitsfenster Name/Comment: Bezeichnung des Gestaltungselementes Alias: Zweitname zur einfacheren Referenzierung Last Modified: Datum der letzten Änderung Last Modified by: Name des Entwicklers der letzten Änderung No Refresh: Element darf durch eine Aktualisierung nicht geändert werden Notes/Web/Mobile: Element wird in diesen Client-Typen unterstützt Infobox (Alt+Enter) c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Code Completion Designer gibt mögliche Events zu den Funktionen an Zeigt Syntax des Befehls an c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Unterstützte Events (Auszug) QueryOpen Wird vor dem Öffnen der Seite ausgelöst PostOpen Wird nach dem Öffnen der Seite ausgelöst Formeln QueryRecalc Wird vor dem Aktualisieren der Seite ausgelöst PostRecalc Wird nach dem Aktualisieren der Seite ausgelöst Java Script QueryClose Wird vor dem Schließen der Seite ausgelöst Formeln, Java Script, Lotus Script c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Lotus Script Domino Designer Java in Notes Java z.B. in einem Lotus Notes Agenten verwenden Lotus generiert das Grundgerüst einer neuen Java Klasse JavaAgent Files -> Tools -> Show Java Debug Console c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Lotus Script Debugger Auffinden von Fehlern Schrittweises Ausführen möglich Anzeige der Variablenwerte Haltepunkte setzen u.v.m. Nur syntaktisch korrekter Sourcecode kann gespeichert werden File -> Tools -> Debug LotusScript (Debugger bei Nichtgebrauch wieder deaktivieren) Kommentare in LotusScript Ausdruck: REM Hochkomma: ' Mehrere Zeilen: %REM ... %END REM c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Fehlererkennung Syntaxfehler im LotusScript werden beim Speichern aufgezeigt Syntaxfehler in Formula werden ebenfalls beim Speichern aufgezeigt mit Hinweis, was den Fehler ausgelöst hat WICHTIG: Fehler müssen behoben werden, bevor eine Speicherung erfolgen kann c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Domino Designer Hilfe Taste F1 Kontextbezogene Hilfe Weitere Hilfe-Datenbanken: /Data bzw. /Data/Help c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Domino Designer Hinzufügen bzw. Anpassen externer Entwicklungswerkzeuge Tools -> Add Tool ... c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Tools -> Customize Tools ... Agenda Notes/Domino, Administrator und Designer Programmierkonzepte Domino Designer Gestaltungselemente Übung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Überblick über die Gestaltungselemente Gliederungen Logische Grundgerüst einer Anwendung/Webseite Navigation zu einer bestimmten Stelle Rahmengruppen Aufteilung des Bildschirms in mehrere Teilbereiche Seiten Darstellung von Inhalten Nicht an eine bestimmte Maske gebunden Navigatoren Grafische Steuerelemente Agenten Masken Makroähnliche Programmabläufe Erstellen, Editieren, Anzeigen von Dokumenten Ressourcen Ansichten Listen von Dokumenten (selektiert, kategorisiert, sortiert nach bestimmten Kriterien) Alle Elemente, die wiederverwendet werden können (Gemeinsam genutzte Felder, Teilmasken, Script-Bibliotheken, Bilder, Applets) Ordner Ähneln stark den Ansichten Dokumente müssen manuell von Benutzer dort abgelegt werden c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Andere Über diese Datenbank-Dokument, Benutzen dieser Datenbank-Dokument: Hilfsdokument über Sinn und Zweck Gestaltungselemente Datenbanken im Domino Designer Symbol + Datenbanktitel + Datenbankdateiname (.nsf) c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Framesets1. Pages Forms Views Folders Shared Code Shared Resources Others Gestaltungselemente Möglichkeiten mit Seitenelementen ... Text: vielfältige Textformatierungsmöglichkeiten Bilder: Import aus Zwischenablage, aus Dateisystem oder aus Ressourcenverwaltung Horizontale Linie: optische Trennung bestimmter Seitenabschnitte Tabellen: strukturierte Anzeige von Daten Abschnitte: verbessern die Übersichtlichkeit einer Seite Dateianhänge: einbinden einer beliebigen Datei in die Seite Hotspots: definierte Bereiche, die beim Anklicken eine bestimmte Aktion ausführen (z.B. Schaltflächen, Verknüpfungen) Aktionsschaltflächen: schneller Zugriff auf die meistgebrauchten Funktionen einer Seite Eingebettete Elemente: einfügen von Gliederungen, Ansichten, Navigatoren in Seiten Java-Applets: kleine Programme, welche im Rahmen einer Anwendung ausgeführt werden Objekte: OLE-Komponenten (nur im Notes-Unfeld eingebettet werden) Ebenen: Gestaltungselemente zu Ebenen zusammenfassen und an beliebiger Stelle zu plazieren c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Seite ähnelt einer statischen HTML-Seite Ändern der Eigenschaften über die Infobox Designer entspricht einem WYSIWYG-Editor Gestaltungselemente Ein Gestaltungselement bearbeiten ... Per Drag & Drop Elemente plazieren c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Aktionsfenster Aktionen, die ausgeführt werden können (z.B. Buttons in Ansichten oder Masken) Client: Formula, Simple Actions, LotusScript, JavaScript Web: Javascript Aktionsfenster c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Hilfestellungen erstellen Pop-Ups Gestaltungselemente welche zusätzliche Informationen anzeigen Spezialfall sind Hotspots (Zusatzhinweise nur in Textform) Werden nicht im Webbrowser unterstützt (ähnlich Funktionalität mittels JavaScript möglich) Create -> Hotspot -> Text pop-up ... Erscheint am unteren Nur vom Notes-Client untersützt Bildschirmrand Feldhilfe ein- bzw. ausschalten: View -> Show -> Field Help Feldhilfe c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Voreingestellter Wert, um das Format anzuzeigen Gestaltungselemente Alternativnamen - Aliase Namen von Seiten (oder anderen Gestaltungselemente) Mehrere Namen möglich Dienen zur Referenzierung Alternativnamen (Aliase) werden durch einen vertikalen Trennbalken ("|") getrennt Anzahl der Alias-Namen ist unbeschränkt (allerdings Zeichenanzahl pro Namen < 256) Im Feld "Comment" sollte immer Sinn und Zweck der Seite bzw. des Elements ersichtlich werden Richtlinien bei der Benennung Unterscheidung zwischen Groß- und Kleinbuchstaben Beliebige Kombination aus: Buchstaben, Zahlen, Leer- und Satzzeichen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Gründe für das Verbergen von Absätzen Nicht nur Text, sonden auch andere Seitenelemente (Felder, Aktionen, Tabellen, Bilder) Elemente abhängig von verschiedenen Bedingungen verbergen (z.B.: nach Bearbeitungsstatus, nach Client-Typ, anhand einer Formel) Ergonomie: nur relevane Informationen anbieten Sicherheit: in Abhängigkeit der Zugriffsrechte des Benutzers Unterschiedliche Clienttypen: in Abhängigkeit vom zugreifenden Client Berechneter Text Der eigentliche Textinhalt wird erst zur Laufzeit ausgewertet Z.B.: Anzeige des aktuellen Datums Create -> Computed Text... "Heutiges Datum: " + @Text(@Today) c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Mit Verknüpfungen arbeiten ... Verknüpfungen zu absoluten URLs Verknüpfungen zu einzelnen Domino-spezifischen Gestaltungselementen Alle verknüpfungsartigen Elemente werden HotSpots genannt (Schaltflächen, Aktions-Schaltflächen, Textbzw. Formel-Pop-Ups) URL-Verknüpfung Name des Protokolls (z.B.: http://, mailto:) + eindeutige Adresse (z.B.: www.lotus.com) Verknüpfung geeignet für Quellen außerhalb der Domino-Umgebung Benanntes Element Verknüpfungen zu Elementen in der Domino-Umgebung (werden über einen Namen identifiziert) Einfache Verknüpfung Verknüpfungen zu Domino-Ressourcen (werden über eine ID identifiziert) c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Verknüpfungen erstellen: Create -> Hotspot -> Link Hotspot URL-Verknüpfung bzw. Email-Verknüpfung Text/Bild markieren Verknüpfungen zu benannten Elementen Verknüpfungen zu Domino-Ressourcen Entsprechende Ressource auswählen -> Edit -> Copy As Link -> Named Element Text/Bild markieren oder Edit -> Paste Domino Designer erkennt automatisch den Inhalt der Zwischenablage als Verknüpfung Einfache Verknüpfungen Element, die nicht notwendigerweise über einen Namen verfügen (z.B.: Dokumente, Anker, Ansichten, Datenbanken) Entsprechende Ressource auswählen -> Edit -> Copy As Link -> Database Link Text/Bild markieren oder Edit -> Paste Domino Designer erkennt automatisch den Inhalt der Zwischenablage als Verknüpfung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Bestehende HTML-Seiten einbetten ... 1. Eine neue Seite erstellen File -> Import... Datei auswählen 2. HTML-Code als ASCII-Code per Copy & Paste einfügen 3. Durchgangs-HTML Bestimmte Textabschnitte markieren und als Durchgangs-HTML deklarieren -> Text -> Pass-Thru HTML oder Eckige Klammern umschließen den Text Dokumentenkopf <Head>-Tag manipulieren der Parameter (Schriftarteinstellungen, Titel, Metainformationen, ...) über HTML Head Content Dokumentenkörper <Body>-Tag manipulieren der Parameter (Hintergrundfarbe, -bild, Seitenrändern, ...) über HTML Body Attributes c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente HTML-Attribute manipulieren Die meisten Gestaltungselement bieten eine zusätzliche Registerkarte namens HTML an, wo HTML-Attribute plaziert werden können HTML Attribute Name: Name des Elements zur Referenzierung ID: eindeutiger Identifizierer Klasse: Zuweisung einer Style Sheet Klasse Stil: Zuweisung bestimmter Formatierungsmerkmale zu dem Element, direkte Zuweisung Titel: Angabe einer Überschrift für das Element Andere: Plazierung anderer Attribute Plazieren von Dateianhängen Cursor an die entsprechende Stelle der Seite Create -> Attachment... Datei auswählen -> speichern c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Aktionen Gestaltungselemente Mit Ebenen arbeiten ... Durch Ebenen können mehrere Elemente zusammengefasst und anschließend pixelweise plaziert werden Erstellung von Ebenen Seite öffnen Create -> Layer Ebene an eine beliebige Stelle schieben, Größenänderungen vornehmen Neues Menü Infobox c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Gemeinsame Ressourcen ... Elemente, die in einer Datenbank gespeichert sind Können mehrfach verwendet werden Z.B.: Bilder, Applets, Teilmasken, Felder, Script-Bibliotheken Neue Bildressource hinzufügen: Shared Resources -> Images -> New Image Resource Gemeinsame Ressource benutzen: Create -> Image Resource bzw. Insert Resource... Eingefügtes Element c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gemeinsame Ressource Gestaltungselemente Eigene Datenbank als Schablone kennzeichnen Datenbank entsprechend gestalten Infobox "Database" -> Reiter "Design" Eigene Datenbank als Schablone anbieten c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Gestaltungsübersicht einer Datenbank - Synopsis Analyse von Gestaltungselementen (z.B.: Masken, Agenten) Dokumentation aller Einstellungen der Gestaltungselemente Other -> Synopsis... c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Gestaltungselemente Spezielle Gestaltungsdokumente einer Datenbank ... "Über diese Datenbank" und "Benutzen dieser Datenbank" -Dokumente Bereitstellung grundlegender Informationen über die Datenbank Inhalt ändern im Designer Help -> About This Database bzw. Using This Database Other -> Database Resources -> "Using Database" bzw. "About Database" Document Dokument anzeigen lassen im Client: Help -> About This Database bzw. Using This Database "Über"-Dokument kann als Startoption festgelegt werden Infobox "Database" -> Reiter "Launch" -> "When opened in the Notes client" c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Agenda Notes/Domino, Administrator und Designer Programmierkonzepte Domino Designer Gestaltungselemente Übung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Übung Aufgabenstellung Praktische Aufgaben mit dem Designer 1. Persönliches Journal im Designer öffnen 2. Feldhilfen hinzufügen bzw. ändern 3. Gemeinsame Ressource hinzufügen und benutzen 4. Eine leere Datenbank (ohne Schablone) erstellen und im Designer öffnen 5. Logo ändern mit Other -> Database Resource -> Icon 6. "Über"-Dokument erstellen 7. Aliasnamen für das "Über"-Dokument anlegen 8. Zusätzliche Informationen über die Datenbank anzeigen mit Other -> Synopsis ... 9. Mindestens zwei Seiten erstellen 10. Überschrift der Seite dynamisch verändern (verbergen), in Abhängigkeit vom Client (Notes-Client, Webbrowser) 11. Berechneter Text einfügen mit folgendem Ausdruck: "Heutiges Datum: " + @Text(@Today) 12. Http-Link zu einer Webseite 13. Email-Link zu einer Mailadresse 14. Link zu einer anderen Seite der Datenbank (oder einer anderen Datenbank) 15. HTML in eine Seite einfügen z.B. [<Blink> Keine Unterstützung vom Internet Explorer! </Blink>] 16. Style Sheet Definition im Kopfbereich eintragen und einer Verknüpfung die Klasse "menu" zuweisen z.B. "[<Style> <!-- A.menu:hover{background-color:silver;} --> </Style> ]" c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Weiterführende Informationen zu Lotus Notes und dem Domino Designer LV Groupware- und Workflowsysteme Universität Potsdam Lehrstuhl für Wirtschaftsinformatik und Electronic Government Univ.-Prof. Dr.-Ing. Norbert Gronau August-Bebel-Str. 89 14482 Potsdam Tel. (0331) 977-3379 Fax (0331) 977-3406 http://wi.uni-potsdam.de Prof. Dr.-Ing. Norbert Gronau Dipl.-Inform. Barbara Pogorzelska Wintersemester 2008/2009 Agenda Einführung Architektur Vorteile als Entwickungsplattform c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Geschichte von Lotus Notes / Domino Historie 1973 entwickelt der Student Ray Ozzie (USA) das System PLATO Notes (Bulletin Board = elektronisches Diskussionsforum) 1989 offizielles Produkt Lotus Notes, Gründer Mitch Kapor Entwicklung vom Microsoft Information Exchange Server 1993 engültiger kommerzieller Durchbruch für Lotus Notes Übernahme von Lotus durch IBM Namensgebung Domino: ursprünglicher Name der Teilanwendung HTTP-Übersetzer Domino => Serverseite Notes => Clientseite c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Lotus Notes Client 1/2 Allgemeine Eigenschaften Dokumentenorientiertes verteiltes Datenbanksystem mit sehr enger E-Mail-Anbindung Plattform für die Entwicklung von Anwendungen Funktionen E-Mail (inkl. Kalender, Aufgabenliste) E-Diskussion „TeamRoom“ ... c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Lotus Notes Client 2/2 Sprache für Anwendungsentwicklung Sprachen sind die Lotus-Notes-Makrosprache (sog. @-Funktionen und @-Commands) LotusScript (sehr ähnlich Visual Basic) Java, JavaScript Client-Server-System Daten werden auf dem Lotus Domino-Server gespeichert Benutzer-Interaktionen werden auf dem Lotus Notes-Client durchgeführt c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Notes Domino 1/2 Allgemeine Eigenschaften Notes Domino ist seit vielen Jahren Marktführer im Groupware-Markt Server-gestützte Dienste bieten viele Möglichkeiten Lotus Notes als zentrales Kommunikations- und Integrationssystem Geeignet für Umgebungen mit hohem Anspruch auf Sicherheit und Zuverlässigkeit Schnelle Entwicklung von Anwendungen Exzellente Integration in heterogene IT-Landschaften c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Notes Domino 2/2 Wichtige Dienste Datenbank-Managementsystem Replikation Mail-Routing Information-Retrieval Integration mit anderen Systemen Internet-Kompatibilität Sicherheit Unterschiedliche Möglichkeiten des Informationszugriffs c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Datenbank-Managementsystem 1/2 Dokumentenorientiert Im Kern der Domino-Funktionalität steht das Datenbank-Managementsystem (DBMS), der so genannte secure object store Kein relationales DBMS, wie bei Oracle oder Sybase, sondern ein Repository zur Verwaltung unstrukturierter Informationen Elementare Bausteine, so genannte NOTES (Dokumente), entsprechen einem relationalen RECORD VIEWS (Ansichten) ermöglichen eine bestimmte Sichtweise auf die Datenbankinhalte Wesentlicher Unterschied zu relationalen DBMS Struktur der "Tabellen" - Zusammensetzung der Spalten und Größe der "Felder" - muss man nicht von vornherein kennen Explizite Tabellendefinition existiert in Notes gar nicht! c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Datenbank-Managementsystem 2/2 Erfassen von Daten Elektronisches Formular zur Eingabe von Daten Änderungen im Formular werden in allen daraufhin erstellten Dokumenten stillschweigend akzeptiert Flexibilität ergänzt durch die Fähigkeit auch komplexe Objekte zu verwalten (z.B. Bilder, Klänge, ausführbare Objekte) Bestandteile der Applikation wie etwa .css (Cascaded Style Sheets), JavaScript-Codefragmente, Dateien oder Bilder können direkt verwaltet werden Nachteile bei fehlender Struktur Dynamische Datenmodell ermöglicht keinerlei Prüfung von Integritätsregeln Aufspüren von Inkonsistenzen und Redundanzen bleibt Sache des Anwendungsentwicklers c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Replikation 1/2 Allgemeines Herausragende Fähigkeit =>Replikation von Datenbanken Synchronisierung einer Vielzahl von Datenbanken (sog. Repliken) auf geografisch verteilten Rechnern automatisch bzw. periodisch Ein Anwendungsbeispiel Ein Unternehmen hat drei Verkaufsniederlassungen, eine in Berlin, eine in Frankfurt und eine in München Es sollen die in einer Domino-Datenbank verwalteten Kundendaten eines Standorts den beiden anderen Standorten zugänglich gemacht werden Anstatt mühsam die Daten per Diskette oder per FTP hin- und herzuschieben und die an allen Orten vorgenommenen Änderungen manuell abzugleichen, bietet sich der Mechanismus der Replikation an Alle Modifikationen, die zwischen zwei Repliziervorgängen an Repliken vorgenommen wurden, werden automatisch abgeglichen, indem die neueste Modifikation "gewinnt" Kann ein Replikationsmechanismus einen Konflikt nicht auflösen, wird dieser gesondert gekennzeichnet und kann manuell beseitigt werden c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Replikation 2/2 Weitere Einsatzgebiete im Anwendungsbeispiel Mobiler Einsatz: ein Verkäufer ist in der Lage alle relevanten Kunden- und Produktinformationen auf einen mobilen Rechner zu replizieren, zu bearbeiten und anschließend mit der Hauptdatenbank abzugleichen Anwendungsentwicklung: Da auch die Gestaltungselemente einer Domino-Datenbank repliziert werden können, können Domino-Anwendungen ohne weiteres verteilt entwickelt werden, indem jeder Entwickler mit seiner eigenen Replik arbeitet. Wird anschließend repliziert, bekommt jeder Entwickler automatisch alle Neuerungen der anderen Teammitglieder. Vorteil: basierend auf dem Replikationsmechanismus ist es ein Leichtes eine Version der Anwendungen weltweit über Nacht zu verteilen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Mail-Routing 1/2 Allgemeines Gehört von Anfang an zum Kern von Notes Domino Die am häufigsten in Anspruch genommene (oftmals sogar das einzige) Funktion eines Domino-System Standards Proprietäre Notes-Mail-Format (Notes Rich-Text) Internet-kompatible SMTP mit MIME-basierter E-Mail-Darstellung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Mail-Routing 2/2 Sicherheit Bei SMTP: Domino SSL (zur sicheren Übertragung) sowie X-509-Zertifikate (zum Verschlüsseln und Signieren von Nachrichten) Sonst: proprietäre Notes-Zertifikate Beziehung zwischen DBMS und Mail-Routing Datenbankfunktionalität beim Zwischenlagern als auch beim Zustellen von E-Mails Eine E-Mail ist in der Notes Welt - unabhängig von Rich-Text oder MIME-Format, nichts anderes als ein Dokument (NOTE) c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Information Retrieval 1/2 Allgemeines "Unstrukturierte" Datenbankkonzept impliziert, dasimpliziert, den klassischen "Unstrukturiertes" Datenbankkonzept das den Abfragesprachen wie SQL ("Structured" Query Language) im Lotus-Umfeld klassischen Abfragesprachen wie SQL ("Structured" Grenzen gesetzt sind Query Language) Lotus-Umfeld Grenzen gesetzt sind Lotus entwickelte dafür im alternative Mechanismen der Informationssuche Lotus entwickelte dafür alternative Mechanismen der Informationssuche Mechanismus "Ansichten" Ansichten sind nicht einfach vordefinierte Mechanismen der Selektion und Projektion, sondern vielmehr echte "Objekte", die auf bestimmte Ereignisse reagieren und vom Benutzer aktiv manipuliert werden können Informationssuche in den Ansichten setzt voraus, dass der Suchende über den Inhalt und die Struktur recht gut informiert ist c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Information Retrieval 2/2 Mechanismus "Volltextsuche" Analog zum World Wide Web Domino verfügt standardmäßig über eine Volltextsuchmaschine, welche einzelne Datenbanken, Server und sogar ganze Domänen (Gruppen von Servern und Dateisystemen) indizieren und dem Benutzer zur Verfügung stellen kann Mechanismus "Agenten" Kleine, eigenständige Programme, welche zur Automatisierung bestimmter, routinemäßig anfallender Aufgaben eingesetzt werden Einsatzbereich der Agenten geht weit über das Information Retrieval hinaus, allerdings stellen sie in diesem Bereich eine interessante Alternative zu den zwei anderen Methoden dar Informationen nicht nur automatisch suchen, sondern die Ergebnisse der Suche als Eingabe für weiterreichende Aktionen einsetzen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Integration mit anderen Systemen Nicht immer ist der Einsatz von Notes sinnvoll! Die richtig wichtigen Daten in einem Unternehmen liegen bereits in anderen Systemen vor (z.B. betriebswirtschaftliche Standardsoftware wie SAP R/3, relationale Datenbanken wie Oracle oder in guten alten Host-Anwendungen) Notes-DBMS ist nicht immer die beste Lösung, beispielsweise wenn es sich um große Mengen strukturierter Daten handelt oder die Abwicklung von Transaktionen eine wichtige Rolle spielt Möglichkeiten einer Integration Austausch von gängigsten Dateitypen mittels einfacher Import- und Export-Funktionen Anbindung relationaler Datenbanken über die Open Database Connectivity (ODBC-) Spezifikation Anbindung, über den so genannten Domino Enterprise Connectivity Server (DECS) (als Systemadministrator können "Echtzeitbeziehungen" zwischen Domino und einer beliebigen externen Quelle definiert werden, d.h. die Daten werden in Echtzeit zwischen beiden Systemen ausgetauscht) Domino sieht sich strategisch in der Rolle der zentralen Middleware- Plattform. c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Internet-Kompatibilität Eigenschaften Großteil der Dienste ist konsequent auch aus einem Internet-Client (Webbrowser, Internetmail und News-Client) nutzbar Dabei ist aus Sicht des Systembetreibers kein merkbarer Zusatzaufwand erforderlich Möglichkeiten Gateway-Dienste (z.B. SMTP-Router) vermitteln zwischen der proprietären Notes- und der Internet-Welt Reine Internet-Funktionen treten gleichzeitig neben alten proprietären Notes-Standards auf c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Sicherheit 1/2 Gründe Immer mehr wichtige Informationen liegen nicht mehr in Papierform vor, sondern werden elektronisch gespeichert und verteilt, wodurch sich für eine potentiellen Angreifer völlig neue Möglichkeiten ergeben Arten der Sicherheitsmaßnahmen Bidirektionale Authentifizierung (Datenaustausch zwischen Client/Server, asymetrische Verschlüsselung) Digitale Unterschriften (garantiert die Echtheit elektronischer Nachrichten und Dokumente) Zugriffskontrolle (Berechtigung für bestimmte Operationen auf Server-, Datenbank-, Dokumentebene) Verschlüsselung (Lesen von Nachrichten nur von Personen, die den entsprechenden Schlüssel besitzen) c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Sicherheit 2/2 Domino-Verzeichnis (zentrales Repository) Zentrale Rolle im Bereich Sicherheit Beinhaltet sämtliche Informationen über Benutzer, Gruppen und Server sowie sonstige System- und Sicherheitseinstellungen Ist vergleichbar mit der Benutzerverwaltung unter Windows NT, UNIX oder Novell NDS Bei Domino spielt das Thema Sicherheit eine große Rolle! c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Unterschiedliche Möglichkeiten des Informationszugriffs ... Philosophie der Plattform Alt: proprietärer Notes-Client Neu: beliebige Client-Typen, insbesondere Webbrowser, aber auch mobile Zugriffsgeräte (z.B. mobile Telefonen und PDA´s) und sogar Produkte der Konkurrenz (z.B. Microsoft Outlook) Alternativen zur Online-Bearbeitung Vom Netzwerk abgekoppelten offline-Informationsbearbeitung (im Lotus-Notes-Client oder im Webbrowser durch die so genannten Domino Offline Services) Informationsverteilung in Echtzeit in Form des Instant Messaging ... bietet die Integration unterschiedlicher Client-Typen sowie unterschiedlicher Modi des Informationszugriffs. c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Zentrale Merkmale von Lotus Notes Domino 1/2 Replikation Von Notes-Datenbanken zwischen Servern oder von Notes-Datenbanken zwischen Notes-Client und Domino-Server Abgleich verschiedener Instanzen einer verteilten Datenbank Mittels Replikation werden nicht nur Daten, sondern auch Design-Elemente (Masken, Views, Agenten etc.) auf alle Server und Clients automatisch verteilt Rapid Application Development and Deployment (RADD) Mittels Lotus Domino Designer Entwicklung und Wartung mit geringem Aufwand durch 4GL Senkung der Entwicklungs-, Wartungs- und Administrationskosten im Vergleich zu konventionellen Entwicklungsumgebungen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Einführung Zentrale Merkmale von Lotus Notes Domino 2/2 Volle Offline Funktionalität Notes-Anwendung auf einem Domino-Server kann i.d.R. vollständig identisch auf einem Laptop benutzt werden, der offline betrieben wird (z.B. in der Bahn, im Flugzeug) Integrierte Public-Key-Infrastruktur (PKI) Jeder Notes-Benutzer benötigt eine Notes-User-ID Diese enthält Zertifikate, einen öffentlichen Schlüssel, einen dazu passenden privaten Schlüssel und gegebenenfalls Schlüssel zur symmetrischen Verschlüsselung Dasselbe gilt für den Server c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Agenda Einführung Architektur Vorteile als Entwickungsplattform c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Architektur Client/Server-Prinzip 1/2 Grundlagen Kein monolithischer Block der gesamten Funktionalität Unterteilung der Anwendung in mindestens zwei logischen Sichten: Client und Server Aufgabe des Servers Auf Anfragen eines oder mehrerer Clients eine bestimmte Funktion bereitzustellen Vorteile Erhöhte Effizienz der Ressourcennutzung Erhöhte Flexibilität des Systems c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Architektur Client/Server-Prinzip 2/2 Geographische Verteilung Notes Domino Installationen werden in großen Unternehmen mit tausenden Arbeitsplätzen geografisch verteilt Redundante Verteilung Performance-Last wird von einem auf mehrere funktionsgleiche Systeme umdisponiert Funktionale Verteilung Aufteilung des Systems in mehrere Module Module sind abgestimmt auf einen speziellen Aufgabenbereich und kommunizieren untereinander Lotus Domino ist ein verteiltes System. c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Architektur 3-Trier-Architektur Allgemeines Anwendung wird typischerweise in drei Schichten unterteilt Jede Schicht kann sowohl als Client als auch als Server fungieren Die drei Schichten Datenschicht umfasst alle Funktionen auf der Datenhaltung Anwendungsschicht umfasst die "Regeln" zur Verarbeitung von Daten Präsentationsschicht stellt dem Benutzer die Ergebnisse dar Lotus Notes Domino ist ein echtes Client/Server-System Erste Schicht besteht aus Domino-Datenbanken und Domino-Programmen Zweite Schicht stellt die Präsentation über den Notes-Client (oder Webbrowser) dar c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Architektur Domino Server 1/2 Allgemeines Kern des Domino-Server ist der Datenbank-Server (ermöglicht die gleichzeitige Verwendung einer Datenbank durch mehrere Benutzer) Verfügt aus Performance-Gründen über keine grafische Benutzeroberfläche Ansteuerung des Servers mittels Eingabe von Befehlen über eine Konsole Ansteuerung des Domino-Servers erfolgt mittels der Eingabe einfacher Befehle an einer Konsole (starten und beenden von Tasks, anzeigen von aktiven Tasks und Benutzer, anstoßen der Replikation von Datenbanken) Weitere Module Erweiterungen der Kernfunktionalität: Volltextindizierung, Replikationsprozess, Agent-Manager, Calendaring, Scheduling, Mail-Router, Integration in relationale Datenbanken, Legacy-System Administrationsfunktionen: Administrationsprozess (automatisches Monitoring von Server-Prozessen, Generierung von Statistiken, Komprimieren, Reparieren und Verwalten von Datenbanken) Internet-Tasks: HTTP-Task, Mail-Zugriff, NNTP-Server, LDAP-Server, CORBA-konforme Object Request Broker c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Architektur Domino Server 2/2 Beispiel Befehle tell http quit - anhalten des HTTP-Servers (falls dieser aktiv ist) load http - erneutes Starten des HTTP-Server show tasks - anzeigen aller aktiven Tasks help - anzeigen aller Konsolenbefehle des Domino-Servers in komprimierter Form c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Agenda Einführung Architektur Vorteile als Entwickungsplattform c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Vorteile als Entwickungsplattform Vorteile von Notes Domino als Entwicklungsplattform 1/4 Integrierte Umgebung Entwicklungsumgebung von der aus sich sämtliche Domino-Dienste einheitlich ansprechen lassen Zahlreiche Features (Volltextsuchmaschine, Mail-System, Anbindung an relationale Datenbanken, Sicherheitskonzept) Prototyping-orientierte Entwicklung Integrierte Entwicklungsumgebung ermöglicht schnelle prototypische Entwicklung von Anwendungen (Rapid Application Development) Breites Angebot an unterstützten Programmierkonzepten (einfache Aktionen, Formeln, JavaScript, LotusScript, Java) Bereits eingebaute Funktionen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Vorteile als Entwickungsplattform Vorteile von Notes Domino als Entwicklungsplattform 2/4 Datenbanken Vorteil des Domino-Datenbankmodells: Gestaltungselemente und die eigentlichen Datenbankinhalte gehören zum festen Bestandteil einer Datenbank Fortgeschrittene Dienste voll nutzbar (z.B. granulierte Zugriffsbeschränkung, Replikation der Anwendungsentwicklung) Rich-Text Storage HTML-Dokumente können im Dateisystem abgelegt werden Domino-Datenbanken sind darauf ausgelegt unstrukturierte Inhalte aller Art zu verwalten Vorteile gegenüber herkömmlichen Dateisystemen: feingranulierte Sicherheitskonzepte, Replikation, automatische Indizierung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Vorteile als Entwickungsplattform Vorteile von Notes Domino als Entwicklungsplattform 3/4 Wiederverwendung durch Schablonen und gemeinsame Elemente Eine Schablone ist das Gerüst einer Domino-Datenbank Ermöglichen den Aufbau eines Repository von Gestaltungselementen Vereinfachen die Verteilung von Anwendungen Schablonen bereits vorhanden, z.B. DiskussionsDB, Dokumentenverwaltung, Teamroom, Persönliches Journal Plattformunabhängigkeit und Offenheit Technologien, die sich am Markt behaupten können, werden in das Domino-Konzept integriert Integration von Technologien: Macromedia-Shockwave, Internet Information Server, COM/DCOM, CORBA, ... c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Vorteile als Entwickungsplattform Vorteile von Notes Domino als Entwicklungsplattform 4/4 Internet Kompatibilität Domino-Funktionalität kann (mit geringen Einschränkungen) auch in Internet-Clients genutzt werden Breites Spektrum an Funktionen und Schnittstellen Integration mit externen Werkzeugen Seit Version 6 besteht im Domino Designer die Möglichkeit, externe Werkzeuge direkt in die Entwicklungsumgebung einzubinden Entwickler kann somit unterschiedliche Editoren, Werkzeuge zu Performanceanalysen, u.a. direkt aus der Domino-Entwicklungsumgebung aufrufen c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam Vorteile als Entwickungsplattform Domino Datenbanken und Alternativen im Vergleich Domino Datenbank Dateisystem Relationale Datenbank Integration mit gängigen Office-Anwendungen Insbesondere Lotus-Anwendungen, teilweise auch MS Office Sehr gut Nein Replikation Ja Nein Ja Verwaltung von strukturierten Inhalten Geeignet Ungeeignet Sehr gut geeignet Verwaltung von unstrukturierten Inhalten Geeignet Geeignet Ungeeignet Volltextsuche Ja Nein i.d.R. Nein Sicherheit Vielzahl von Sicherheits mechanismen, fein granulierte Zugriffbeschränkung, Web-kompatibel Zugriffsbeschränkung auf der Betriebssystemebene Fein granulierte Zugriffsbeschränkung c Prof. Dr.-Ing. Norbert Gronau, Universität Potsdam