Download JAVA 4.2- Applets - PoliformaT
Document related concepts
no text concepts found
Transcript
Diseño Y Aplicaciones de Sistemas Distribuidos Applets Joan Vila DISCA / UPV Departament d’Informàtica de Sistemes i Computadors Universitat Politècnica de València Applets ¿Qué es un Applet ? xaloc.es Servidor WWW Cliente WWW N referencia echo. html http://xaloc.es/echo.html echoClient. class echoClient. class migran Servidor “echo” Máquina virtual java Procesamiento distribuido en Java © Joan Vila 99 Applets Applets Son subclases de la clase Applet – Son objetos gráficos (subclases de Component) que se pueden ejecutar en el entorno de un browser de red (siempre que este incluya la máquina virtual). El sistema gráfico AWT es representable por el browser de red. – Se lanzan desde un fichero en HTML: ésto hace migrar el código del URL remoto al browser de red. – Tienen algunas limitaciones de seguridad en el acceso a ficheros y recursos de la máquina a la que migran. Procesamiento distribuido en Java © Joan Vila 100 Applets Ciclo de vida de un Applet: milestones public publicclass classSimple Simpleextends extendsApplet Applet{{ StringBuffer StringBufferbuffer; buffer; public publicvoid voidinit() init(){{ buffer buffer==new newStringBuffer(); StringBuffer(); addItem("initializing... addItem("initializing..."); "); }} public publicvoid voidstart() start(){{ addItem("starting... addItem("starting..."); "); }} public publicvoid voidstop() stop(){{ addItem("stopping... addItem("stopping...")") }} public publicvoid voiddestroy() destroy(){{ addItem("prepar. addItem("prepar.for forunloading..."); unloading..."); }} Procesamiento distribuido en Java © Joan Vila 101 Applets Métodos para dibujo y manejo de eventos – Se utilizan as mismas clases y métodos que en AWT – Dibujo: sobrecargar el método paint de la clase Component o los propios de cada componente. – Manejo de eventos: utilizar las interfaces y clases del paquete java.awt.event void voidaddItem(String addItem(StringnewWord) newWord){{ System.out.println(newWord); System.out.println(newWord); buffer.append(newWord); buffer.append(newWord); repaint(); repaint(); }} public publicvoid voidpaint(Graphics paint(Graphicsg) g){{ //Draw //DrawaaRectangle Rectangle ////around the around theapplet's applet'sdisplay displayarea area g.drawRect(0, g.drawRect(0,0, 0,size().width size().width--1, 1, size().height size().height--1); 1); //Draw //Drawthe thecurrent currentstring stringinside insidethe therectangle. rectangle. }} }} Procesamiento distribuido en Java g.drawString(buffer.toString(), g.drawString(buffer.toString(),5, 5,15); 15); © Joan Vila 102 Applets La etiqueta APPLET en HTML <HTML> <HEAD> <!-- Generated by Kawa IDE --> <TITLE>Echo Applet</TITLE> </HEAD> <BODY> <H1>Hello World</H1> <HR> <APPLET CODEBASE="../.." CODE="examples.echo.EchoApplet" WIDTH=300 HEIGHT=300> <PARAM NAME = maquina VALUE="localhost"> </APPLET> <HR> </BODY> </HTML> Procesamiento distribuido en Java Hello.htm <applet archive = "prj-applet.jar" code = "client.EchoApplet.class" name = "TestApplet" width = "400" height = "300" hspace = "0" vspace = "0" align = "middle" > © Joan Vila 103 Applets El Applet echo package examples.eco; EchoApplet.java import java.awt.*; import java.rmi.*; public class EchoApplet extends java.applet.Applet { String message = ”Beep, Beep. Funciona el eco "; public void init() { try { String maquina = null; maquina = getParameter("maquina"); EchoIntRMI obj = (EchoIntRMI) Naming.lookup("//"+maquina+ "/EchoObject"); message = obj.echo(); } catch (Exception e) { System.out.println(”EchoApplet exception: " + e.getMessage()); } } Procesamiento distribuido en Java © Joan Vila 104 Applets El Applet echo EchoApplet.java package examples.eco; public class EchoApplet extends java.applet.Applet ... public void paint(Graphics g) { g.drawString(message, 25, 50); } } Procesamiento distribuido en Java © Joan Vila 105 Applets Restricciones de seguridad La mayoria de los visores imponen restricciones de ejecución sobre Applets “no confiables”. Provocan SecurityException s. Las restricciones son: – – – – – – No puede cargar bibliotecas (excepto java.*) y métodos nativos. No puede leer o escribir ficheros sobre el host que ejecuta el Applet. No puede establecer conexiones de red excepto al host del que proviene. No puede ejecutar un programa en el host que ejecuta el Applet. No puede obtener “demasiadas propiedades del sistema Las ventanas de los applets traen son de apariencia diferente a las ventanas del sistema (directorio de trabajo, directorio de usuario, nombre usuario,..) La forma de declarar un Applet confiable es dependiente del visor (a través de firmas o URL’s válidos, ...) Procesamiento distribuido en Java © Joan Vila 106