SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
INSTITUTO UNIVERSITARIO POLITÉCNICO
“SANTIAGO MARIÑO”
EXTENSIÓN PORLAMAR
ESCUELA DE INGENIERÍA DE SISTEMAS
Autor: Reynaldo Gil
C.I: 17.417.846
Prof.: Ing. Diógenes Rodriguez
Porlamar, 30 de Junio de 2013
INTRODUCCIÓN
Internet, la red de redes más grande del planeta ha venido evolucionando a
ritmos muy acelerados, en sus inicios el correo electrónico fue la sensación. En la
actualidad sigue siendo una herramienta fundamental en las comunicaciones, pero
se han venido desarrollando otras herramientas y tecnologías como el hipertexto,
los cuales vienen a ser objetos de información los cuales pueden contener textos,
gráficos, audio, vídeo además de vínculos a otros hipertextos.
La World Wide Web se encarga de la transferencia de los hipertextos
utilizando el protocolo HTTP, hasta aquí Internet había crecido y madurado un
poco, cada vez eran más los sites donde se podían encontrar páginas web
mostrando información de todo tipo, pero había un detalle: las paginas eran
estáticas, y de pronto Sun Microsystems anuncia un nuevo producto asegurando
que JAVA, así se llamaba, iba revolucionar Internet, las páginas Web se
convertirían en dinámicas e interactivas.
El avance de la tecnología informática y de las telecomunicaciones ha
hecho posible que estemos viviendo tiempos en donde la globalización de la
información, nos permita alcanzar uno de los grandes sueños de la humanidad:
“Tener igualdad de condiciones para acceder al conocimiento”, y esto se ha venido
logrando gracias a Internet.
Java es un nuevo lenguaje de programación orientado a objetos
desarrollado por Sun Microsystems. Sun describe al lenguaje Java de la siguiente
manera: Simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de
arquitectura neutral, portable, de alto rendimiento, multitarea y dinámico.
Sun admite totalmente que lo dicho anteriormente es una cadena de halagos por
parte suya, pero el hecho es que todo ello describe al lenguaje Java.
Java permite hacer cosas excitantes con las páginas Web que antes no
eran posibles. De manera que en este momento la gran interactividad que
proporciona Java marca la diferencia en las páginas Web. Imagina un Web donde
puedes jugar a un juego, como el fútbol, tú y otras personas que están en lugares
remotos forman parte de un equipo y otras más del contrario, verías a los
jugadores animados en la pantalla obedeciendo las instrucciones de las personas
que están jugando al juego desde sitios remotos.
Además las puntuaciones quedarían registradas. O un Web con una
aplicación en donde el usuario pueda hacer transacciones y estas se actualicen en
tiempo real. O un sitio que ofrezca pequeñas aplicaciones como hojas de cálculo o
calculadoras para uso de los visitantes. O uno que muestre figuras 3D, tales como
moléculas o dinosaurios que pueden ser rotados con un click del ratón.
Java también aumenta el contenido multimedia de un sitio, ofreciendo
animaciones fluidas, gráficos mejorados, sonido y vídeo, fuera de lo necesario
para enganchar aplicaciones de ayuda dentro de sus navegadores Web.
ENTRADA Y SALIDA DE DATOS EN JAVA
En java la manera de representar las entradas y las salidas es a base de
streams (flujos de datos). Un stream es una conexión entre el programa y la fuente
o destino de los datos.
La información se traslada en serie a través de esta conexión. Todas las
clases de java relacionadas con la entrada y salida se agrupan en el package
java.io.
El siguiente ejemplo solicita al operador ingresar una línea de caracteres,
finalizando con la tecla Enter, y la despliega en pantalla.
Código Ejemplo:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class DeTerminal {
public static void main (String args[]) throws IOException {
BufferedReader stdin = null;
stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Ingrese caracteres y digite Enter: ");
String linea = stdin.readLine();
System.out.println("Usted digitó: " + linea);
stdin.close();
}
}
Mensaje para el ingreso de datos:
CLASES DE JAVA PARA LECTURA Y ESCRITURA DE DATOS
 Lectura: la clase InputStream
La clase abstracta InputStream declara los métodos para leer datos desde
una fuente concreta y es la clasa base de la mayor parte de los flujos de entrada
en java.io. Soporta los métodos siguientes:
o int read() lee un sólo byte de datos y los devuelve en el rango [0..255].
Devuelve -1 cuando se alcanza el final del flujo y no puede seguir leyendo
bytes.
o int read (byte [] buf) lee un array de bytes hasta buf.length. Devuelve el
número de bytes leidos o -1 cuando se llega al final del flujo.
o int read (byte [] buf, int off, int len) lee len bytes del flujo (o los que pueda)
y los coloca a partir de la posición off del array.
o long skip (long count) salta hasta count bytes de entrada o hasta el final
del flujo de entrada, devolviendo el número de bytes saltados.
o int available() devuelve el número de bytes que están disponibles para
leerse.
o void close() cierra el flujo de entrada que abrió el constructor no-arg,
liberando los recursos asociados a ese flujo. No es necesario invocar este
método ya que el flujo se cierra cuando se destruye el objeto aunque es
conveniente hacerlo ya que vuelca el buffer sobre el disco.
 Escritura: la clase OutputStream
La clase abstracta OutputStream es análoga a InputStream sólo que
proporciona métodos para manejar el flujo de salida. Los métodos que incluye son:
o void write (int b) escribe b como byte, que, aunque sea declarado
como int es transformado a byte. Esto es porque habitualmente es el
resultado de una operación previa.
o void write (byte [] buf) escribe un array de bytes.
o void write (byte [] buf, int offset, int count) escribe un array buf de bytes,
empezando en la posición offset y escribiendo count de ellos, deteniendose
antes si encuentra el final del array.
o void flush() vacia el flujo de modo que los bytes que quedaran por escribir
son escritos.
o void close() cierra el flujo de salida liberando los recursos asociados a ese
flujo.
A menos que se diga lo contrario estos métodos lanzan una
excepción IOException si detectan algún error en el flujo de salida.
ENTRADA Y SALIDA ESTANDAR (TECLADO Y PANTALLA)
La entrada/salida estándar (normalmente el teclado y la pantalla,
respectivamente) se definen mediante dos objetos que puede usar el programador
sin tener que crear flujos específicos.
La clase System tiene un miembro dato denominado in que es una instancia
de la clase InputStream que representa al teclado o flujo de entrada estándar. Sin
embrago, el miembro out de la clase System es un objeto de la clase PrintStream,
que imprime texto en la pantalla (la salida estándar).
Para leer un carácter solamente tenemos que llamar a la
función read desde System.in.
try{
System.in.read();
}catch (IOException ex) { }
Obligatoriamente, el proceso de lectura ha de estar en un bloque try..catch.
Esta porción de código es la que se ha empleado en muchas aplicaciones para
detener la ejecución de una aplicación hasta que se pulse la tecla RETORNO.
Para leer un conjunto de caracteres hasta que se pulse la tecla RETORNO
escribimos:
StringBuffer str=new StringBuffer();
char c;
try{
while ((c=(char)System.in.read())!='n'){
str.append(c);
}
}catch(IOException ex){}
La clase StringBuffer es una clase que nos permite crear strings. Contiene
métodos para añadir nuevos caracteres a un buffer y convertir el resultado final en
un string. Las principales funciones miembro soninsert y append. Usamos una
versión de esta última función para añadir un carácter al final de un objeto de la
clase StringBuffer.
Para convertir un objeto str de la clase StringBuffer a String se usa la
función miembro toString. Esta llamada se hace de forma implícita cuando dicho
objeto se le pasa a System.out.println.
System.out.println(str);
Finalmente, se ha de hacer notar, que la función read miembro
de InputStream devuelve un int que es promocionado a char.
LECTURA Y ESCRITURA DE ARCHIVOS
Existen las clases FileInputStream y FileOutputStream (extendiendo
InputStream y OutputStream) que permiten leer y escribir bytes en archivos. Para
archivos de texto son preferibles FileReader (desciende de Reader) y FileWrite
(desciende de Write), que realizan las mismas funciones. Se puede construir un
objeto de cualquiera de estas cuatro clases a partir de un String que contenga el
nombre o la dirección en disco del archivo o con un objeto de la clase File que
representa dicho archivo.
Ejemplo:
FileReader frl = new FileReader (“archivo.txt”);
es equivalente a:
File f= new File (“archive.txt”);
FileReader fr2 = new FileReader (f);
Si no encuentran el archivo indicado, los constructores de FileReader y
FileInputStream pueden lanzar la excepción java.io.FileNotFoundException.
Los constructores de FileWriter y FileOutputStream pueden lanzar
java.io.IOException. Si no encuentran el archivo indicado, lo crean nuevo. Por
defecto, estas dos clases comienzan a escribir al comienzo del archivo. Para
escribir detrás de lo que ya existe en el archivo ("append"), se utiliza un segundo
argumento de tipo boolean con valor true:
FileWriter fw = new FileWriter("archivo.txt", true);
Las clases que se explican a continuación permiten un manejo más fácil y
eficiente que las vistas hasta ahora.
Si no encuentran el archivo indicado, los constructores de FileReader y
FileInputStream pueden lanzar la excepción java.io.FileNotFoundException.
SERIALIZACIÓN
o Proporciona un mecanismo de persistencia e integridad.
o Permite convertir un objeto a un flujo de bytes para ser tratados por un
stream.
o Se obtiene mediante la implementación del interface java.io.Serializable.
o Este interface no defibe ningún método.
o Proceso reversible:
 Serialización – deserialización
 Escritura – lectura.
Ejemplo:
LECTURA DE UN ARCHIVO EN UN SERVIDOR DE INTERNET
La clase básica para esto es URL. Con ella indicamos la dirección web del
fichero y establecemos la conexión.
import java.net.URL;
import java.net.URLConnection;
...
try {
URL url = new
URL("http://mas.lne.es/fotos/img/2007/10/62/203093470447035b9bc5a095.43783
284-foto_verano.jpg");
URLConnection urlCon = url.openConnection();
...
} catch (Exception e) {
...
}
Si no se sabe el tipo de fichero que tiene el enlace, se pregunta a la
clase URLConnection. Desde luego, el tipo de fichero es totalmente anecdótico,
puesto que el método aquí expuesto vale para cualquier tipo de fichero, incluidos
los html.
// Esto saca por pantalla "image/jpeg"
System.out.println(urlCon.getContentType());
Para acceder al contenido y descargarlo en un fichero local, se pide
a URLConnection el getInputStream() y se lee y escribe en un fichero local hasta
el final.
// acceso al contenido web
InputStream is = urlCon.getInputStream();
// Fichero en el que queremos guardar el contenido
FileOutputStream fos = new FileOutputStream("e:/foto.jpg");
// buffer para ir leyendo.
byte [] array = new byte[1000];
// Primera lectura y bucle hasta el final
int leido = is.read(array);
while (leido > 0) {
fos.write(array,0,leido);
leido=is.read(array);
}
// Cierre de conexion y fichero.
is.close();
fos.close();
JAVA FOUNDATION CLASSES (JFC) Y JAVA 2D
Java Foundation Classes (JFC, en castellano Clases Base Java) son un
framework gráfico para construir interfaces gráficas de usuario portables basadas
en Java.
JFC se compone deAbstract Window Toolkit (AWT), Swing y Java 2D.
Juntas, suministran una interfaz de usuario consistente para programas Java,
tanto si el sistema de interfaz de usuario subyacente es Windows, Mac OS
X o Linux.
AWT es la más antigua de las dos APIs de interfaz, y fue criticada
duramente por ser poco más que una envoltura alrededor de las capacidades
gráficas nativas de la plataforma anfitrión. Esto significa que los widgets estándar
en la AWT confían en esas capacidades de los widgets nativos, requiriendo que el
desarrollador también este prevenido de las diferencias entre plataformas anfitrión.
Una API de gráficos alternativa llamada Internet Foundation Classes fue
desarrollada en código más independiente de la plataforma por Netscape.
Últimamente, Sun mezcló la IFC con otras tecnologías bajo el nombre "Swing",
añadiendo la capacidad para un look and feel enchufable de los widgets. Esto
permite a los programas Swing mantener la base del código independiente de la
plataforma, pero imita el look de la aplicación nativa.
Java 2D es un API para dibujar gráficos en dos dimensiones usando
el lenguaje de programación Java. Cada operación de dibujo Java 2D puede
tratarse como rellenar unaforma usando un pincel y componiendo el resultado en
la pantalla.
Conceptualmente, dibujando una línea negra en Java 2D puede pensarse
como crear un segmento de línea, transformarlo de acuerdo a la transformación
actual, moviéndolo para crear un rectángulo fino, consultando su forma para
computar los píxeles que están siendo afectados, generando los píxeles que
usan java.awt.Color.BLACK, y entonces componiendo los resultados en la
pantalla.
Sin embargo, realizar esta secuencia completa de pasos para cada
operación de dibujado sería muy ineficiente. Java 2D por lo tanto optimiza las
operaciones de dibujado comunes para que muchos de esos pasos puedan
saltarse. Si el pincel es de un color sólido simple, por ejemplo, no hay necesidad
de ordenar que genere una lista de los colores que van a ser pintados. Asimismo,
si el compuesto por defecto completamente opaco está en uso, actualmente pedir
que realice la operación de composición es innecesario y resultaría en esfuerzo
inútil.
Java 2D realiza la mínima cantidad de trabajo necesario para hacer
que parezca como si realizara todos los pasos para cada operación, por lo tanto
conserva gran flexibilidad y alto rendimiento.
JAVA MEDIA FRAMEWORK (JMF)
Java Media Framework o JMF (en español entorno de trabajo multimedia de
Java) es una extensión de Java que permite la programación de
tareas multimedia en este lenguaje de programación.
Sus principales características son:
 Estabilidad debida a que funciona sobre la máquina virtual java (JVM).
 Sencillez, ya que permite, usando unos pocos comandos, realizar complejas
tareas multimedia.
 Potencia, permitiendo la manipulación de elementos multimedia de vídeo y
audio locales (procedentes de la misma máquina en la que se ejecuta el
programa), así como la retransmisión en tiempo real de vídeo y audio a
través de la red mediante el protocolo RTP.
JMF no se incluye en la JDK, ni en la JRE, sino que debe conseguirse como
un paquete externo.
JAVA 3D
Java 3D es un proyecto que permite crear entornos tridimensionales en el
lenguaje Java.
Es una API para gráficos 3D para el lenguaje de programación Java la cual
corre sobre OpenGL o Direct3D. Desde la version 1.2 Java 3D es desarrollado
bajo las especificaciones Java Community Process.
JAVA BEANS
Son un modelo de componentes creado por Sun Microsystems para la
construcción de aplicaciones en Java.
Se usan para encapsular varios objetos en un único objeto (la vaina
o Bean en inglés), para hacer uso de un solo objeto en lugar de varios más
simples.
La especificación de JavaBeans de Sun Microsystems los define como
"componentes de software reutilizables que se puedan manipular visualmente en
una herramienta de construcción".
A pesar de haber muchas semejanzas, los JavaBeans no deben confundirse
con los Enterprise JavaBeans (EJB), una tecnología de componentes del lado
servidor que es parte de Java EE.
Dentro de un JavaBean podemos distinguir tres partes:
 Propiedades: Los atributos que contiene.
 Métodos: Se establecen los métodos get y set para acceder y modificar los
atributos.
 Eventos: Permiten comunicar con otros JavaBeans.
Ejemplo:
public class PersonaBean
implements java.io.Serializable {
private String nombre;
private int edad;
public PersonaBean() {
// Constructor sin argumentos
}
public void setNombre(String n) {
this.nombre = n;
}
public void setEdad(int e) {
this.edad = e;
}
public String getNombre() { return (this.nombre); }
public int getEdad() { return (this.edad); }
}
RMI Y JAVA IDL
RMI (Java Remote Method Invocation) es un mecanismo ofrecido
por Java para invocar un método de manera remota. Forma parte del entorno
estándar de ejecución de Java y proporciona un mecanismo simple para la
comunicación de servidores en aplicaciones distribuidas basadas exclusivamente
en Java. Si se requiere comunicación entre otras tecnologías debe
utilizarseCORBA o SOAP en lugar de RMI.
RMI se caracteriza por la facilidad de su uso en la programación por estar
específicamente diseñado para Java; proporciona paso de objetos por referencia
(no permitido por SOAP), recolección de basura distribuida (Garbage Collector
distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA).
A través de RMI, un programa Java puede exportar un objeto, con lo que dicho
objeto estará accesible a través de la red y el programa permanece a la espera de
peticiones en un puerto TCP. A partir de ese momento, un cliente puede
conectarse e invocar los métodos proporcionados por el objeto.
La invocación se compone de los siguientes pasos:
 Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad
de serialización de Java).
 Invocación del método (del cliente sobre el servidor). El invocador se queda
esperando una respuesta.
 Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo
envía al cliente.
 El código cliente recibe la respuesta y continúa como si la invocación hubiera
sido local.
Ejemplo:
Un servidor RMI consiste en definir un objeto remoto que va a ser utilizado
por los clientes. Para crear un objeto remoto, se define una interfaz, y el objeto
remoto será una clase que implemente dicha interfaz. Crear un servidor de
ejemplo mediante 3 pasos:
 Definir la interfaz remota. Cuando se crea una interfaz remota:
 La interfaz debe ser pública.
 Debe heredar de la interfaz java.rmi.Remote, para indicar que puede llamarse
desde cualquier máquina virtual Java.
 Cada método remoto debe lanzar la excepción java.rmi.RemoteException en su
cláusula throws, además de las excepciones que pueda manejar.
public interface MiInterfazRemota extends java.rmi.Remote
{
public void miMetodo1() throws java.rmi.RemoteException;
public int miMetodo2() throws java.rmi.RemoteException;
}
Java IDL o Java Interface Description Language es una
implementación CORBA que permite que dos objetos interactúen sobre diferentes
plataformas a través de una red. Java IDL al ser una interfaz permite que los
objetos interactúen sin importar el lenguaje en que estén escritos, a diferencia
de Java RMI que solo soporta objetos distribuidos escritos en Java.
Esto se logra ya que Java IDL está basado en Common Object Request
Brokerage Architecture (CORBA), un estándar para objetos distribuidos. CORBA
fue definido y está controlado por elObject Management Group (OMG) que define
las APIs, el protocolo de comunicaciones y los mecanismos necesarios para
permitir la interoperatividad entre diferentes aplicaciones escritas en diferentes
lenguajes y ejecutadas en diferentes plataformas, lo que es fundamental
en computación distribuida.
Para soportar la interacción entre objetos de programas separados, Java
IDL proporciona un Object Request Broker (ORB) que es una biblioteca de clases
que permite una comunicación de bajo nivel entre aplicaciones Java IDL y
aplicaciones compatibles con CORBA.
JAVA NATIVE INTERFACE (JNI)
Java Native Interface (JNI) es un framework de programación que permite
que un programa escrito en Java ejecutado en la máquina virtual java (JVM)
pueda interactuar con programas escritos en otros lenguajes
como C, C++ y ensamblador.
El JNI se usa para escribir métodos nativos que permitan solventar
situaciones en las que una aplicación no puede ser enteramente escrita en Java,
como por ejemplo en el caso de que la biblioteca estándar de clases no
proporcione soporte para funcionalidades dependientes de la plataforma.
También se usa para modificar programas existentes escritos en algún otro
lenguaje, permitiéndoles ser accesibles desde aplicaciones Java. Muchas de las
clases de la API estándar de Java dependen del JNI para proporcionar
funcionalidad al desarrollador y al usuario, por ejemplo las funcionalidades de
sonido o lectura/escritura de ficheros. El desarrollador debe asegurarse que la API
estándar de Java no proporciona una determinada funcionalidad antes de recurrir
al JNI, ya que la primera ofrece una implementación segura e independiente de la
plataforma.
El framework JNI permite a un método nativo utilizar los objetos Java de la
misma forma en que el propio código de Java lo hace. Un método nativo puede
crear objetos Java; y examinarlos y utilizarlos para que lleven a cabo su función.
Un método nativo puede asimismo examinar y utilizar objetos que han sido
creados por código de aplicación escrito en Java.
A menudo se denomina a JNI como la "válvula de escape" para
desarrolladores dado que les permite añadir funcionalidades a sus aplicaciones
que el API de Java no puede proporcionar.
Puede ser usado para interactuar con código escrito en otros lenguajes
como C++, también se usa para operaciones y cálculos de alta complejidad
temporal, porque el código nativo es por lo general más rápido que el que se
ejecuta en una máquina virtual.
En JNI, las funciones nativas se implementan en archivos .c o .cpp por
separado (C++ ofrece una interfaz con JNI ligeramente más clara). Cuando la
máquina virtual invoca a la función, le pasa un puntero a JNIEnv, un puntero
a jobject, y cualquier número de argumentos declarados por el método Java. Una
función de JNI debería parecerse a esto:
JNIEXPORT void JNICALL Java_ClassName_MethodName
(JNIEnv *env, jobject obj)
{
//El método nativo se implementa aquí
}
CONCLUSIÓN
La JVM es la esencia de la aplicación JAVA diseñada, es como la base o el
entorno donde se ejecutara nuestras aplicaciones java y permitirá que corra sobre
cualquier plataforma que soporte java (cualquier sistema operativo que tengamos
instalado o donde se correrá nuestro software).
La API de JAVA es la que nos permitirá crear nuestros programas utilizando
las herramientas que nos suministra el lenguaje, como son clases para procesar
archivos, sockets, crear ventanas, etc, en otras palabras son los medios que
suministra JAVA para desarrollar las diferentes aplicaciones, esto provee un
conjunto de plantillas para diseñar y efectuar toda las tareas necesarias que
deseamos incorporar en un programa que es independiente.
La importancia de Java radica en la posibilidad de crear o diseñar software
y poder ser ejecutado en diferentes plataformas donde se requiere, sin la
necesidad de estar modificándolo. Además de esto, es una herramienta diseñada
con muchos elementos parecidos a C++ pero en una versión mejorada, más
sencilla de manejar, con menos complejidad y con barreras de seguridad en su
lenguaje y ejecución.
Se dice que JAVA es portable, debido a que el código que se genera es un
código independiente que es el que nos permitirá poderlo usar en las distintas
plataformas, sin que cambie la esencia del software diseñado, esto quiere decir
que será el mismo programa en cualquier plataforma. Por ejemplo que puedes
desarrollar un software en un sistema operativo como Windows y después
ejecutarlo en Linux, sin necesidad de compilar en la otra plataforma. Se dice que
es portable, ya que el código que genera el proceso de compilación no es
ejecutable, sino que es un código intermedio (bytecodes) el que no está amarrado
a una plataforma específica, sino que es independiente.
REFERENCIAS BIBLIOGRÁFICAS Y ELECTRÓNICAS
LIBROS
“JAVA 1.2 AL DESCUBIERTO”; Jaworski, Jamie; Ed. Prentice Hall; Madrid, 1999;
ISBN 84-8322-061-X
"JAVA Network Security"; Macgregor, R. | Durbin, D. | Owlett, J. | Yeomans, A.;
Prentice Hall; 1998; ISBN 0-13-761529-9
"Programación en JAVA"; Cuenca Jiménez, Pedro; Anaya; 1997; ISBN 84-415-
0174-2
“PCWorld”; Revista; Ed. IDG Communications; Números 147, 148, 155 del año
1998; ISBN 0213-1307
INTERNET
http://java.sun.com/a-z/
http://www.programacion.net
http://dir.yahoo.com/Computers_and_Internet/Programming_Languages/Java/
http://www.iti.upv.es:81/java/
http://www.idg.es/pcworld
http://www.omg.org
http://www.idg.es/iworld
http://www.gamelan.com
http://www.javaworld.com
http://www.geocities.com/SiliconValley/Lakes/2227/
http://www.ibm.com/developer/java/
http://forum.java.sun.com
http://es.wikipedia.org

Más contenido relacionado

La actualidad más candente

Sistemas operativo g11
Sistemas operativo g11Sistemas operativo g11
Sistemas operativo g11ELKINBARRERO1
 
Redirecciones en MS DOS e introducción a SCRIPTS
Redirecciones en MS DOS e introducción a SCRIPTSRedirecciones en MS DOS e introducción a SCRIPTS
Redirecciones en MS DOS e introducción a SCRIPTSAlex Castel
 
Tpn°14
Tpn°14Tpn°14
Tpn°14CMS95
 
Comandos Basicos DOS
Comandos Basicos DOSComandos Basicos DOS
Comandos Basicos DOSromeprofe
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e ioprogramadorjavablog
 
comando hecho
comando hechocomando hecho
comando hechoAbigail55
 
3 d cruz_borges_aime_b1examen
3 d cruz_borges_aime_b1examen3 d cruz_borges_aime_b1examen
3 d cruz_borges_aime_b1examenmichelleortegon2
 

La actualidad más candente (9)

CTF Hackademic.RTB2
CTF Hackademic.RTB2CTF Hackademic.RTB2
CTF Hackademic.RTB2
 
Sistemas operativo g11
Sistemas operativo g11Sistemas operativo g11
Sistemas operativo g11
 
Redirecciones en MS DOS e introducción a SCRIPTS
Redirecciones en MS DOS e introducción a SCRIPTSRedirecciones en MS DOS e introducción a SCRIPTS
Redirecciones en MS DOS e introducción a SCRIPTS
 
Tpn°14
Tpn°14Tpn°14
Tpn°14
 
Tp nº14
Tp nº14Tp nº14
Tp nº14
 
Comandos Basicos DOS
Comandos Basicos DOSComandos Basicos DOS
Comandos Basicos DOS
 
Curso scjp 30 navegacion de archivos e io
Curso scjp 30   navegacion de archivos e ioCurso scjp 30   navegacion de archivos e io
Curso scjp 30 navegacion de archivos e io
 
comando hecho
comando hechocomando hecho
comando hecho
 
3 d cruz_borges_aime_b1examen
3 d cruz_borges_aime_b1examen3 d cruz_borges_aime_b1examen
3 d cruz_borges_aime_b1examen
 

Destacado

Bullying Conferencia en British American School México Parte 4 Bibliografía
Bullying Conferencia en British American School México Parte 4 BibliografíaBullying Conferencia en British American School México Parte 4 Bibliografía
Bullying Conferencia en British American School México Parte 4 BibliografíaBritish American School
 
Conferência «Os níveis de acção e sustentabilidade» . Societat Orgànica de Ba...
Conferência «Os níveis de acção e sustentabilidade» . Societat Orgànica de Ba...Conferência «Os níveis de acção e sustentabilidade» . Societat Orgànica de Ba...
Conferência «Os níveis de acção e sustentabilidade» . Societat Orgànica de Ba...EXPONOR
 
De calent a fred pero ven varatet
De calent a fred pero ven varatetDe calent a fred pero ven varatet
De calent a fred pero ven varatet10mm10
 
Ecosistema. jennycastro
Ecosistema. jennycastroEcosistema. jennycastro
Ecosistema. jennycastrojennypatcastro
 
chi mi fa il favore.. sett prox ? :-)
chi mi fa il favore.. sett prox ?  :-) chi mi fa il favore.. sett prox ?  :-)
chi mi fa il favore.. sett prox ? :-) Manuela Giacomelli
 
Planeamiento 2.0 - Espacio Rock & Swing
Planeamiento 2.0 - Espacio Rock & SwingPlaneamiento 2.0 - Espacio Rock & Swing
Planeamiento 2.0 - Espacio Rock & Swingjasmincordoba
 
Web 20-presentation-17391
Web 20-presentation-17391Web 20-presentation-17391
Web 20-presentation-17391elegido1
 
Stj define-tributacao-verbas
Stj define-tributacao-verbasStj define-tributacao-verbas
Stj define-tributacao-verbasTania Gurgel
 
08 gbcb plano_seguranca_agua.ppt-setri
08 gbcb plano_seguranca_agua.ppt-setri08 gbcb plano_seguranca_agua.ppt-setri
08 gbcb plano_seguranca_agua.ppt-setri12out10
 
Cabeçalho e rodapé - não é da minha autoria
Cabeçalho e rodapé - não é da minha autoriaCabeçalho e rodapé - não é da minha autoria
Cabeçalho e rodapé - não é da minha autoriaAlexandra Tenente
 

Destacado (20)

16 hábitos de pensamiento
16 hábitos de pensamiento16 hábitos de pensamiento
16 hábitos de pensamiento
 
Missao jubilar apresentacao
Missao jubilar  apresentacaoMissao jubilar  apresentacao
Missao jubilar apresentacao
 
Bullying Conferencia en British American School México Parte 4 Bibliografía
Bullying Conferencia en British American School México Parte 4 BibliografíaBullying Conferencia en British American School México Parte 4 Bibliografía
Bullying Conferencia en British American School México Parte 4 Bibliografía
 
Conferência «Os níveis de acção e sustentabilidade» . Societat Orgànica de Ba...
Conferência «Os níveis de acção e sustentabilidade» . Societat Orgànica de Ba...Conferência «Os níveis de acção e sustentabilidade» . Societat Orgànica de Ba...
Conferência «Os níveis de acção e sustentabilidade» . Societat Orgànica de Ba...
 
Hipertensión arterial
Hipertensión arterialHipertensión arterial
Hipertensión arterial
 
De calent a fred pero ven varatet
De calent a fred pero ven varatetDe calent a fred pero ven varatet
De calent a fred pero ven varatet
 
Ecosistema. jennycastro
Ecosistema. jennycastroEcosistema. jennycastro
Ecosistema. jennycastro
 
Exposición de ofimática.
Exposición de ofimática.Exposición de ofimática.
Exposición de ofimática.
 
chi mi fa il favore.. sett prox ? :-)
chi mi fa il favore.. sett prox ?  :-) chi mi fa il favore.. sett prox ?  :-)
chi mi fa il favore.. sett prox ? :-)
 
Declaraç
DeclaraçDeclaraç
Declaraç
 
Parque dos bilhares
Parque dos bilharesParque dos bilhares
Parque dos bilhares
 
2 ecologia social 21-9
2   ecologia social 21-92   ecologia social 21-9
2 ecologia social 21-9
 
Planeamiento 2.0 - Espacio Rock & Swing
Planeamiento 2.0 - Espacio Rock & SwingPlaneamiento 2.0 - Espacio Rock & Swing
Planeamiento 2.0 - Espacio Rock & Swing
 
Web 20-presentation-17391
Web 20-presentation-17391Web 20-presentation-17391
Web 20-presentation-17391
 
Stj define-tributacao-verbas
Stj define-tributacao-verbasStj define-tributacao-verbas
Stj define-tributacao-verbas
 
Trabajodearte 110525152844-phpapp02
Trabajodearte 110525152844-phpapp02Trabajodearte 110525152844-phpapp02
Trabajodearte 110525152844-phpapp02
 
Java com banco my sql
Java com banco my sqlJava com banco my sql
Java com banco my sql
 
08 gbcb plano_seguranca_agua.ppt-setri
08 gbcb plano_seguranca_agua.ppt-setri08 gbcb plano_seguranca_agua.ppt-setri
08 gbcb plano_seguranca_agua.ppt-setri
 
Etica
EticaEtica
Etica
 
Cabeçalho e rodapé - não é da minha autoria
Cabeçalho e rodapé - não é da minha autoriaCabeçalho e rodapé - não é da minha autoria
Cabeçalho e rodapé - não é da minha autoria
 

Similar a Javascrip reynaldo gil

Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenasJuan Durango
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)GENEDURAN
 
Entrada y salida de datos en java
Entrada y salida de datos en javaEntrada y salida de datos en java
Entrada y salida de datos en javamariasuarezsalazar
 
Trabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica iiTrabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica iirafaelrojas91
 
Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IIrafaelrojas91
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAGabriel Suarez
 
Datos de entrada_desde_el_teclado java
Datos de entrada_desde_el_teclado javaDatos de entrada_desde_el_teclado java
Datos de entrada_desde_el_teclado javaEdeith
 
Presentacion carlos
Presentacion carlosPresentacion carlos
Presentacion carlosKarlytozdj
 
Taller carga datos + JAVA
Taller carga datos + JAVATaller carga datos + JAVA
Taller carga datos + JAVAJose Diaz Silva
 

Similar a Javascrip reynaldo gil (20)

Flujos de bytes y cadenas
Flujos de bytes y cadenasFlujos de bytes y cadenas
Flujos de bytes y cadenas
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Java
JavaJava
Java
 
Java
JavaJava
Java
 
Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)Aplicaciones en java_genesis_duran (3)
Aplicaciones en java_genesis_duran (3)
 
Java - No numérica - II
Java - No numérica - IIJava - No numérica - II
Java - No numérica - II
 
Entrada y salida de datos en java
Entrada y salida de datos en javaEntrada y salida de datos en java
Entrada y salida de datos en java
 
Java
JavaJava
Java
 
Trabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica iiTrabajo sobre archivos en java.. programacion no numerica ii
Trabajo sobre archivos en java.. programacion no numerica ii
 
Trabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica IITrabajo sobre archivos en java.. programación no numérica II
Trabajo sobre archivos en java.. programación no numérica II
 
ARCHIVOS
ARCHIVOS ARCHIVOS
ARCHIVOS
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
ENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVAENTRADA Y SALIDA DE DATOS EN JAVA
ENTRADA Y SALIDA DE DATOS EN JAVA
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Datos de entrada_desde_el_teclado java
Datos de entrada_desde_el_teclado javaDatos de entrada_desde_el_teclado java
Datos de entrada_desde_el_teclado java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Entrada De Datos
Entrada De DatosEntrada De Datos
Entrada De Datos
 
Presentacion carlos
Presentacion carlosPresentacion carlos
Presentacion carlos
 
Taller carga datos + JAVA
Taller carga datos + JAVATaller carga datos + JAVA
Taller carga datos + JAVA
 
Java io
Java ioJava io
Java io
 

Javascrip reynaldo gil

  • 1. INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO” EXTENSIÓN PORLAMAR ESCUELA DE INGENIERÍA DE SISTEMAS Autor: Reynaldo Gil C.I: 17.417.846 Prof.: Ing. Diógenes Rodriguez Porlamar, 30 de Junio de 2013
  • 2. INTRODUCCIÓN Internet, la red de redes más grande del planeta ha venido evolucionando a ritmos muy acelerados, en sus inicios el correo electrónico fue la sensación. En la actualidad sigue siendo una herramienta fundamental en las comunicaciones, pero se han venido desarrollando otras herramientas y tecnologías como el hipertexto, los cuales vienen a ser objetos de información los cuales pueden contener textos, gráficos, audio, vídeo además de vínculos a otros hipertextos. La World Wide Web se encarga de la transferencia de los hipertextos utilizando el protocolo HTTP, hasta aquí Internet había crecido y madurado un poco, cada vez eran más los sites donde se podían encontrar páginas web mostrando información de todo tipo, pero había un detalle: las paginas eran estáticas, y de pronto Sun Microsystems anuncia un nuevo producto asegurando que JAVA, así se llamaba, iba revolucionar Internet, las páginas Web se convertirían en dinámicas e interactivas. El avance de la tecnología informática y de las telecomunicaciones ha hecho posible que estemos viviendo tiempos en donde la globalización de la información, nos permita alcanzar uno de los grandes sueños de la humanidad: “Tener igualdad de condiciones para acceder al conocimiento”, y esto se ha venido logrando gracias a Internet. Java es un nuevo lenguaje de programación orientado a objetos desarrollado por Sun Microsystems. Sun describe al lenguaje Java de la siguiente manera: Simple, orientado a objetos, distribuido, interpretado, robusto, seguro, de arquitectura neutral, portable, de alto rendimiento, multitarea y dinámico. Sun admite totalmente que lo dicho anteriormente es una cadena de halagos por parte suya, pero el hecho es que todo ello describe al lenguaje Java. Java permite hacer cosas excitantes con las páginas Web que antes no eran posibles. De manera que en este momento la gran interactividad que proporciona Java marca la diferencia en las páginas Web. Imagina un Web donde puedes jugar a un juego, como el fútbol, tú y otras personas que están en lugares remotos forman parte de un equipo y otras más del contrario, verías a los
  • 3. jugadores animados en la pantalla obedeciendo las instrucciones de las personas que están jugando al juego desde sitios remotos. Además las puntuaciones quedarían registradas. O un Web con una aplicación en donde el usuario pueda hacer transacciones y estas se actualicen en tiempo real. O un sitio que ofrezca pequeñas aplicaciones como hojas de cálculo o calculadoras para uso de los visitantes. O uno que muestre figuras 3D, tales como moléculas o dinosaurios que pueden ser rotados con un click del ratón. Java también aumenta el contenido multimedia de un sitio, ofreciendo animaciones fluidas, gráficos mejorados, sonido y vídeo, fuera de lo necesario para enganchar aplicaciones de ayuda dentro de sus navegadores Web.
  • 4. ENTRADA Y SALIDA DE DATOS EN JAVA En java la manera de representar las entradas y las salidas es a base de streams (flujos de datos). Un stream es una conexión entre el programa y la fuente o destino de los datos. La información se traslada en serie a través de esta conexión. Todas las clases de java relacionadas con la entrada y salida se agrupan en el package java.io. El siguiente ejemplo solicita al operador ingresar una línea de caracteres, finalizando con la tecla Enter, y la despliega en pantalla. Código Ejemplo: import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class DeTerminal { public static void main (String args[]) throws IOException { BufferedReader stdin = null; stdin = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Ingrese caracteres y digite Enter: "); String linea = stdin.readLine(); System.out.println("Usted digitó: " + linea); stdin.close(); } }
  • 5. Mensaje para el ingreso de datos: CLASES DE JAVA PARA LECTURA Y ESCRITURA DE DATOS  Lectura: la clase InputStream La clase abstracta InputStream declara los métodos para leer datos desde una fuente concreta y es la clasa base de la mayor parte de los flujos de entrada en java.io. Soporta los métodos siguientes: o int read() lee un sólo byte de datos y los devuelve en el rango [0..255]. Devuelve -1 cuando se alcanza el final del flujo y no puede seguir leyendo bytes. o int read (byte [] buf) lee un array de bytes hasta buf.length. Devuelve el número de bytes leidos o -1 cuando se llega al final del flujo. o int read (byte [] buf, int off, int len) lee len bytes del flujo (o los que pueda) y los coloca a partir de la posición off del array. o long skip (long count) salta hasta count bytes de entrada o hasta el final del flujo de entrada, devolviendo el número de bytes saltados. o int available() devuelve el número de bytes que están disponibles para leerse. o void close() cierra el flujo de entrada que abrió el constructor no-arg, liberando los recursos asociados a ese flujo. No es necesario invocar este
  • 6. método ya que el flujo se cierra cuando se destruye el objeto aunque es conveniente hacerlo ya que vuelca el buffer sobre el disco.  Escritura: la clase OutputStream La clase abstracta OutputStream es análoga a InputStream sólo que proporciona métodos para manejar el flujo de salida. Los métodos que incluye son: o void write (int b) escribe b como byte, que, aunque sea declarado como int es transformado a byte. Esto es porque habitualmente es el resultado de una operación previa. o void write (byte [] buf) escribe un array de bytes. o void write (byte [] buf, int offset, int count) escribe un array buf de bytes, empezando en la posición offset y escribiendo count de ellos, deteniendose antes si encuentra el final del array. o void flush() vacia el flujo de modo que los bytes que quedaran por escribir son escritos. o void close() cierra el flujo de salida liberando los recursos asociados a ese flujo. A menos que se diga lo contrario estos métodos lanzan una excepción IOException si detectan algún error en el flujo de salida. ENTRADA Y SALIDA ESTANDAR (TECLADO Y PANTALLA) La entrada/salida estándar (normalmente el teclado y la pantalla, respectivamente) se definen mediante dos objetos que puede usar el programador sin tener que crear flujos específicos. La clase System tiene un miembro dato denominado in que es una instancia de la clase InputStream que representa al teclado o flujo de entrada estándar. Sin embrago, el miembro out de la clase System es un objeto de la clase PrintStream, que imprime texto en la pantalla (la salida estándar).
  • 7. Para leer un carácter solamente tenemos que llamar a la función read desde System.in. try{ System.in.read(); }catch (IOException ex) { } Obligatoriamente, el proceso de lectura ha de estar en un bloque try..catch. Esta porción de código es la que se ha empleado en muchas aplicaciones para detener la ejecución de una aplicación hasta que se pulse la tecla RETORNO. Para leer un conjunto de caracteres hasta que se pulse la tecla RETORNO escribimos: StringBuffer str=new StringBuffer(); char c; try{ while ((c=(char)System.in.read())!='n'){ str.append(c); } }catch(IOException ex){} La clase StringBuffer es una clase que nos permite crear strings. Contiene métodos para añadir nuevos caracteres a un buffer y convertir el resultado final en un string. Las principales funciones miembro soninsert y append. Usamos una versión de esta última función para añadir un carácter al final de un objeto de la clase StringBuffer. Para convertir un objeto str de la clase StringBuffer a String se usa la función miembro toString. Esta llamada se hace de forma implícita cuando dicho objeto se le pasa a System.out.println. System.out.println(str);
  • 8. Finalmente, se ha de hacer notar, que la función read miembro de InputStream devuelve un int que es promocionado a char. LECTURA Y ESCRITURA DE ARCHIVOS Existen las clases FileInputStream y FileOutputStream (extendiendo InputStream y OutputStream) que permiten leer y escribir bytes en archivos. Para archivos de texto son preferibles FileReader (desciende de Reader) y FileWrite (desciende de Write), que realizan las mismas funciones. Se puede construir un objeto de cualquiera de estas cuatro clases a partir de un String que contenga el nombre o la dirección en disco del archivo o con un objeto de la clase File que representa dicho archivo. Ejemplo: FileReader frl = new FileReader (“archivo.txt”); es equivalente a: File f= new File (“archive.txt”); FileReader fr2 = new FileReader (f); Si no encuentran el archivo indicado, los constructores de FileReader y FileInputStream pueden lanzar la excepción java.io.FileNotFoundException. Los constructores de FileWriter y FileOutputStream pueden lanzar java.io.IOException. Si no encuentran el archivo indicado, lo crean nuevo. Por defecto, estas dos clases comienzan a escribir al comienzo del archivo. Para
  • 9. escribir detrás de lo que ya existe en el archivo ("append"), se utiliza un segundo argumento de tipo boolean con valor true: FileWriter fw = new FileWriter("archivo.txt", true); Las clases que se explican a continuación permiten un manejo más fácil y eficiente que las vistas hasta ahora. Si no encuentran el archivo indicado, los constructores de FileReader y FileInputStream pueden lanzar la excepción java.io.FileNotFoundException. SERIALIZACIÓN o Proporciona un mecanismo de persistencia e integridad. o Permite convertir un objeto a un flujo de bytes para ser tratados por un stream. o Se obtiene mediante la implementación del interface java.io.Serializable. o Este interface no defibe ningún método. o Proceso reversible:  Serialización – deserialización  Escritura – lectura. Ejemplo: LECTURA DE UN ARCHIVO EN UN SERVIDOR DE INTERNET La clase básica para esto es URL. Con ella indicamos la dirección web del fichero y establecemos la conexión.
  • 10. import java.net.URL; import java.net.URLConnection; ... try { URL url = new URL("http://mas.lne.es/fotos/img/2007/10/62/203093470447035b9bc5a095.43783 284-foto_verano.jpg"); URLConnection urlCon = url.openConnection(); ... } catch (Exception e) { ... } Si no se sabe el tipo de fichero que tiene el enlace, se pregunta a la clase URLConnection. Desde luego, el tipo de fichero es totalmente anecdótico, puesto que el método aquí expuesto vale para cualquier tipo de fichero, incluidos los html. // Esto saca por pantalla "image/jpeg" System.out.println(urlCon.getContentType()); Para acceder al contenido y descargarlo en un fichero local, se pide a URLConnection el getInputStream() y se lee y escribe en un fichero local hasta el final. // acceso al contenido web InputStream is = urlCon.getInputStream(); // Fichero en el que queremos guardar el contenido FileOutputStream fos = new FileOutputStream("e:/foto.jpg"); // buffer para ir leyendo. byte [] array = new byte[1000]; // Primera lectura y bucle hasta el final int leido = is.read(array); while (leido > 0) { fos.write(array,0,leido); leido=is.read(array); }
  • 11. // Cierre de conexion y fichero. is.close(); fos.close(); JAVA FOUNDATION CLASSES (JFC) Y JAVA 2D Java Foundation Classes (JFC, en castellano Clases Base Java) son un framework gráfico para construir interfaces gráficas de usuario portables basadas en Java. JFC se compone deAbstract Window Toolkit (AWT), Swing y Java 2D. Juntas, suministran una interfaz de usuario consistente para programas Java, tanto si el sistema de interfaz de usuario subyacente es Windows, Mac OS X o Linux. AWT es la más antigua de las dos APIs de interfaz, y fue criticada duramente por ser poco más que una envoltura alrededor de las capacidades gráficas nativas de la plataforma anfitrión. Esto significa que los widgets estándar en la AWT confían en esas capacidades de los widgets nativos, requiriendo que el desarrollador también este prevenido de las diferencias entre plataformas anfitrión. Una API de gráficos alternativa llamada Internet Foundation Classes fue desarrollada en código más independiente de la plataforma por Netscape. Últimamente, Sun mezcló la IFC con otras tecnologías bajo el nombre "Swing", añadiendo la capacidad para un look and feel enchufable de los widgets. Esto permite a los programas Swing mantener la base del código independiente de la plataforma, pero imita el look de la aplicación nativa. Java 2D es un API para dibujar gráficos en dos dimensiones usando el lenguaje de programación Java. Cada operación de dibujo Java 2D puede tratarse como rellenar unaforma usando un pincel y componiendo el resultado en la pantalla. Conceptualmente, dibujando una línea negra en Java 2D puede pensarse como crear un segmento de línea, transformarlo de acuerdo a la transformación
  • 12. actual, moviéndolo para crear un rectángulo fino, consultando su forma para computar los píxeles que están siendo afectados, generando los píxeles que usan java.awt.Color.BLACK, y entonces componiendo los resultados en la pantalla. Sin embargo, realizar esta secuencia completa de pasos para cada operación de dibujado sería muy ineficiente. Java 2D por lo tanto optimiza las operaciones de dibujado comunes para que muchos de esos pasos puedan saltarse. Si el pincel es de un color sólido simple, por ejemplo, no hay necesidad de ordenar que genere una lista de los colores que van a ser pintados. Asimismo, si el compuesto por defecto completamente opaco está en uso, actualmente pedir que realice la operación de composición es innecesario y resultaría en esfuerzo inútil. Java 2D realiza la mínima cantidad de trabajo necesario para hacer que parezca como si realizara todos los pasos para cada operación, por lo tanto conserva gran flexibilidad y alto rendimiento. JAVA MEDIA FRAMEWORK (JMF) Java Media Framework o JMF (en español entorno de trabajo multimedia de Java) es una extensión de Java que permite la programación de tareas multimedia en este lenguaje de programación. Sus principales características son:  Estabilidad debida a que funciona sobre la máquina virtual java (JVM).  Sencillez, ya que permite, usando unos pocos comandos, realizar complejas tareas multimedia.  Potencia, permitiendo la manipulación de elementos multimedia de vídeo y audio locales (procedentes de la misma máquina en la que se ejecuta el programa), así como la retransmisión en tiempo real de vídeo y audio a través de la red mediante el protocolo RTP.
  • 13. JMF no se incluye en la JDK, ni en la JRE, sino que debe conseguirse como un paquete externo. JAVA 3D Java 3D es un proyecto que permite crear entornos tridimensionales en el lenguaje Java. Es una API para gráficos 3D para el lenguaje de programación Java la cual corre sobre OpenGL o Direct3D. Desde la version 1.2 Java 3D es desarrollado bajo las especificaciones Java Community Process. JAVA BEANS Son un modelo de componentes creado por Sun Microsystems para la construcción de aplicaciones en Java. Se usan para encapsular varios objetos en un único objeto (la vaina o Bean en inglés), para hacer uso de un solo objeto en lugar de varios más simples. La especificación de JavaBeans de Sun Microsystems los define como "componentes de software reutilizables que se puedan manipular visualmente en una herramienta de construcción". A pesar de haber muchas semejanzas, los JavaBeans no deben confundirse con los Enterprise JavaBeans (EJB), una tecnología de componentes del lado servidor que es parte de Java EE. Dentro de un JavaBean podemos distinguir tres partes:  Propiedades: Los atributos que contiene.  Métodos: Se establecen los métodos get y set para acceder y modificar los atributos.  Eventos: Permiten comunicar con otros JavaBeans.
  • 14. Ejemplo: public class PersonaBean implements java.io.Serializable { private String nombre; private int edad; public PersonaBean() { // Constructor sin argumentos } public void setNombre(String n) { this.nombre = n; } public void setEdad(int e) { this.edad = e; } public String getNombre() { return (this.nombre); } public int getEdad() { return (this.edad); } } RMI Y JAVA IDL RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar un método de manera remota. Forma parte del entorno estándar de ejecución de Java y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicación entre otras tecnologías debe utilizarseCORBA o SOAP en lugar de RMI. RMI se caracteriza por la facilidad de su uso en la programación por estar específicamente diseñado para Java; proporciona paso de objetos por referencia (no permitido por SOAP), recolección de basura distribuida (Garbage Collector distribuido) y paso de tipos arbitrarios (funcionalidad no provista por CORBA). A través de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estará accesible a través de la red y el programa permanece a la espera de
  • 15. peticiones en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los métodos proporcionados por el objeto. La invocación se compone de los siguientes pasos:  Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad de serialización de Java).  Invocación del método (del cliente sobre el servidor). El invocador se queda esperando una respuesta.  Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo envía al cliente.  El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local. Ejemplo: Un servidor RMI consiste en definir un objeto remoto que va a ser utilizado por los clientes. Para crear un objeto remoto, se define una interfaz, y el objeto remoto será una clase que implemente dicha interfaz. Crear un servidor de ejemplo mediante 3 pasos:  Definir la interfaz remota. Cuando se crea una interfaz remota:  La interfaz debe ser pública.  Debe heredar de la interfaz java.rmi.Remote, para indicar que puede llamarse desde cualquier máquina virtual Java.  Cada método remoto debe lanzar la excepción java.rmi.RemoteException en su cláusula throws, además de las excepciones que pueda manejar. public interface MiInterfazRemota extends java.rmi.Remote { public void miMetodo1() throws java.rmi.RemoteException; public int miMetodo2() throws java.rmi.RemoteException; } Java IDL o Java Interface Description Language es una implementación CORBA que permite que dos objetos interactúen sobre diferentes
  • 16. plataformas a través de una red. Java IDL al ser una interfaz permite que los objetos interactúen sin importar el lenguaje en que estén escritos, a diferencia de Java RMI que solo soporta objetos distribuidos escritos en Java. Esto se logra ya que Java IDL está basado en Common Object Request Brokerage Architecture (CORBA), un estándar para objetos distribuidos. CORBA fue definido y está controlado por elObject Management Group (OMG) que define las APIs, el protocolo de comunicaciones y los mecanismos necesarios para permitir la interoperatividad entre diferentes aplicaciones escritas en diferentes lenguajes y ejecutadas en diferentes plataformas, lo que es fundamental en computación distribuida. Para soportar la interacción entre objetos de programas separados, Java IDL proporciona un Object Request Broker (ORB) que es una biblioteca de clases que permite una comunicación de bajo nivel entre aplicaciones Java IDL y aplicaciones compatibles con CORBA. JAVA NATIVE INTERFACE (JNI) Java Native Interface (JNI) es un framework de programación que permite que un programa escrito en Java ejecutado en la máquina virtual java (JVM) pueda interactuar con programas escritos en otros lenguajes como C, C++ y ensamblador. El JNI se usa para escribir métodos nativos que permitan solventar situaciones en las que una aplicación no puede ser enteramente escrita en Java, como por ejemplo en el caso de que la biblioteca estándar de clases no proporcione soporte para funcionalidades dependientes de la plataforma. También se usa para modificar programas existentes escritos en algún otro lenguaje, permitiéndoles ser accesibles desde aplicaciones Java. Muchas de las clases de la API estándar de Java dependen del JNI para proporcionar funcionalidad al desarrollador y al usuario, por ejemplo las funcionalidades de sonido o lectura/escritura de ficheros. El desarrollador debe asegurarse que la API estándar de Java no proporciona una determinada funcionalidad antes de recurrir
  • 17. al JNI, ya que la primera ofrece una implementación segura e independiente de la plataforma. El framework JNI permite a un método nativo utilizar los objetos Java de la misma forma en que el propio código de Java lo hace. Un método nativo puede crear objetos Java; y examinarlos y utilizarlos para que lleven a cabo su función. Un método nativo puede asimismo examinar y utilizar objetos que han sido creados por código de aplicación escrito en Java. A menudo se denomina a JNI como la "válvula de escape" para desarrolladores dado que les permite añadir funcionalidades a sus aplicaciones que el API de Java no puede proporcionar. Puede ser usado para interactuar con código escrito en otros lenguajes como C++, también se usa para operaciones y cálculos de alta complejidad temporal, porque el código nativo es por lo general más rápido que el que se ejecuta en una máquina virtual. En JNI, las funciones nativas se implementan en archivos .c o .cpp por separado (C++ ofrece una interfaz con JNI ligeramente más clara). Cuando la máquina virtual invoca a la función, le pasa un puntero a JNIEnv, un puntero a jobject, y cualquier número de argumentos declarados por el método Java. Una función de JNI debería parecerse a esto: JNIEXPORT void JNICALL Java_ClassName_MethodName (JNIEnv *env, jobject obj) { //El método nativo se implementa aquí } CONCLUSIÓN
  • 18. La JVM es la esencia de la aplicación JAVA diseñada, es como la base o el entorno donde se ejecutara nuestras aplicaciones java y permitirá que corra sobre cualquier plataforma que soporte java (cualquier sistema operativo que tengamos instalado o donde se correrá nuestro software). La API de JAVA es la que nos permitirá crear nuestros programas utilizando las herramientas que nos suministra el lenguaje, como son clases para procesar archivos, sockets, crear ventanas, etc, en otras palabras son los medios que suministra JAVA para desarrollar las diferentes aplicaciones, esto provee un conjunto de plantillas para diseñar y efectuar toda las tareas necesarias que deseamos incorporar en un programa que es independiente. La importancia de Java radica en la posibilidad de crear o diseñar software y poder ser ejecutado en diferentes plataformas donde se requiere, sin la necesidad de estar modificándolo. Además de esto, es una herramienta diseñada con muchos elementos parecidos a C++ pero en una versión mejorada, más sencilla de manejar, con menos complejidad y con barreras de seguridad en su lenguaje y ejecución. Se dice que JAVA es portable, debido a que el código que se genera es un código independiente que es el que nos permitirá poderlo usar en las distintas plataformas, sin que cambie la esencia del software diseñado, esto quiere decir que será el mismo programa en cualquier plataforma. Por ejemplo que puedes desarrollar un software en un sistema operativo como Windows y después ejecutarlo en Linux, sin necesidad de compilar en la otra plataforma. Se dice que es portable, ya que el código que genera el proceso de compilación no es ejecutable, sino que es un código intermedio (bytecodes) el que no está amarrado a una plataforma específica, sino que es independiente.
  • 19. REFERENCIAS BIBLIOGRÁFICAS Y ELECTRÓNICAS LIBROS “JAVA 1.2 AL DESCUBIERTO”; Jaworski, Jamie; Ed. Prentice Hall; Madrid, 1999; ISBN 84-8322-061-X "JAVA Network Security"; Macgregor, R. | Durbin, D. | Owlett, J. | Yeomans, A.; Prentice Hall; 1998; ISBN 0-13-761529-9 "Programación en JAVA"; Cuenca Jiménez, Pedro; Anaya; 1997; ISBN 84-415- 0174-2 “PCWorld”; Revista; Ed. IDG Communications; Números 147, 148, 155 del año 1998; ISBN 0213-1307 INTERNET http://java.sun.com/a-z/ http://www.programacion.net http://dir.yahoo.com/Computers_and_Internet/Programming_Languages/Java/ http://www.iti.upv.es:81/java/ http://www.idg.es/pcworld http://www.omg.org http://www.idg.es/iworld http://www.gamelan.com http://www.javaworld.com http://www.geocities.com/SiliconValley/Lakes/2227/ http://www.ibm.com/developer/java/ http://forum.java.sun.com http://es.wikipedia.org