Ekert | Java unter Lotus Domino | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 803 Seiten

Reihe: Xpert.press

Ekert Java unter Lotus Domino

Know-how für die Anwendungsentwicklung
2006
ISBN: 978-3-540-34583-1
Verlag: Springer Berlin Heidelberg
Format: PDF
Kopierschutz: 1 - PDF Watermark

Know-how für die Anwendungsentwicklung

E-Book, Deutsch, 803 Seiten

Reihe: Xpert.press

ISBN: 978-3-540-34583-1
Verlag: Springer Berlin Heidelberg
Format: PDF
Kopierschutz: 1 - PDF Watermark



In diesem Buch wird auf die Besonderheiten der Java-Anwendungsentwicklung unter Domino eingegangen. Es liefert dem erfahrenen Java-Programmierer, der neu in der Domino-Welt ist, einen reichhaltigen Wissensschatz, der weit über die reine Dokumentation der Domino-Java-API hinausgeht. Anleitungen und Best-Practice-Beispiele aus realen Projekten, sowie Tools und vorgefertigte Klassen sind ebenso vorhanden, wie die neuen Standards unter Domino. Gleichzeitig bietet das Buch dem technischen Projektleiter vom Setup eines Entwicklungsteams bis hin zur Planung und Durchführung der Qualitätssicherung, Logging und Unit-Tests einen Leitfaden, der speziell auf die Bedürfnisse von Domino eingeht. Nicht zuletzt profitiert das Buch von der langjährigen Domino- und Java-Erfahrung des Autors, der mit Tipps und Tricks zu undokumentierten Bugs und Features beiträgt.

Thomas Ekert ist seit 8 Jahren freier IT-Berater und führt seit 5 Jahren als CTO und geschäftsführender Gesellschafter die IT-Agentur BITSDONTBYTE. Als zertifizierter Lotus und Java Entwickler ist er Spezialist für Domino und Web Application Server Entwicklung. Als Hauptverantwortlicher für große Projekte für öffentliche und private Auftraggeber ist er erfahren in Controlling und Qualitätssicherung von umfangreichen TÜV-geprüften Java basierten Domino-Projekten, in denen er neben Projektierung, Konzept und Leitung auch Schulungen in den Unternehmen konzipiert und durchführt.

Ekert Java unter Lotus Domino jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


1;Vorwort;6
2;Über dieses Buch;8
3;Inhalt;11
4;Teil 1 Notes und Domino;19
4.1;1 Das Domino-Prinzip;21
4.1.1;1.1 Replikation;23
4.1.2;1.2 Schemabasiertes Objekt- und Speichermodell;24
4.1.3;1.3 Erweiterbarkeit;25
4.1.4;1.4 Zugriffskontrolle und Verschlüsselung;27
4.1.5;1.5 Geschichte;29
4.1.6;1.6 Lotus Domino und Java;32
4.1.7;1.7 Lotus Domino als Datenbank;34
4.1.8;1.8 Die Client-Server-Umgebung Lotus und Domino;36
4.1.9;1.9 Zusammenfassung;38
4.2;2 Notes @ Domino;41
4.2.1;2.1 „Hello WWWorld“ – URL-Loader-Anwendung;42
4.2.2;2.2 Das Domino-Speichermodell;59
4.2.3;2.3 Replikation;80
4.2.4;2.4 Das Domino-Objektmodell (Einführung);85
4.2.5;2.5 Suchkonzepte (Einführung);86
4.2.6;2.6 Sicherheitskonzepte;92
4.2.7;2.7 Zusammenfassung;94
4.3;3 Notes IDE;97
4.3.1;3.1 Der Domino Designer;98
4.3.2;3.2 Masken;103
4.3.3;3.3 Ansichten und Ordner;115
4.3.4;3.4 Agenten;123
4.3.5;3.5 Bibliotheken;129
4.3.6;3.6 Zusammenfassung;130
5;Teil 2 Java @Domino;131
5.1;4 Java-Anwendungen @ Domino;133
5.1.1;4.1 Domino- und J2SE- und J2EE-Anwendungen;134
5.1.2;4.2 Vorbereitungen;135
5.1.3;4.3 Lokale Notes Session;137
5.1.4;4.4 Java und Domino;139
5.1.5;4.5 Statische Notes Threads;141
5.1.6;4.6 Session im statischen Thread;144
5.1.7;4.7 NotesThread erweitern;145
5.1.8;4.8 Runnable implementieren;146
5.1.9;4.9 Domino-Java-Applets;146
5.1.10;4.10 Notes Agent im Domino Designer erstellen;155
5.1.11;4.11 Agent in Domino Designer importieren;159
5.1.12;4.12 Agent in eine Java-Anwendung umwandeln;161
5.1.13;4.13 Agenten in Notes-Masken;162
5.1.14;4.14 WebQueryOpen und WebQuerySave;165
5.1.15;4.15 Parameterübergabe zwischen Agenten und runOn-Server;166
5.1.16;4.16 Sicherheit bei der Agentenausführung;172
5.1.17;4.17 Debugging von Domino-Java-Agenten;177
5.1.18;4.18 Der Domino Agent Manager;178
5.1.19;4.19 Domino-Java-Agent und -Anwendung – Konzepte im Vergleich;179
5.1.20;4.20 Zusammenfassung;180
5.2;5 Java-Web-Anwendungen @ Domino;183
5.2.1;5.1 Domino-Web-Agenten;184
5.2.2;5.2 Servlets;189
5.2.3;5.3 Remote Computing via DIIOP / CORBA;202
5.2.4;5.4 Troubleshooting;250
5.2.5;5.5 Zusammenfassung;254
5.3;6 Domino-Objekt- und Speichermodell;257
5.3.1;6.1 Objekt- und Datenstruktur;258
5.3.2;6.2 Basis- und Sonderklassen;266
5.3.3;6.3 Zusammenfassung;271
5.4;7 Document;273
5.4.1;7.1 Document und Item;274
5.4.1.1;7.1.1 Mit Items arbeiten;275
5.4.1.2;7.1.2 Datentypen handhaben;277
5.4.1.3;7.1.3 Item Properties und weitere Methoden in Item;286
5.4.1.4;7.1.4 Mit Document arbeiten – Lifecycle eines Dokuments;289
5.4.2;7.2 Profildokumente;300
5.4.3;7.3 Antwortdokumente;302
5.4.3.1;7.3.1 Antwortreferenzen über Self ID und Parent ID;304
5.4.4;7.4 Attachments;306
5.4.4.1;7.4.1 Übersicht über die Methoden zur Attachmentbearbeitung;316
5.4.5;7.5 Encryption und Signing;320
5.4.5.1;7.5.1 Items mit geheimen Verschlüsselungsschlüsseln verschlüsseln;322
5.4.5.2;7.5.2 Verwendung der Verschlüsselungsschlüssel;324
5.4.5.3;7.5.3 Fehlerquellen bei der Verwendung von Verschlüsselungsschlüsseln;326
5.4.5.4;7.5.4 Verwendung von Verschlüsselungsschlüsseln über DIIOP;328
5.4.5.5;7.5.5 Verschlüsselung und Signatur von Dokumenten;329
5.4.5.6;7.5.6 Verwendung öffentlicher Verschlüsselungsschlüssel;329
5.4.5.7;7.5.7 Signieren von Daten;330
5.4.5.8;7.5.8 Versenden von signierten und verschlüsselten Daten;332
5.4.6;7.6 Document Properties und weitere Methoden;333
5.4.7;7.7 Document Locking;337
5.4.8;7.8 Zusammenfassung;343
5.5;8 Session;345
5.5.1;8.1 Bezug von Datenbanken;346
5.5.2;8.2 Einfache unabhängige Stil- und Eigenschafts-Objekte;347
5.5.3;8.3 Service-Anwendungen;349
5.5.4;8.4 Ausführen verschiedener Befehle;352
5.5.5;8.5 Verschiedene Eigenschaften;354
5.5.6;8.6 Zusammenfassung;356
5.6;9 Database;357
5.6.1;9.1 Datenbanken öffnen, schliessen, replizieren und löschen;358
5.6.2;9.2 Datenbanken, Dokumente und Document Collection;363
5.6.3;9.3 Allgemeine Datenbankeigenschaften;364
5.6.4;9.4 Suche und Catalog;370
5.6.5;9.5 Sicherheit;373
5.6.6;9.6 Designelemente und Ordner;379
5.6.7;9.7 Locking und Signatur;383
5.6.8;9.8 Service Tasks;383
5.6.9;9.9 Zusammenfassung;384
5.7;10 View;385
5.7.1;10.1 Updates, Indizes und Performance;387
5.7.2;10.2 Programmatische Manipulation des Designs von Views;388
5.7.3;10.3 Allgemeine Properties und Methoden;395
5.7.4;10.4 View und Document;398
5.7.5;10.5 ViewNavigator, View und ViewEntry;402
5.7.6;10.6 Locking;419
5.7.7;10.7 DocumentCollection und ViewEntryCollection;419
5.7.8;10.8 Schleifen – View, DocumentCollection und ViewEntryCollection;431
5.7.9;10.9 Kapselung von Schleifen;438
5.7.10;10.10 Zusammenfassung;441
5.8;11 RichText;443
5.8.1;11.1 Arbeiten mit RichText;444
5.8.2;11.2 RichTextItem;447
5.8.3;11.3 RichTextNavigator;453
5.8.4;11.4 RichTextRange;457
5.8.5;11.5 RichTextSection;460
5.8.6;11.6 RichTextTable;460
5.8.7;11.7 RichTextTab;470
5.8.8;11.8 RichTextDoclink;471
5.8.9;11.9 RichTextParagraphStyle;473
5.8.10;11.10 RichTextStyle;477
5.8.11;11.11 Zusammenfassung;479
5.9;12 Weitere Objekte;481
5.9.1;12.1 Das Name-Objekt;482
5.9.2;12.2 Arbeiten mit Zeit-Objekten;487
5.9.3;12.3 Arbeiten mit internationalen Einstellungen;492
5.9.4;12.4 Methoden in Agent;493
5.9.5;12.5 Zusammenfassung;496
5.10;13 Objekt- und Speichertechniken;497
5.10.1;13.1 Erweitern der Objekt-Funktionalitäten;498
5.10.2;13.2 Cashing von Domino-Objekten;516
5.10.3;13.3 Domino-Objekte in Multithreading-Umgebungen;532
5.10.4;13.4 Domino und DB2;541
5.10.5;13.5 Zusammenfassung;584
5.11;14 Recyling von Domino-Objekten;587
5.11.1;14.1 Notwendigkeit des Recyclings;588
5.11.2;14.2 Grundregeln des Recyclings;589
5.11.3;14.3 Besonderheiten in verschiedenen Umgebungen;600
5.11.4;14.4 Vereinfachung – Die DJBuch-GC-Klasse;603
5.11.5;14.5 Recycling im MultiThreading;605
5.11.6;14.6 Zusammenfassung;605
5.12;15 Wer suchet, der findet;606
5.12.1;15.1 Überblick über die Suchkonzepte;607
5.12.2;15.2 Zugriff über UniversalID und NoteID;610
5.12.3;15.3 Suche über Views;611
5.12.4;15.4 Suche über Datenbanken mit db.search;617
5.12.5;15.5 Volltextindizes;618
5.12.6;15.6 Weitere Suchkonzepte (Domainsearch / browsergestützt);622
5.12.7;15.7 Performanceoptimierung;625
5.12.8;15.8 Zusammenfassung;627
6;Teil 3 Domino-Enterprise-Anwendungen;628
6.1;16 J2EE Infrastruktur;631
6.1.1;16.1 Application Server;634
6.1.2;16.2 Integrationsszenarien;634
6.1.3;16.3 Single Sign On;642
6.1.4;16.4 Zusammenfassung;644
6.2;17 J2EE @ Domino;645
6.2.1;17.1 Servlets;646
6.2.2;17.2 JSP für Domino;646
6.2.3;17.3 Domtags – Installation und Verwendung;648
6.2.4;17.4 Domtags;652
6.2.5;17.5 Domutils;668
6.2.6;17.6 MVC Pattern für Domino-Anwendungen;670
6.2.7;17.7 Domino-XML;672
6.2.8;17.8 Zusammenfassung;685
6.3;18 Domino-Projektentwicklung;687
6.3.1;18.1 Infrastruktur, Domino-Core-Applikationen;688
6.3.2;18.2 Anwendungen, E-Mail, Replikation;694
6.3.3;18.3 Entwicklungsumgebungen;697
6.3.4;18.4 Team;702
6.3.5;18.5 Zusammenfassung;703
6.4;19 Debugging und Qualitätssicherung;705
6.4.1;19.1 Notwendigkeit und verschiedene Typen von Tests;706
6.4.2;19.2 Agenten debuggen und testen;708
6.4.3;19.3 Domino-Java-Anwendungen testen;716
6.4.4;19.4 Remote Debugging von Java-Agenten;718
6.4.5;19.5 JUnit Tests;721
6.4.6;19.6 Logging;725
6.4.7;19.7 Multithreading und Lasttests;736
6.4.8;19.8 Notes-INI-Variablen;737
6.4.9;19.9 Zusammenfassung;747
6.5;20 Anhang;749
6.5.1;20.1 Bekannte Speicherlimits in Domino-Datenbanken;750
6.5.2;20.2 Übersicht über die Domtags Tag Library;751
6.5.3;20.3 Literatur und Links;763
6.5.4;20.4 Disclaimer;766
6.5.5;20.5 Index;767
6.5.6;20.6 Abbildungsverzeichnis;817


4 Java-Anwendungen @ Domino (S. 115-117)

Java-Anwendungen für Domino können auf vielfältige Weise entwickelt und eingesetzt werden. Beide basieren auf dem Basisobjekt jeder Domino-Java-Anwendung, der Session. Zwei grundsätzliche Ansätze stehen für den Aufbau einer Domino- Java-Anwendung zur Verfügung – einerseits können unabhängig von der Domino- Entwicklungsumgebung eigenständige Java-Anwendungen entworfen werden, die über die Core-Klassen des Pakets lotus.domino.* eine Session beziehen können und somit auf alle Domino-Java-Objekte Zugriff erhalten, und andrerseits können so genannte Domino-Java-Agenten im Domino Designer entworfen werden, die sowohl benutzergesteuerte Programmausführungen ermöglichen, als auch servergesteuerte Batches abarbeiten können.

Beide Ansätze haben ihr eigenes Einsatzgebiet und sollen in allen Details erläutert werden, wobei der eigentliche Unterschied nur im Speicherort des Codes (in einer Java-Anwendung oder in einer Domino-Datenbank) und der hierdurch bedingten unterschiedlichen Art, eine Session zu beziehen, besteht, woraus sich allerdings einige Unterschiede in Berechtigungen und Ausführungsart ergeben. Die eigentliche Verwendung der Domino-Java-Objekte ist in beiden Fällen gleich. Dieses Kapitel beschreibt, wie Domino-Java-Anwendungen aufgebaut werden und welche Ausführungseigenarten und Berechtigungen bei der Ausführung gelten. Die für den Aufbau einer Domino-Java-Anwendung notwendigen Objekte und Klassen werden dann ab Kap. 6 beschrieben.

4.1 Domino- und J2SE- und J2EE-Anwendungen

Bei der Entwicklung stabiler, leistungsfähiger und skalierbarer Web-Anwendungen auf Basis eines Application Servers hat sich Java immer mehr zu einem Standard entwickelt. Insbesondere der J2EE-Standard und einige Frameworks wie Struts [Apache, Struts] oder cocoon [Apache, cocoon] sind heute die Basis vieler Java-basierter Web-Anwendungen.

Auch im Bereich der Software-Entwicklung muss sich Java nicht mehr verstecken und hat inzwischen bei vielen kommerziellen und nicht kommerziellen Unternehmen Einzug in die Anwendungsentwicklung gefunden. Seit Version 4.5 ist Java in Domino integriert und inzwischen wichtiger Bestandteil für die Anwendungsentwicklung für Domino. Hieraus haben sich verschiedene Ansätze entwickelt, mit denen einerseits auf Domino- Datenbanken zugegriffen werden kann, sei es durch alleinstehende J2SE-Anwendungen oder über Webanwendungen auf Basis von Servlets oder JSP. Andrerseits ist Java in Domino integriert und ermöglicht die Entwicklung und Erweiterung von Domino-Anwendungen. Ein kleines Beispiel haben Sie bereits in Kapitel 2.1 kennengelernt.

Grundsätzlich kann nach drei Ansätzen unterschieden werden, in denen Java- Programmierung für Domino zum Einsatz kommt:

• Erweiterung von Domino-Anwendungen durch den Einsatz von Java innerhalb des Notes Clients
• Entwicklung von alleinstehenden Java-Anwendungen auf Basis von J2SE (oder auch J2ME) mit Zugriff auf Domino-Datenbanken
• Entwicklung von Web-Anwendungen mit Zugriff auf Domino-Datenbanken auf Basis von Servlets, JSP, JSP-TagLibs und J2EE entweder für den Einsatz auf externen Application Servern oder innerhalb des Domino-HTTP-Task (nur Servlets)

Für alle drei Anwendungsfälle werden verschiedene Konzepte benötigt, um die Sicherheit zu gewährleisten, die Verbindung zwischen Client und Server herzustellen, Datenintegrität zu gewährleisten und die Interaktion mit den Benutzeroberflächen zu ermöglichen.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.