Zum Inhalt springen

SEO Analyse » SEO Lexikon » j » Java

JavaIm Jahr 1991 wurde von Sun Microsystems eine Software mit dem Namen Oak (Object Application Kernel) entwickelt. Die Gruppe der Entwickler wurde von James Gosling geleitet. Das Projekt erhielt den Namen „The Green Project“. Die Idee der Programmierer war es, ein System zu erschaffen, das unabhängig von dem Betriebssystem basierend auf einer eigenen virtuellen CPU (Central Processing Unit) arbeitet. Ziel war es, ein beliebiges elektronisches Gerät über die Software ansteuern zu können.

1992 wurde eine mit einem Touchscreen gesteuerte Gerätesteuerung mit einer benutzerfreundlichen grafischen Oberfläche erfolgreich fertiggestellt. Die Anwendung erhielt den Namen „Star Seven“. Der portable Mikrocomputer wurde entwickelt, um Haushaltsgeräte steuern zu können. Die Testreihe war mit Erfolg gekrönt. Die Vermarktung des Mikrocomputers wurde nie in umgesetzt. Es wurde beschlossen, den Einsatz der Software im Internet zu nutzen.

Die Entwickler erweiterten einen Webbrowser mit der Oak Software und nannten den ersten Java-unterstützten Browser WebRunner. Der Java-Quellcode wurde Anfang 1995 der Öffentlichkeit preisgegeben. Sun Microsystems wurde Anfang 2010 von Oracle aufgekauft. Die Software ist als OpenJDK freigegeben. Im Jahr 2007 wurde der Großteil von dem Code veröffentlicht und als Open Source deklariert.

Das Ziel von Java und der Laufzeitumgebung

Das System ist plattformunabhängig. Es ist lauffähig auf verschiedenen Rechnersystemen, die in Ihrer Architektur, Betriebssystem, Prozessor und anderen Programmen unterschiedlich sind. Bei der Java-Installation ist der erste Schritt, den Bytecode zu compilieren. Das bedeutet, dass der Compiler die Bytes für das jeweilige Betriebssystem übersetzt. Der Bytecode wird auf dem zu installierendem System erst durch die Java-Laufzeitumgebung (JRE) in die für das jeweilige System passende Maschinensprache übersetzt.

Die Maschinensprache ist die Programmsprache des Computers, die auf den installierten Prozessor und seiner Syntax abgestimmt sind. Die Laufzeitumgebung (Java Runtime Environment) besteht aus der JVM (Java Virtual Machine), die für die Ausführung der Anwendungen verantwortlich ist. Die Programmierschnittstellen (API) verfügen über Standard Klassen der Programmiersprachen, die auf die virtuelle Maschine abgestimmt sind. API und JVM sind in der Laufzeitumgebung zusammengefasst.

Für die unterschiedlichen Betriebssysteme, Prozessoren und Bussysteme sind die nötigen Informationen in Bibliotheken zusammengefasst worden auf die die Laufzeitumgebung (JRE) bei Bedarf zugreifen kann. Die Laufzeitumgebung muss auf dem Zielrechner installiert sein damit das Übersetzen der Bytecodes und das Zuordnen von dem Maschinencode korrekt zugeordnet wird. Die Open Source der Laufzeitumgebung wurde für Linux, Mac, Microsoft Windows und allen gängigen Betriebssystemen entwickelt. Die zugehörigen APIs werden von den Hardwareherstellern in Verbindung mit den Entwicklern programmiert und den Bibliotheken hinzugefügt.

Die ursprüngliche Idee der Entwickler spiegelt sich in Smartphones, PDAs, Navigationsgeräten und verschiedenen anderen Möglichkeiten wieder. Mit der Softwareplattform JRE können Programme weitgehend unabhängig von dem installierten Betriebssystem auf dem Computer ausgeführt werden (plattformunabhängig).

Verschiedene Java Plattformen

Die Java Card ermöglicht es ein Java Applet auf einer Chipkarte auszuführen. Die Applets wurden entwickelt, damit Programme auf einem Webbrowser ablaufen können. Das Applet wird auf einer HTML-Seite aufgerufen. Der Browser verfügt über ein JRE, damit die Bytecodierung kompiliert wird. Ausgeführt werden die Applets nur, wenn die Karte an einer externen Stromversorgung angeschlossen ist. Das JVM muss die Anweisung erhalten, ein bestimmtes Applet zu starten. Ohne diese Anweisung reagiert die Karte nicht.

APDU´s (Application Protocol Data Unit) bilden die Kommunikationseinheit zwischen der Chipkarte und der Anwendung (Applet). Die Funktionsweise richtet sich nach dem Prinzip „Answer to Reset“ (ATR). Die Chipkarte enthält Parameter, die an den Chipkartenleser weitergeleitet werden. Das Einsatzgebiet der Java Cards ist das Speichern kryptografischer Schlüssel, die das sichere Zugreifen auf Daten ermöglichen. Die Identifikation der Benutzer wird durch den Datenaustausch im ATR-Verfahren sichergestellt. Erst bei dem korrekten Schlüssel wird ein Datenzugriff gewährleistet.

Die Java ME (Micro Edition) ist geschaffen worden für die Unterstützung von PDAs und Mobiltelefone. Unabhängig vom Hersteller oder dem Betriebssystem können Anwendungen auf dem Mobiltelefon ausgeführt werden. Es können Java Specification Requests (JSR) erstellt werden, um Änderungen der bestehenden Laufzeitumgebung zu definieren. Einige Erweiterungen sind Schnittstellen zu Bluetooth oder das Einbetten von SOA, damit Dienste im IT-System strukturiert genutzt werden. Ein JSR nimmt Sprachelemente auf, erweitert APIs oder führt Revisionen durch die die Funktionalität unabhängig von der Hardware auf der Laufzeitumgebung (JRE) ausführt.

Die Java Standard Edition (JSE) stellt eine Sammlung von Programmierschnittstellen dar. Die Schnittstellen dienen unterschiedlichen Funktionen. Swing ist entwickelt worden, damit grafische Oberflächen programmiert werden können. Die JDBC-Schnittstelle ist für die Anbindung an Datenbanksysteme. Damit können SQL Anfragen an Datenbanken weitergereicht werden und die Ergebnisse der Datenbank werden in eine nutzbare Form für Java umgewandelt. In dieser Form werden die Daten dann zu beliebigen anderen Schnittstellen transportiert.

Die Java Enterprise Edition (JEE) spezifiziert Dienste, die im Java-Code geschrieben wurden. Modular entwickelte Komponenten, die auf der Grundlage einer Norm basieren, gewährleisten die Fähigkeit der Zusammenarbeit zwischen verschiedenen Herstellern. Für die Laufzeitumgebung sind Java EE Application Server notwendig. Der Client, der unabhängig von der Hardware oder dem Betriebssystem ist, greift über einen Browser auf die Web basierenden Anwendungen zu.

Die Programmiersprache Java

Die objektorientierte Programmiersprache ist in ihrem Aufbau und den Funktionen mit C++ zu vergleichen. Im Gegensatz zu C++ sind die Befehle und damit die Möglichkeiten reduziert. Diese Tatsache stößt zum einen auf Kritik und zum anderen bestätigt es das robuste Laufzeitverhalten der Java Anwendungen. Es wurde bewusst eine objektorientierte Sprache entwickelt, damit die Daten und die zugehörigen Funktionen in einem Objekt zusammengefasst werden können.

Der Vorteil dieser Technik ist, dass das Objekt nach außen verkapselt wird, um einen ungewollten Zugriff verhindern zu können. Die einzelnen Softwaremodule (Objekte) können in anderen Softwaremodulen wieder verwendet werden. Es wird zwischen Schnittstellen und Klassen unterschieden. Eine Klasse ist ein Bauplan für ein Softwareprojekt, in dem die Eigenschaften und die entsprechende Verhaltensweise definiert werden. Die Schnittstelle vereinbart eine gemeinsame Signatur der Klassen. Ist der Quellcode geschrieben, wird er durch einen Compiler in einen maschinenverständlichen Code den Bytecode übersetzt. Der Bytecode wird nicht direkt von der Hardware ausgeführt. Die Ausführung wird durch eine Software auf der gewünschten Zielplattform ausgeführt. Diese „virtuelle“ Ausführung ist die Grundlage der Plattformunabhängigkeit.

Voraussetzung für das Ausführen sind die jeweiligen Plattformen wie JEE, JME, JSE oder die Java Card. Damit die Geschwindigkeit beim Ausführen von einem Java Programm erhöht wird, liest ein Interpreter den Quellcode ein und analysiert ihn während der Laufzeit. Zuständig dafür ist die Java Virtual Machine (JVM). Ein reiner Compiler analysiert und liest den Quellcode ein, bevor er ausgeführt werden kann. Die JVM schottet die in ihr laufenden Threads (Arbeitsabläufe | Prozesse) von dem jeweiligen Betriebssystem ab. Diese Eigenschaft der JVM ermöglicht die Installation auf Betriebssystemen, die nicht dafür konzipiert sind, mehrere Threads parallel auszuführen.

Ein Sicherheitsvorteil ist das Überwachen der Anwendung während der Laufzeit. Das Überlaufen der Puffer wird dadurch verhindert, dass die Datenmengen nicht in zu kleine Speicherbereiche (Puffer) geschrieben werden. Ohne diese Überwachung kann es bei Anfragen an ein Programm mit großen Datenmengen (Datenbanken) zum Überschreiben von Speicherstellen kommen. Dieser ungewollte Effekt würde zu einem Programmfehler (Runtime Error) führen.

Bildnachweis: iStock.com/loveguli


Zurück zur Hauptseite: j
Alle Marken, Warenzeichen, Unternehmens- und Produkt-Bezeichnungen sind mit, aber auch ohne definitive Kennzeichnung, Eigentum des Inhabers der Rechte. Alle aufgeführten Elemente dienen lediglich der informativen Beschreibung.