13
REPUBLICA BOLIVARIANA DE VENEZUELA INSTITUTO UNIVERSITARIO POLITECNICO “SANTIAGO MARINO” EXTENSION PORLAMAR INGENIERIA DE SISTEMAS APLICACIONES JAVA INTEGRANTE: Br. Valdiviezo David C.I:21.326.272 FACILITADOR: Ing. Diógenes Rodríguez Porlamar, Junio del 2013

Aplicaciones java

Embed Size (px)

Citation preview

Page 1: Aplicaciones java

REPUBLICA BOLIVARIANA DE VENEZUELA

INSTITUTO UNIVERSITARIO POLITECNICO

“SANTIAGO MARINO”

EXTENSION PORLAMAR

INGENIERIA DE SISTEMAS

APLICACIONES JAVA

INTEGRANTE:

Br. Valdiviezo David C.I:21.326.272

FACILITADOR:

Ing. Diógenes Rodríguez

Porlamar, Junio del 2013

Page 2: Aplicaciones java

Introducción

El lenguaje de programación de java fue de desarrollado en 1991 cuando un

grupo de programadores e ingenieros se encontraban diseñando un lenguaje de

programación destinado a electrodomésticos. Convirtiéndose en una herramienta de

desarrollo simple y orientado a objetos proporcionando una arquitectura neutra portable

y de alta precisión prestando de herramientas funcionales a los programadores que

requieran de la misma.

Java proporciona un conjunto de herramientas que facilitan la entrada y salida de

datos proporcionados a los desarrolladores de clases, funciones y métodos como los

Streams que es la manera de representar las entradas y las salidas proporcionado una

conexión ente el programa y la fuente de destino de los datos. La información es

trasladada con las clases de java relacionadas con la entrada y la salida agrupada en el

paquete Java.io.

Java incorpora clases para el manejo de gráficos como lo son las herramientas

Java foundation classes (JFC), java 2D y Java 3D las culés ya posean herramientas

graficas como botones, tablas y ventanas las cuales facilitan el diseño de las interfaces

graficas de las aplicaciones desarrolladas en este lenguaje.

Además incorpora la ejecución de como APPLET facilitando el desarrollo tanto en

arquitecturas cliente servidor y como en aplicaciones distribuidas teniendo la capacidad

de conectarse con otros ordenadores y ejecutar tareas en varios ordenadores

simultáneamente.

Page 3: Aplicaciones java

Entrada y salida de datos en java:

Según el autor Beuchot Mauricio los programas en la actualidad necesitan

comunicarse con su entorno, tanto para recoger datos e información que debe ser

procesada posteriormente y devolver los resultados obtenidos. La forma de representar

las entradas y las salidas en java es atreves de las clases STREAMS (flujos de datos).

Un STREAMS es una conexión entre el programa y la fuente o el destino de los

datos y la información se traslada en serie (un carácter continuo de otro) a través de esta

conexión. Un ejemplo de ello es cuando se quiere imprimir algo en la pantalla, se hace a

través de un STREAMS que conecta el monitor al programa.

Las entradas y salidas se manejan en java a través de una jerarquía que incluye

clases e interfaces encontradas en los paquetes de java.io. En java se tienen dos

maneras de hacer entradas y salidas: La primera es leyendo y escribiendo bytes,

mientras que la segunda es leyendo y escribiendo caracteres Unicode.

Cada uno de los tipos de entradas y salidas tiene una superclase abstracta para

lectura y otra para escritura. De ellas se derivan clases concretas que permiten manipular

de alguna forma lo que se está leyendo y escribiendo. Las entradas y salidas se ven

siempre como un flujo, ya sea de bytes o caracteres, la cual va tomando una unidad por

unidad y la procesa. Cuando este flujo termina decimos que se acabó el archivo.

Clases de Entradas y salidas más sencillas en java:

Entrada básica: La clase InputStream

La clase abstracta InputStream declara los métodos para leer datos desde una

fuente concreta y es la base de la mayor parte de los flujos de entrada en java.io. Soporta

los métodos siguientes:

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.

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.

Page 4: Aplicaciones java

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.

Salida básica: 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:

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.

void write(byte [] buf) escribe un array de bytes.

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, deteniéndose antes si encuentra

el final del array.

Clases de java para lectura y escritura de datos:

En el paquete java .io contiene las clases indispensables para la realización de la

comunicación del programa con el exterior. Dentro de los paquetes que proporciona java

existen dos familias de jerarquías distintas para la entrada y la salida de datos. Y su

diferencia principal consiste en que una de ellas opera con bytes y la otra con caracteres

cuya formación de caracteres está formada por dos bytes porque el que sigue es el

código Unicode. En general en java hay dos clases que manejan bytes una clase de

entrada y otra de salida y otras dos que manejan caracteres. La entrada y la salida de

datos del programa se podrían hacer con clases derivadas de INPUTSTREAM para la

lectura y OUTPUTSTREAM para la escritura y a subes estas clases contienen los

métodos básicos READ () y WRITE () los cueles manejan bytes que no suelen utilizar

directamente.

Las clases derivadas de READER y WRITER que manejan caracteres en vez de

bytes estas clases proporcionan una manera más práctica para las aplicaciones que

manejan texto.

Page 5: Aplicaciones java

Entrada y salida estándar de teclado y pantalla:

En el lenguaje de programación de java la entrada desde el teclado y la salida a

pantalla están reguladas a través de las clases System y esta clase pertenece al paquete

JAVA.LANG agrupando diversos métodos y objetos que guardan relación con el sistema

local. Esta clase contiene entre otros, tres funciones u objetos estáticos que son los

siguientes:

System.In: Este es un objeto de la clase prinStream preparado para recibir los

datos desde la entrada estándar del sistema siendo este habitualmente el teclado.

System.Out: Objeto de la clase prinStream que imprime los datos en la salida

estándar del sistema que está asociado con la pantalla.

System.Err: Este es utilizado para mostrar mensajes de error que también salen

por defecto en la pantalla del ordenador.

Implementado estas clases se permite la comunicación alfanumérica con el

programa a través de los métodos incluidos en tabla de métodos que permiten la entrada

y salida a un nivel elemental en java.

Para realizar la lectura desde el teclado se pude utilizar el método System.In.Read

() de la clase InputStream. El cual lee unos caracteres por cada llamada y su valor de

retorno es una Int.

En el caso de que se quiera imprimir en la pantalla se utilizan los métodos

System.Out.Print () o System.Out.Println () y estos son los métodos más utilizados por

los desarrolladores en java.

Lectura y escritura de archivos:

En java el manejo de archivos tiene características especiales, se pueden utilizar

las clases mencionadas en la entrada y salida estándar como lo son InputStream y

OutputStream con pequeñas variaciones en la forma en que se emplean. Java ofrece las

siguientes clases para la lectura y escritura de archivos proporcionando las clases

Page 6: Aplicaciones java

FILEINPUTSTREAM y FILEOUTPUTSTREAM que permiten leer y escribir bytes en los

archivos. Para los archivos de texto son preferibles FILEREADER que descienden de

READER y FILEWRITER que descienden de WRITER, y realizan las mismas funciones.

Se pueden construir un objeto de cualquiera de estas cuatros clases a partir de un

STRING el cual debe contener el nombre y la dirección en el disco del archivo o con un

objeto de la clase FILE que representan al archivo. Por ejemplo:

FILEREADER FR1 = NEW FILEREADER ("ARCHIVO.TXT"); Es equivalente a: FILE

F = NEW FILE ("ARCHIVO.TXT"); FILEREADER FR2 = NEW FILEREADER (F);

Si no encuentran el archivo indicado, los constructores de FILEREADER

y FILEINPUTSTREAM pueden lanzar una excepción java.io. El cual refleja que si el

archivo indicado no es encontrado lo crea de nuevo por defecto.

Serialización:

La serialización o (MARSHALLING) consiste en un proceso que permite la

codificación de un objeto en un medio de almacenamiento como por ejemplo un archivo

o un buffer de memoria con la finalidad de transmitirlo a través de una conexión de red

como una serie de bytes o en un formato que sea comprensible para una persona como

por ejemplo el método binario o XML entre otros.

La serialización binaria conserva la fidelidad de tipos, lo que resulta útil para

conservar el estado de un objeto entre distintas llamadas a una aplicación. Por

ejemplo, puede compartir un objeto entre distintas aplicaciones si lo serializa en

el Portapapeles.

La serialización XML sólo serializa las propiedades públicas y los campos, y no

conserva la fidelidad de tipos. Esto resulta útil cuando desea proporcionar o

consumir datos sin restringir la aplicación que utiliza los datos.

Page 7: Aplicaciones java

En el lenguaje de programación java proporciona una herramienta denominada

serialización de objetos la cual permite convertir cualquier objeto. Para realizar la

serialización es necesario implementar la interfaz serializable, la cual obliga a que todos

los campos de datos del objeto sean serializables. Esta interfaz no posee la declaración

de ninguna función miembro.

La serialización es una característica añadida al lenguaje Java para dar soporte a

La invocación remota de objetos (RMI)

La persistencia

La invocación remota de objetos permite a los objetos que viven en otros

ordenadores comportarse como si vivieran en nuestra propia máquina. La serialización

es necesaria para transportar los argumentos y los valores de retorno.

La persistencia, es una característica importante de la herramienta JAVA Beans.

El estado de un componente es configurado durante el diseño. La serialización nos

permite guardar el estado de un componente en disco, abandonar el Entorno Integrado

de Desarrollo (IDE) y restaurar el estado de dicho componente cuando se vuelve a correr

el IDE.

Lectura de un archivo en un servidor de internet:

Los objetos SERVLET son módulos proporcionados por Java que permiten

sustituir o utilizar el lenguaje de programación de java en lugar de los programas CGI

(Common Gateway Interface) escritos en otros lenguajes como c++ o Perl. Los

programas CGI son aplicaciones que se ejecutan en un servidor web en respuesta a una

acción de un BROWSER remoto o petición de una página HTML permitiendo la

generación de páginas dinámicas cuyo contenido puede variar y que por lo tanto pueden

almacenar información en un servidor.

Los SERVLET no tienen entorno grafico ya que se ejecutan en el servidor.

Recibiendo los datos y sus salidas o respuesta son habitualmente ficheros de textos

Page 8: Aplicaciones java

HTML. Estas herramientas de programación en la web son desarrolladas utilizando la

API Java.Servlet que es una extensión de java que hasta la fecha no forma parte de

ninguno de los JDK de java por ello es necesario instalar un software específico para

Java.Servlet.

Java foundation classes (JFC) y java 2D:

En java los JFC, JAVA™ (FOUNDATION CLASSES) son un conjunto de

componentes y características que facilitan y ayudan a construir los entornos gráficos de

los programas o GUIS (Graphical User Interfaces). El cual incluye una gran cantidad de

elementos gráficos como botones, paneles, menús y ventanas los cuales aminoran los

tiempos de desarrollo de aplicaciones de entornos gráficos complejos proveyendo

muchos más elementos de los que brindan los componentes AWT.

Los SWING forman parte de los elementos proveídos por las JFC los culés

permiten incorporar en las aplicaciones desarrolladas elementos gráficos de una forma

más versátil y con más capacidades que utilizando el AWT básico de java.

Alguna de las de las características más interesantes que provee los

componentes JFC, JAVA™ FOUNDATION CLASSES son:

Cualquier programa que utilice los componentes SWING puede escoger el

aspecto que desee para sus ventanas y elementos gráficos.

Cualquier componente grafico de SWING presenta más propiedades que los

elementos correspondientes al AWT. En las cueles a los botones se le pueden

incorporar imágenes.

El JDK 1.2 y las versiones siguientes a las misma java incorporan como parte de

los componentes JFC una herramienta llamada java 2D la cual permite a los

Page 9: Aplicaciones java

desarrolladores incorporar textos, imágenes y gráficos en dos dimensiones de gran

calidad.

Java Media FRAMEWORK (JMF):

En java la JMF (JAVA MEDIA FRAMEWORK) es un protocolo de transmisión de

datos y uno de los elementos gráficos simples y unificados para la reproducción de

contenidos gráficos multimedia, como por ejemplo videos, audio y animaciones,

principalmente. En las versiones del JDK anteriores a la 1.1 no incorporan esta API de

JMF por lo tanto es necesario la instalación de un software que complementa el JDK.

Java 3D

La herramienta JAVA 3D™ es un conjunto clases que facilitan la creación de

aplicaciones y APPLETSCON () y elementos 3D. Ofreciendo a los desarrolladores la

posibilidad de manipular geometrías complejas en tres dimensiones.

Las principales ventajas proporcionadas por la herramienta JAVA 3D™ frente a

otros entornos de programación 3D son:

Permite la creación de aplicaciones graficas 3D independientemente del tipo de

sistema empleado para su desarrollo.

Proporciona un conjunto de clases, interfaces y librerías de alto nivel las cuales

permiten aprovechar la aceleración grafica proporcionada por el hardware que

incorporan muchas de las nuevas tarjetas gráficas de la actualidad.

Las llamadas a los métodos 3D son transformadas en llamadas a las funciones

de OPENGL O DIRECT3D.

Oficialmente JAVA 3D™ forma parte de la API JMF, y se trata de unas librerías

que se instalan independientemente de JMF.

Page 10: Aplicaciones java

Java Beans:

JAVA BEANS proporciona a los desarrolladores la posibilidad de escribir

“Elementos o componentes de software”. Los componentes son elementos reutilizables

que pueden incorporar gráficos a otros componentes como APPLETS () y aplicaciones

utilizando herramientas gráficas para el desarrollo de aplicaciones que requieran gráficos

de gran calidad. Cada uno de los componentes proporcionado por esta herramienta

ofrece sus características concretas como por ejemplo los métodos públicos y sus

eventos a los entornos gráficos de desarrollo permitiendo su desarrollo visual. Siendo

equivalente a otros componentes de algunos de los entornos visuales como por ejemplo

los controles de VISUAL BASIC.

El BDK (BEANS DEVELOPER KIT) es un conjunto de herramientas para

desarrollar JAVA BEANS y se trata de un kit no incorporado en los distintos JDK de java.

RMI e JAVA IDL

Las herramientas RMI (REMOTE METHOD INVOCATION) como JAVA IDL (JAVA

INTERFACE DEFINITIONLANGUAGE) son utilizadas para desarrollar aplicaciones

distribuidas. Este tipo de aplicaciones presentan las características de una aplicación que

pude ejecutar funciones y métodos en varios ordenadores distintos. Manejando una

referencia o un objeto que se encuentra en un ordenador remoto, siendo posible ejecutar

métodos de ese objeto desde una aplicación que se ejecuta en un ordenador distinto.

RMI Y JAVA IDL proporcionan los mecanismos mediante los cuales los distintos

objetos distribuidos se comunican y se transmiten la información.

RIM es una solución basada íntegramente en java e incorpora métodos para

localizar los objetos remotos, comunicarse con ellos e incluso enviar un objeto de java.

Page 11: Aplicaciones java

JAVA IDL permite entre objetos distribuidos utilizando CORBA (COMMON

OBJECT REQUEST BROKER ARCHITECTURE). Siendo un estándar para la

interconexión entre los objetos distribuidos.

Java Native Interface (JNI):

Java Native Interface (JNI) es un framework o (marco de trabajo) de

programación que permite ejecutar códigos nativos de java y viceversa ejecutándolos

en la máquina virtual java (JVM) la cual pueda interactuar con programas escritos en

otros lenguajes como C, C++ y ensamblador.

Llamamos máquina virtual a un entorno que de programación formado por:

El programa que ejecuta los bytecodes Java.

Las librerías (API) Java.

JNI de java posee una interfaz bidireccional que permite a las aplicaciones

desarrolladas en Java a llamar a códigos nativos y viceversa. Es decir soporta dos tipos

de interfaces

Native Methods: La cual permite a Java llamar a funciones

implementadas en librerías nativas.

Invocation Interface: Nos permite incrustar una máquina virtual Java

en una aplicación nativa.

La evolución de la herramienta JNI desde los orígenes de Java se incluía ya una

forma de hacer llamadas nativas desde la máquina virtual a las librerías del host

environment, así como el host environment a la maquina virtual. Siendo implantadas en

la versión 1.0 del JDK de Java utilizando los paquetes Java.net y Java.awt.

Page 12: Aplicaciones java

Conclusión

Java es el lenguaje esencial para el desarrollo de aplicaciones en cualquier

sistema operativo relacionado con el internet por lo que es de vital importancia en la

actualidad ya que facilita el trabajo de los desarrolladores de aplicaciones. Los ficheros

en java son herramientas importantes ya que pueden almacenar una gran cantidad de

información de cualquier indalo. En este trabajo tratamos las clases más utilizadas que

nos permiten la lectura y escritura de un fichero de java. Las clases imputStream y

OutputStream derivan de manera directa de los paquetes java.lang.objec permitiendo

trabajar con fiches asociados o distribuidos.

Actualmente java es uno de los lenguajes de programación más utilizado por los

los programadores por la gran cantidad de herramienta que brinda con relación al manejo

de archivos, herramientas graficas reduciendo así los tiempos de desarrollo de

aplicaciones. Java permite el desarrollo de aplicaciones web dinámicas desde un sistema

de información distribuido como HTML basado en la red.

Page 13: Aplicaciones java

Bibliografía

Introducción a las ciencias de la computación Escrito por Peláez V. Canek, Elisa

Viso Gurovich

Programación orientada a objetos con Java Escrito por Francisco Durán, Francisco

Gutiérrez, Ernesto Pimentel

Entrada y salida de datos de java Escrito por Juan Pavon Mestras

Introducción a la estructura de datos en java Escrito por Sonia Jaramillo

Valbuena,Sonia Jaramillo Valbuena, Sergio Augusto Cardona Torres, Dumar Antonio

Villa Zapata

Introducción a la lógica Escrito por Beuchot Mauricio

http://plato.acadiau.ca/courses/comp/dsilver/2513/EclipseAndTomcatTutorial/

http://www.programacion.com/articulo/swing_y_jfc_java_foundation_classes_94