1 La Revolución Java
2
3 Concepto: Es el envío de mensajes a puntos remotos. Se utiliza para enviar notas personales de un usuario a otro y para enviar cualquier tipo de infirmación (publicaciones, programas, image-nes, grabaciones de sonido,etc). A pesar de la variedad existente en cuanto a hardware y software, puede intercambiar correo, puesto que cuenta con un standard o protocolo denominado SMTP. INTERNETINTERNET Correo Electrónico
4 Telaraña del Ancho Mundo WWW World Wide Web
5 ¿Qué es HIPERTEXTO? Método para presentar información donde las palabras al ser seleccionadas se expanden proporcionando más información. La palabra mantiene vínculos con otros documentos, imágenes, sonido u otra cosa. Ejemplo.
6 Breve Historia sobre WWW. 1989’ Centro Europeo para la Física de las Partícula Ginebra. 1993’ Sale al mercado el primer Visualizador. MOSAIC.
7 Que es World Wide Web? Que es World Wide Web? Es un servicio reciente para obtener información en INTERNET. El cual utilizando visualizadores nos permite captar texto,imagenes, sonido. Documentos de multimedios hiperenlazados, denominados paginas, sedes de múltiples enlaces. En la actualidad considerado el servicio mas popular de Internet, después del “ E-mail.”
8 World Wide Web Esta telaraña mundial está basada en el manejo de hipertextos (datos enlazados a otros datos). Es una de las maneras más fáciles y atractivas para navegar por Internet, la información es presentada mediante cualquier tipo de datos (texto, audio, sonido, video, etc) lo que la hace más intuitiva y fácil de entender para el usuario.
9 ¿QUE SE NECESITA PARA USAR EL WWW ? Un Computador (386 o superior) Un Modem ( preferiblemente de 14400 bps) Una Línea Telefónica Un Programa o Visualizador
10 Quienes usan WWW? Inicialmente Instituciones de Investigación. En la actualidad hacen uso de este servicio: –Profesionales. –Empresas especializadas en proveer y recolectar información. –Publico en general vía proveedores de acceso local, servicios comerciales “On-Line” y otros tipos de redes.
11 Formato para WEB HTML –Se deriva del SGML, es sencillo ya que solo esta compuesto por 37 etiquetas. –Su costo se resume a una conexión a Internet.
12 Así de Simple !! ********** ********** ******** ******** { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_12.jpg", "name": "Así de Simple !! ********** ********** ******** ******** ", "description": "Así de Simple !! ********** ********** ******** ******** ", "width": "800" } 13 UTILIZACION DEL WWW Visualizadores: Netscape Mosaic Microsoft Network Internet Exploret ( Usado por Windows 95’) Lynx ( Basado en textos ) { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_13.jpg", "name": "UTILIZACION DEL WWW Visualizadores: Netscape Mosaic Microsoft Network Internet Exploret ( Usado por Windows 95’) Lynx ( Basado en textos )", "description": "UTILIZACION DEL WWW Visualizadores: Netscape Mosaic Microsoft Network Internet Exploret ( Usado por Windows 95’) Lynx ( Basado en textos )", "width": "800" } 14 WEB SITE EXTERNOS – –INTERNET INTERNOS – –INTRANET SERVIDORES DE HTTP – –ZB – –WEBSITE – –etc. SEGURIDAD - FireWall - Servidor - Directorios - Archivos “Property” { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_14.jpg", "name": "WEB SITE EXTERNOS – –INTERNET INTERNOS – –INTRANET SERVIDORES DE HTTP – –ZB – –WEBSITE – –etc.", "description": "SEGURIDAD - FireWall - Servidor - Directorios - Archivos Property .", "width": "800" } 15 La Revolución Java Beneficios para tu Negocio La Revolución Java Beneficios para tu Negocio { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_15.jpg", "name": "La Revolución Java Beneficios para tu Negocio La Revolución Java Beneficios para tu Negocio", "description": "La Revolución Java Beneficios para tu Negocio La Revolución Java Beneficios para tu Negocio", "width": "800" } 16 Revolución WEB Estandarización, interface universal de datos Representación Gráfica Capacidad intermedios Web es la interface universal para el mundo de las librerías digitales { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_16.jpg", "name": "Revolución WEB Estandarización, interface universal de datos Representación Gráfica Capacidad intermedios Web es la interface universal para el mundo de las librerías digitales", "description": "Revolución WEB Estandarización, interface universal de datos Representación Gráfica Capacidad intermedios Web es la interface universal para el mundo de las librerías digitales", "width": "800" } 17 Limitaciones del Web Solo datos - No programas Información Estática Clientes dumb HTML no es flexible Competencia de Protocolos y estándares { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_17.jpg", "name": "Limitaciones del Web Solo datos - No programas Información Estática Clientes dumb HTML no es flexible Competencia de Protocolos y estándares", "description": "Limitaciones del Web Solo datos - No programas Información Estática Clientes dumb HTML no es flexible Competencia de Protocolos y estándares", "width": "800" } 18 El Bloqueo del Sistema Operativo Sistema Operativo Aplicaciones Hoy: Las aplicaciones están unidas al sistema operativo, el cual a su vez está unido al procesador del computador. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_18.jpg", "name": "El Bloqueo del Sistema Operativo Sistema Operativo Aplicaciones Hoy: Las aplicaciones están unidas al sistema operativo, el cual a su vez está unido al procesador del computador.", "description": "El Bloqueo del Sistema Operativo Sistema Operativo Aplicaciones Hoy: Las aplicaciones están unidas al sistema operativo, el cual a su vez está unido al procesador del computador.", "width": "800" } 19 El cuello de botella actual de la Red La Red LAN Mac Server Sun PC { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_19.jpg", "name": "El cuello de botella actual de la Red La Red LAN Mac Server Sun PC", "description": "El cuello de botella actual de la Red La Red LAN Mac Server Sun PC", "width": "800" } 20 Maquina Virtual Visualizador / Plug-In ByteCode BI OS { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_20.jpg", "name": "Maquina Virtual Visualizador / Plug-In ByteCode BI OS", "description": "Maquina Virtual Visualizador / Plug-In ByteCode BI OS", "width": "800" } 21 Ambiente de Computación Virtual Agua Bases de Datos Browser para Java Applet Servidor de Applet Intra-Net InterNet La interacción a través del applet permite entrada y salida localizada en tiempo real. El usuario obtiene la ventaja de las aplicaciones y recursos de la red sin las dependencias de plataforma { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_21.jpg", "name": "Ambiente de Computación Virtual Agua Bases de Datos Browser para Java Applet Servidor de Applet Intra-Net InterNet La interacción a través del applet permite entrada y salida localizada en tiempo real.", "description": "El usuario obtiene la ventaja de las aplicaciones y recursos de la red sin las dependencias de plataforma.", "width": "800" } 22 El poder de JAVA y el WEB Aplicaciones Viven, no son datos estáticos Clientes Inteligentes, respuestas instantánea Protocolos interoperables Múltiples medios interactivos { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_22.jpg", "name": "El poder de JAVA y el WEB Aplicaciones Viven, no son datos estáticos Clientes Inteligentes, respuestas instantánea Protocolos interoperables Múltiples medios interactivos", "description": "El poder de JAVA y el WEB Aplicaciones Viven, no son datos estáticos Clientes Inteligentes, respuestas instantánea Protocolos interoperables Múltiples medios interactivos", "width": "800" } 23 El poder de JAVA y el WEB Aplicaciones Moviles - No solo información Elimina el porting Elimina instalaciones Usuarios finales Disminuye los costos de distribución del Software Instantáneamente Millones de Compradores { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_23.jpg", "name": "El poder de JAVA y el WEB Aplicaciones Moviles - No solo información Elimina el porting Elimina instalaciones Usuarios finales Disminuye los costos de distribución del Software Instantáneamente Millones de Compradores", "description": "El poder de JAVA y el WEB Aplicaciones Moviles - No solo información Elimina el porting Elimina instalaciones Usuarios finales Disminuye los costos de distribución del Software Instantáneamente Millones de Compradores", "width": "800" } 24 El Sistema Operativo de la Red Visualizador Aplicaciones Solaris x86 Solaris SPARC Win 95 /x86 Win NT/x86 Cualquier SO/CPU SO { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_24.jpg", "name": "El Sistema Operativo de la Red Visualizador Aplicaciones Solaris x86 Solaris SPARC Win 95 /x86 Win NT/x86 Cualquier SO/CPU SO", "description": "El Sistema Operativo de la Red Visualizador Aplicaciones Solaris x86 Solaris SPARC Win 95 /x86 Win NT/x86 Cualquier SO/CPU SO", "width": "800" } 25 Ventajas de programación para la Red Seguro Compacto Independiente de la plataforma Los programas corren localmente Puede ser actualizado continuamente { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_25.jpg", "name": "Ventajas de programación para la Red Seguro Compacto Independiente de la plataforma Los programas corren localmente Puede ser actualizado continuamente", "description": "Ventajas de programación para la Red Seguro Compacto Independiente de la plataforma Los programas corren localmente Puede ser actualizado continuamente", "width": "800" } 26 Java : Escriba una vez y Corra donde sea... La RED inicia El Vehículo de distribución para las APLICACIONES DE SOFTWARE El poder de los PC, No es el poder en el DeskTop - Es el poder de CONECTARSE a otros. La RED es el computador, El computador es un periférico a internet y al WEB. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_26.jpg", "name": "Java : Escriba una vez y Corra donde sea...", "description": " La RED inicia El Vehículo de distribución para las APLICACIONES DE SOFTWARE El poder de los PC, No es el poder en el DeskTop - Es el poder de CONECTARSE a otros. La RED es el computador, El computador es un periférico a internet y al WEB..", "width": "800" } 27 Quienes Usan JAVA? SERVICIOS FINANCIEROS EDUCACION Aprendizaje remoto, Simulaciones Interactivas SISTEMAS EJECUTIVOS - DSS. MIS Aplicaciones comerciales - Ptos de ventas. Acceso a BD basados en WEB. PUBLICIDAD, ENTRETENIMIENTO datos viven, Infirmación instantáneo, Ventas { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_27.jpg", "name": "Quienes Usan JAVA.", "description": " SERVICIOS FINANCIEROS EDUCACION Aprendizaje remoto, Simulaciones Interactivas SISTEMAS EJECUTIVOS - DSS. MIS Aplicaciones comerciales - Ptos de ventas. Acceso a BD basados en WEB. PUBLICIDAD, ENTRETENIMIENTO datos viven, Infirmación instantáneo, Ventas.", "width": "800" } 28 Metas de Diseño de JAVA Que opere sobre múltiples plataformas en redes heterogéneas. Su arquitectura debe ser portable y dinámicamente adaptable. Fácil adaptación a herramientas gráficas como el WWW. Pequeño, Simple y Eficiente Multihilado y Seguro { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_28.jpg", "name": "Metas de Diseño de JAVA Que opere sobre múltiples plataformas en redes heterogéneas.", "description": " Su arquitectura debe ser portable y dinámicamente adaptable. Fácil adaptación a herramientas gráficas como el WWW. Pequeño, Simple y Eficiente Multihilado y Seguro.", "width": "800" } 29 Motivación del JAVA Simple, Orientado a Objeto y Familiar. Robusto y Seguro. Arquitectura Neutral y Portable. ByteCode. Rápida Ejecución. Interpretado, Hilado y Dinámico. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_29.jpg", "name": "Motivación del JAVA Simple, Orientado a Objeto y Familiar.", "description": " Robusto y Seguro. Arquitectura Neutral y Portable. ByteCode. Rápida Ejecución. Interpretado, Hilado y Dinámico..", "width": "800" } 30 La Revolución JAVA Aplicaciones reales, no usa datos estáticos Los clientes dan respuesta instantáneo Multimedia Interactiva Protocolos interoperables { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_30.jpg", "name": "La Revolución JAVA Aplicaciones reales, no usa datos estáticos Los clientes dan respuesta instantáneo Multimedia Interactiva Protocolos interoperables", "description": "La Revolución JAVA Aplicaciones reales, no usa datos estáticos Los clientes dan respuesta instantáneo Multimedia Interactiva Protocolos interoperables", "width": "800" } 31 La Revolución JAVA Tecnología y Arquitectura La Revolución JAVA Tecnología y Arquitectura { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_31.jpg", "name": "La Revolución JAVA Tecnología y Arquitectura La Revolución JAVA Tecnología y Arquitectura", "description": "La Revolución JAVA Tecnología y Arquitectura La Revolución JAVA Tecnología y Arquitectura", "width": "800" } 32 Historia del JAVA 1990- Sun Labs- James Gosling comenzó el proyecto. 1991- Se destina a artículos de escritorios y consumidores electrónicos. - Creado para correr en una amplia variedad de dispositivos. 1993- Televisión interactiva. 1995- Internet y HotJava. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_32.jpg", "name": "Historia del JAVA 1990- Sun Labs- James Gosling comenzó el proyecto.", "description": " 1991- Se destina a artículos de escritorios y consumidores electrónicos. - Creado para correr en una amplia variedad de dispositivos. 1993- Televisión interactiva. 1995- Internet y HotJava..", "width": "800" } 33 JAVAJAVA Es un lenguaje interpretado basado en C++ que fue diseñado para carga dinámica, trabaja en tiempo real, es portátil y capaz de saltar a través de la red. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_33.jpg", "name": "JAVAJAVA Es un lenguaje interpretado basado en C++ que fue diseñado para carga dinámica, trabaja en tiempo real, es portátil y capaz de saltar a través de la red.", "description": "JAVAJAVA Es un lenguaje interpretado basado en C++ que fue diseñado para carga dinámica, trabaja en tiempo real, es portátil y capaz de saltar a través de la red.", "width": "800" } 34 La Arquitectura del Java Aplicación Java Visualizador HotJava Herramientas para desarrollar en Java Aplicación Java Clases Java Clases Java Clases Java Clases Java Interpretador Java Solaris/x86 Solaris/SPARCWin95/x86WinNT/x86 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_34.jpg", "name": "La Arquitectura del Java Aplicación Java Visualizador HotJava Herramientas para desarrollar en Java Aplicación Java Clases Java Clases Java Clases Java Clases Java Interpretador Java Solaris/x86 Solaris/SPARCWin95/x86WinNT/x86", "description": "La Arquitectura del Java Aplicación Java Visualizador HotJava Herramientas para desarrollar en Java Aplicación Java Clases Java Clases Java Clases Java Clases Java Interpretador Java Solaris/x86 Solaris/SPARCWin95/x86WinNT/x86", "width": "800" } 35 Cómo funciona JAVA ? Escriba código fuente de JAVA y compílelo, creando un archivo de clase. Coloque el archivo de clase en el servidor Web en el subdirectorio de clase que contienen los archivos HTML. Cree la etiqueta para el applet en el documento HTML. Cuando un visuali zador del documento en la Internet vea la etiqueta, generará una instruc ción para solicitar class/Hello.class y obtener el código bytecode compilado. El visualizador crea una nueva ventana y una nueva unidad de ejecución (thread) y luego corre el código. 12354 INTERNET HELLO Ejem.Java { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_35.jpg", "name": "Cómo funciona JAVA . Escriba código fuente de JAVA y compílelo, creando un archivo de clase.", "description": "Coloque el archivo de clase en el servidor Web en el subdirectorio de clase que contienen los archivos HTML. Cree la etiqueta para el applet en el documento HTML. Cuando un visuali zador del documento en la Internet vea la etiqueta, generará una instruc ción para solicitar class/Hello.class y obtener el código bytecode compilado. El visualizador crea una nueva ventana y una nueva unidad de ejecución (thread) y luego corre el código. 12354 INTERNET HELLO Ejem.Java .", "width": "800" } 36 Compilando en Java file.class file.java Java.io Compilador Java %Java file.java Archivo fuente Java Definiciones de clases Java incorporadas Byte Codes de Java { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_36.jpg", "name": "Compilando en Java file.class file.java Java.io Compilador Java %Java file.java Archivo fuente Java Definiciones de clases Java incorporadas Byte Codes de Java", "description": "Compilando en Java file.class file.java Java.io Compilador Java %Java file.java Archivo fuente Java Definiciones de clases Java incorporadas Byte Codes de Java", "width": "800" } 37 Herramientas para Desarrolladores de Java JDK (Java Developers Kit) javac Visualizador de Applets Gratis Sin soporte + Envío El Java WorkShop Herramientas sofisticadas Depurador + Carpeta + Visualizador de Fuentes + Editor Pocos cientos de dólares Soporte + Envío en Abril del 96 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_37.jpg", "name": "Herramientas para Desarrolladores de Java JDK (Java Developers Kit) javac Visualizador de Applets Gratis Sin soporte + Envío El Java WorkShop Herramientas sofisticadas Depurador + Carpeta + Visualizador de Fuentes + Editor Pocos cientos de dólares Soporte + Envío en Abril del 96", "description": "Herramientas para Desarrolladores de Java JDK (Java Developers Kit) javac Visualizador de Applets Gratis Sin soporte + Envío El Java WorkShop Herramientas sofisticadas Depurador + Carpeta + Visualizador de Fuentes + Editor Pocos cientos de dólares Soporte + Envío en Abril del 96", "width": "800" } 38 Contenido del JDK El interpretador Java llevado a la plataforma correspondiente Las clases Java que proporcionan la interfaz de aplicación estándar Compilador Javac Visualizador de applets (Appletviewer) JDB : Depurador sencillo basado en líneas de comandos. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_38.jpg", "name": "Contenido del JDK El interpretador Java llevado a la plataforma correspondiente Las clases Java que proporcionan la interfaz de aplicación estándar Compilador Javac Visualizador de applets (Appletviewer) JDB : Depurador sencillo basado en líneas de comandos.", "description": "Contenido del JDK El interpretador Java llevado a la plataforma correspondiente Las clases Java que proporcionan la interfaz de aplicación estándar Compilador Javac Visualizador de applets (Appletviewer) JDB : Depurador sencillo basado en líneas de comandos.", "width": "800" } 39 El Java WorkShop Un interpretador Java apropiado Un depurador para GUI Java Carpetas de Applet “Proyectos” Ayuda en línea Ambiente de Desarrollo Integrado Visualizador de Fuentes Edición WYSIWYG Integrado con JDK { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_39.jpg", "name": "El Java WorkShop Un interpretador Java apropiado Un depurador para GUI Java Carpetas de Applet Proyectos Ayuda en línea Ambiente de Desarrollo Integrado Visualizador de Fuentes Edición WYSIWYG Integrado con JDK", "description": "El Java WorkShop Un interpretador Java apropiado Un depurador para GUI Java Carpetas de Applet Proyectos Ayuda en línea Ambiente de Desarrollo Integrado Visualizador de Fuentes Edición WYSIWYG Integrado con JDK", "width": "800" } 40 Java usado con un Visualizador Web Visualizador HOTJAVA Escrito en Lenguaje Java Disponible para Applets de Java o cualquier Visualizador disponible de Java Java Applet Interprete Bytecodes HTML Doc Elemento App Código Java Compilador Servidor Proovedor Usuario Host { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_40.jpg", "name": "Java usado con un Visualizador Web Visualizador HOTJAVA Escrito en Lenguaje Java Disponible para Applets de Java o cualquier Visualizador disponible de Java Java Applet Interprete Bytecodes HTML Doc Elemento App Código Java Compilador Servidor Proovedor Usuario Host", "description": "Java usado con un Visualizador Web Visualizador HOTJAVA Escrito en Lenguaje Java Disponible para Applets de Java o cualquier Visualizador disponible de Java Java Applet Interprete Bytecodes HTML Doc Elemento App Código Java Compilador Servidor Proovedor Usuario Host", "width": "800" } 41 El Java utilizado en modo standalone Java Applet Código Java Compilador Java Aplicación Bytecode HTML Doc Visualizador de Applet Tree Applet “Tree“ Interpretador La aplicación Java corre de manera standalone como cualquier otro lenguaje. Los Applets Java necesitan un documento HTML y un Visualizador para correr (Visualizador de Applets o HotJava) { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_41.jpg", "name": "El Java utilizado en modo standalone Java Applet Código Java Compilador Java Aplicación Bytecode HTML Doc Visualizador de Applet Tree Applet Tree Interpretador La aplicación Java corre de manera standalone como cualquier otro lenguaje.", "description": "Los Applets Java necesitan un documento HTML y un Visualizador para correr (Visualizador de Applets o HotJava).", "width": "800" } 42 Seguridad JAVA Se requieren declaraciones, esto facilita la corrección de errores en tiempo de ejecución Es imposible para las aplicaciones accesar estructura de datos privados a objetos en los cuales ellas no tengan acceso El modelo de memoria elimina la posibilidad de sobreescribir la memoria y dañar los datos Las localizaciones de memoria son determinadas en tiempo de ejecución Java no permite que sus aplicaciones puedan ser inavadidas por otras desde el exterior { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_42.jpg", "name": "Seguridad JAVA Se requieren declaraciones, esto facilita la corrección de errores en tiempo de ejecución Es imposible para las aplicaciones accesar estructura de datos privados a objetos en los cuales ellas no tengan acceso El modelo de memoria elimina la posibilidad de sobreescribir la memoria y dañar los datos Las localizaciones de memoria son determinadas en tiempo de ejecución Java no permite que sus aplicaciones puedan ser inavadidas por otras desde el exterior", "description": "Seguridad JAVA Se requieren declaraciones, esto facilita la corrección de errores en tiempo de ejecución Es imposible para las aplicaciones accesar estructura de datos privados a objetos en los cuales ellas no tengan acceso El modelo de memoria elimina la posibilidad de sobreescribir la memoria y dañar los datos Las localizaciones de memoria son determinadas en tiempo de ejecución Java no permite que sus aplicaciones puedan ser inavadidas por otras desde el exterior", "width": "800" } 43 Mas seguridad Programa en Java Compilador Java Byte-codes Java Computador fuente Verificación La Internet Su computador Byte codes Java Ejecución Restringido { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_43.jpg", "name": "Mas seguridad Programa en Java Compilador Java Byte-codes Java Computador fuente Verificación La Internet Su computador Byte codes Java Ejecución Restringido", "description": "Mas seguridad Programa en Java Compilador Java Byte-codes Java Computador fuente Verificación La Internet Su computador Byte codes Java Ejecución Restringido", "width": "800" } 44 Aspectos principales del Lenguaje Tipo de Datos Numéricos. Tipo de Datos Boolean. Arreglos. Strings. Break Multinivel. Manejo de Memoria y Colección Garbage. Sincronización de Procesos Integrados. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_44.jpg", "name": "Aspectos principales del Lenguaje Tipo de Datos Numéricos.", "description": " Tipo de Datos Boolean. Arreglos. Strings. Break Multinivel. Manejo de Memoria y Colección Garbage. Sincronización de Procesos Integrados..", "width": "800" } 45 Aspectos Eliminados de C y C++ No más DEFINES, TYPEDEF y PREPROCESADOR. No más STRUCTURES o UNIONS. No más FUNCIONES. No más HERENCIA MULTIPLE. No más INSTRUCCIONES GO TO. No más SOBRECARGA DE OPERADORES. No más CORRECIONES AUTOMATICAS. No más APUNTADORES. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_45.jpg", "name": "Aspectos Eliminados de C y C++ No más DEFINES, TYPEDEF y PREPROCESADOR.", "description": " No más STRUCTURES o UNIONS. No más FUNCIONES. No más HERENCIA MULTIPLE. No más INSTRUCCIONES GO TO. No más SOBRECARGA DE OPERADORES. No más CORRECIONES AUTOMATICAS. No más APUNTADORES..", "width": "800" } 46 Objetos en JAVA La mayoria de las cosas en JAVA son objetos, exceptuando los tipos de datos simples El código JAVA está organizado en clases Las clases definen un conjunto de métodos que forman la conducta de un objeto El estado de los objetos se definen mediante variables miembros de la clase { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_46.jpg", "name": "Objetos en JAVA La mayoria de las cosas en JAVA son objetos, exceptuando los tipos de datos simples El código JAVA está organizado en clases Las clases definen un conjunto de métodos que forman la conducta de un objeto El estado de los objetos se definen mediante variables miembros de la clase", "description": "Objetos en JAVA La mayoria de las cosas en JAVA son objetos, exceptuando los tipos de datos simples El código JAVA está organizado en clases Las clases definen un conjunto de métodos que forman la conducta de un objeto El estado de los objetos se definen mediante variables miembros de la clase", "width": "800" } 47 Color, #puertas, tamaño, fuel Encender Apagar Correr Cruzar Objeto en JAVA. CAPSULA - Carro { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_47.jpg", "name": "Color, #puertas, tamaño, fuel Encender Apagar Correr Cruzar Objeto en JAVA. CAPSULA - Carro", "description": "Color, #puertas, tamaño, fuel Encender Apagar Correr Cruzar Objeto en JAVA. CAPSULA - Carro", "width": "800" } 48 Objetos y ClasesObjetos y Clases –Una clase define un mundo real o una entidad abstracta. Clase nombre Clase nombre Métodos (Funciones Métodos (Funciones Atributos (Datos Atributos (Datos Un objeto es una instancia |instanciación| de una clase. Nombre del Objeto Métodos: Datos Objeto en JAVA. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_48.jpg", "name": "Objetos y ClasesObjetos y Clases –Una clase define un mundo real o una entidad abstracta.", "description": "Clase nombre Clase nombre Métodos (Funciones Métodos (Funciones Atributos (Datos Atributos (Datos Un objeto es una instancia |instanciación| de una clase. Nombre del Objeto Métodos: Datos Objeto en JAVA..", "width": "800" } 49 Transporte Transporte Rieles Rieles Avi ón Avi ón Carreteras Aereo Aereo GloboGlobo Camió n Autobu s CarroCarro Objeto en JAVA. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_49.jpg", "name": "Transporte Transporte Rieles Rieles Avi ón Avi ón Carreteras Aereo Aereo GloboGlobo Camió n Autobu s CarroCarro Objeto en JAVA.", "description": "Transporte Transporte Rieles Rieles Avi ón Avi ón Carreteras Aereo Aereo GloboGlobo Camió n Autobu s CarroCarro Objeto en JAVA.", "width": "800" } 50 Clases de CarrosClases de Carros Objeto en JAVA. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_50.jpg", "name": "Clases de CarrosClases de Carros Objeto en JAVA.", "description": "Clases de CarrosClases de Carros Objeto en JAVA.", "width": "800" } 51 Ciclo de vida de un objeto en JAVA. Los siguientes pasos describen el ciclo de vida típico de un objeto: Creación Uso Destrucción. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_51.jpg", "name": "Ciclo de vida de un objeto en JAVA.", "description": "Los siguientes pasos describen el ciclo de vida típico de un objeto: Creación Uso Destrucción..", "width": "800" } 52 Creación de Objetos import java.util.Date; class DateApp { public static void main (String args[] ) { Date today = new Date();Declaración, instanciación e inicialización System.out.println(today); } String s; // Aún no se ha asignado memoria Declaración s = new String(“abc”);// Memoria Asignada Instanciación e Inicialización s = “def”; // nueva Asignación de Memoria { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_52.jpg", "name": "Creación de Objetos import java.util.Date; class DateApp { public static void main (String args[] ) { Date today = new Date();Declaración, instanciación e inicialización System.out.println(today); } String s; // Aún no se ha asignado memoria Declaración s = new String( abc );// Memoria Asignada Instanciación e Inicialización s = def ; // nueva Asignación de Memoria", "description": "Creación de Objetos import java.util.Date; class DateApp { public static void main (String args[] ) { Date today = new Date();Declaración, instanciación e inicialización System.out.println(today); } String s; // Aún no se ha asignado memoria Declaración s = new String( abc );// Memoria Asignada Instanciación e Inicialización s = def ; // nueva Asignación de Memoria", "width": "800" } 53 Uso de un Objeto Un objeto puede ser manejado de dos maneras: Utilizando directamente las variables miembros. Utilizando alguno de sus métodos. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_53.jpg", "name": "Uso de un Objeto Un objeto puede ser manejado de dos maneras: Utilizando directamente las variables miembros.", "description": " Utilizando alguno de sus métodos..", "width": "800" } 54 ClasesClases En el lenguaje Java, todas las funciones y variables existen dentro de una clase u objeto; el lenguaje no permite funciones globales variables perdidas. Por lo tanto el esqueleto de una aplicación java es la definición de una clase. tiene una sintaxis para definir clases que son plantillas para la creación de nuevas instancias de objetos [ modificadores ] class NombreClase [ extends NombreSuperClase ] [ implements NombresInterface ] { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_54.jpg", "name": "ClasesClases En el lenguaje Java, todas las funciones y variables existen dentro de una clase u objeto; el lenguaje no permite funciones globales variables perdidas.", "description": "Por lo tanto el esqueleto de una aplicación java es la definición de una clase. tiene una sintaxis para definir clases que son plantillas para la creación de nuevas instancias de objetos [ modificadores ] class NombreClase [ extends NombreSuperClase ] [ implements NombresInterface ].", "width": "800" } 55 ClasesClases Los modificadores de la clase son : Abstract : contiene métodos abstractos Final : no tiene subclases Public : puede ser usada por el código que se encuentre fuera del paquete { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_55.jpg", "name": "ClasesClases Los modificadores de la clase son : Abstract : contiene métodos abstractos Final : no tiene subclases Public : puede ser usada por el código que se encuentre fuera del paquete", "description": "ClasesClases Los modificadores de la clase son : Abstract : contiene métodos abstractos Final : no tiene subclases Public : puede ser usada por el código que se encuentre fuera del paquete", "width": "800" } 56 ClasesClases El estado de un objeto se establece mediante sus variables miembros, normalmente conocidas como variables de instancia de la clase. Las variables pueden presentar varios atributos que se especifican en la declaración [Especificadoracceso] [static] [final] [transient] [volatile] tipo nombrevariable { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_56.jpg", "name": "ClasesClases El estado de un objeto se establece mediante sus variables miembros, normalmente conocidas como variables de instancia de la clase.", "description": "Las variables pueden presentar varios atributos que se especifican en la declaración [Especificadoracceso] [static] [final] [transient] [volatile] tipo nombrevariable.", "width": "800" } 57 ClasesClases Control de acceso en variables de instancia Public : puede ser usado por cualquier clase de cualquier parte Protected : puede solo ser usada por las subclases de la clase y en ninguna otra parte Private : puede solo ser usada dentro de la clase donde ella fué declarada. No estan disponibles para la subclase Vacío : amigable. Si los modificadores Public o Private no son especificado la clase es accesible dentro del paquete actual { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_57.jpg", "name": "ClasesClases Control de acceso en variables de instancia Public : puede ser usado por cualquier clase de cualquier parte Protected : puede solo ser usada por las subclases de la clase y en ninguna otra parte Private : puede solo ser usada dentro de la clase donde ella fué declarada.", "description": "No estan disponibles para la subclase Vacío : amigable. Si los modificadores Public o Private no son especificado la clase es accesible dentro del paquete actual.", "width": "800" } 58 ClasesClases La conducta de un objeto se establece mediante sus metodos. Los metodos pueden presentar varios atributos: el tipo que retorna, su nombre sus parámetros, si otra clase tiene acceso a el [Especificadoracceso] [static] [final] [abstract] tiporetorno nombremetodo { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_58.jpg", "name": "ClasesClases La conducta de un objeto se establece mediante sus metodos.", "description": "Los metodos pueden presentar varios atributos: el tipo que retorna, su nombre sus parámetros, si otra clase tiene acceso a el [Especificadoracceso] [static] [final] [abstract] tiporetorno nombremetodo.", "width": "800" } 59 ClasesClases Cuando se define una clase se declaran uno o mas constructores que ejecutan la inicialización cuando se instancia un objeto de la clase El lenguaje Java no soporta destructores pero llama a un método finalize() que llama automaticamente al recolector El método main() constituye el cerebro de las aplicaciones Los métodos abstractos no poseen implementación Los métodos finales no pueden ser sobrecargados { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_59.jpg", "name": "ClasesClases Cuando se define una clase se declaran uno o mas constructores que ejecutan la inicialización cuando se instancia un objeto de la clase El lenguaje Java no soporta destructores pero llama a un método finalize() que llama automaticamente al recolector El método main() constituye el cerebro de las aplicaciones Los métodos abstractos no poseen implementación Los métodos finales no pueden ser sobrecargados", "description": "ClasesClases Cuando se define una clase se declaran uno o mas constructores que ejecutan la inicialización cuando se instancia un objeto de la clase El lenguaje Java no soporta destructores pero llama a un método finalize() que llama automaticamente al recolector El método main() constituye el cerebro de las aplicaciones Los métodos abstractos no poseen implementación Los métodos finales no pueden ser sobrecargados", "width": "800" } 60 ClasesClases Declarando SubClases (Herencia) Mecanismo usado para crear un nuevo objeto definido en términos de un objeto existente. import MyClass; public class MyNewClass extends MyClass { public void Add_to_f(int g) { f = f + (g * 2); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_60.jpg", "name": "ClasesClases Declarando SubClases (Herencia) Mecanismo usado para crear un nuevo objeto definido en términos de un objeto existente.", "description": "import MyClass; public class MyNewClass extends MyClass { public void Add_to_f(int g) { f = f + (g * 2); }.", "width": "800" } 61 ClasesClases Las Palabras Reservadas this y super Cuando se accesa las variables de instancia de una clase la palabra reservada this hace referencia a los miembros de la clase. Para llamar al método padre dentro de una clase que tiene sobrecargado ese método, refiérase al método padre con la palabra reservada super. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_61.jpg", "name": "ClasesClases Las Palabras Reservadas this y super Cuando se accesa las variables de instancia de una clase la palabra reservada this hace referencia a los miembros de la clase.", "description": "Para llamar al método padre dentro de una clase que tiene sobrecargado ese método, refiérase al método padre con la palabra reservada super..", "width": "800" } 62 ClasesClases Las interfaces proveen un medio para llevar la idea de Abstracción un nivel más adelante. Las interfaces porporcionan un conjunto de métodos que pueden ser usados por clases jerarquicamente no relacionadas. Los métodos en una clase interface son public y abstract. public interface AudioClip { void start(); void stop(); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_62.jpg", "name": "ClasesClases Las interfaces proveen un medio para llevar la idea de Abstracción un nivel más adelante.", "description": "Las interfaces porporcionan un conjunto de métodos que pueden ser usados por clases jerarquicamente no relacionadas. Los métodos en una clase interface son public y abstract. public interface AudioClip { void start(); void stop(); }.", "width": "800" } 63 ClasesClases Las clases que usan una interfaz utilizan la palabra reservada implements para proveer el código para la ejecución de los métodos. class MyClass implements AudioClip { void play() { } void stop() { } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_63.jpg", "name": "ClasesClases Las clases que usan una interfaz utilizan la palabra reservada implements para proveer el código para la ejecución de los métodos.", "description": "class MyClass implements AudioClip { void play() { } void stop() { }.", "width": "800" } 64 ClasesClases El Lenguaje Java provee un método native para llamar funciones de C y C++ desde el código Java. public class Date { int now; public Date() { now = time(); } private native int time(); static System.loadLibrary (“time”); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_64.jpg", "name": "ClasesClases El Lenguaje Java provee un método native para llamar funciones de C y C++ desde el código Java.", "description": "public class Date { int now; public Date() { now = time(); } private native int time(); static System.loadLibrary ( time ); }.", "width": "800" } 65 Librerias de clases Java.lang - Clases generales del lenguaje (Object, Threads, Exception, String, Sistem, Number, Error) Java.io - Flujos basados en la entrada y salida. Estas clases proveen acceso al sistema de archivo ( Inputstream, Outputstream, Bufferedinputstream, Printstream) Java.util - Clases de utilidades (Hashtable, Vector, BitSet, Regexp, Date, Enumeration, Properties, utilidades del Cache) { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_65.jpg", "name": "Librerias de clases Java.lang - Clases generales del lenguaje (Object, Threads, Exception, String, Sistem, Number, Error) Java.io - Flujos basados en la entrada y salida.", "description": "Estas clases proveen acceso al sistema de archivo ( Inputstream, Outputstream, Bufferedinputstream, Printstream) Java.util - Clases de utilidades (Hashtable, Vector, BitSet, Regexp, Date, Enumeration, Properties, utilidades del Cache).", "width": "800" } 66 Mas Librerias Java.awt - Abstract Windowing ToolKit. Conjunto de herramientas gráficas para la interface del usuario Java.net - Clases para la Red. Estas clases proveen acceso para los Sockets TCP/IP, Direcciones de Internet y URLs. Java.applet - Soporte para los Applets ( Programas Java empotrados) { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_66.jpg", "name": "Mas Librerias Java.awt - Abstract Windowing ToolKit.", "description": "Conjunto de herramientas gráficas para la interface del usuario Java.net - Clases para la Red. Estas clases proveen acceso para los Sockets TCP/IP, Direcciones de Internet y URLs. Java.applet - Soporte para los Applets ( Programas Java empotrados).", "width": "800" } 67 URLsURLs Un URL es un Localizador Uniforme de Recursos que provee la dirección de un recurso dentro de la Red. El URL tiene dos componentes principales: El identificador protocolo. El nombre del recurso. http://java.sun.com/ { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_67.jpg", "name": "URLsURLs Un URL es un Localizador Uniforme de Recursos que provee la dirección de un recurso dentro de la Red.", "description": "El URL tiene dos componentes principales: El identificador protocolo. El nombre del recurso. http://java.sun.com/.", "width": "800" } 68 AppletsApplets Los applets son miniprogramas que permiten ser utilizados con visualizadores. Los programas Java que corren dentro de un visualizador compatible con Java son conocidos como Applets y un programa stand-alone escrito en Java que corra independientemente de cualquier visualizador es llamado Aplicación. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_68.jpg", "name": "AppletsApplets Los applets son miniprogramas que permiten ser utilizados con visualizadores.", "description": "Los programas Java que corren dentro de un visualizador compatible con Java son conocidos como Applets y un programa stand-alone escrito en Java que corra independientemente de cualquier visualizador es llamado Aplicación..", "width": "800" } 69 Visión de APPLETS Cada applet es implementado por creación de una subclase de la clase Applet. La siguiente figura muestra la jerarquía de herencia de la clase Applet. Esta jerarquía determina mucho de lo que un applet puede hacer y cómo lo hace. java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Panel | +----java.applet.Applet { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_69.jpg", "name": "Visión de APPLETS Cada applet es implementado por creación de una subclase de la clase Applet.", "description": "La siguiente figura muestra la jerarquía de herencia de la clase Applet. Esta jerarquía determina mucho de lo que un applet puede hacer y cómo lo hace. java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Panel | +----java.applet.Applet.", "width": "800" } 70 MilestonesMilestones Milestones son, los eventos mas grandes o importantes por los cuales se rige un Applet. public class Simple extends java.applet. Applet {... public void init() {... } public void start() {... } public void stop() {... } public void destroy() {... } } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_70.jpg", "name": "MilestonesMilestones Milestones son, los eventos mas grandes o importantes por los cuales se rige un Applet.", "description": "public class Simple extends java.applet. Applet {... public void init() {... } public void start() {... } public void stop() {... } public void destroy() {... } }.", "width": "800" } 71 Ciclo de Vida de un Applet Cuando un applet es cargado en un Visualizador de Applets o Browser comienza su ciclo de vida. Se crea una instancia de la clase controladora de los applets El applet se inicializa por sí mismo. El applet comienza su ejecución. El applet primero recibe una llamada a init, seguido por un mensaje start y paint. Estos pueden ser recibidos asincrónicamente. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_71.jpg", "name": "Ciclo de Vida de un Applet Cuando un applet es cargado en un Visualizador de Applets o Browser comienza su ciclo de vida.", "description": " Se crea una instancia de la clase controladora de los applets El applet se inicializa por sí mismo. El applet comienza su ejecución. El applet primero recibe una llamada a init, seguido por un mensaje start y paint. Estos pueden ser recibidos asincrónicamente..", "width": "800" } 72 Descargando código Solicitud del objeto Tipo desconocido Retorno del objeto Solicitud de implementación Chequeo de implementación Retorno de implementación Cliente objetonecesitado uso del objeto HTTP Servidor { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_72.jpg", "name": "Descargando código Solicitud del objeto Tipo desconocido Retorno del objeto Solicitud de implementación Chequeo de implementación Retorno de implementación Cliente objetonecesitado uso del objeto HTTP Servidor", "description": "Descargando código Solicitud del objeto Tipo desconocido Retorno del objeto Solicitud de implementación Chequeo de implementación Retorno de implementación Cliente objetonecesitado uso del objeto HTTP Servidor", "width": "800" } 73 Creando un Applet en JAVA import java.awt.Graphics; public class HelloWorld extends java.applet.Applet { public void init() { resize(150,25); } public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_73.jpg", "name": "Creando un Applet en JAVA import java.awt.Graphics; public class HelloWorld extends java.applet.Applet { public void init() { resize(150,25); } public void paint(Graphics g) { g.drawString( Hello world! , 50, 25); }", "description": "Creando un Applet en JAVA import java.awt.Graphics; public class HelloWorld extends java.applet.Applet { public void init() { resize(150,25); } public void paint(Graphics g) { g.drawString( Hello world! , 50, 25); }", "width": "800" } 74 Creando una página que incluye la aplicación. A Simple Program { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_74.jpg", "name": "Creando una página que incluye la aplicación. A Simple Program", "description": "Creando una página que incluye la aplicación. A Simple Program", "width": "800" } 75 Un Applet Sencillo.Continuacion public void destroy() { addItem("preparing for unloading..."); } public void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { g.drawRect(0, 0, size().width - 1, size().height - 1); g.drawString(buffer.toString(), 5, 15); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_75.jpg", "name": "Un Applet Sencillo.Continuacion public void destroy() { addItem( preparing for unloading... ); } public void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { g.drawRect(0, 0, size().width - 1, size().height - 1); g.drawString(buffer.toString(), 5, 15); }", "description": "Un Applet Sencillo.Continuacion public void destroy() { addItem( preparing for unloading... ); } public void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { g.drawRect(0, 0, size().width - 1, size().height - 1); g.drawString(buffer.toString(), 5, 15); }", "width": "800" } 76 Un Applet Sencillo en JAVA import java.awt.Graphics; public class Simple extends java.applet.Applet { StringBuffer buffer = new StringBuffer(); public void init() { resize(500, 20); addItem("initializing... "); } public void start() { addItem("starting... "); } public void stop() { addItem("stopping... "); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_76.jpg", "name": "Un Applet Sencillo en JAVA import java.awt.Graphics; public class Simple extends java.applet.Applet { StringBuffer buffer = new StringBuffer(); public void init() { resize(500, 20); addItem( initializing...", "description": "); } public void start() { addItem( starting... ); } public void stop() { addItem( stopping... ); }.", "width": "800" } 77 Applets con Multimedia import java.awt.*; import java.awt.image.*; import sun.awt.image.URLImageSource; import java.applet.Applet; public class hwImage extends Applet { Image duke: public void init(){ duke=getimage(getDocumentBase(), ”graphics/duke.surf.yellow.gif”); } public void paint(Graphics g) { g.DrawImage(duke,25,25,this); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_77.jpg", "name": "Applets con Multimedia import java.awt.*; import java.awt.image.*; import sun.awt.image.URLImageSource; import java.applet.Applet; public class hwImage extends Applet { Image duke: public void init(){ duke=getimage(getDocumentBase(), graphics/duke.surf.yellow.gif ); } public void paint(Graphics g) { g.DrawImage(duke,25,25,this); }", "description": "Applets con Multimedia import java.awt.*; import java.awt.image.*; import sun.awt.image.URLImageSource; import java.applet.Applet; public class hwImage extends Applet { Image duke: public void init(){ duke=getimage(getDocumentBase(), graphics/duke.surf.yellow.gif ); } public void paint(Graphics g) { g.DrawImage(duke,25,25,this); }", "width": "800" } 78 Creando una Aplicación en JAVA class HelloWorldApp { public static void main (String args[]) { System.out.println("Hello World!"); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_78.jpg", "name": "Creando una Aplicación en JAVA class HelloWorldApp { public static void main (String args[]) { System.out.println( Hello World! ); }", "description": "Creando una Aplicación en JAVA class HelloWorldApp { public static void main (String args[]) { System.out.println( Hello World! ); }", "width": "800" } 79 Excepciones (Exceptions) Java implementa excepciones al estilo C++ para ayudar en la construcción de código flexible. Cuando ocurre un error ud. puede lanzarlo y entonces capturar una excepción y luego recuperar el control a partir de allí. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_79.jpg", "name": "Excepciones (Exceptions) Java implementa excepciones al estilo C++ para ayudar en la construcción de código flexible.", "description": " Cuando ocurre un error ud. puede lanzarlo y entonces capturar una excepción y luego recuperar el control a partir de allí..", "width": "800" } 80 Hilos (Threads) Un hilo es un flujo secuencial simple de control en un programa. Java proporciona una clase Threads la cual permite el soporte para comenzar un threads, correr un thread, detener un thread, y chequear el estado de un thread. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_80.jpg", "name": "Hilos (Threads) Un hilo es un flujo secuencial simple de control en un programa.", "description": "Java proporciona una clase Threads la cual permite el soporte para comenzar un threads, correr un thread, detener un thread, y chequear el estado de un thread..", "width": "800" } 81 Hilos (Threads) class TwoThreadsTest { public static void main (String args[]) { new SimpleThread("Jamaica").start(); new SimpleThread("Fiji").start(); } class SimpleThread extends Thread { public SimpleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + " " + getName()); try { sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println("DONE! " + getName()); } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_81.jpg", "name": "Hilos (Threads) class TwoThreadsTest { public static void main (String args[]) { new SimpleThread( Jamaica ).start(); new SimpleThread( Fiji ).start(); } class SimpleThread extends Thread { public SimpleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + + getName()); try { sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println( DONE.", "description": "+ getName()); }.", "width": "800" } 82 Applets con Multimedia import java.awt.Graphics; import java.applet.*; public class hwLoop extends Applet { AudioClip sound; public void init(){ sound=getaudioclip(getDocumentBase(), ”sounds/that.hurts.au”); } public void start() { sound.loop; } public void stop() { sound.stop; } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_82.jpg", "name": "Applets con Multimedia import java.awt.Graphics; import java.applet.*; public class hwLoop extends Applet { AudioClip sound; public void init(){ sound=getaudioclip(getDocumentBase(), sounds/that.hurts.au ); } public void start() { sound.loop; } public void stop() { sound.stop; }", "description": "Applets con Multimedia import java.awt.Graphics; import java.applet.*; public class hwLoop extends Applet { AudioClip sound; public void init(){ sound=getaudioclip(getDocumentBase(), sounds/that.hurts.au ); } public void start() { sound.loop; } public void stop() { sound.stop; }", "width": "800" } 83 Applets con Multimedia import java.awt.Graphics; import java.awt.Event; import java.applet.*: public class hwMouse extends Applet { int MouseX=25, MoyseY=25; public void paint(Graphics g){ g.drawString(”Hello”,MouseX,MouseY); } public boolean mouseDown(Event evt, int x, int y) { MouseX=x Mousey=y repaint(); return true; } { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_83.jpg", "name": "Applets con Multimedia import java.awt.Graphics; import java.awt.Event; import java.applet.*: public class hwMouse extends Applet { int MouseX=25, MoyseY=25; public void paint(Graphics g){ g.drawString( Hello ,MouseX,MouseY); } public boolean mouseDown(Event evt, int x, int y) { MouseX=x Mousey=y repaint(); return true; }", "description": "Applets con Multimedia import java.awt.Graphics; import java.awt.Event; import java.applet.*: public class hwMouse extends Applet { int MouseX=25, MoyseY=25; public void paint(Graphics g){ g.drawString( Hello ,MouseX,MouseY); } public boolean mouseDown(Event evt, int x, int y) { MouseX=x Mousey=y repaint(); return true; }", "width": "800" } 84 Applets con Multimedia El Applet Hola Mundo The source. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_84.jpg", "name": "Applets con Multimedia El Applet Hola Mundo The source.", "description": "Applets con Multimedia El Applet Hola Mundo The source.", "width": "800" } 85 Comunicacion con otros programas Por invocación de métodos públicos de otros Applets en alguna página (Sujeto a restricciones de seguridad). Usando API definidos en el paquete Java.Applet, la cual permite a esta comunicarse de una manera limitada con el visualizador o el visualizador global de Applet que contiene este. Usando API definidos en el paquete Java.Net para comunicarse sobre la red con otros programas. Los otros programas pueden ser ejecutados sobre el anfitrión desde el cual se originó el Applet. { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_85.jpg", "name": "Comunicacion con otros programas Por invocación de métodos públicos de otros Applets en alguna página (Sujeto a restricciones de seguridad).", "description": " Usando API definidos en el paquete Java.Applet, la cual permite a esta comunicarse de una manera limitada con el visualizador o el visualizador global de Applet que contiene este. Usando API definidos en el paquete Java.Net para comunicarse sobre la red con otros programas. Los otros programas pueden ser ejecutados sobre el anfitrión desde el cual se originó el Applet..", "width": "800" } 86 Applets versus Aplicaciones Aplicaciones Tienen un método main() La clase que contiene main() es subclase de Object Pueden cargar applets Son programas StandAlone Applets No tienen método main() Son subclases de Applet Normalmente usados con visualizadores { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_86.jpg", "name": "Applets versus Aplicaciones Aplicaciones Tienen un método main() La clase que contiene main() es subclase de Object Pueden cargar applets Son programas StandAlone Applets No tienen método main() Son subclases de Applet Normalmente usados con visualizadores", "description": "Applets versus Aplicaciones Aplicaciones Tienen un método main() La clase que contiene main() es subclase de Object Pueden cargar applets Son programas StandAlone Applets No tienen método main() Son subclases de Applet Normalmente usados con visualizadores", "width": "800" } 87 HotJavaHotJava Visualizador de Sun para Internet, escrito en lenguaje Java Vehiculo para demostrar el poder y la capacidad del Java Puede aprender nuevos protocolos y tipos de datos dinamicamente Demostración del poder de un lenguaje interpretado Libre de cargo como implementación de referencia { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_87.jpg", "name": "HotJavaHotJava Visualizador de Sun para Internet, escrito en lenguaje Java Vehiculo para demostrar el poder y la capacidad del Java Puede aprender nuevos protocolos y tipos de datos dinamicamente Demostración del poder de un lenguaje interpretado Libre de cargo como implementación de referencia", "description": "HotJavaHotJava Visualizador de Sun para Internet, escrito en lenguaje Java Vehiculo para demostrar el poder y la capacidad del Java Puede aprender nuevos protocolos y tipos de datos dinamicamente Demostración del poder de un lenguaje interpretado Libre de cargo como implementación de referencia", "width": "800" } 88 Estructura de un Visualizador Decodificar URLTraer Interactuar Desplegar { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_88.jpg", "name": "Estructura de un Visualizador Decodificar URLTraer Interactuar Desplegar", "description": "Estructura de un Visualizador Decodificar URLTraer Interactuar Desplegar", "width": "800" } 89 Seguridad del HotJava Modos de seguridad del Applet Los Applets podrán accesar la Red Applet Host Los Applets tedrán permitido accesar datos solo en su Host Firewall Los Applets fuera del Firewall pueden solo accesar recursos fuera del Firewall Sin Restricción La mayoria de los Applets pueden hacer conexiones a cualquier Host en la Internet { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_89.jpg", "name": "Seguridad del HotJava Modos de seguridad del Applet Los Applets podrán accesar la Red Applet Host Los Applets tedrán permitido accesar datos solo en su Host Firewall Los Applets fuera del Firewall pueden solo accesar recursos fuera del Firewall Sin Restricción La mayoria de los Applets pueden hacer conexiones a cualquier Host en la Internet", "description": "Seguridad del HotJava Modos de seguridad del Applet Los Applets podrán accesar la Red Applet Host Los Applets tedrán permitido accesar datos solo en su Host Firewall Los Applets fuera del Firewall pueden solo accesar recursos fuera del Firewall Sin Restricción La mayoria de los Applets pueden hacer conexiones a cualquier Host en la Internet", "width": "800" } 90 Diferencias entre HotJava y el resto de los Visualizadores Los Visualizadores convencionales tienen estandares incluidos, no son flexibles a las nuevas cosas HotJava sabe como encontrar todo acerca de cosas que no entiende basado en la habilidad de descargar código desde servidores remoto En HotJava la implementación de estandares viene desde afuera y el sirve de plataformas para conectarlos Los Visualizadores como Mosaic dependen de manejadores instalados localmente, por lo cuál conseguir nuevas cosas es difícil { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_90.jpg", "name": "Diferencias entre HotJava y el resto de los Visualizadores Los Visualizadores convencionales tienen estandares incluidos, no son flexibles a las nuevas cosas HotJava sabe como encontrar todo acerca de cosas que no entiende basado en la habilidad de descargar código desde servidores remoto En HotJava la implementación de estandares viene desde afuera y el sirve de plataformas para conectarlos Los Visualizadores como Mosaic dependen de manejadores instalados localmente, por lo cuál conseguir nuevas cosas es difícil", "description": "Diferencias entre HotJava y el resto de los Visualizadores Los Visualizadores convencionales tienen estandares incluidos, no son flexibles a las nuevas cosas HotJava sabe como encontrar todo acerca de cosas que no entiende basado en la habilidad de descargar código desde servidores remoto En HotJava la implementación de estandares viene desde afuera y el sirve de plataformas para conectarlos Los Visualizadores como Mosaic dependen de manejadores instalados localmente, por lo cuál conseguir nuevas cosas es difícil", "width": "800" } 91 Aplicaciones y Applets con el codigo existente Neo/Teknekron/Iona/ExpertSoft Jav a OpenStepC,C++ SmallTalk { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_91.jpg", "name": "Aplicaciones y Applets con el codigo existente Neo/Teknekron/Iona/ExpertSoft Jav a OpenStepC,C++ SmallTalk", "description": "Aplicaciones y Applets con el codigo existente Neo/Teknekron/Iona/ExpertSoft Jav a OpenStepC,C++ SmallTalk", "width": "800" } 92 Estrategia de integracion de objetos java Java y NEO(JOE) Java y Iona Java yPDO Java y C++,Smalltalk, OpenStep JAVA JAVA AppletsApps AppletsApps OpenStepNEO CORBA IONA C C++ PDONEXTSTEP Cliente Servidor(es) (Orblet) InternetoIntranet { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_92.jpg", "name": "Estrategia de integracion de objetos java Java y NEO(JOE) Java y Iona Java yPDO Java y C++,Smalltalk, OpenStep JAVA JAVA AppletsApps AppletsApps OpenStepNEO CORBA IONA C C++ PDONEXTSTEP Cliente Servidor(es) (Orblet) InternetoIntranet", "description": "Estrategia de integracion de objetos java Java y NEO(JOE) Java y Iona Java yPDO Java y C++,Smalltalk, OpenStep JAVA JAVA AppletsApps AppletsApps OpenStepNEO CORBA IONA C C++ PDONEXTSTEP Cliente Servidor(es) (Orblet) InternetoIntranet", "width": "800" } 93 Conceptos Básicos Internet Intranet Extranets { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_93.jpg", "name": "Conceptos Básicos Internet Intranet Extranets", "description": "Conceptos Básicos Internet Intranet Extranets", "width": "800" } 94 IntranetComponentes Protocolos de comunicaciones (TCP/IP) Servidor de Web Browser (navegador) para los clientes Soporte de Base de Datos { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_94.jpg", "name": "IntranetComponentes Protocolos de comunicaciones (TCP/IP) Servidor de Web Browser (navegador) para los clientes Soporte de Base de Datos", "description": "IntranetComponentes Protocolos de comunicaciones (TCP/IP) Servidor de Web Browser (navegador) para los clientes Soporte de Base de Datos", "width": "800" } 95 IntranetComponentes Cliente (Browser) Base de Datos Protocolo TCP/IP (IPX en Novell Netware) Servidor Web Máquina Virtual de Java Internet Extranet { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_95.jpg", "name": "IntranetComponentes Cliente (Browser) Base de Datos Protocolo TCP/IP (IPX en Novell Netware) Servidor Web Máquina Virtual de Java Internet Extranet", "description": "IntranetComponentes Cliente (Browser) Base de Datos Protocolo TCP/IP (IPX en Novell Netware) Servidor Web Máquina Virtual de Java Internet Extranet", "width": "800" } 96 Combinar Tecnologías Cliente Windows NT Novell Netware Unix Por qué Intranets... Expansión Servidor A Servidor B Servidor C Más servidores a futuro { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_96.jpg", "name": "Combinar Tecnologías Cliente Windows NT Novell Netware Unix Por qué Intranets...", "description": "Expansión Servidor A Servidor B Servidor C Más servidores a futuro.", "width": "800" } 97 IntranetIntranet Publicación Web Transacciones Workflow Colaboración Boletines Mensajería/ email Intranet Intraorganización Ad-hoc Estructurado/ Gerencia Publicación Web Transacciones Workflow Colaboración Boletines Mensajería/ email Extranet Internet Interorganización { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_97.jpg", "name": "IntranetIntranet Publicación Web Transacciones Workflow Colaboración Boletines Mensajería/ email Intranet Intraorganización Ad-hoc Estructurado/ Gerencia Publicación Web Transacciones Workflow Colaboración Boletines Mensajería/ email Extranet Internet Interorganización", "description": "IntranetIntranet Publicación Web Transacciones Workflow Colaboración Boletines Mensajería/ email Intranet Intraorganización Ad-hoc Estructurado/ Gerencia Publicación Web Transacciones Workflow Colaboración Boletines Mensajería/ email Extranet Internet Interorganización", "width": "800" } 98 Por qué Intranets... Las redes IP son fáciles de integrar a las LANs y WANs La tecnología Web permite el desarrollo en múltiples plataformas (cross platforms) Es una tecnología netamente cliente servidor La tecnología Web es muy económica La tecnología Web tiene escalabilidad { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_98.jpg", "name": "Por qué Intranets...", "description": "Las redes IP son fáciles de integrar a las LANs y WANs La tecnología Web permite el desarrollo en múltiples plataformas (cross platforms) Es una tecnología netamente cliente servidor La tecnología Web es muy económica La tecnología Web tiene escalabilidad.", "width": "800" } 99 IntranetIntranet Las redes IP son fáciles de integrar a las LANs y WANs La tecnología Web permite el desarrollo en múltiples plataformas (cross platforms) Es una tecnología netamente cliente servidor La tecnología Web es muy económica La tecnología Web tiene escalabilidad Otros tipos de seguridad:IntranetIntranet { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_99.jpg", "name": "IntranetIntranet Las redes IP son fáciles de integrar a las LANs y WANs La tecnología Web permite el desarrollo en múltiples plataformas (cross platforms) Es una tecnología netamente cliente servidor La tecnología Web es muy económica La tecnología Web tiene escalabilidad Otros tipos de seguridad:IntranetIntranet", "description": "IntranetIntranet Las redes IP son fáciles de integrar a las LANs y WANs La tecnología Web permite el desarrollo en múltiples plataformas (cross platforms) Es una tecnología netamente cliente servidor La tecnología Web es muy económica La tecnología Web tiene escalabilidad Otros tipos de seguridad:IntranetIntranet", "width": "800" } 100 IntranetIntranet Servidor Push Información Tecnología PushINTRANETINTRANET { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_100.jpg", "name": "IntranetIntranet Servidor Push Información Tecnología PushINTRANETINTRANET", "description": "IntranetIntranet Servidor Push Información Tecnología PushINTRANETINTRANET", "width": "800" } 101 VRML Aplicaciones Multimedia Servidores de Video Conferencias Voz, Datos y Video Voz, Datos y Video INTRANETINTRANET { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_101.jpg", "name": "VRML Aplicaciones Multimedia Servidores de Video Conferencias Voz, Datos y Video Voz, Datos y Video INTRANETINTRANET", "description": "VRML Aplicaciones Multimedia Servidores de Video Conferencias Voz, Datos y Video Voz, Datos y Video INTRANETINTRANET", "width": "800" } 102 IntranetIntranet Requerimiento de conexión Clave Pública Certificado digital Clave Privada Validación usando clave pública Documentos encriptados Servidor de un sitio seguro Seguridad SSL { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_102.jpg", "name": "IntranetIntranet Requerimiento de conexión Clave Pública Certificado digital Clave Privada Validación usando clave pública Documentos encriptados Servidor de un sitio seguro Seguridad SSL", "description": "IntranetIntranet Requerimiento de conexión Clave Pública Certificado digital Clave Privada Validación usando clave pública Documentos encriptados Servidor de un sitio seguro Seguridad SSL", "width": "800" } 103 IntranetIntranet Información: Nombre, email organización estado, país Clave Pública Servidor de un sitio seguro Clave Privada Seguridad SSL Cliente creando sitio seguro { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_103.jpg", "name": "IntranetIntranet Información: Nombre, email organización estado, país Clave Pública Servidor de un sitio seguro Clave Privada Seguridad SSL Cliente creando sitio seguro", "description": "IntranetIntranet Información: Nombre, email organización estado, país Clave Pública Servidor de un sitio seguro Clave Privada Seguridad SSL Cliente creando sitio seguro", "width": "800" } 104 Intranet Función de un Web Server Comunicar instrucciones HTML Ejecutar Programas (Java, CGI, Perl) Autentificado del Usuario Logging Control de acceso Administración { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_104.jpg", "name": "Intranet Función de un Web Server Comunicar instrucciones HTML Ejecutar Programas (Java, CGI, Perl) Autentificado del Usuario Logging Control de acceso Administración", "description": "Intranet Función de un Web Server Comunicar instrucciones HTML Ejecutar Programas (Java, CGI, Perl) Autentificado del Usuario Logging Control de acceso Administración", "width": "800" } 105 Intranet Servidores Web Microsoft Internet Information Server Netscape Enterprise Server Novell Netware Web Server Lotus Domino Server { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.es/12/3613412/slides/slide_105.jpg", "name": "Intranet Servidores Web Microsoft Internet Information Server Netscape Enterprise Server Novell Netware Web Server Lotus Domino Server", "description": "Intranet Servidores Web Microsoft Internet Information Server Netscape Enterprise Server Novell Netware Web Server Lotus Domino Server", "width": "800" } 106 Intranet Bases de Datos Consulta de datos corporativos Mantenimiento flexible de la información de la Intranet Aplicaciones de actualización de datos usando arquitectura abierta
13 UTILIZACION DEL WWW Visualizadores: Netscape Mosaic Microsoft Network Internet Exploret ( Usado por Windows 95’) Lynx ( Basado en textos )
14 WEB SITE EXTERNOS – –INTERNET INTERNOS – –INTRANET SERVIDORES DE HTTP – –ZB – –WEBSITE – –etc. SEGURIDAD - FireWall - Servidor - Directorios - Archivos “Property”
15 La Revolución Java Beneficios para tu Negocio La Revolución Java Beneficios para tu Negocio
16 Revolución WEB Estandarización, interface universal de datos Representación Gráfica Capacidad intermedios Web es la interface universal para el mundo de las librerías digitales
17 Limitaciones del Web Solo datos - No programas Información Estática Clientes dumb HTML no es flexible Competencia de Protocolos y estándares
18 El Bloqueo del Sistema Operativo Sistema Operativo Aplicaciones Hoy: Las aplicaciones están unidas al sistema operativo, el cual a su vez está unido al procesador del computador.
19 El cuello de botella actual de la Red La Red LAN Mac Server Sun PC
20 Maquina Virtual Visualizador / Plug-In ByteCode BI OS
21 Ambiente de Computación Virtual Agua Bases de Datos Browser para Java Applet Servidor de Applet Intra-Net InterNet La interacción a través del applet permite entrada y salida localizada en tiempo real. El usuario obtiene la ventaja de las aplicaciones y recursos de la red sin las dependencias de plataforma
22 El poder de JAVA y el WEB Aplicaciones Viven, no son datos estáticos Clientes Inteligentes, respuestas instantánea Protocolos interoperables Múltiples medios interactivos
23 El poder de JAVA y el WEB Aplicaciones Moviles - No solo información Elimina el porting Elimina instalaciones Usuarios finales Disminuye los costos de distribución del Software Instantáneamente Millones de Compradores
24 El Sistema Operativo de la Red Visualizador Aplicaciones Solaris x86 Solaris SPARC Win 95 /x86 Win NT/x86 Cualquier SO/CPU SO
25 Ventajas de programación para la Red Seguro Compacto Independiente de la plataforma Los programas corren localmente Puede ser actualizado continuamente
26 Java : Escriba una vez y Corra donde sea... La RED inicia El Vehículo de distribución para las APLICACIONES DE SOFTWARE El poder de los PC, No es el poder en el DeskTop - Es el poder de CONECTARSE a otros. La RED es el computador, El computador es un periférico a internet y al WEB.
27 Quienes Usan JAVA? SERVICIOS FINANCIEROS EDUCACION Aprendizaje remoto, Simulaciones Interactivas SISTEMAS EJECUTIVOS - DSS. MIS Aplicaciones comerciales - Ptos de ventas. Acceso a BD basados en WEB. PUBLICIDAD, ENTRETENIMIENTO datos viven, Infirmación instantáneo, Ventas
28 Metas de Diseño de JAVA Que opere sobre múltiples plataformas en redes heterogéneas. Su arquitectura debe ser portable y dinámicamente adaptable. Fácil adaptación a herramientas gráficas como el WWW. Pequeño, Simple y Eficiente Multihilado y Seguro
29 Motivación del JAVA Simple, Orientado a Objeto y Familiar. Robusto y Seguro. Arquitectura Neutral y Portable. ByteCode. Rápida Ejecución. Interpretado, Hilado y Dinámico.
30 La Revolución JAVA Aplicaciones reales, no usa datos estáticos Los clientes dan respuesta instantáneo Multimedia Interactiva Protocolos interoperables
31 La Revolución JAVA Tecnología y Arquitectura La Revolución JAVA Tecnología y Arquitectura
32 Historia del JAVA 1990- Sun Labs- James Gosling comenzó el proyecto. 1991- Se destina a artículos de escritorios y consumidores electrónicos. - Creado para correr en una amplia variedad de dispositivos. 1993- Televisión interactiva. 1995- Internet y HotJava.
33 JAVAJAVA Es un lenguaje interpretado basado en C++ que fue diseñado para carga dinámica, trabaja en tiempo real, es portátil y capaz de saltar a través de la red.
34 La Arquitectura del Java Aplicación Java Visualizador HotJava Herramientas para desarrollar en Java Aplicación Java Clases Java Clases Java Clases Java Clases Java Interpretador Java Solaris/x86 Solaris/SPARCWin95/x86WinNT/x86
35 Cómo funciona JAVA ? Escriba código fuente de JAVA y compílelo, creando un archivo de clase. Coloque el archivo de clase en el servidor Web en el subdirectorio de clase que contienen los archivos HTML. Cree la etiqueta para el applet en el documento HTML. Cuando un visuali zador del documento en la Internet vea la etiqueta, generará una instruc ción para solicitar class/Hello.class y obtener el código bytecode compilado. El visualizador crea una nueva ventana y una nueva unidad de ejecución (thread) y luego corre el código. 12354 INTERNET HELLO Ejem.Java
36 Compilando en Java file.class file.java Java.io Compilador Java %Java file.java Archivo fuente Java Definiciones de clases Java incorporadas Byte Codes de Java
37 Herramientas para Desarrolladores de Java JDK (Java Developers Kit) javac Visualizador de Applets Gratis Sin soporte + Envío El Java WorkShop Herramientas sofisticadas Depurador + Carpeta + Visualizador de Fuentes + Editor Pocos cientos de dólares Soporte + Envío en Abril del 96
38 Contenido del JDK El interpretador Java llevado a la plataforma correspondiente Las clases Java que proporcionan la interfaz de aplicación estándar Compilador Javac Visualizador de applets (Appletviewer) JDB : Depurador sencillo basado en líneas de comandos.
39 El Java WorkShop Un interpretador Java apropiado Un depurador para GUI Java Carpetas de Applet “Proyectos” Ayuda en línea Ambiente de Desarrollo Integrado Visualizador de Fuentes Edición WYSIWYG Integrado con JDK
40 Java usado con un Visualizador Web Visualizador HOTJAVA Escrito en Lenguaje Java Disponible para Applets de Java o cualquier Visualizador disponible de Java Java Applet Interprete Bytecodes HTML Doc Elemento App Código Java Compilador Servidor Proovedor Usuario Host
41 El Java utilizado en modo standalone Java Applet Código Java Compilador Java Aplicación Bytecode HTML Doc Visualizador de Applet Tree Applet “Tree“ Interpretador La aplicación Java corre de manera standalone como cualquier otro lenguaje. Los Applets Java necesitan un documento HTML y un Visualizador para correr (Visualizador de Applets o HotJava)
42 Seguridad JAVA Se requieren declaraciones, esto facilita la corrección de errores en tiempo de ejecución Es imposible para las aplicaciones accesar estructura de datos privados a objetos en los cuales ellas no tengan acceso El modelo de memoria elimina la posibilidad de sobreescribir la memoria y dañar los datos Las localizaciones de memoria son determinadas en tiempo de ejecución Java no permite que sus aplicaciones puedan ser inavadidas por otras desde el exterior
43 Mas seguridad Programa en Java Compilador Java Byte-codes Java Computador fuente Verificación La Internet Su computador Byte codes Java Ejecución Restringido
44 Aspectos principales del Lenguaje Tipo de Datos Numéricos. Tipo de Datos Boolean. Arreglos. Strings. Break Multinivel. Manejo de Memoria y Colección Garbage. Sincronización de Procesos Integrados.
45 Aspectos Eliminados de C y C++ No más DEFINES, TYPEDEF y PREPROCESADOR. No más STRUCTURES o UNIONS. No más FUNCIONES. No más HERENCIA MULTIPLE. No más INSTRUCCIONES GO TO. No más SOBRECARGA DE OPERADORES. No más CORRECIONES AUTOMATICAS. No más APUNTADORES.
46 Objetos en JAVA La mayoria de las cosas en JAVA son objetos, exceptuando los tipos de datos simples El código JAVA está organizado en clases Las clases definen un conjunto de métodos que forman la conducta de un objeto El estado de los objetos se definen mediante variables miembros de la clase
47 Color, #puertas, tamaño, fuel Encender Apagar Correr Cruzar Objeto en JAVA. CAPSULA - Carro
48 Objetos y ClasesObjetos y Clases –Una clase define un mundo real o una entidad abstracta. Clase nombre Clase nombre Métodos (Funciones Métodos (Funciones Atributos (Datos Atributos (Datos Un objeto es una instancia |instanciación| de una clase. Nombre del Objeto Métodos: Datos Objeto en JAVA.
49 Transporte Transporte Rieles Rieles Avi ón Avi ón Carreteras Aereo Aereo GloboGlobo Camió n Autobu s CarroCarro Objeto en JAVA.
50 Clases de CarrosClases de Carros Objeto en JAVA.
51 Ciclo de vida de un objeto en JAVA. Los siguientes pasos describen el ciclo de vida típico de un objeto: Creación Uso Destrucción.
52 Creación de Objetos import java.util.Date; class DateApp { public static void main (String args[] ) { Date today = new Date();Declaración, instanciación e inicialización System.out.println(today); } String s; // Aún no se ha asignado memoria Declaración s = new String(“abc”);// Memoria Asignada Instanciación e Inicialización s = “def”; // nueva Asignación de Memoria
53 Uso de un Objeto Un objeto puede ser manejado de dos maneras: Utilizando directamente las variables miembros. Utilizando alguno de sus métodos.
54 ClasesClases En el lenguaje Java, todas las funciones y variables existen dentro de una clase u objeto; el lenguaje no permite funciones globales variables perdidas. Por lo tanto el esqueleto de una aplicación java es la definición de una clase. tiene una sintaxis para definir clases que son plantillas para la creación de nuevas instancias de objetos [ modificadores ] class NombreClase [ extends NombreSuperClase ] [ implements NombresInterface ]
55 ClasesClases Los modificadores de la clase son : Abstract : contiene métodos abstractos Final : no tiene subclases Public : puede ser usada por el código que se encuentre fuera del paquete
56 ClasesClases El estado de un objeto se establece mediante sus variables miembros, normalmente conocidas como variables de instancia de la clase. Las variables pueden presentar varios atributos que se especifican en la declaración [Especificadoracceso] [static] [final] [transient] [volatile] tipo nombrevariable
57 ClasesClases Control de acceso en variables de instancia Public : puede ser usado por cualquier clase de cualquier parte Protected : puede solo ser usada por las subclases de la clase y en ninguna otra parte Private : puede solo ser usada dentro de la clase donde ella fué declarada. No estan disponibles para la subclase Vacío : amigable. Si los modificadores Public o Private no son especificado la clase es accesible dentro del paquete actual
58 ClasesClases La conducta de un objeto se establece mediante sus metodos. Los metodos pueden presentar varios atributos: el tipo que retorna, su nombre sus parámetros, si otra clase tiene acceso a el [Especificadoracceso] [static] [final] [abstract] tiporetorno nombremetodo
59 ClasesClases Cuando se define una clase se declaran uno o mas constructores que ejecutan la inicialización cuando se instancia un objeto de la clase El lenguaje Java no soporta destructores pero llama a un método finalize() que llama automaticamente al recolector El método main() constituye el cerebro de las aplicaciones Los métodos abstractos no poseen implementación Los métodos finales no pueden ser sobrecargados
60 ClasesClases Declarando SubClases (Herencia) Mecanismo usado para crear un nuevo objeto definido en términos de un objeto existente. import MyClass; public class MyNewClass extends MyClass { public void Add_to_f(int g) { f = f + (g * 2); }
61 ClasesClases Las Palabras Reservadas this y super Cuando se accesa las variables de instancia de una clase la palabra reservada this hace referencia a los miembros de la clase. Para llamar al método padre dentro de una clase que tiene sobrecargado ese método, refiérase al método padre con la palabra reservada super.
62 ClasesClases Las interfaces proveen un medio para llevar la idea de Abstracción un nivel más adelante. Las interfaces porporcionan un conjunto de métodos que pueden ser usados por clases jerarquicamente no relacionadas. Los métodos en una clase interface son public y abstract. public interface AudioClip { void start(); void stop(); }
63 ClasesClases Las clases que usan una interfaz utilizan la palabra reservada implements para proveer el código para la ejecución de los métodos. class MyClass implements AudioClip { void play() { } void stop() { }
64 ClasesClases El Lenguaje Java provee un método native para llamar funciones de C y C++ desde el código Java. public class Date { int now; public Date() { now = time(); } private native int time(); static System.loadLibrary (“time”); }
65 Librerias de clases Java.lang - Clases generales del lenguaje (Object, Threads, Exception, String, Sistem, Number, Error) Java.io - Flujos basados en la entrada y salida. Estas clases proveen acceso al sistema de archivo ( Inputstream, Outputstream, Bufferedinputstream, Printstream) Java.util - Clases de utilidades (Hashtable, Vector, BitSet, Regexp, Date, Enumeration, Properties, utilidades del Cache)
66 Mas Librerias Java.awt - Abstract Windowing ToolKit. Conjunto de herramientas gráficas para la interface del usuario Java.net - Clases para la Red. Estas clases proveen acceso para los Sockets TCP/IP, Direcciones de Internet y URLs. Java.applet - Soporte para los Applets ( Programas Java empotrados)
67 URLsURLs Un URL es un Localizador Uniforme de Recursos que provee la dirección de un recurso dentro de la Red. El URL tiene dos componentes principales: El identificador protocolo. El nombre del recurso. http://java.sun.com/
68 AppletsApplets Los applets son miniprogramas que permiten ser utilizados con visualizadores. Los programas Java que corren dentro de un visualizador compatible con Java son conocidos como Applets y un programa stand-alone escrito en Java que corra independientemente de cualquier visualizador es llamado Aplicación.
69 Visión de APPLETS Cada applet es implementado por creación de una subclase de la clase Applet. La siguiente figura muestra la jerarquía de herencia de la clase Applet. Esta jerarquía determina mucho de lo que un applet puede hacer y cómo lo hace. java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Panel | +----java.applet.Applet
70 MilestonesMilestones Milestones son, los eventos mas grandes o importantes por los cuales se rige un Applet. public class Simple extends java.applet. Applet {... public void init() {... } public void start() {... } public void stop() {... } public void destroy() {... } }
71 Ciclo de Vida de un Applet Cuando un applet es cargado en un Visualizador de Applets o Browser comienza su ciclo de vida. Se crea una instancia de la clase controladora de los applets El applet se inicializa por sí mismo. El applet comienza su ejecución. El applet primero recibe una llamada a init, seguido por un mensaje start y paint. Estos pueden ser recibidos asincrónicamente.
72 Descargando código Solicitud del objeto Tipo desconocido Retorno del objeto Solicitud de implementación Chequeo de implementación Retorno de implementación Cliente objetonecesitado uso del objeto HTTP Servidor
73 Creando un Applet en JAVA import java.awt.Graphics; public class HelloWorld extends java.applet.Applet { public void init() { resize(150,25); } public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); }
74 Creando una página que incluye la aplicación. A Simple Program
75 Un Applet Sencillo.Continuacion public void destroy() { addItem("preparing for unloading..."); } public void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); } public void paint(Graphics g) { g.drawRect(0, 0, size().width - 1, size().height - 1); g.drawString(buffer.toString(), 5, 15); }
76 Un Applet Sencillo en JAVA import java.awt.Graphics; public class Simple extends java.applet.Applet { StringBuffer buffer = new StringBuffer(); public void init() { resize(500, 20); addItem("initializing... "); } public void start() { addItem("starting... "); } public void stop() { addItem("stopping... "); }
77 Applets con Multimedia import java.awt.*; import java.awt.image.*; import sun.awt.image.URLImageSource; import java.applet.Applet; public class hwImage extends Applet { Image duke: public void init(){ duke=getimage(getDocumentBase(), ”graphics/duke.surf.yellow.gif”); } public void paint(Graphics g) { g.DrawImage(duke,25,25,this); }
78 Creando una Aplicación en JAVA class HelloWorldApp { public static void main (String args[]) { System.out.println("Hello World!"); }
79 Excepciones (Exceptions) Java implementa excepciones al estilo C++ para ayudar en la construcción de código flexible. Cuando ocurre un error ud. puede lanzarlo y entonces capturar una excepción y luego recuperar el control a partir de allí.
80 Hilos (Threads) Un hilo es un flujo secuencial simple de control en un programa. Java proporciona una clase Threads la cual permite el soporte para comenzar un threads, correr un thread, detener un thread, y chequear el estado de un thread.
81 Hilos (Threads) class TwoThreadsTest { public static void main (String args[]) { new SimpleThread("Jamaica").start(); new SimpleThread("Fiji").start(); } class SimpleThread extends Thread { public SimpleThread(String str) { super(str); } public void run() { for (int i = 0; i < 10; i++) { System.out.println(i + " " + getName()); try { sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} } System.out.println("DONE! " + getName()); }
82 Applets con Multimedia import java.awt.Graphics; import java.applet.*; public class hwLoop extends Applet { AudioClip sound; public void init(){ sound=getaudioclip(getDocumentBase(), ”sounds/that.hurts.au”); } public void start() { sound.loop; } public void stop() { sound.stop; }
83 Applets con Multimedia import java.awt.Graphics; import java.awt.Event; import java.applet.*: public class hwMouse extends Applet { int MouseX=25, MoyseY=25; public void paint(Graphics g){ g.drawString(”Hello”,MouseX,MouseY); } public boolean mouseDown(Event evt, int x, int y) { MouseX=x Mousey=y repaint(); return true; }
84 Applets con Multimedia El Applet Hola Mundo The source.
85 Comunicacion con otros programas Por invocación de métodos públicos de otros Applets en alguna página (Sujeto a restricciones de seguridad). Usando API definidos en el paquete Java.Applet, la cual permite a esta comunicarse de una manera limitada con el visualizador o el visualizador global de Applet que contiene este. Usando API definidos en el paquete Java.Net para comunicarse sobre la red con otros programas. Los otros programas pueden ser ejecutados sobre el anfitrión desde el cual se originó el Applet.
86 Applets versus Aplicaciones Aplicaciones Tienen un método main() La clase que contiene main() es subclase de Object Pueden cargar applets Son programas StandAlone Applets No tienen método main() Son subclases de Applet Normalmente usados con visualizadores
87 HotJavaHotJava Visualizador de Sun para Internet, escrito en lenguaje Java Vehiculo para demostrar el poder y la capacidad del Java Puede aprender nuevos protocolos y tipos de datos dinamicamente Demostración del poder de un lenguaje interpretado Libre de cargo como implementación de referencia
88 Estructura de un Visualizador Decodificar URLTraer Interactuar Desplegar
89 Seguridad del HotJava Modos de seguridad del Applet Los Applets podrán accesar la Red Applet Host Los Applets tedrán permitido accesar datos solo en su Host Firewall Los Applets fuera del Firewall pueden solo accesar recursos fuera del Firewall Sin Restricción La mayoria de los Applets pueden hacer conexiones a cualquier Host en la Internet
90 Diferencias entre HotJava y el resto de los Visualizadores Los Visualizadores convencionales tienen estandares incluidos, no son flexibles a las nuevas cosas HotJava sabe como encontrar todo acerca de cosas que no entiende basado en la habilidad de descargar código desde servidores remoto En HotJava la implementación de estandares viene desde afuera y el sirve de plataformas para conectarlos Los Visualizadores como Mosaic dependen de manejadores instalados localmente, por lo cuál conseguir nuevas cosas es difícil
91 Aplicaciones y Applets con el codigo existente Neo/Teknekron/Iona/ExpertSoft Jav a OpenStepC,C++ SmallTalk
92 Estrategia de integracion de objetos java Java y NEO(JOE) Java y Iona Java yPDO Java y C++,Smalltalk, OpenStep JAVA JAVA AppletsApps AppletsApps OpenStepNEO CORBA IONA C C++ PDONEXTSTEP Cliente Servidor(es) (Orblet) InternetoIntranet
93 Conceptos Básicos Internet Intranet Extranets
94 IntranetComponentes Protocolos de comunicaciones (TCP/IP) Servidor de Web Browser (navegador) para los clientes Soporte de Base de Datos
95 IntranetComponentes Cliente (Browser) Base de Datos Protocolo TCP/IP (IPX en Novell Netware) Servidor Web Máquina Virtual de Java Internet Extranet
96 Combinar Tecnologías Cliente Windows NT Novell Netware Unix Por qué Intranets... Expansión Servidor A Servidor B Servidor C Más servidores a futuro
97 IntranetIntranet Publicación Web Transacciones Workflow Colaboración Boletines Mensajería/ email Intranet Intraorganización Ad-hoc Estructurado/ Gerencia Publicación Web Transacciones Workflow Colaboración Boletines Mensajería/ email Extranet Internet Interorganización
98 Por qué Intranets... Las redes IP son fáciles de integrar a las LANs y WANs La tecnología Web permite el desarrollo en múltiples plataformas (cross platforms) Es una tecnología netamente cliente servidor La tecnología Web es muy económica La tecnología Web tiene escalabilidad
99 IntranetIntranet Las redes IP son fáciles de integrar a las LANs y WANs La tecnología Web permite el desarrollo en múltiples plataformas (cross platforms) Es una tecnología netamente cliente servidor La tecnología Web es muy económica La tecnología Web tiene escalabilidad Otros tipos de seguridad:IntranetIntranet
100 IntranetIntranet Servidor Push Información Tecnología PushINTRANETINTRANET
101 VRML Aplicaciones Multimedia Servidores de Video Conferencias Voz, Datos y Video Voz, Datos y Video INTRANETINTRANET
102 IntranetIntranet Requerimiento de conexión Clave Pública Certificado digital Clave Privada Validación usando clave pública Documentos encriptados Servidor de un sitio seguro Seguridad SSL
103 IntranetIntranet Información: Nombre, email organización estado, país Clave Pública Servidor de un sitio seguro Clave Privada Seguridad SSL Cliente creando sitio seguro
104 Intranet Función de un Web Server Comunicar instrucciones HTML Ejecutar Programas (Java, CGI, Perl) Autentificado del Usuario Logging Control de acceso Administración
105 Intranet Servidores Web Microsoft Internet Information Server Netscape Enterprise Server Novell Netware Web Server Lotus Domino Server
106 Intranet Bases de Datos Consulta de datos corporativos Mantenimiento flexible de la información de la Intranet Aplicaciones de actualización de datos usando arquitectura abierta