Ein Java-Applet ist eine kleine Anwendung, die in Java geschrieben ist und in Form von Bytecode ausgeliefert für die Nutzer. Der Benutzer startet das Java-Applet von einer Webseite, und das Applet wird dann innerhalb einer Java Virtual Machine in einem Prozess getrennt von dem Web-Browser selbst ausgeführt. Ein Java-Applet kann in einem Rahmen der Web-Seite, ein neues Anwendungsfenster, Sonnenapplet oder Stand-alone-Tool zum Testen von Applets angezeigt. Java-Applets in der ersten Version der Java-Sprache, die 1995 veröffentlicht wurde eingeführt.
Java-Applets können in jeder Programmiersprache, die Java-Bytecode kompiliert geschrieben werden. Sie sind meist in Java geschrieben, aber auch andere Sprachen wie Jython, JRuby, Pascal, Scala, oder Eiffel können ebenfalls verwendet werden.
Java-Applets bei sehr hohen Geschwindigkeiten laufen und sind vergleichbar mit anderen kompilierten Sprachen wie C ++, wenn letztere einen leichten Vorteil. Bis 2011 hatte Java-Applets Vielfaches schneller als JavaScript auszuführen. Im Gegensatz zu JavaScript, hatte Java-Applets Zugriff auf 3D-Hardware-Beschleunigung, so dass sie gut für nicht-triviale, rechenintensive Visualisierungen. Wie Browsern haben Unterstützung für Hardware-beschleunigte Grafik dank der Leinwand-Technologie sowie gerade rechtzeitig zusammengestellt JavaScript gewonnen, hat die Drehzahldifferenz wird weniger bemerkbar.
Da Java-Bytecode ist Cross-Plattform, können Java-Applets von Browsern für viele Plattformen, darunter Microsoft Windows, FreeBSD, Unix, OS X und Linux ausgeführt werden. Es ist auch trivial, um ein Java-Applet als eine Anwendung mit sehr wenig zusätzlichen Code ausführen, so dass sie direkt aus der integrierten Entwicklungsumgebung ausgeführt werden.
Überblick
Applets werden verwendet, um interaktive Funktionen, Web-Anwendungen, die nicht von HTML allein bereitgestellt werden kann. Sie können Mauseingaben erfassen und haben auch Steuerelemente wie Schaltflächen oder Kontrollkästchen. In Reaktion auf Benutzeraktionen kann ein Applet die mitgelieferte grafische Inhalte zu ändern. Dies macht Applets gut geeignet für die Demonstration, Visualisierung und Lehre. Es gibt Online-Applet-Kollektionen für das Studium verschiedenen Themen, von der Physik zur Herzphysiologie.
Ein Applet kann auch nur einen Textbereich sein; Bereitstellung, zum Beispiel, ein Cross-Plattform-Befehlszeilenschnittstelle, um einem entfernten System. Bei Bedarf kann ein Applet den speziellen Bereich zu verlassen und laufen in einem separaten Fenster. Allerdings haben Applets sehr wenig Kontrolle über den Inhalt von Webseiten außerhalb von speziellen Bereich des Applets, so dass sie weniger nützlich für die Verbesserung der Website Aussehen im Allgemeinen. Applets können auch spielen Medien in Formate, die nicht nativ vom Browser unterstützt werden.
Seiten in HTML codierte können einbetten Parameter in ihnen, die an das Applet übergeben werden. Aus diesem Grund kann die gleiche Applet anders aussehen, je nach den Parametern, die weitergeleitet wurden.
Wie Applets waren vor CSS und DHTML verfügbar waren Standard, sie waren auch weithin für trivial Effekten wie Rollover-Navigationstasten verwendet. Heftig kritisiert, ist diese Nutzung nun rückläufig.
Technische Information
Java-Applets werden in einer Sandbox von den meisten Web-Browser ausgeführt wird, den Zugriff auf lokale Daten wie die Zwischenablage oder Dateisystem verhindern, dass sie. Der Code des Applets wird von einem Webserver heruntergeladen, wonach der Browser entweder bettet das Applet in eine Webseite oder öffnet ein neues Fenster mit der Benutzeroberfläche des Applets.
Ein Java-Applet erweitert die Klasse, oder im Falle eines Swing-Applets ,. Die Klasse, die Methoden aus dem Applet-Klasse außer Kraft setzen müssen, um ein Benutzerschnittstelle in sich selbst ist ein Nachkomme von denen ist ein Nachkomme. Als Applet erbt von Container, hat es größtenteils die gleichen Benutzerschnittmöglichkeiten als eine gewöhnliche Java-Anwendung, einschließlich der Regionen mit benutzerspezifischen Visualisierung.
Die ersten Implementierungen beteiligt Herunterladen eines Applet-Klasse nach Klasse. Während Klassen sind kleine Dateien, gibt es oft viele von ihnen, so dass Applets erhielt einen Ruf als langsam ladenden Komponenten. Allerdings since.jars eingeführt wurden, wird ein Applet in der Regel in einer einzigen Datei, die eine Größe ähnlich zu einer Bilddatei hat geliefert.
Die Domain, von dem das Applet ausführbare heruntergeladen wurde die einzige Domäne in dem die übliche Applet kommunizieren darf. Diese Domain kann von der Domäne, in die umgebende HTML-Dokument wird gehostet werden.
Java-Systembibliotheken und Laufzeiten sind abwärtskompatibel, so dass man Code, der sowohl auf den gegenwärtigen und zukünftigen Versionen der Java Virtual Machine läuft zu schreiben.
Ähnliche Technologien
Viele Java-Entwickler, Blogs und Magazine empfehlen, dass die Java Web Start-Technologie anstelle des Applets verwendet werden. Java Web Start ermöglicht die Einleitung von unmodifizierten Applet-Code, der dann ausgeführt wird in einem separaten Fenster.
Ein Java Servlet ist manchmal informell im Vergleich zu "wie" ein serverseitige Applet sein, aber sie in seiner Sprache, Funktionen anders ist, und in jeder der hier etwa Applets beschriebenen Eigenschaften.
Einbetten einer Webseite
Das Applet kann auf der Web-Seite durch die Verwendung des veralteten HTML-Element, oder die empfohlene Element angezeigt. Element kann mit Mozilla-Browsern verwendet werden. Dies gibt Quelle und Lage des Applets. und Tags können auch herunterladen und installieren virtuelle Java-Maschine oder zumindest auf die Plugin-Seite führen. und Tags unterstützen auch Belastung der serialisierten Applets, die in einem bestimmten Zustand zu starten. Tags auch die Botschaft, die an Stelle des Applet zeigt an, ob der Browser kann nicht ausgeführt werden es aus irgendeinem Grund.
, Obwohl sie offiziell empfohlen, tag, ab 2010 war jedoch die Unterstützung der Tag noch nicht unter den Browsern konsistent und Sun gehalten empfehlen älteren Tag für die Bereitstellung im Multibrowser-Umgebungen, da er blieb der einzige Tag konsequent von den populärsten Browsern unterstützt . Um mehrere Browser unterstützen, die Tag Zeit benötigt JavaScript, Nutzung von zusätzlichen Browser-spezifischen Tags oder die Bereitstellung angepasst Ausgabe von der Server-Seite. Ironischen Tag ist kritisiert worden. Oracle bietet jetzt eine gepflegt JavaScript-Code, um Applets mit Cross-Plattform-Workarounds zu starten.
Beispiel
Das folgende Beispiel illustriert die Verwendung von Java durch die java.applet Paket-Applets. Im Beispiel wird auch Klassen aus der Java Abstract Window Toolkit, um die Nachricht zu produzieren "Hallo Welt!" als Ausgabe.
Einfache Applets sind frei über das Internet für die Anpassung von Anwendungen, die Plug-ins unterstützen geteilt.
Applet & gt; Nach dem Übersetzen der resulting.class Datei kann auf einem Web-Server innerhalb einer HTML-Seite unter Verwendung eines & lt gestellt und geltend gemacht werden; oder & lt; Objekts & gt; tag. Beispielsweise:
Wenn die Seite zugegriffen wird wie folgt gefasst:
Um Downloadzeit zu minimieren, können Applets in Form einer JAR-Datei ausgeliefert. Im Fall dieses Beispiels, wenn alle notwendigen Klassen sind in der komprimierten Archiv example.jar platziert folgendes Einbetten Code könnte stattdessen verwendet werden:
Applet Aufnahme wird im Detail in Suns offizielle Seite über das Applet-Tag beschrieben.
Vorteile
Ein Java-Applet kann irgendeine oder alle der folgenden Vorteile aufweisen:
- Es ist einfach, damit es funktioniert auf FreeBSD, Linux, Microsoft Windows und OS X, das ist, um es Cross-Plattform zu machen. Applets werden von den meisten Web-Browsern unterstützt.
- Das gleiche Applet kann auf "alle" installiert Java-Versionen zur gleichen Zeit und nicht nur das neueste Plug-In-Version nur funktionieren,. Allerdings, wenn ein Applet erfordert eine neuere Version von Java Runtime Environment wird der Kunde gezwungen, während der große Download warten werden.
- Die meisten Web-Browser-Cache-Applets, so dass sie schnell sein bei der Rückkehr in eine Web-Seite zu laden. Applets auch mit der Nutzung zu verbessern: nach einer ersten Applet ausführen, wird die JVM bereits läuft und startet schnell. Es sei darauf hingewiesen, dass JRE-Versionen 1.5 und höher stoppen Sie die JVM und neu starten, wenn der Browser navigiert von einer HTML-Seite mit eingebundenem Applet in eine andere, die ein Applet werden.
- Es kann die Arbeit von dem Server an den Client zu bewegen, so dass eine Web-Lösung mehr mit der Anzahl der Benutzer / Clients skalierbar.
- Wenn ein eigenständiges Programm spricht mit einem Web-Server, in der Regel muss der Server, um alle früheren Versionen für Anwender, die ihre Client-Software aktualisiert, nicht gehalten haben, zu unterstützen. Im Gegensatz dazu lädt eine richtig konfigurierte Browser die neueste Applet-Version, so gibt es keine Notwendigkeit, um Legacy-Versionen unterstützen.
- Das Applet unterstützt natürlich die Änderung des Benutzerstatus, wie Figur Positionen auf dem Schachbrett.
- Entwickler können entwickeln und debuggen ein Applet direkt einfach durch die Schaffung eines Hauptprogramms und ruft init und starten Sie auf das Applet, so dass für die Entwicklung in ihre Lieblings-Java SE-Entwicklungsumgebung. Alles was man tun muss, nachdem das ist erneut testen das Applet im Appletviewer-Programm oder ein Web-Browser, um sicherzustellen, dass es den Sicherheitsbeschränkungen entspricht.
- Ein nicht vertrauenswürdiges Applet hat keinen Zugriff auf den lokalen Computer und kann nur auf den Server zugreifen es kam. Dies macht ein solches Applet viel sicherer, als eine eigenständige ausführbare Datei, die es ersetzen könnte laufen. Allerdings kann ein signiertes Applet haben vollen Zugriff auf die Maschine auf dem es läuft, wenn der Nutzer verpflichtet.
- Java-Applets sind schnell - und können sogar eine ähnliche Leistung zu nativen installierten Software.
Nachteile
Ein Java-Applet kann jedes der folgenden Nachteile aufweisen:
- Es erfordert die Java-Plug-in.
- Einige Browser, vor allem mobile Browser auf Apple iOS oder Android, laufen nicht Java-Applets überhaupt.
- Einige Organisationen erlauben nur Software von einem Administrator installiert. Dadurch können einige Benutzer nur anzeigen Applets, die wichtig genug, um zu rechtfertigen, um die Installation des Java-Plug-in beantragen Sie den Administrator sind.
- Wie bei jedem Client-seitiges Scripting, können Sicherheitsbeschränkungen es schwierig oder sogar unmöglich machen, für ein nicht vertrauenswürdiges Applet, um die gewünschten Ziele zu erreichen. Allerdings nur die Bearbeitung der java.policy Datei im Java JRE-Installation, kann man Zugriff auf das lokale Dateisystem oder System-Zwischenablage zum Beispiel, oder an andere außer der Netzwerkquelle, die das Applet in den Browser bedient Netzwerkquellen zu gewähren.
- Einige Applets erfordern eine bestimmte JRE. Dies wird abgeraten.
- Wenn ein Applet ist eine neuere JRE als auf dem System oder eine bestimmte JRE, den Benutzer, der es zum ersten Mal, müssen Sie warten, bis die großen JRE-Download abgeschlossen ist.
- Java automatische Installation oder Aktualisierung kann fehlschlagen, wenn ein Proxy-Server verwendet wird, auf das Internet zuzugreifen. Dies macht Applets mit spezifischen Anforderungen unmöglich, ausgeführt, wenn Java manuell aktualisiert. Die Java automatische Updater, die Teil einer Java-Installation ist auch komplex zu konfigurieren sein, wenn sie müssen über einen Proxy zu arbeiten.
- Im Gegensatz zu den älteren tag, muss der Tag-Workarounds, um eine Cross-Browser HTML-Dokument zu schreiben.
- Es gibt keinen Standard, um den Inhalt des Applets für Bildschirmleseprogramme zu machen. Daher kann Applets die Zugänglichkeit einer Website, um Nutzer mit besonderen Bedürfnissen zu schaden.
Kompatibilität bezogenen Klagen
Sun hat beträchtliche Anstrengungen unternommen, um die Kompatibilität zu gewährleisten zwischen Java-Versionen beibehalten hat, wie sie sich entwickeln, die Durchsetzung Java Portabilität durch Gesetz, falls erforderlich. Oracle scheint zu sein, weiterhin die gleiche Strategie.
1997 Sun vs Microsoft
Die Klage wurde 1997 eingereicht, nachdem Microsoft erstellt einen modifizierten Java Virtual Machine der eigenen, die mit Internet Explorer ausgeliefert. Microsoft hinzugefügt etwa 50 Methoden und 50 Halbbildern in die Klassen innerhalb der java.awt, java.lang, java.io und Pakete. Andere Modifikationen enthalten Entfernung von RMI Fähigkeit und Austausch von Java Native Interface von JNI zu RNI, einen anderen Standard. RMI wurde entfernt, da sie nur leicht unterstützt Java, um Java-Kommunikation und konkurriert mit Microsoft DCOM-Technologie. Applets, die auf diese Veränderungen verlassen oder einfach nur versehentlich verwendet sie nur innerhalb Microsofts Java System funktionierte. Sun verklagt wegen Verletzung der Marke, wie der Punkt von Java war, dass es keine proprietären Erweiterungen und dass Code sollte überall funktionieren. Microsoft vereinbart zu zahlen Sun $ 20 Millionen, und Sun vereinbart, gewähren Microsoft beschränkte Lizenz für Java ohne Modifikationen und nur für eine begrenzte Zeit verwenden.
2002 Sun vs Microsoft
Microsoft weiterhin seinen eigenen unmodifizierten Java Virtual Machine zu versenden. Im Laufe der Jahre wurde es extrem veraltet und dennoch für den Internet Explorer standardmäßig. Eine spätere Studie ergab, dass Applets dieser Zeit enthalten oft ihre eigenen Klassen, die spiegeln Schaukel und anderen neueren Features in begrenztem Umfang. Im Jahr 2002 meldete Sun kartellrechtliche Klage behauptete, dass Microsofts Versuche, illegale Monopolisierung hatte die Java-Plattform zu Schaden. Sun verlangt Microsoft verteilen Sonnenstrom, binäre Implementierung der Java-Technologie als Teil von Windows, verteilen sie als empfohlenes Update für ältere Microsoft-Desktop-Betriebssysteme und stoppen Sie die Verteilung von Microsofts Virtual Machine. Microsoft zahlte 700 Mio. $ für anhängige Kartellfragen, eine weitere $ 900 Millionen für Patentfragen und eine 350 Millionen $ Lizenzgebühr an Sun-Software in der Zukunft verwenden.
2010 Oracle vs Google
Google hat seinen eigenen Android-Plattform, die Java-Funktionen und Konzepte verwendet entwickelt, ist aber mit Standard-Bibliotheken kompatibel. Dies kann eine Verletzung der Bedingungen, unter denen Sun OpenJDK erteilt Patente auf Open-Source-Java für alle zu nutzen. Im Jahr 2010, Oracle verklagt Google für die Verwendung von Java "in einem falschen Weg" und behauptete, dass "Googles Android in Konkurrenz zu Oracle Amerikas Java" und dass "Google hat Kenntnis von Patent-Portfolio von Sun ... da Google angeheuert bestimmte ehemalige Sun Java-Ingenieure" . Im Mai 2012 die Jury in diesem Fall, dass Google nicht auf Oracle-Patente verletzen, und der Richter entschied, dass die Struktur der von Google eingesetzten Java-APIs nicht urheber.
Sicherheit
Es gibt zwei Applet-Typen mit sehr unterschiedlichen Sicherheitsmodellen: signierte Applets und unsignierten Applets. Ab Java SE 7 Update 21-Applets und Web-Start-Apps sind aufgefordert, mit einem vertrauenswürdigen Zertifikat signiert werden, und Warnmeldungen angezeigt, wenn Lauf unsigned Applets. Weitere beginnend mit Java 7 Update 51 unsigned Applets werden standardmäßig blockiert; können sie durch die Schaffung einer Ausnahme im Java Control Panel ausgeführt werden.
Unsigned
Grenzwerte für nicht signierte Applets werden als "drakonische" zu verstehen: sie keinen Zugriff auf das lokale Dateisystem und Web-Zugriff auf das Applet-Download-Site haben; gibt es auch viele andere wichtige Einschränkungen. Zum Beispiel, können sie nicht auf einem lokalen System zugreifen können, alle Systemeigenschaften, ihre eigenen Klassenlader, rufen nativen Code, führen externe Befehle oder neu zu definieren Klassen, um Kernpaketen als Teil einer Java-Version enthalten gehören. Während sie sich in einem Standalone-Rahmen ausgeführt werden können, enthält eine solche Rahmen eine Kopfzeile, die anzeigt, dass dies ein nicht vertrauenswürdigen Applet. Erfolgreicher Anruf des verbotenen Methode nicht automatisch eine Sicherheitslücke schaffen, wie eine Zugriffssteuereinheit überprüft den gesamten Stack der aufrufenden Code, um sicherzustellen, dass der Anruf nicht von einer nicht dafür geeigneten Stelle kommen.
Wie bei jedem komplexen System, haben viele Sicherheitsprobleme entdeckt und behoben, da Java wurde zum ersten Mal veröffentlicht. Einige von diesen bestand seit vielen Jahren mit niemand in Kenntnis. Andere haben in Verwendung durch Malware in freier Wildbahn entdeckt worden.
Einige Studien erwähnen Applets Absturz des Browsers oder Übernutzung CPU-Ressourcen, sondern diese als Belästigungen als wahr eingestuft und Sicherheitslücken nicht. Es kann jedoch nicht signierte Applets in kombinierten Angriffe, die eine Kombination von mehreren schweren Konfigurationsfehler in anderen Teilen des Systems auszunutzen beteiligt. Eine nicht signierte Applet kann auch gefährlicher, direkt auf dem Server, wo sie gehostet wird, weil, während Code-Basis ermöglicht es, mit dem Server zu kommunizieren laufen, darin laufen können die Firewall zu umgehen. Ein Applet kann auch DoS-Angriffe versuchen, auf dem Server, wo sie gehostet wird, aber in der Regel Menschen, die die Website zu verwalten verwalten auch das Applet, so dass dies nicht zumutbar. Gemeinschaften können dieses Problem über Quellcode-Rezension oder Ausführen von Applets auf einer eigenen Domain zu lösen.
Die unsignierten Applet können auch versuchen, Malware auf Ursprung-Server gehostet herunterladen. Allerdings könnte es nur eine solche Datei zu speichern in einen temporären Ordner und hat keine Mittel, um den Angriff durch die Ausführung vollenden. Es gab Versuche, Applets für die Verbreitung von Phoenix und Sibirien nutzt diese Weise zu verwenden, aber diese Exploits verwenden keine Java-intern und wurden auch in mehreren anderen Arten verteilt.
Unterzeichnet
Ein signiertes Applet enthält eine Signatur, die der Browser über eine remote ausgeführt, unabhängige Zertifizierungsstelle-Server zu überprüfen. Herstellung diese Signatur beinhaltet Spezialwerkzeugen und Interaktion mit den Autoritätsserver Betreuer. Sobald die Signatur verifiziert, und der Benutzer der aktuellen Maschine auch genehmigt, kann ein signiertes Applet mehr Rechte bekommen, immer gleichbedeutend mit einem gewöhnlichen eigenständiges Programm. Das Grundprinzip ist, dass der Autor des Applets ist nun bekannt und wird für jede vorsätzliche Beschädigung verantwortlich sein. Dieser Ansatz erlaubt es Applets für viele Aufgaben, die sonst von Client-seitiges Scripting sind nicht möglich verwendet werden. Jedoch erfordert dieser Ansatz mehr Verantwortung von dem Benutzer, der Entscheidung, die er oder sie vertraut. Die damit verbundenen Bedenken gehören ein non-responsive Autoritätsserver, falsche Beurteilung des Unterzeichners Identität, wenn die Ausgabe von Zertifikaten und bekannt Applet Verlage noch immer etwas, das der Benutzer nicht billigen tut. Daher signierte Applets, die von Java 1.1 erschienen kann tatsächlich mehr Sicherheit betrifft.
Selbstsignierte
Selbstsignierte Applets, die Applets vom Entwickler selbst unterschrieben sind, können möglicherweise ein Sicherheitsrisiko darstellen; java plugins eine Warnung, wenn die Genehmigung für ein selbst signiertes Applet, wie die Funktion und Sicherheit des Applets nur vom Entwickler selbst gewährleistet wird, und nicht unabhängig bestätigt. Solche selbstsignierte Zertifikate werden in der Regel nur während der Entwicklung vor der Freigabe in dem Dritt Bestätigung der Sicherheit ist unwichtig verwendet, aber die meisten Applet-Entwickler werden von Drittanbietern Unterzeichnung zu suchen, um sicherzustellen, dass die Nutzer die Sicherheit des Applets zu vertrauen.
Java-Sicherheitsprobleme sind nicht grundlegend von ähnlichen Problemen jede Client-seitiges Scripting-Plattform. Insbesondere gelten alle Fragen im Zusammenhang mit signierte Applets Zusammenhang auch auf Microsoft ActiveX-Komponenten.
Ab ca. 1. Januar 2014, Selbst-und ohne Vorzeichen Applets sind nicht mehr von den gängigen Java-Plugins oder Java Web Start akzeptiert. Folglich Entwickler, die Java-Applets bereitstellen wollen, haben keine andere Wahl, als vertrauenswürdige Zertifikate von kommerziellen Quellen zu erwerben.
Alternativen
Alternative Technologien gibt, dass einige der Umfang dessen, was mit einem Applet ist möglich zu erfüllen. Davon JavaScript ist immer als eine konkurrierende Ersatz angesehen; JavaScript Applets auf derselben Seite nebeneinander existieren können, unterstützen bei der Einführung Applets und später von der Applet-Code aufgerufen werden. JavaFX ist eine Erweiterung von der Java-Plattform und kann auch als Alternative angesehen werden.
Kommentare - 0