Java-Plattform
aus Wikipedia, der freien Enzyklopädie
Die Java-Plattform (englisch Java Platform) – definiert die Ablaufumgebung (Java Virtual Machine) und Programmierschnittstellen (Java Application Programming Interface) innerhalb der Java-Technologie. Der Kern der Java-Plattform ist die Java-Laufzeitumgebung (englisch Java Runtime Environment).
Durch die Java-Plattform werden Programme weitgehend unabhängig vom darunter liegenden Betriebssystem ausgeführt. Sie definiert die Anwendungsprogrammierschnittstellen (APIs) eindeutig und maschinenunabhängig.
Programme für die Java-Plattform werden in der Regel mit Hilfe der Programmiersprache Java erstellt. Die Verwendung anderer Programmiersprachen ist möglich, z.B. Nice oder Groovy.
Inhaltsverzeichnis |
[Bearbeiten] Einleitung
Seit dem Erscheinen von Java 2 wird die Java-Plattform, in der Form wie sie von SUN zur Verfügung gestellt wird, in drei Editionen unterteilt, um dem Faktum Rechnung zu tragen, dass Java-Applikationen auf unterschiedlichen Endgeräten mit unterschiedlichen Charakteristiken eingesetzt werden können, von Handys und PDAs über Desktop-Computer bis zu Servern:
- die Java 2 Platform, Micro Edition (J2ME)
- die Java 2 Platform, Standard Edition (J2SE)
- die Java 2 Platform, Enterprise Edition (J2EE)
Die Standard- und die Enterprise-Edition benutzen die gleiche virtuelle Maschine (Java Virtual Machine, JVM), die API ist in der Enterprise-Edition jedoch um zahlreiche Zusatzbibliotheken und Zusatzprogramme (insbesondere für den Application Server) ergänzt. J2EE ist in erster Linie als Spezifikation zu verstehen, für deren Nutzung meist auf kommerzielle Produkte anderer Hersteller oder Open-Source Projekte zurückgegriffen wird.
Neben den Implementierungen von Sun Microsystems, die üblicherweise als Referenz herangezogen werden, gibt es allgemeine JVMs von IBM. Für Echtzeit-Java oder für spezielle eingebettete Systeme sind sowohl freie Implementierungen der Java-Plattform (Kaffe) als auch verschiedene Projekte von Firmen und Universitäten bekannt.
[Bearbeiten] APIs
Sun Microsystems stellt eine Reihe von Programmierschnittstellen (APIs) zur Realisierung von Softwareprojekten bereit und unterscheidet dabei zwischen solchen, die für alle Arten von Java-Anwendungen relevant sind (Core Java Technology, deutsch "Java-Kerntechnologie") und solchen, die nur für Desktop-Anwendungen relevant sind (Desktop Java Technology).
[Bearbeiten] Kerntechnologie
Sun fasst Programmierschnittstellen, die sowohl für Server- als auch für Desktop-Anwendungen nützlich sind, unter dem Begriff Core Java Technology zusammen. Diese Programmierschnittstellen bilden also den Kern der Java-Technologie.
[Bearbeiten] Sicherheit
Dem Thema Sicherheit wurde schon in der Frühzeit von Java viel Aufmerksamkeit gewidmet, so leben beispielsweise Java-Applets in einer sogenannten Sandbox, die verhindert, dass sie auf dem lokalen Rechner Schaden anrichten. Neuere Erweiterungen betreffen die Themen Verschlüsselung und Prüfung der Identität von Kommunikationsteilnehmern (Authentifizierung).
- Die Java Cryptography Extension (JCE) definiert Programmierschnittstellen für diverse Verschlüsselungsverfahren.
- Der Java Authentication and Authorization Service (JAAS) definiert Programmierschnittstellen für die sichere Feststellung der Identität eines Anwenders.
- Die Java Secure Socket Extension (JSSE) ermöglicht sichere Kommunikation über SSL.
[Bearbeiten] Datenbank-Zugriff
Der Zugriff von Java auf SQL-Datenbanken erfolgt über eine Programmierschnittstelle namens Java Database Connectivity (JDBC, deutsch Java-Datenbank-Verbindungsfähigkeit).
[Bearbeiten] Debugging
Für die Anbindung von Debuggern an virtuelle Maschinen wurde eine ganze Architektur namens Java Platform Debugger Architecture (JPDA, deutsch "Debugger-Architectur der Java-Plattform") definiert.
[Bearbeiten] Dokumentation
Das Werkzeug Javadoc erzeugt aus Java-Quelltext HTML-Dateien, die einen guten Überblick über ganze Klassenbibliotheken geben. Durch die Möglichkeit, frei definierte Plugins hinzuzufügen, lassen sich damit mit geringem Aufwand auch andere Arten von Dateien aus Java-Quelltext erzeugen.
[Bearbeiten] Sonstige Kernbestandteile
Neben Verfahren zur Internationalisierung, hauptsächlich durch die Verwendung von Unicode und die Klasse ResourceBundle
(siehe Java Platform Standard Edition) gehören weitere grundlegende Programmierschnittstellen zur Java-Plattform.
- Java Remote Method Invocation (RMI) ist ein Verfahren zum Aufruf von Objekten, die auf anderen Rechnern laufen.
- Das Java Native Interface (JNI) bietet die Möglichkeit, Bibliotheken aufzurufen, die in C programmiert wurden.
- Das Java Naming and Directory Interface (JNDI) ist eine einheitliche Java-Schnittstelle für viele unterschiedliche Verzeichnisdienste.
[Bearbeiten] Optionale Java-Packages und verwandte Technologie
Neben den Kernbestandteilen der Java-Plattform gibt es optionale Komponenten, die diese um zusätzliche Funktionalitäten ergänzen.
- Die Java Management Extensions (JMX) definieren eine Schnittstelle für die Systemverwaltung, mittels der ein Java-Programm während der Ausführung beobachtet oder umkonfiguriert werden kann, sofern es dies unterstützt. Seit Java-Version 5 ist JMX eine Kernkomponente.
- JMX Remote ist eine Erweiterung von JMX über Maschinengrenzen hinweg.
- Java Communications ermöglicht den Zugriff auf Hardware-Schnittstellen, beispielsweise Parallelports oder USB-Ports.
- Java Telephony die Anbindung von Telefonen an Java-Programme, zum Beispiel um Anwendungen für Call-Center zu entwickeln.
[Bearbeiten] Desktop-Technologie
Programmierschnittstellen, die in erster Linie für Anwendungen mit grafischer Benutzungsoberfläche benötigt werden, fasst Sun unter dem Begriff Desktop Java Technology zusammen.
[Bearbeiten] Deployment (automatisierte Software-Verteilung und Installation)
Deployment ist die automatisierte Verteilung von Software auf viele Rechner und die Installation darauf. Die Java-Laufzeitumgebung JRE bietet hierzu zwei Verfahren an:
- Das Java Plug-in ermöglicht die Ausführung von Java-Applets in Internet-Browsern.
- Java Web Start startet Java-Anwendungen direkt aus dem Internet. Dabei legt es sie lokal ab, damit sie nur dann erneut geladen werden, wenn es eine neue Version gibt.
[Bearbeiten] Komponenten
Mit den Java Beans verfügt Java über ein eigenes Framework für Softwarekomponenten.
[Bearbeiten] GUI
Die Standardklassenbibliotheken für die Erstellung grafischer Benutzeroberflächen (Graphical User Interface, GUI) mit Java heißen Java Foundation Classes (JFC). Sie enthalten neben dem grundlegenden Abstract Window Toolkit (AWT) weitere Klassenbibliotheken.
- Swing ist eine umfangreiche Bibliothek von GUI-Komponenten.
- In Swing integriert sind Verfahren für die Benutzung durch behinderte Menschen, die unter dem Begriff Accessibility zusammengefasst werden.
- Eine Klassenbibliothek zum Erstellen zweidimensionaler Grafiken namens Java 2D.
- Verfahren zur Internationalisierung der grafischen Benutzeroberflächen.
[Bearbeiten] Sound
Für die Ausgabe von Tondateien, zum Beispiel im MIDI- oder WAV-Format, gibt es eine Klassenbibliothek namens Java Sound.
[Bearbeiten] Webanwendungen
Webanwendungen (serverbasierte Anwendungen, deren Benutzerinteraktion über einen Browser stattfindet) bestehen gewöhnlich aus JSPs (JavaServer Pages) und Servlets. Die notwendigen Interfaces und Klassen befinden sich in der Enterprise Edition. Zusammen mit den Java Beans lassen sich recht komfortabel Anwendungen schreiben, die dem MVC-Pattern genügen. Eine Vielzahl von Frameworks setzt auf dieses API auf.
[Bearbeiten] Persistenz
Um Daten dauerhaft zu speichern (zu „persistieren“), stellt die Enterprise Edition die Enterprise Java Beans (EJBs) zur Verfügung. Dort kommen Entity Beans (zur Abbildung von fachlichen Objekten bzw. Entities), Session Beans (zur Abbildung des Workflows) und Message Driven Beans (für asynchrone Kommunikation) zum Einsatz. Der recht umständliche und nicht objektorientierte Ansatz wird mit der neuesten Spezifikation EJB 3.0 generalüberholt. Es existieren zahlreiche Frameworks, die Alternativen zur Persistierung anbieten (beispielsweise JDO oder Hibernate).
Als elementare Persistenzmechanismen bieten die Java-Kernbibliotheken zwei weitere Verfahren an:
- Die Serialisierung von Objektbäumen in Binärdateien über Klassen des Pakets „
java.io
“ und - die Serialisierung von Java Beans in XML-Dateien über Klassen des Pakets „
java.beans
“.
[Bearbeiten] Optionale Java-Packages und verwandte Technologien
Zusätzlich zu den oben genannten Bestandteilen der Java-Plattform, die immer vorhanden sein müssen, gibt es noch eine Reihe optionaler Komponenten, die bei Bedarf installiert werden können.
- Das Java Media Framework (JMF) ermöglicht die Ausgabe multimedialer Daten, wie beispielsweise Videos.
- Die Klassenbibliothek Java 3D stellt Klassen zu Darstellung dreidimensionaler, bewegter und interaktiver Grafiken bereit.
- Java Advanced Imaging (JAI) enthält Klassen für die Bearbeitung von Bilddateien.
- Java Speech erzeugt aus Text gesprochene Sprache.
- Das Java Help System kann für die Erstellung von Hilfsdokumentation zu Java-Anwendungen verwendet werden.