Java unter Lotus Domino (eBook)
XVIII, 803 Seiten
Springer Berlin (Verlag)
978-3-540-34583-1 (ISBN)
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.
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.
Vorwort 6
Über dieses Buch 8
Inhalt 11
Teil 1 Notes und Domino 19
1 Das Domino-Prinzip 21
1.1 Replikation 23
1.2 Schemabasiertes Objekt- und Speichermodell 24
1.3 Erweiterbarkeit 25
1.4 Zugriffskontrolle und Verschlüsselung 27
1.5 Geschichte 29
1.6 Lotus Domino und Java 32
1.7 Lotus Domino als Datenbank 34
1.8 Die Client-Server-Umgebung Lotus und Domino 36
1.9 Zusammenfassung 38
2 Notes @ Domino 41
2.1 „Hello WWWorld“ – URL-Loader-Anwendung 42
2.2 Das Domino-Speichermodell 59
2.3 Replikation 80
2.4 Das Domino-Objektmodell (Einführung) 85
2.5 Suchkonzepte (Einführung) 86
2.6 Sicherheitskonzepte 92
2.7 Zusammenfassung 94
3 Notes IDE 97
3.1 Der Domino Designer 98
3.2 Masken 103
3.3 Ansichten und Ordner 115
3.4 Agenten 123
3.5 Bibliotheken 129
3.6 Zusammenfassung 130
Teil 2 Java @Domino 131
4 Java-Anwendungen @ Domino 133
4.1 Domino- und J2SE- und J2EE-Anwendungen 134
4.2 Vorbereitungen 135
4.3 Lokale Notes Session 137
4.4 Java und Domino 139
4.5 Statische Notes Threads 141
4.6 Session im statischen Thread 144
4.7 NotesThread erweitern 145
4.8 Runnable implementieren 146
4.9 Domino-Java-Applets 146
4.10 Notes Agent im Domino Designer erstellen 155
4.11 Agent in Domino Designer importieren 159
4.12 Agent in eine Java-Anwendung umwandeln 161
4.13 Agenten in Notes-Masken 162
4.14 WebQueryOpen und WebQuerySave 165
4.15 Parameterübergabe zwischen Agenten und runOn-Server 166
4.16 Sicherheit bei der Agentenausführung 172
4.17 Debugging von Domino-Java-Agenten 177
4.18 Der Domino Agent Manager 178
4.19 Domino-Java-Agent und -Anwendung – Konzepte im Vergleich 179
4.20 Zusammenfassung 180
5 Java-Web-Anwendungen @ Domino 183
5.1 Domino-Web-Agenten 184
5.2 Servlets 189
5.3 Remote Computing via DIIOP / CORBA 202
5.4 Troubleshooting 250
5.5 Zusammenfassung 254
6 Domino-Objekt- und Speichermodell 257
6.1 Objekt- und Datenstruktur 258
6.2 Basis- und Sonderklassen 266
6.3 Zusammenfassung 271
7 Document 273
7.1 Document und Item 274
7.1.1 Mit Items arbeiten 275
7.1.2 Datentypen handhaben 277
7.1.3 Item Properties und weitere Methoden in Item 286
7.1.4 Mit Document arbeiten – Lifecycle eines Dokuments 289
7.2 Profildokumente 300
7.3 Antwortdokumente 302
7.3.1 Antwortreferenzen über Self ID und Parent ID 304
7.4 Attachments 306
7.4.1 Übersicht über die Methoden zur Attachmentbearbeitung 316
7.5 Encryption und Signing 320
7.5.1 Items mit geheimen Verschlüsselungsschlüsseln verschlüsseln 322
7.5.2 Verwendung der Verschlüsselungsschlüssel 324
7.5.3 Fehlerquellen bei der Verwendung von Verschlüsselungsschlüsseln 326
7.5.4 Verwendung von Verschlüsselungsschlüsseln über DIIOP 328
7.5.5 Verschlüsselung und Signatur von Dokumenten 329
7.5.6 Verwendung öffentlicher Verschlüsselungsschlüssel 329
7.5.7 Signieren von Daten 330
7.5.8 Versenden von signierten und verschlüsselten Daten 332
7.6 Document Properties und weitere Methoden 333
7.7 Document Locking 337
7.8 Zusammenfassung 343
8 Session 345
8.1 Bezug von Datenbanken 346
8.2 Einfache unabhängige Stil- und Eigenschafts-Objekte 347
8.3 Service-Anwendungen 349
8.4 Ausführen verschiedener Befehle 352
8.5 Verschiedene Eigenschaften 354
8.6 Zusammenfassung 356
9 Database 357
9.1 Datenbanken öffnen, schliessen, replizieren und löschen 358
9.2 Datenbanken, Dokumente und Document Collection 363
9.3 Allgemeine Datenbankeigenschaften 364
9.4 Suche und Catalog 370
9.5 Sicherheit 373
9.6 Designelemente und Ordner 379
9.7 Locking und Signatur 383
9.8 Service Tasks 383
9.9 Zusammenfassung 384
10 View 385
10.1 Updates, Indizes und Performance 387
10.2 Programmatische Manipulation des Designs von Views 388
10.3 Allgemeine Properties und Methoden 395
10.4 View und Document 398
10.5 ViewNavigator, View und ViewEntry 402
10.6 Locking 419
10.7 DocumentCollection und ViewEntryCollection 419
10.8 Schleifen – View, DocumentCollection und ViewEntryCollection 431
10.9 Kapselung von Schleifen 438
10.10 Zusammenfassung 441
11 RichText 443
11.1 Arbeiten mit RichText 444
11.2 RichTextItem 447
11.3 RichTextNavigator 453
11.4 RichTextRange 457
11.5 RichTextSection 460
11.6 RichTextTable 460
11.7 RichTextTab 470
11.8 RichTextDoclink 471
11.9 RichTextParagraphStyle 473
11.10 RichTextStyle 477
11.11 Zusammenfassung 479
12 Weitere Objekte 481
12.1 Das Name-Objekt 482
12.2 Arbeiten mit Zeit-Objekten 487
12.3 Arbeiten mit internationalen Einstellungen 492
12.4 Methoden in Agent 493
12.5 Zusammenfassung 496
13 Objekt- und Speichertechniken 497
13.1 Erweitern der Objekt-Funktionalitäten 498
13.2 Cashing von Domino-Objekten 516
13.3 Domino-Objekte in Multithreading-Umgebungen 532
13.4 Domino und DB2 541
13.5 Zusammenfassung 584
14 Recyling von Domino-Objekten 587
14.1 Notwendigkeit des Recyclings 588
14.2 Grundregeln des Recyclings 589
14.3 Besonderheiten in verschiedenen Umgebungen 600
14.4 Vereinfachung – Die DJBuch-GC-Klasse 603
14.5 Recycling im MultiThreading 605
14.6 Zusammenfassung 605
15 Wer suchet, der findet 606
15.1 Überblick über die Suchkonzepte 607
15.2 Zugriff über UniversalID und NoteID 610
15.3 Suche über Views 611
15.4 Suche über Datenbanken mit db.search 617
15.5 Volltextindizes 618
15.6 Weitere Suchkonzepte (Domainsearch / browsergestützt) 622
15.7 Performanceoptimierung 625
15.8 Zusammenfassung 627
Teil 3 Domino-Enterprise-Anwendungen 628
16 J2EE Infrastruktur 631
16.1 Application Server 634
16.2 Integrationsszenarien 634
16.3 Single Sign On 642
16.4 Zusammenfassung 644
17 J2EE @ Domino 645
17.1 Servlets 646
17.2 JSP für Domino 646
17.3 Domtags – Installation und Verwendung 648
17.4 Domtags 652
17.5 Domutils 668
17.6 MVC Pattern für Domino-Anwendungen 670
17.7 Domino-XML 672
17.8 Zusammenfassung 685
18 Domino-Projektentwicklung 687
18.1 Infrastruktur, Domino-Core-Applikationen 688
18.2 Anwendungen, E-Mail, Replikation 694
18.3 Entwicklungsumgebungen 697
18.4 Team 702
18.5 Zusammenfassung 703
19 Debugging und Qualitätssicherung 705
19.1 Notwendigkeit und verschiedene Typen von Tests 706
19.2 Agenten debuggen und testen 708
19.3 Domino-Java-Anwendungen testen 716
19.4 Remote Debugging von Java-Agenten 718
19.5 JUnit Tests 721
19.6 Logging 725
19.7 Multithreading und Lasttests 736
19.8 Notes-INI-Variablen 737
19.9 Zusammenfassung 747
20 Anhang 749
20.1 Bekannte Speicherlimits in Domino-Datenbanken 750
20.2 Übersicht über die Domtags Tag Library 751
20.3 Literatur und Links 763
20.4 Disclaimer 766
20.5 Index 767
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.
Erscheint lt. Verlag | 5.9.2006 |
---|---|
Reihe/Serie | Xpert.press | Xpert.press |
Zusatzinfo | XVIII, 803 S. |
Verlagsort | Berlin |
Sprache | deutsch |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Java |
Schlagworte | Anwendungsentwicklung • Debugging • Domino • J2EE • Java • Java EE • Logging • Software-Engineering • Software-Entwicklung • Suche • Techniken • Unit-Tests • Web Services |
ISBN-10 | 3-540-34583-3 / 3540345833 |
ISBN-13 | 978-3-540-34583-1 / 9783540345831 |
Haben Sie eine Frage zum Produkt? |
Größe: 9,0 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich