SlideShare una empresa de Scribd logo
1 de 15
Programacion no Númerica II



                       Realizado por:
                      Rawson Salazar
                        47-19.116.109
La noción genérica de una fuente de entrada puede
    representar muchos tipos de entrada distintos: desde un
    archivo de disco, un teclado o un conector (socket) de red.
    Estas abstracciones son una manera limpia de tratar la E/S
    sin necesitar que todo el código comprenda la diferencia
    entre un teclado y una red. Java llama flujo a esta
    abstracción y la implementa con varias clases del paquete
    java.io.
- Flujos de Entrada: La clase InputStream es la que se encarga
    de establecer el flujo de bytes de entrada de información. Es
    una clase abstracta que es superclase de todas las subclases
    que representan este flujo.

- Flujos de Salida: La clase OutputStream es la superclase de
    todas las clases que representan un flujo que se encarga de
    escribir bytes en un destino. Su método más importante
    es write.
Java pose muchas clases para escritura y lectura de datos

Para Lectura tenemos:
Reader.
FileReader.
BufferReader.
InputStream.

Para escritura:
Write.
printWrite.
FileWrite.
OutputStream.
Aquí sólo trataremos la entrada/salida que se comunica con
    el usuario a través de la pantalla o de la ventana del
    terminal.
El acceso a la entrada y salida estándar es controlado por
    tres objetos que se crean automáticamente al iniciar la
    aplicación: System.in, System.out y System.err

a.) System.in
Este objeto implementa la entrada estándar (normalmente
   el teclado). Los métodos que nos proporciona para
   controlar la entrada son:
read(): Devuelve el carácter que se ha introducido por el
   teclado leyéndolo del buffer de entrada y lo elimina del
   buffer para que en la siguiente lectura sea leído el
   siguiente carácter. Si no se ha introducido ningún
   carácter por el teclado devuelve el valor -1.
skip(n): Ignora los n caracteres siguientes de la entrada.
   Una gran parte de la vida de una aplicación en memoria, se
    dedicará a trabajar con archivos o ficheros, para intercambiar
    datos entre distintos dispositivos de almacenamiento, que se
    utilizan refiriéndolos con una ruta de directorio y un nombre.
   para leer ficheros están las clases:
   FileOutputStream.
   FileReader.

   Para Escritura las Clases:
   FileInputStream.
   FileWrite.
Esto se conoce como "Seriación de Objetos". La idea es almacenar
    objetos con datos en un fichero para hacerlos "persistentes", esto es
    que los datos no se pierdan cuando se deje de usar al aplicación en
    memoria principal. Ello porque la Memoria de Acceso Aleatorio
    (RAM) o Principal, es volátil y los datos desaparecen una vez que ha
    terminado la aplicación que los controla. Se denomina
    "deseriación" a la operación de recuperar los datos desde el fichero
    para usarlos en memoria. Las clases que permiten estas
    operaciones son ObjectOutputStream, que permite escribir en el
    flujo de salida, y ObjectOutputStream, que permite reconstruir los
    objetos desde el flujo de entrada. Ambas forman parte del paquete
    java.io. Actúan sobre un flujo ya definido por otro objeto.
Ejemplo:
Sobre el fichero: FileOutputStream f = new
    FileOutputStream("datos.dat"); //actúa.
Sobre los objetos: ObjectOutputStream o = new ObjectOutputStream(f);
    //actúa
   Las JFC (Java Foundation Classes) son parte de la API de Java
    compuesto por clases que sirven para crear interfaces gráficas
    visuales para las aplicaciones yapplets de Java. Así como Sun
    presenta estas JFC, Microsoft ha desarrollado otro paquete
    propio con el nombre de AFD (Application Foundation Classes).

   Las JFC contienen dos paquetes gráficos: AWT y Swing.
   AWT presenta componentes pesados, que en cada plataforma
    sólo pueden tener una representación determinada. Está
    disponible desde la versión 1.1 del JDK como java.awt.
   Swing presenta componentes ligeros, que pueden tomar
    diferente aspecto y comportamiento pues lo toman de una
    biblioteca de clases. Está disponible desde la versión 1.2 del JDK
    como javax.swing aunque antes se podían encontrar versiones
    previas como com.sun.java. o como java.awt.swing.
   En computación, 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 una forma usando un pincel y componiendo el
    resultado en la pantalla:

    Formas:
    Una forma en Java 2D es un límite infinitamente delgado el cual
    define un interior y un exterior.
    Pinceles:
    Un pincel genera los colores que serán usados para cada píxel de la
    operación de relleno. El pincel más simple es Java.awt.color.
    Compuestos:
    Durante cualquier operación de dibujo, hay una fuente (los píxeles
    que son producidos por el pincel) y un destino (los píxeles ya en la
    pantalla).
    Rellenado: Para rellenar una forma, el primer paso es identificar
    que píxeles caen dentro de la forma.
JMF es una API que nos sirve para incluir multimedia en nuestras
   aplicaciones de Java, funciona básicamente, recibiendo el
   contenido multimedia de alguna fuente, para después procesarlo y
   entregarlo en alguna salida multimedia.
Para entender mejor la arquitectura de JMF en la página de Java nos
   muestran esta imagen, que es muy ilustrativa y nos ayuda a
   comprender mejor esta API.
La API (Application Program Interface) Java3D es una interfaz
    de programación utilizada para realizar aplicaciones y applets
    con gráficos en tres dimensiones. Proporciona a los desarrolladores
    un alto nivel para crear y manipular objetos geométrios 3D y para
    construir las estructuras utilizadas en el renderizado de dichos
    objetos. Se pueden describir grandes mundos virtuales utilizando
    estos constructores, que proporcionan a Java3D la
    suficiente información para hacer un renderizado de forma
    eficiente.
Los JavaBeans 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.
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
   utilizarse CORBA 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).
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 el Object
    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.
Aunque la potencia de la API de Java es más que suficiente para casi
    todo tipo de aplicaciones, algunas de ellas necesitan utilizar la
    potencia específica de una plataforma en concreto, por ejemplo
    para conseguir un poco más de velocidad y eficiencia.
Java permite incorporar en sus programas fragmentos de código
    nativo es decir, código compilado para una determinada
    plataforma, generalmente escrito en C/C++. Así se puede utilizar
    código específico de una plataforma, bibliotecas ya escritas...
Para ello Java cuenta con el JNI (Java Native Invocation). Hay que tener
    en cuenta que una aplicación que utilice este tipo de métodos
    estará violando las directrices de seguridad de la máquina virtual
    Java, motivo por el que no se permite incluir métodos nativos
    en applets de Java. Para agregar métodos nativos Java a una clase
    de Java han de seguirse los siguiente pasos:
1. Escritura del programa Java, invocando métodos nativos
    como native.
2. Compilación del programa Java.
3. Creación de un archivo de cabecera nativo (.h)
4. Escritura de los métodos nativos.
5. Creación de una biblioteca con esos métodos nativos.
6. Ejecución del programa Java.

Más contenido relacionado

La actualidad más candente

Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Javamaeusogo
 
Aplicaciones java. Presentacion Power Point
Aplicaciones java. Presentacion Power PointAplicaciones java. Presentacion Power Point
Aplicaciones java. Presentacion Power PointMariviMartinezM
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos BasicosEmilio Aviles Avila
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y SintaxisEmilio Aviles Avila
 
Apendice general 4 terminos de programador
Apendice general 4 terminos de programadorApendice general 4 terminos de programador
Apendice general 4 terminos de programadorWilson Delgado Ramos
 
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
 
TABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETESTABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETESChistian Hernandez
 
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...Arazelii Puentez
 
Programación en Java (y II)
Programación en Java (y II)Programación en Java (y II)
Programación en Java (y II)Cristian
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVAjesanchez5
 
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de Java
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de JavaComandos, Sentencias y/o Paquetes del Lenguaje de Programación de Java
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de JavaTania Tellez
 

La actualidad más candente (19)

Presentacion Java
Presentacion JavaPresentacion Java
Presentacion Java
 
Api java
Api javaApi java
Api java
 
Aplicaciones java. Presentacion Power Point
Aplicaciones java. Presentacion Power PointAplicaciones java. Presentacion Power Point
Aplicaciones java. Presentacion Power Point
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos Basicos
 
Java
JavaJava
Java
 
Curso Java Inicial 2 - Introducción y Sintaxis
Curso Java Inicial  2 - Introducción y SintaxisCurso Java Inicial  2 - Introducción y Sintaxis
Curso Java Inicial 2 - Introducción y Sintaxis
 
Apendice general 4 terminos de programador
Apendice general 4 terminos de programadorApendice general 4 terminos de programador
Apendice general 4 terminos de programador
 
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
JavaJava
Java
 
TABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETESTABLA DE COMANDO /SENTENCIAS/PAQUETES
TABLA DE COMANDO /SENTENCIAS/PAQUETES
 
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
investigación de Comandos, Sentencias y/o Paquetes del Lenguaje de Programaci...
 
Comandos
ComandosComandos
Comandos
 
Intro Java
Intro JavaIntro Java
Intro Java
 
Programación en Java (y II)
Programación en Java (y II)Programación en Java (y II)
Programación en Java (y II)
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVA
 
Fondo1 (2)
Fondo1 (2)Fondo1 (2)
Fondo1 (2)
 
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de Java
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de JavaComandos, Sentencias y/o Paquetes del Lenguaje de Programación de Java
Comandos, Sentencias y/o Paquetes del Lenguaje de Programación de Java
 

Similar a Programación no Númerica II

Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica iiCarlos Ordaz
 
Presentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaPresentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaLuisFeSilva
 
Trabajo java
Trabajo javaTrabajo java
Trabajo javaamec0612
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica iirolmanpaul
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POOsena
 
Presentacion de ruby
Presentacion de rubyPresentacion de ruby
Presentacion de rubyKarlytozdj
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointJ_cordero
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaFacultad de Ciencias y Sistemas
 
Clase2
Clase2Clase2
Clase2rilara
 

Similar a Programación no Númerica II (20)

Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica ii
 
Java
JavaJava
Java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Presentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones javaPresentacion luis silva aplicaciones java
Presentacion luis silva aplicaciones java
 
Yerald tormet
Yerald tormetYerald tormet
Yerald tormet
 
Yerald tormet
Yerald tormetYerald tormet
Yerald tormet
 
API Java
API JavaAPI Java
API Java
 
Trabajo java
Trabajo javaTrabajo java
Trabajo java
 
Programacion no numerica ii
Programacion no numerica iiProgramacion no numerica ii
Programacion no numerica ii
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
C1 java introduccion
C1 java introduccionC1 java introduccion
C1 java introduccion
 
Conceptos Fundamentales de POO
Conceptos Fundamentales de POOConceptos Fundamentales de POO
Conceptos Fundamentales de POO
 
Presentacion de ruby
Presentacion de rubyPresentacion de ruby
Presentacion de ruby
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Nuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power pointNuevo presentación de microsoft office power point
Nuevo presentación de microsoft office power point
 
Java
JavaJava
Java
 
Aplicaciones java
Aplicaciones javaAplicaciones java
Aplicaciones java
 
Introducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - JavaIntroducción a la progrogramación orientada a objetos - Java
Introducción a la progrogramación orientada a objetos - Java
 
Clase2
Clase2Clase2
Clase2
 

Programación no Númerica II

  • 1. Programacion no Númerica II Realizado por: Rawson Salazar 47-19.116.109
  • 2. La noción genérica de una fuente de entrada puede representar muchos tipos de entrada distintos: desde un archivo de disco, un teclado o un conector (socket) de red. Estas abstracciones son una manera limpia de tratar la E/S sin necesitar que todo el código comprenda la diferencia entre un teclado y una red. Java llama flujo a esta abstracción y la implementa con varias clases del paquete java.io. - Flujos de Entrada: La clase InputStream es la que se encarga de establecer el flujo de bytes de entrada de información. Es una clase abstracta que es superclase de todas las subclases que representan este flujo. - Flujos de Salida: La clase OutputStream es la superclase de todas las clases que representan un flujo que se encarga de escribir bytes en un destino. Su método más importante es write.
  • 3. Java pose muchas clases para escritura y lectura de datos Para Lectura tenemos: Reader. FileReader. BufferReader. InputStream. Para escritura: Write. printWrite. FileWrite. OutputStream.
  • 4. Aquí sólo trataremos la entrada/salida que se comunica con el usuario a través de la pantalla o de la ventana del terminal. El acceso a la entrada y salida estándar es controlado por tres objetos que se crean automáticamente al iniciar la aplicación: System.in, System.out y System.err a.) System.in Este objeto implementa la entrada estándar (normalmente el teclado). Los métodos que nos proporciona para controlar la entrada son: read(): Devuelve el carácter que se ha introducido por el teclado leyéndolo del buffer de entrada y lo elimina del buffer para que en la siguiente lectura sea leído el siguiente carácter. Si no se ha introducido ningún carácter por el teclado devuelve el valor -1. skip(n): Ignora los n caracteres siguientes de la entrada.
  • 5.
  • 6. Una gran parte de la vida de una aplicación en memoria, se dedicará a trabajar con archivos o ficheros, para intercambiar datos entre distintos dispositivos de almacenamiento, que se utilizan refiriéndolos con una ruta de directorio y un nombre.  para leer ficheros están las clases:  FileOutputStream.  FileReader.  Para Escritura las Clases:  FileInputStream.  FileWrite.
  • 7. Esto se conoce como "Seriación de Objetos". La idea es almacenar objetos con datos en un fichero para hacerlos "persistentes", esto es que los datos no se pierdan cuando se deje de usar al aplicación en memoria principal. Ello porque la Memoria de Acceso Aleatorio (RAM) o Principal, es volátil y los datos desaparecen una vez que ha terminado la aplicación que los controla. Se denomina "deseriación" a la operación de recuperar los datos desde el fichero para usarlos en memoria. Las clases que permiten estas operaciones son ObjectOutputStream, que permite escribir en el flujo de salida, y ObjectOutputStream, que permite reconstruir los objetos desde el flujo de entrada. Ambas forman parte del paquete java.io. Actúan sobre un flujo ya definido por otro objeto. Ejemplo: Sobre el fichero: FileOutputStream f = new FileOutputStream("datos.dat"); //actúa. Sobre los objetos: ObjectOutputStream o = new ObjectOutputStream(f); //actúa
  • 8. Las JFC (Java Foundation Classes) son parte de la API de Java compuesto por clases que sirven para crear interfaces gráficas visuales para las aplicaciones yapplets de Java. Así como Sun presenta estas JFC, Microsoft ha desarrollado otro paquete propio con el nombre de AFD (Application Foundation Classes).  Las JFC contienen dos paquetes gráficos: AWT y Swing.  AWT presenta componentes pesados, que en cada plataforma sólo pueden tener una representación determinada. Está disponible desde la versión 1.1 del JDK como java.awt.  Swing presenta componentes ligeros, que pueden tomar diferente aspecto y comportamiento pues lo toman de una biblioteca de clases. Está disponible desde la versión 1.2 del JDK como javax.swing aunque antes se podían encontrar versiones previas como com.sun.java. o como java.awt.swing.
  • 9. En computación, 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 una forma usando un pincel y componiendo el resultado en la pantalla: Formas: Una forma en Java 2D es un límite infinitamente delgado el cual define un interior y un exterior. Pinceles: Un pincel genera los colores que serán usados para cada píxel de la operación de relleno. El pincel más simple es Java.awt.color. Compuestos: Durante cualquier operación de dibujo, hay una fuente (los píxeles que son producidos por el pincel) y un destino (los píxeles ya en la pantalla). Rellenado: Para rellenar una forma, el primer paso es identificar que píxeles caen dentro de la forma.
  • 10. JMF es una API que nos sirve para incluir multimedia en nuestras aplicaciones de Java, funciona básicamente, recibiendo el contenido multimedia de alguna fuente, para después procesarlo y entregarlo en alguna salida multimedia. Para entender mejor la arquitectura de JMF en la página de Java nos muestran esta imagen, que es muy ilustrativa y nos ayuda a comprender mejor esta API.
  • 11. La API (Application Program Interface) Java3D es una interfaz de programación utilizada para realizar aplicaciones y applets con gráficos en tres dimensiones. Proporciona a los desarrolladores un alto nivel para crear y manipular objetos geométrios 3D y para construir las estructuras utilizadas en el renderizado de dichos objetos. Se pueden describir grandes mundos virtuales utilizando estos constructores, que proporcionan a Java3D la suficiente información para hacer un renderizado de forma eficiente.
  • 12. Los JavaBeans 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.
  • 13. 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 utilizarse CORBA 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).
  • 14. 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 el Object 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.
  • 15. Aunque la potencia de la API de Java es más que suficiente para casi todo tipo de aplicaciones, algunas de ellas necesitan utilizar la potencia específica de una plataforma en concreto, por ejemplo para conseguir un poco más de velocidad y eficiencia. Java permite incorporar en sus programas fragmentos de código nativo es decir, código compilado para una determinada plataforma, generalmente escrito en C/C++. Así se puede utilizar código específico de una plataforma, bibliotecas ya escritas... Para ello Java cuenta con el JNI (Java Native Invocation). Hay que tener en cuenta que una aplicación que utilice este tipo de métodos estará violando las directrices de seguridad de la máquina virtual Java, motivo por el que no se permite incluir métodos nativos en applets de Java. Para agregar métodos nativos Java a una clase de Java han de seguirse los siguiente pasos: 1. Escritura del programa Java, invocando métodos nativos como native. 2. Compilación del programa Java. 3. Creación de un archivo de cabecera nativo (.h) 4. Escritura de los métodos nativos. 5. Creación de una biblioteca con esos métodos nativos. 6. Ejecución del programa Java.