JBoss im Einsatz (eBook)
533 Seiten
Carl Hanser Fachbuchverlag
978-3-446-42040-3 (ISBN)
Ein Application Server ist eine Ablaufumgebung für Anwendungen, die spezielle Dienste zur Verfügung stellt, wie z.B. Transaktionen, Authentifizierung oder den Zugriff auf Verzeichnisdienste und Datenbanken über definierte Schnittstellen.
Der JBoss Application Server ist der meistgenutzte Application Server für Java-Enterprise-Anwendungen. JBoss im Einsatz stellt den JBoss Application Server Schritt für Schritt vor, von der Installation und Konfiguration bis zur produktiven Anwendung. Dabei liegt ein besonderer Schwerpunkt auf den fortgeschrittenen Features und der Konfiguration des Servers.
Das Buch deckt nicht nur den eigentlichen Application Server ab, sondern zeigt auch, wie man einige wichtige Techniken nutzt, die auf dem Application Server laufen, wie JBoss Seam und JBoss Portal. Die Autoren, beide erfahrene Experten in der Entwicklung und Administration von JBoss, bieten hilfreiche Hintergrundinformationen zu vielen Themen und reichern sie um Tipps und Erfahrungen aus ihrer Praxis an.
Inhalt 6
Vorwort 16
Danksagungen 19
Über dieses Buch 21
Teil 1 Der JBoss-Anwendungsserver 28
1 Wählen Sie JBoss 29
1.1 Einführung in JBoss 30
1.1.1 Was ist JBoss? 30
1.1.2 Die Produkte der JEMS-Linie 32
1.1.3 Warum ist JBoss AS so populär? 33
1.2 JBoss AS installieren 35
1.2.1 Die Installation vorbereiten 36
1.2.2 Von der Binärdistribution installieren 37
1.2.3 Den JEMS-Installer verwenden 38
1.3 Die Struktur der Installationsverzeichnisse 40
1.3.1 Das bin-Verzeichnis 40
1.3.2 Das client-Verzeichnis 41
1.3.3 Das docs-Verzeichnis 42
1.3.4 Das lib-Verzeichnis 42
1.3.5 Das server-Verzeichnis 42
1.3.6 Serverkonfigurationen verstehen 43
1.3.7 Die Struktur der Konfiguration 45
1.3.8 Die Konfiguration anpassen 47
1.4 Den Server starten und anhalten 48
1.4.1 Den Server starten 48
1.4.2 Eine andere Konfiguration starten 50
1.4.3 Prüfen, ob der Server läuft 50
1.4.4 Den Server anhalten 51
1.5 Anwendungen auf dem Server bereitstellen 51
1.5.1 Die Anwendung erstellen 52
1.5.2 Die Anwendung bereitstellen 54
1.5.3 Eine bereitgestellte Anwendung entfernen 55
1.6 Zusammenfassung 56
1.7 Quellen 57
2 JBoss AS verwalten 58
2.1 Die Architektur von JBoss AS 59
2.1.1 Der Microcontainer 59
2.1.2 JMX 61
2.2 Den Anwendungsserver konfigurieren 63
2.2.1 Logging konfigurieren 64
2.2.2 Verzeichnisspeicherorte konfigurieren 68
2.2.3 Systemeigenschaften definieren 69
2.3 Die Verwaltungstools 71
2.3.1 Die JMX-Konsole 71
2.3.2 Die Twiddle-Utility 73
2.4 Einige interessante MBeans 74
2.4.1 Systemeigenschaften anzeigen 75
2.4.2 JNDI-Namespaces anzeigen 75
2.4.3 Logging-Ebenen ändern 76
2.4.4 Den Threadpool vergrößern 77
2.4.5 Informationen über den Anwendungsserver beschaffen 77
2.5 Zusammenfassung 77
2.6 Quellen 78
3 Anwendungen bereitstellen 79
3.1 Bereitstellung verstehen 80
3.1.1 Eine Anwendung bereitstellen 80
3.1.2 Anwendungen verpacken 81
3.1.3 Anwendungstypen 82
3.1.4 Die Reihenfolge der Bereitstellung 84
3.1.5 Optionen für die Bereitstellungskonfiguration 85
3.2 Wie Klassen geladen werden 88
3.2.1 Multiple Klassenlader 89
3.2.2 Scoping von Klassen 90
3.2.3 Loader-Repositories 91
3.3 Häufige Bereitstellungsfehler beheben 92
3.3.1 Class not found-Exception 92
3.3.2 Doppelte JAR-Dateien 93
3.3.3 Zip File-Fehler 94
3.3.4 Class Cast-Exception 94
3.4 Diverse Anwendungen bereitstellen 95
3.4.1 Datenquellen bereitstellen 95
3.4.2 Ein Hibernate-Archiv bereitstellen 101
3.5 Zusammenfassung 107
3.6 Quellen 107
4 Sicherheit für Anwendungen 108
4.1 Was ist Sicherheit? 109
4.1.1 Anwendungssicherheit verstehen 109
4.1.2 Authentifizierung verstehen 111
4.1.3 Autorisierung verstehen 112
4.1.4 Sicherheit konfigurieren 114
4.1.5 Dynamische Login-Konfiguration 116
4.1.6 Sicherheit auf dem Server protokollieren 117
4.2 Sichere Kommunikation 117
4.2.1 Symmetrische und asymmetrische Verschlüsselung 118
4.2.2 Zertifikate und Quellen-Authentifizierung 120
4.2.3 Zertifikate erstellen und signieren 122
4.2.4 Die cacerts-Datei modifizieren 123
4.2.5 Client-Authentifizierung mit Zertifikaten 124
4.2.6 Eine SSL-fähige Sicherheitsdomäne konfigurieren 126
4.3 Login-Module konfigurieren 128
4.3.1 Das dateibasierte Login-Modul verwenden 129
4.3.2 Das Datenbank-Login-Modul verwenden 131
4.3.3 Das LDAP-Login-Modul verwenden 132
4.3.4 Das identity-Login-Modul 140
4.3.5 Login-Module stapeln 141
4.3.6 Das Clientzertifikat-Login-Modul 142
4.4 Zusammenfassung 143
4.5 Quellen 144
Teil 2 Anwendungsservices 145
5 JBoss Web Server konfigurieren 146
5.1 Webanwendungen verstehen 147
5.1.1 Die Struktur einer Webanwendung 147
5.1.2 Die Konfiguration von Webanwendungen 148
5.2 JBoss Web Server konfigurieren 152
5.2.1 Wichtige Verzeichnisse finden 152
5.2.2 Exploring JBoss Web Server Configuration 153
5.2.3 Die Konfigurationsdatei für den WAR-Deployer 156
5.3 URL-Pfade konfigurieren 157
5.3.1 Virtuelle Hosts aktivieren 159
5.3.2 Kontextpfade konfigurieren 161
5.3.3 Den Stammkontextpfad ändern 163
5.4 Konnektoren konfigurieren 165
5.4.1 Die Konnektorkonfiguration verstehen 166
5.4.2 Nebenläufigkeit konfigurieren 167
5.4.3 Timeouts konfigurieren 168
5.4.4 Hostnamen und Port für einen Proxy konfigurieren 168
5.5 Das Laden von Webklassen konfigurieren 168
5.6 Ventile verwenden 169
5.7 JavaServer Faces konfigurieren 171
5.8 Zusammenfassung 172
5.9 Quellen 173
6 Sicherheit für Webanwendungen 174
6.1 Websicherheit konfigurieren 175
6.1.1 Sicherheit konfigurieren in web.xml 176
6.1.2 Sicherheit konfigurieren in jboss-web.xml 178
6.1.3 Sicherheit konfigurieren in server.xml 178
6.2 Benutzer authentifizieren 179
6.2.1 Web-Authentifizierungsstrategien verstehen 181
6.2.2 Basisauthentifizierung 182
6.2.3 Formularbasierte Authentifizierung 184
6.2.4 Digest-Authentifizierung 185
6.3 Benutzer autorisieren 186
6.3.1 Autorisierung konfigurieren 187
6.3.2 Zugriff für jeden authentifizierten Benutzer erlauben 187
6.4 Webkommunikation verschlüsseln 188
6.4.1 HTTPS einschalten 189
6.4.2 Transportgarantien ermöglichen 190
6.4.3 Gegenseitige Authentifizierung ermöglichen 192
6.4.4 Browserzertifikate erstellen 194
6.5 Clientzertifikat-Authentifizierung ermöglichen 195
6.5.1 Gegenseitige Authentifizierung auf Protokollebene einschalten 196
6.5.2 Die Authentifizierungsmethode einstellen 196
6.5.3 Die JaasSecurityDomain-MBean angeben 196
6.5.4 Die Sicherheitsdomäne angeben 197
6.5.5 Von der Anwendung auf die Sicherheitsdomäne verweisen 197
6.5.6 Eine Strategie, um den Prinzipal aus dem Zertifikat zu bilden 198
6.5.7 Prinzipale und Rollen in den Autorisierungsdatenspeicher laden 199
6.5.8 Das Clientzertifikat zum Truststore des Servers hinzufügen 199
6.5.9 Ein Browserzertifikat erstellen 200
6.6 Die Standardsicherheitsdomäne ändern 200
6.7 Zusammenfassung 201
6.8 Quellen 201
7 Enterprise-Anwendungen konfigurieren 202
7.1 EJBs verstehen 203
7.1.1 Session Beans verstehen 205
7.1.2 Hibernate und JPA verstehen 206
7.1.3 Enterprise-Pakete verstehen 207
7.2 Eine EJB-Anwendung erstellen 209
7.2.1 Die Beispielanwendung programmieren 209
7.2.2 Beispielanwendung verpacken und ausführen 212
7.3 Die EJB-Konfiguration verstehen 214
7.3.1 Was gehört wohin? 214
7.3.2 EJB-Anwendungen konfigurieren 215
7.3.3 Den EJB-Server konfigurieren 218
7.4 Session Beans konfigurieren 220
7.4.1 Die JNDI-Bindung ändern 220
7.4.2 Eine Session Bean nachschlagen 222
7.4.3 EJB-Container konfigurieren 222
7.5 Die Entity-Persistenz konfigurieren 225
7.5.1 Hibernate-Objekte injizieren 225
7.5.2 Hibernate-Zuordnungen bereitstellen 226
7.6 JMX-Service-Objekte erzeugen 227
7.6.1 Ein Service-Objekt erzeugen 227
7.6.2 Die Beispielanwendung ausführen 229
7.6.3 Zugriff auf MBeans ohne Injektion 229
7.7 Das Transportprotokoll konfigurieren 230
7.7.1 Die Transportkonfiguration verstehen 231
7.7.2 Den Transport ändern 233
7.8 Sicherheit für EJBs 234
7.8.1 EJB-Sicherheit durch Anmerkungen 235
7.8.2 EJBs durch Konfiguration absichern 237
7.8.3 Nichtintegrierte Sicherheit 238
7.8.4 EJB-Kommunikation absichern 240
7.9 Zusammenfassung 242
7.10 Quellen 243
8 JBoss-Messaging 244
8.1 Messaging-Systeme verstehen 245
8.1.1 Architekturen von Messaging-Systemen verstehen 245
8.1.2 Die Messaging-Modelle verstehen 246
8.1.3 Die JMS API verstehen 247
8.1.4 Die Architektur von JBoss Messaging verstehen 250
8.2 Eine JMS-Anwendung entwickeln 251
8.2.1 Die Beispielanwendung programmieren 251
8.2.2 Die Beispielanwendung verpacken und ausführen 257
8.3 Nachrichtengesteuerte Beans verwenden 258
8.3.1 Eine MDB anlegen 259
8.3.2 Eine MDB verpacken 262
8.3.3 Eine Deskriptordatei für die MDB 262
8.4 Nachrichtengesteuerte POJOs verwenden 264
8.4.1 Einen nachrichtengesteuerten POJO-Consumerimplementieren 264
8.4.2 Einen nachrichtengesteuerten POJO-Producer implementieren 265
8.4.3 Ein nachrichtengesteuertes POJO verpacken 266
8.5 JBoss Messaging konfigurieren 267
8.5.1 Eine Datenquelle konfigurieren 267
8.5.2 Zugriffssteuerung konfigurieren 269
8.5.3 Destinationen konfigurieren 272
8.5.4 Die Anwendung aktualisieren 273
8.5.5 Das geänderte Beispiel ausführen 274
8.5.6 Die MDB aktualisieren 275
8.5.7 Sicheren Nachrichtentransport konfigurieren 275
8.6 Zusammenfassung 279
8.7 Quellen 279
9 Webservices konfigurieren 280
9.1 Webservices verstehen 281
9.1.1 Die Terminologie der Webservices 282
9.1.2 SOAP-Bindungsstile 283
9.2 Einen Webservice entwickeln 283
9.2.1 Den Webservice programmieren 283
9.2.2 Den Webservice verpacken 284
9.2.3 Die WSDL manuell generieren 286
9.2.4 Webservices mit dem Top-down-Ansatz entwickeln 287
9.2.5 Den Client entwickeln 288
9.2.6 Einen C#-Client programmieren 290
9.2.7 Mehr zu SOAP-Bindungsstilen 291
9.3 Anmerkungen in JBossWS 293
9.3.1 Die WebContext-Anmerkung verstehen 293
9.3.2 Die EndpointConfig-Anmerkung verstehen 295
9.4 Sicherheit für Webservices 296
9.4.1 Zugriff auf Webservices autorisieren 296
9.4.2 Den Sicherheits-Realm definieren 297
9.5 SOAP-Nachrichten verschlüsseln 300
9.5.1 Zertifikate generieren 300
9.5.2 Server sichern mit WS-Security 301
9.5.3 Clients mit WS-Security absichern 304
9.5.4 Nachrichten signieren mit WS-Security 306
9.6 Zusammenfassung 308
9.7 Quellen 308
Teil 3 JBoss Portal 309
10 JBoss Portal und Portlets 310
10.1 Einführung in JBoss Portal 311
10.1.1 JSR-168 verstehen 312
10.1.2 Die Terminologie von Portalen 313
10.1.3 JBoss Portal installieren 314
10.1.4 JBoss Portal administrieren 316
10.2 Ein Portlet erstellen 317
10.2.1 Das Image-Portlet programmieren 318
10.2.2 Die Quelldateien für die JSP programmieren 323
10.2.3 Portlet-Deskriptoren verstehen 327
10.2.4 Portlets erstellen und bereitstellen 330
10.3 Eine Portlet-Instanz 331
10.3.1 Instanzen erzeugen mit der portlet-instance.xml-Datei 332
10.3.2 Instanzen erzeugen mit dem Admin-Portlet 332
10.4 Portlet-Fenster deklarieren 333
10.4.1 Portlet-Fenster in der *-object.xml-Datei deklarieren 333
10.4.2 Portlet-Fenster mit dem Admin-Portlet deklarieren 334
10.5 Zusammenfassung 336
10.6 Quellen 337
11 JBoss Portal konfigurieren 338
11.1 Das Aussehen der Fenster konfigurieren 338
11.1.1 Das Aussehen von Fenstern mit *-object.xml konfigurieren 340
11.2 Der Umgang mit mehreren Bildern und Instanzen 341
11.2.1 Mehrere Instanzen und Fenster mit Deskriptordateienkonfigurieren 342
11.3 Der Umgang mit dem CMS- 344
11.3.1 CMS-Beispieldaten sammeln 344
11.3.2 Die neuen Inhalte anzeigen 346
11.3.3 Zugriff auf CMS-Inhalte 347
11.4 Sicherheit für das Portal 348
11.4.1 Ein neues Konto anlegen 349
11.4.2 Rollen verwalten 349
11.4.3 Zugriffssteuerung verstehen 350
11.5 Ein benutzerdefiniertes Portal entwickeln 358
11.5.1 Die Anforderungen definieren 358
11.5.2 Der Vorschlag 359
11.5.3 Das Portal definieren 359
11.5.4 Das Design anpassen 362
11.5.5 CMS-Inhalte anpassen 365
11.5.6 Das Portal verpacken 366
11.6 Zusammenfassung 368
Teil 4 In die Produktion gehen 370
12 Clustering 371
12.1 Clustering verstehen 372
12.1.1 Lastverteilung 372
12.1.2 Aufbau und Topologie eines Clusters 375
12.1.3 Automatische Discovery und Multicasting 377
12.1.4 Hochverfügbarkeit 379
12.1.5 Replikation und Fehlertoleranz 380
12.1.6 Zustandspassivierung 384
12.1.7 Verteilung versus Clustering 384
12.2 Einen einfachen Cluster einrichten 386
12.2.1 Einen JBoss-Cluster einrichten 386
12.2.2 Eine geclusterte EJB erstellen 389
12.2.3 Die Anwendung bereitstellen 389
12.2.4 Die geclusterte EJB aufrufen 390
12.3 JBoss-Clustering verstehen 391
12.3.1 Die Architektur von JGroups verstehen 392
12.3.2 Die Clustering-Services von JBoss konfigurieren 394
12.3.3 Den Protokollstapel konfigurieren 397
12.4 JBoss Cache konfigurieren 400
12.4.1 Die Konfigurationsdateien von JBoss Cache 401
12.4.2 Was soll in den Cache gelangen? 405
12.5 Zusammenfassung 406
12.6 Quellen 407
13 Clustering für JBoss AS Services 408
13.1 HTTP-Lastverteilung 409
13.1.1 Lastverteilung mit dem nativen Webserver 409
13.1.2 Lastverteilung mit Hardware 411
13.2 HTTP-Sitzungsreplikation 411
13.2.1 Replikation konfigurieren 412
13.2.2 Die Verwendung von Sitzungen verstehen 412
13.2.3 Feldreplikation 414
13.2.4 Passivierung konfigurieren 415
13.3 Clustering von Session Beans 416
13.3.1 Lastverteilung für Session Beans 417
13.3.2 Zustandsbehaftete Session Beans replizieren 418
13.4 Clustering von Entities 419
13.4.1 Den Entity-Cache replizieren 420
13.5 JNDI clustern 423
13.5.1 Den HA-JNDI-Service verstehen 423
13.5.2 HA-JNDI einschalten 425
13.5.3 Auf HA-JNDI zugreifen 426
13.5.4 HA-JNDI verwenden – ja oder nein? 427
13.6 Zusammenfassung 428
13.7 Quellen 429
14 JBoss AS – Tuning 430
14.1 Definition von Performance 431
14.2 Eine Methode für das Performance-Tuning 432
14.2.1 Ganzheitliches Performance-Tuning 432
14.2.2 Testzyklus zur Performance-Analyse 434
14.3 Hardware und Netzwerk tunen 436
14.3.1 Die Geschwindigkeit der Netzwerkkarten einstellen 437
14.3.2 Die Anzahl der CPUs auswählen 438
14.3.3 Die Wahl zwischen 32 Bit und 64 Bit 438
14.4 Das Betriebssystem tunen 439
14.4.1 Prozessoraffinität verstehen 439
14.5 Die JVM tunen 442
14.5.1 Den Java-Heap verstehen 442
14.5.2 Garbage Collection verstehen 445
14.5.3 Garbage Collection-Daten sammeln 447
14.5.4 Die Auswahl der Heap-Einstellungen 454
14.5.5 Der Umgang mit Out-of-Memory-Exceptions 456
14.5.6 Weitere Tuning-Optionen 456
14.6 JBoss AS tunen 457
14.6.1 Datenquellen konfigurieren 458
14.6.2 Den Thread-Pool für HTTP-Anforderungen konfigurieren 460
14.6.3 Das JSP-Servlet tunen 461
14.7 Die Anwendung tunen 462
14.7.1 System.gc vermeiden 463
14.7.2 Einen Thread-Dump aufzeichnen 463
14.8 Zusammenfassung 466
14.9 Quellen 467
15 In die Produktion gehen 468
15.1 Eine Plattform auswählen 469
15.1.1 Eine JVM auswählen 469
15.1.2 Eine JBoss AS-Version aussuchen 470
15.1.3 Eine Plattform auswählen 473
15.2 Mehrere Anwendungsserver-Instanzen nebeneinanderbetreiben 474
15.2.1 Dateikonflikte vermeiden 475
15.2.2 Portkonflikte verhindern 476
15.2.3 Mehrere Knoten herunterfahren 483
15.3 Überflüssige Services entfernen 483
15.4 Sicherheit für die Serveranwendungen 485
15.4.1 Die Serveranwendungen entfernen 485
15.4.2 Sicherheit für die Serveranwendungen 485
15.4.3 Den Zugriff auf den lokalen Computer beschränken 486
15.5 Die Standarddatenbank ändern 487
15.5.1 Den EJB3-Timer-Service konfigurieren 488
15.6 Den Anwendungsserver als Service starten 489
15.6.1 Einen Dienst in Windows registrieren 490
15.6.2 Mehrere Services registrieren 491
15.6.3 Einen Service in Linux registrieren 495
15.7 Die JSP-Kompilierung konfigurieren 497
15.8 Zusammenfassung 498
15.9 Quellen 499
Anhang A JNDI-Namespaces 500
Anhang B Wandel ist unvermeidlich 505
Register 516
10 JBoss Portal und Portlets (S. 291-292)
Über JBoss Portal könnte man alleine ganze Bücher füllen, also können wir dem Thema nicht in zwei Kapiteln gerecht werden. Wir möchten Ihnen lediglich einen Einblick in die Arbeit mit dem Portal geben, damit Sie später in der Lage sind, auch komplexere Themen im Zusammenhang mit Portalen anzupacken. Portale geben Ihnen die Möglichkeit, Websites zu erstellen, indem Sie unzusammenhängende Codestücke, sogenannte Portlets, zu einer einzigen Seite zusammenfügen. Dann sieht es so aus, als würden diese separaten Anwendungen als eine einzige funktionieren. Zusätzlich geben Portale ihren Benutzern die Möglichkeit, in das Layout ihrer Homepages die Informationen einzubringen, die ihnen am wichtigsten sind. Dadurch steigt die Wahrscheinlichkeit, dass die Benutzer diese Seiten als Eintrittstor in das World Wide Web benutzen.
Wir empfehlen, die Portal-Dokumentation zu lesen, setzen aber keine Erfahrungen mit Portalen voraus. Daher sind dieses und das folgende Kapitel als Einführung in Portale geeignet. Wenn jedoch die Portal-Dokumentation ein bestimmtes Thema wie z.B. die Installation im Detail behandelt, werden wir es hier lediglich streifen. Außerdem ist die mit dem Portal mitgelieferte Dokumentation eine gute Einführung in Portale im Allgemeinen und das JBoss Portal im Besonderen.
Hinweis
Der Code in den Kapiteln 10 und 11 wurde mit JBoss Portal 2.6.4 auf JBoss AS 4.2.2 getestet. Ein Großteil des Codes funktioniert auch mit den früheren Releases 2.6.x und 2.4.x, aber nicht mit 2.4.0. Das liegt an einigen Bugs, die mit dem Release 2.4.1 behoben wurden. JBoss Portal 2.6.x läuft nicht auf JBoss AS 5.0.
In diesem Kapitel nähern wir uns dem Portal aus der Sicht eines Portlet-Entwicklers, der ein Portlet zu dem Portal schreiben, konfigurieren und bereitstellen möchte. Wir beginnen mit einem einfachen, aber nützlichen Portlet, das einen Schritt weiter geht als die einfachen Beispiele aus der Portal-Dokumentation. Dieses Portlet wird Sie durch einige Aspekte der Portalkonfiguration begleiten, bis zu dem Punkt, an dem das Portlet auf einer Portalseite angezeigt wird. Kapitel 11 macht dort weiter, wo dieses Kapitel endet, indem es die verschiedenen Konfigurationsthemen einführt und erweitert. Wir sind uns jedoch auch der Rolle des Administrators bei der Verwaltung eines Portals sehr bewusst. Im nächsten Kapitel behandeln wir viele Administrationsthemen, darunter Seitenlayouts und Sicherheit.
10.1 Einführung in JBoss Portal
JBoss Portal ist eines von vielen Projekten in JEMS. Das Portal sticht hervor, weil es im Gegensatz zu anderen JEMS-Produkten eine voll ausgereifte Anwendung ist, die im Lieferzustand lauffähig ist. Sie wird mit einem integrierten RSS-Newsreader geliefert, damit Sie einfach einen neuen Newsfeed einrichten können, sowie mit einem Wetter-Portlet, einem einfachen Content Management System (CMS) und diversen anderen Portlets. Zusätzlich zu den integrierten Portlets können Sie mit Leichtigkeit noch viele andere Portlets auf dem Portal bereitstellen, um seine Funktionalität zu erweitern – und das ganz ohne Programmierarbeit! Die Portlet Swap-Website (http://labs.jboss.com/portletswap) enthält diverse Portlets, davon viele zu Lehrzwecken, aber manche auch unmittelbar nützlich, wie z.B. das IFrame-Portlet, mit dem Sie einfach andere Websites in das Portal einbetten können.
Erscheint lt. Verlag | 1.1.2009 |
---|---|
Sprache | deutsch |
Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Java |
ISBN-10 | 3-446-42040-1 / 3446420401 |
ISBN-13 | 978-3-446-42040-3 / 9783446420403 |
Haben Sie eine Frage zum Produkt? |
Größe: 9,3 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