SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
J2EE
Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2
Platform, Enterprise Edition o J2EE hasta la versión 1.4), es una plataforma de
programación—parte de la Plataforma Java—para desarrollar y ejecutar software
de aplicaciones en Lenguaje de programación Java con arquitectura de N niveles
distribuida, basándose ampliamente en componentes de software modulares
ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está
definida por una especificación. Similar a otras especificaciones del Java
Community Process, Java EE es también considerada informalmente como un
estándar debido a que los suministradores deben cumplir ciertos requisitos de
conformidad para declarar que sus productos son conformes a Java EE;
estandarizado por The Java Community Process / JCP.

Java EE incluye varias especificaciones de API, tales como JDBC, RMI, e-mail,
JMS, Servicios Web, XML, etc y define cómo coordinarlos. Java EE también
configura algunas especificaciones únicas para Java EE para componentes. Estas
incluyen Enterprise JavaBeans, servlets, portlets (siguiendo la especificación de
Portlets Java), JavaServer Pages y varias tecnologías de servicios web. Esto
permite al desarrollador crear una Aplicación de Empresa portable entre
plataformas y escalable, a la vez que integrable con tecnologías anteriores. Otros
beneficios añadidos son, por ejemplo, que el servidor de aplicaciones puede
manejar transacciones, la seguridad, escalabilidad, concurrencia y gestión de los
componentes desplegados, significando que los desarrolladores pueden
concentrarse más en la lógica de negocio de los componentes en lugar de en
tareas de mantenimiento de bajo nivel.

La especificación original J2EE fue desarrollada por Sun Microsystems.
Comenzando con J2EE 1.3, la especificación fue desarrollada bajo el Java
Community Process. JSR 58 especifica J2EE 1.3 y JSR 151 especifica J2EE 1.4.
El SDK de J2EE 1.3 fue distribuida inicialmente como beta en abril de 2001. La
beta del SDK de J2EE 1.4 fue distribuida por Sun en diciembre de 2002.
La especificación Java EE 5 fue desarrollada bajo el JSR 244 y el lanzamiento
final se hizo el 11 de mayo de 2006.
J2SE
Java Platform, Standard Edition o Java SE (conocido anteriormente hasta la
versión 5.0 como Plataforma Java 2, Standard Edition o J2SE), es una colección
de APIs del lenguaje de programación Java útiles para muchos programas de la
Plataforma Java. La Plataforma Java 2, Enterprise Edition incluye todas las clases
en el Java SE, además de algunas de las cuales son útiles para programas que se
ejecutan en servidores sobre workstations.
Comenzando con la versión J2SE 1.4 (Merlin), la plataforma Java SE ha sido
desarrollada bajo la supervisión del Java Community Process. JSR 59 la
especificación para J2SE 1.4 y JSR 176 especificó J2SE 5.0 (Tiger). En 2006,
Java SE 6 (Mustang) está siendo desarrollada bajo el JSR 270.
Lo siguiente son descripciones de algunos de los principales paquetes Java SE.

      java.applet
Creado para soportar la creación de applet Java, el paquete java.applet permite a
las aplicaciones ser descargadas sobre una red y ejecutarse dentro de una
sandbox. Las restricciones de seguridad son impuestas fácilmente en la sandbox.
Un desarrollador, por ejemplo, puede aplicar una firma digital a un applet, en
consecuencia etiquetándola como segura. Haciéndolo permite al usuario conceder
permiso al applet para realizar operaciones restringidas (tales como acceder al
disco duro local), y elimina alguna o todas las restricciones de la sandbox. Los
certificados digitales son emitidos por agencias como Thawte o Entrust.



      java.beans
Incluidos en el paquete java.beans hay varias clases para desarrollar y manipular
beans, componentes reutilizables definidos por la arquitectura JavaBeans. La
arquitectura suministra mecanismos para manipular propiedades de componentes
y lanzar eventos cuando esas propiedades cambian. La mayoría de las APIs en
java.beans están pensadas para su uso en herramientas de edición de beans, en
la cual los beans puedan combinarse, personalizarse y manipularse. Un tipo de
editor bean es el diseñador GUI en un entorno de desarrollo integrado(IDE).

      java.awt
La Abstract Window Toolkit contiene rutinas para soportar operaciones básicas
GUI y utiliza ventanas básicas desde el sistema nativo subyacente. Muchas
implementaciones independientes de la API Java implementan todo excepto AWT,
el cual no es usado por la mayoría de las aplicaciones de lado de servidor. Este
paquete también contiene la API de gráficos Java 2D.
   java.rmi
El paquete java.rmi suministra invocación a métodos remotos Java para soportar
llamadas a procedimientos remotos entre dos aplicaciones Java que se ejecutan
en diferentes JVM. Esto es esencial para tener en cuenta en la certificación



      java.security
Soporte para seguridad, incluyendo el algoritmo de resumen de mensaje, está
incluido en el paquete java.security.

      java.sql
Una implementación de la API JDBC (usada para acceder a bases de datos SQL)
se agrupa en el paquete java.sql.

      javax.rmi
suministra el soporte para la comunicación remota entre aplicaciones, usando el
protocolo RMI sobre IIOP. Este protocolo combina características de RMI y
CORBA.

      org.omg.CORBA
Suministra el soporte para comunicación remota entre aplicaciones usando
general inter ORB protocol y soporta otras características de common object
request broker architecture. Igual que RMI y RMI-IIOP, este paquete es para
llamar métodos remotos de objetos en otras máquinas virtuales (normalmente por
la red). De todas las posibilidades de comunicación CORBA es la más portable
entre varios lenguajes. Sin embargo es también un poco difícil de comprender.

      javax.swing
Swing es una colección de rutinas que se construyen sobre java.awt para
suministrar un toolkit de widgets independiente de plataforma. Swing usa las
rutinas de dibujado 2D para renderizar los componentes de interfaz de usuario en
lugar de confiar en el soporte GUI nativo subyacente del Sistema operativo.
Swing es un sistema muy rico por sí mismo, soportando pluggable looks and feels
(PLAFs) para que los controles(widgets) en la GUI puedan imitar a aquellos del
sistema nativo subyacente. Los patrones de diseño impregnan el sistema,
especialmente una modificación del patrón modelo-vista-controlador, el cual afloja
el acoplamiento entre función y apariencia. Una inconsistencia es que (para J2SE
1.3) las fuentes son dibujadas por el sistema nativo subyacente, limitando la
portabilidad de texto. Mejoras, tales como usar fuentes de mapas de bits, existen.
En general, las layouts(disposiciones de elementos) se usan y mantienen los
elementos dentro de una GUI consistente a través de distintas plataformas.
   javax.swing.text.html.parser
Suministra el parser de HTML tolerante a errores que se usa para escribir varios
navegadores web y web bots.




                                      J2ME
La plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition(J2ME), es
una especificación de un subconjunto de la plataforma Java orientada a proveer
una colección certificada de APIs de desarrollo de software para dispositivos con
recursos restringidos. Está orientado a productos de consumo como PDAs,
teléfonos móviles o electrodomésticos.
Java ME se ha convertido en una buena opción para crear juegos en teléfonos
móviles debido a que se puede emular en un PC durante la fase de desarrollo y
luego subirlos fácilmente al teléfono. Al utilizar tecnologías Java el desarrollo de
aplicaciones o videojuegos con estas APIs resulta bastante económico de portar a
otros dispositivos.




                                       JRE
También conocido como JRE, es un conjunto de utilidades que permite la
ejecución de programas Java. En su forma más simple, el entorno en tiempo de
ejecución de Java está conformado por una Máquina Virtual de Java o JVM, un
conjunto de bibliotecas Java y otros componentes necesarios para que una
aplicación escrita en lenguaje Java pueda ser ejecutada. El JRE actua como un
"intermediario" entre el sistema operativo y Java.
La JVM es el programa que interpreta el código Java mientras que las librerias de
clases estándar son las que implementan el API de Java. Ambas JVM y API deben
ser consistentes entre sí, de ahí que sean distribuidas de modo conjunto.
Un usuario sólo necesita el JRE para ejecutar las aplicaciones desarrolladas en
lenguaje Java, mientras que para desarrollar nuevas aplicaciones en dicho
lenguaje es necesario un entorno de desarrollo, denominado JDK, que además del
JRE (mínimo imprescindible) incluye, entre otros, un compilador para Java.
JVM
Una Máquina virtual Java (en inglés Java Virtual Machine, JVM) es un máquina
virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz
de interpretar y ejecutar instrucciones expresadas en un código binario especial (el
Java bytecode), el cual es generado por el compilador del lenguaje Java.
El código binario de Java no es un lenguaje de alto nivel, sino un verdadero código
máquina de bajo nivel, viable incluso como lenguaje de entrada para un
microprocesador físico. Como todas las piezas del rompecabezas Java, fue
desarrollado originalmente por Sun Microsystems.
La JVM es una de las piezas fundamentales de la plataforma Java. Básicamente
se sitúa en un nivel superior al Hardware del sistema sobre el que se pretende
ejecutar la aplicación, y este actúa como un puente que entiende tanto el
bytecode, como el sistema sobre el que se pretende ejecutar. Así, cuando se
escribe una aplicación Java, se hace pensando que será ejecutada en una
máquina virtual Java en concreto, siendo ésta la que en última instancia convierte
de código bytecode a código nativo del dispositivo final.
La gran ventaja de la máquina virtual java es aportar portabilidad al lenguaje de
manera que desde Sun Microsystems se han creado diferentes máquinas virtuales
java para diferentes arquitecturas y así un programa .class escrito en un Windows
puede ser interpretado en un entorno Linux. Tan solo es necesario disponer de
dicha máquina virtual para dichos entornos. De ahí el famoso axioma que sigue a
Java, "escríbelo una vez, ejecútalo en cualquier parte", o "Write once, run
anywhere".
Pero, los intentos de la compañía propietaria de Java y productos derivados de
construir microprocesadores que aceptaran el Java bytecode como su lenguaje de
máquina fueron más bien infructuosos.
La máquina virtual de Java puede estar implementada en software, hardware, una
herramienta de desarrollo o un Web browser; lee y ejecuta código precompilado
bytecode que es independiente de la plataforma multiplataforma. La JVM provee
definiciones para un conjunto de instrucciones, un conjunto de registros, un
formato para archivos de clases, la pila, un heap con recolector de basura y un
área de memoria. Cualquier implementación de la JVM que sea aprobada por
SUN debe ser capaz de ejecutar cualquier clase que cumpla con la especificación.
Existen varias versiones, en orden cronológico, de la máquina virtual de Java. En
general la definición del Java bytecode no cambia significativamente entre
versiones, y si lo hacen, los desarrolladores del lenguaje procuran que exista
compatibilidad hacia atrás con los productos anteriores.
A partir de J2SE 5.0, los cambios en la especificación de la JVM han sido
desarrollados bajo el auspicio de la Java Community Process (JCP) y especificada
en la JSR 924.[1] Desde el año 2006, cambios en la especificación para soportar
las modificaciones del formato del fichero de clases (JSR 202[2] ) se están
llevando a cabo en una versión de mantenimiento en la JSR 924. Las
especificaciones para la JVM están publicadas en lo que se conoce como "el libro
azul".[3] Así reza el prefacio: Esperamos que esta especificación documente
suficientemente la Máquina Virtual de Java para hacer posibles implementaciones
desde cero. Sun proporciona tests que verifican que las implementaciones de la
Máquina Virtual de Java opere correctamente
Kaffe es un ejemplo de una implementación de JVM desde cero. Sun es la
propietaria de la marca registrada "Java", que usa para certificar aquellas
implementaciones que se ajustan y son totalmente compatibles con sus
especificaciones.




                                  Bytes Code.
El bytecode es un código intermedio más abstracto que el código máquina.
Habitualmente es tratado como un fichero binario que contiene un programa
ejecutable similar a un módulo objeto, que es un fichero binario producido por el
compilador cuyo contenido es el código objeto o código máquina .
El bytecode recibe su nombre porque usualmente cada código de operación tiene
una longitud de un byte, si bien la longitud del código de las instrucciones varía.
Cada instrucción tiene un código de operación entre 0 y 255 seguido de
parámetros tales como los registros o las direcciones de memoria. Esta sería la
descripción de un caso típico, si bien la especificación del bytecode depende
ampliamente del lenguaje.
Como código intermedio, se trata de una forma de salida utilizada por los
implementadores de lenguajes para reducir la dependencia respecto del hardware
específico y facilitar la interpretación. Menos frecuentemente se utiliza el bytecode
como código intermedio en un compilador. Algunos sistemas, llamados traductores
dinámicos o compiladores just-in-time traducen el bytecode a código máquina
inmediatamente antes de su ejecución para mejorar la velocidad de ejecución.
Los programas en bytecode suelen ser interpretados por un intérprete de bytecode
(en general llamado máquina virtual, dado que es análogo a un ordenador). Su
ventaja es su portabilidad: el mismo código binario puede ser ejecutado en
diferentes plataformas y arquitecturas. Es la misma ventaja que presentan los
lenguajes interpretados. Sin embargo, como el bytecode es en general menos
abstracto, más compacto y más orientado a la máquina que un programa pensado
para su modificación por humanos, su rendimiento suele ser mejor que el de los
lenguajes interpretados. A causa de esa mejora en el rendimiento, muchos
lenguajes interpretados, de hecho, se compilan para convertirlos en bytecode y
después son ejecutados por un intérprete de bytecode. Entre esos lenguajes se
encuentran Perl, PHP y Python. El código Java se suele trasmitir como bytecode a
la máquina receptora, que utiliza un compilador just-in-time para traducir el
bytecode en código máquina antes de su ejecución.
Son asimismo interesantes los denominados p-Codes, similares a bytecodes pero
cuyos códigos de operación pueden constar de más de un byte y pueden ser
variables en tamaño, como los opcodes de muchas CPUs. Estos códigos trabajan
a muy alto nivel, incluyendo instrucciones del estilo de «imprime esta cadena» o
«borra la pantalla». Por ejemplo, BASIC utiliza p-Codes.




                            Garbage Collection
Un recolector de basura (del inglés, garbage collector) es un mecanismo implícito
de gestión de memoria implementado en algunos lenguajes de programación de
tipo interpretado o semi-interpretado.
Cuando un lenguaje dispone de recolección de basura, el programador no tiene
que invocar a una subrutina para liberar memoria. La reserva de memoria también
es más o menos automática sin la intervención del programador. Por ejemplo:
En los lenguajes orientados a objetos: se reserva memoria cada vez que el
programador crea un objeto, pero éste no tiene que saber cuanta memoria se
reserva ni cómo se hace esto.
En los lenguajes declarativos: cada vez que se construye una expresión se
reserva memoria (de una manera inteligente), pero el programador no es
consciente de ello.
Cuando se compila el programa, automáticamente se incluye en éste una
subrutina correspondiente al recolector de basura. Esta subrutina también es
invocada periódicamente sin la intervención del programador.
El recolector de basura es informado de todas las reservas de memoria que se
producen en el programa. Además, el compilador colabora para que sea posible
llevar una cuenta de todas las referencias que existen a un determinado espacio
de memoria reservado.
Cuando se invoca el recolector de basura, recorre la lista de espacios reservados
observando el contador de referencias de cada espacio. Si un contador ha llegado
a cero significa que ese espacio de memoria ya no se usa y, por tanto, puede ser
liberado.
Naturalmente, este proceso consume un cierto tiempo en el que no se hace nada
verdaderamente útil para el propósito del programa. Por tanto, no puede ser
invocado con demasiada frecuencia.
En consecuencia, el único inconveniente a este mecanismo es determinar cuándo
se tiene que ejecutar el recolector de basura. Existen varios algoritmos para
hacerlo, pero el más eficiente es el primero de ellos:
Esperar a que no quede memoria libre, y entonces, ejecutar el recolector de
basura.
Fijar un umbral de ocupación de la memoria libre y ejecutar el recolector de basura
cuando se supere dicho umbral.
Ejecutar el recolector de basura a intervalos regulares (no siempre es posible).
Ejecutar el recolector de basura justo antes de cada reserva de memoria.
Permitir al programador que invoque explícitamente al recolector de basura
cuando quiera.




                                       SDK
Un kit de desarrollo de software o SDK (siglas en inglés de software development
kit) es generalmente un conjunto de herramientas de desarrollo que le permite a
un programador crear aplicaciones para un sistema concreto, por ejemplo ciertos
paquetes de software, frameworks, plataformas de hardware, computadoras,
videoconsolas, sistemas operativos, etc.
Es algo tan sencillo como una interfaz de programación de aplicaciones o API (del
inglés application programing interface) creada para permitir el uso de cierto
lenguaje de programación, o puede, también, incluir hardware sofisticado para
comunicarse con un determinado sistema embebido. Las herramientas más
comunes incluyen soporte para la detección de errores de programación como un
entorno de desarrollo integrado o IDE (del inglés Integrated Development
Environment) y otras utilidades. Los SDK frecuentemente incluyen, también,
códigos de ejemplo y notas técnicas de soporte u otra documentación de soporte
para ayudar a clarificar ciertos puntos del material de referencia primario.
Los SDK como técnica de Marketing
Un programador suele recibir el SDK del desarrollador del sistema para el que se
está escribiendo el programa. Incluso, a veces el SDK puede descargarse de
Internet. De hecho, muchos SDKs se distribuyen gratuitamente para animar a los
desarrolladores a usar el sistema o el lenguaje. Así pues podemos deducir que a
veces son usados como herramientas de marketing, por ejemplo, Foo Products
distribuye el Widget SDK gratis para animar a la gente a utilizarlo. En
consecuencia mucha gente se anima a comprar muchos otros widgets suyos ya
que pueden programarlos gratuitamente.
Los proveedores de SDK para ciertos sistemas o subsistemas pueden utilizar un
término más específico que el de "software". Por ejemplo, tanto Microsoft como
Apple proveen Driver Development Kits (DDK) o kits para el desarrollo de drivers
para desarrollar drivers para dispositivos, y PalmSource distribuye su propio kit de
desarrollo como el PalmOS Development Kit (PDK) o kit de desarrollo para
PalmOS.

Contenu connexe

Tendances (20)

Carasteristicas de compiladores sheshar
Carasteristicas de compiladores shesharCarasteristicas de compiladores sheshar
Carasteristicas de compiladores sheshar
 
Tutorial de eclipse 2
Tutorial de eclipse 2Tutorial de eclipse 2
Tutorial de eclipse 2
 
Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)
 
Controles
ControlesControles
Controles
 
Software
SoftwareSoftware
Software
 
Clase No.2 Preparando el Ambiente de Java
Clase No.2 Preparando el Ambiente de Java Clase No.2 Preparando el Ambiente de Java
Clase No.2 Preparando el Ambiente de Java
 
PRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVAPRIMERA PRESENTACION JAVA
PRIMERA PRESENTACION JAVA
 
Clase2
Clase2Clase2
Clase2
 
Java
JavaJava
Java
 
JAVA
JAVAJAVA
JAVA
 
Semana9 Vbr
Semana9 VbrSemana9 Vbr
Semana9 Vbr
 
Fundamentos u3 v1
Fundamentos u3 v1Fundamentos u3 v1
Fundamentos u3 v1
 
Tecnologia Java
Tecnologia JavaTecnologia Java
Tecnologia Java
 
Que Es Java
Que Es JavaQue Es Java
Que Es Java
 
Curso Java Inacap
Curso Java InacapCurso Java Inacap
Curso Java Inacap
 
Presentación no numerica ii
Presentación no numerica iiPresentación no numerica ii
Presentación no numerica ii
 
java,conceptos basicos
java,conceptos basicosjava,conceptos basicos
java,conceptos basicos
 
Editores de texto PHP
Editores de texto PHPEditores de texto PHP
Editores de texto PHP
 
Compiladores (python)
Compiladores (python)Compiladores (python)
Compiladores (python)
 
Qué es java
Qué es javaQué es java
Qué es java
 

En vedette

Diseño de sistemas ii clase 1, 2 y 3
Diseño de sistemas ii clase 1, 2 y 3Diseño de sistemas ii clase 1, 2 y 3
Diseño de sistemas ii clase 1, 2 y 3Juanito Robyncito
 
Capitalizacionsimpleycompuesta
CapitalizacionsimpleycompuestaCapitalizacionsimpleycompuesta
CapitalizacionsimpleycompuestaSandro Dovaez
 
Etica en la investigación
Etica en la investigaciónEtica en la investigación
Etica en la investigaciónNancy Beita
 
Diario Digital Opinasistemas
Diario Digital OpinasistemasDiario Digital Opinasistemas
Diario Digital OpinasistemasPedro Chavez
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalkandennne
 
Web20 Hdmv
Web20 HdmvWeb20 Hdmv
Web20 Hdmvsidasa
 
Unión Europea
Unión EuropeaUnión Europea
Unión Europeagematic
 
Propiedades de la materia
Propiedades de la materiaPropiedades de la materia
Propiedades de la materiajirneyistorres
 
Individual Differences in Multimedia Learning: An Application in a Computer S...
Individual Differences in Multimedia Learning: An Application in a Computer S...Individual Differences in Multimedia Learning: An Application in a Computer S...
Individual Differences in Multimedia Learning: An Application in a Computer S...idescitation
 
Maqueta puerta corrediza
Maqueta puerta corredizaMaqueta puerta corrediza
Maqueta puerta corredizaNatalia Marin
 
Exposición de objetos de aprendizaje juan carlos flores ferrándiz
Exposición de objetos de aprendizaje   juan carlos flores ferrándizExposición de objetos de aprendizaje   juan carlos flores ferrándiz
Exposición de objetos de aprendizaje juan carlos flores ferrándizJuan Carlos Flores Ferrándiz
 
Mulheres Doadoras De Leite Humano
Mulheres Doadoras De Leite HumanoMulheres Doadoras De Leite Humano
Mulheres Doadoras De Leite HumanoBiblioteca Virtual
 

En vedette (20)

8. segunda era
8. segunda era8. segunda era
8. segunda era
 
Diseño de sistemas ii clase 1, 2 y 3
Diseño de sistemas ii clase 1, 2 y 3Diseño de sistemas ii clase 1, 2 y 3
Diseño de sistemas ii clase 1, 2 y 3
 
Capitalizacionsimpleycompuesta
CapitalizacionsimpleycompuestaCapitalizacionsimpleycompuesta
Capitalizacionsimpleycompuesta
 
Italia
ItaliaItalia
Italia
 
Etica en la investigación
Etica en la investigaciónEtica en la investigación
Etica en la investigación
 
Diario Digital Opinasistemas
Diario Digital OpinasistemasDiario Digital Opinasistemas
Diario Digital Opinasistemas
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Mecs
MecsMecs
Mecs
 
Web20 Hdmv
Web20 HdmvWeb20 Hdmv
Web20 Hdmv
 
Unión Europea
Unión EuropeaUnión Europea
Unión Europea
 
Curriculum
Curriculum Curriculum
Curriculum
 
Sistemas de informação
Sistemas de informaçãoSistemas de informação
Sistemas de informação
 
Propiedades de la materia
Propiedades de la materiaPropiedades de la materia
Propiedades de la materia
 
Individual Differences in Multimedia Learning: An Application in a Computer S...
Individual Differences in Multimedia Learning: An Application in a Computer S...Individual Differences in Multimedia Learning: An Application in a Computer S...
Individual Differences in Multimedia Learning: An Application in a Computer S...
 
éTica Do Antigo Testamento
éTica Do Antigo TestamentoéTica Do Antigo Testamento
éTica Do Antigo Testamento
 
Presentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las TecnologiasPresentacion Evolucion De Las Tecnologias
Presentacion Evolucion De Las Tecnologias
 
Maqueta puerta corrediza
Maqueta puerta corredizaMaqueta puerta corrediza
Maqueta puerta corrediza
 
Software
SoftwareSoftware
Software
 
Exposición de objetos de aprendizaje juan carlos flores ferrándiz
Exposición de objetos de aprendizaje   juan carlos flores ferrándizExposición de objetos de aprendizaje   juan carlos flores ferrándiz
Exposición de objetos de aprendizaje juan carlos flores ferrándiz
 
Mulheres Doadoras De Leite Humano
Mulheres Doadoras De Leite HumanoMulheres Doadoras De Leite Humano
Mulheres Doadoras De Leite Humano
 

Similaire à Trabajo de java

Similaire à Trabajo de java (20)

Java
JavaJava
Java
 
Glosario de terminos sobre Java
Glosario de terminos sobre JavaGlosario de terminos sobre Java
Glosario de terminos sobre Java
 
Jvm y variables de entorno
Jvm y variables de entornoJvm y variables de entorno
Jvm y variables de entorno
 
Introduccion a Java
Introduccion a JavaIntroduccion a Java
Introduccion a Java
 
J2 e
J2 eJ2 e
J2 e
 
Java Micro Edition "J2ME"
Java Micro Edition "J2ME"Java Micro Edition "J2ME"
Java Micro Edition "J2ME"
 
Sebastian santana 600182 cuestionario para la leccion 1
Sebastian santana 600182 cuestionario para la leccion 1Sebastian santana 600182 cuestionario para la leccion 1
Sebastian santana 600182 cuestionario para la leccion 1
 
C1 intro java
C1 intro javaC1 intro java
C1 intro java
 
Curso java desde cero nivel i - modulo i
Curso java desde cero   nivel i - modulo iCurso java desde cero   nivel i - modulo i
Curso java desde cero nivel i - modulo i
 
Programación de Software - Java
Programación de Software - JavaProgramación de Software - Java
Programación de Software - Java
 
CUESTIONARIO JAVA
CUESTIONARIO JAVACUESTIONARIO JAVA
CUESTIONARIO JAVA
 
Presentación Java que explica los elementos iniciales de programación en Java
Presentación Java que explica los elementos iniciales de programación en JavaPresentación Java que explica los elementos iniciales de programación en Java
Presentación Java que explica los elementos iniciales de programación en Java
 
Java
JavaJava
Java
 
Guia del trabajo con excepciones
Guia del trabajo con excepcionesGuia del trabajo con excepciones
Guia del trabajo con excepciones
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 
Ppt java
Ppt javaPpt java
Ppt java
 
Lenguaje de programacion java
Lenguaje de programacion javaLenguaje de programacion java
Lenguaje de programacion java
 
Trabajo java
Trabajo javaTrabajo java
Trabajo java
 
Que es java
Que es javaQue es java
Que es java
 
Lenguaje de programación Java
Lenguaje de programación JavaLenguaje de programación Java
Lenguaje de programación Java
 

Dernier

Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 

Dernier (20)

Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 

Trabajo de java

  • 1. J2EE Java Platform, Enterprise Edition o Java EE (anteriormente conocido como Java 2 Platform, Enterprise Edition o J2EE hasta la versión 1.4), es una plataforma de programación—parte de la Plataforma Java—para desarrollar y ejecutar software de aplicaciones en Lenguaje de programación Java con arquitectura de N niveles distribuida, basándose ampliamente en componentes de software modulares ejecutándose sobre un servidor de aplicaciones. La plataforma Java EE está definida por una especificación. Similar a otras especificaciones del Java Community Process, Java EE es también considerada informalmente como un estándar debido a que los suministradores deben cumplir ciertos requisitos de conformidad para declarar que sus productos son conformes a Java EE; estandarizado por The Java Community Process / JCP. Java EE incluye varias especificaciones de API, tales como JDBC, RMI, e-mail, JMS, Servicios Web, XML, etc y define cómo coordinarlos. Java EE también configura algunas especificaciones únicas para Java EE para componentes. Estas incluyen Enterprise JavaBeans, servlets, portlets (siguiendo la especificación de Portlets Java), JavaServer Pages y varias tecnologías de servicios web. Esto permite al desarrollador crear una Aplicación de Empresa portable entre plataformas y escalable, a la vez que integrable con tecnologías anteriores. Otros beneficios añadidos son, por ejemplo, que el servidor de aplicaciones puede manejar transacciones, la seguridad, escalabilidad, concurrencia y gestión de los componentes desplegados, significando que los desarrolladores pueden concentrarse más en la lógica de negocio de los componentes en lugar de en tareas de mantenimiento de bajo nivel. La especificación original J2EE fue desarrollada por Sun Microsystems. Comenzando con J2EE 1.3, la especificación fue desarrollada bajo el Java Community Process. JSR 58 especifica J2EE 1.3 y JSR 151 especifica J2EE 1.4. El SDK de J2EE 1.3 fue distribuida inicialmente como beta en abril de 2001. La beta del SDK de J2EE 1.4 fue distribuida por Sun en diciembre de 2002. La especificación Java EE 5 fue desarrollada bajo el JSR 244 y el lanzamiento final se hizo el 11 de mayo de 2006.
  • 2. J2SE Java Platform, Standard Edition o Java SE (conocido anteriormente hasta la versión 5.0 como Plataforma Java 2, Standard Edition o J2SE), es una colección de APIs del lenguaje de programación Java útiles para muchos programas de la Plataforma Java. La Plataforma Java 2, Enterprise Edition incluye todas las clases en el Java SE, además de algunas de las cuales son útiles para programas que se ejecutan en servidores sobre workstations. Comenzando con la versión J2SE 1.4 (Merlin), la plataforma Java SE ha sido desarrollada bajo la supervisión del Java Community Process. JSR 59 la especificación para J2SE 1.4 y JSR 176 especificó J2SE 5.0 (Tiger). En 2006, Java SE 6 (Mustang) está siendo desarrollada bajo el JSR 270. Lo siguiente son descripciones de algunos de los principales paquetes Java SE.  java.applet Creado para soportar la creación de applet Java, el paquete java.applet permite a las aplicaciones ser descargadas sobre una red y ejecutarse dentro de una sandbox. Las restricciones de seguridad son impuestas fácilmente en la sandbox. Un desarrollador, por ejemplo, puede aplicar una firma digital a un applet, en consecuencia etiquetándola como segura. Haciéndolo permite al usuario conceder permiso al applet para realizar operaciones restringidas (tales como acceder al disco duro local), y elimina alguna o todas las restricciones de la sandbox. Los certificados digitales son emitidos por agencias como Thawte o Entrust.  java.beans Incluidos en el paquete java.beans hay varias clases para desarrollar y manipular beans, componentes reutilizables definidos por la arquitectura JavaBeans. La arquitectura suministra mecanismos para manipular propiedades de componentes y lanzar eventos cuando esas propiedades cambian. La mayoría de las APIs en java.beans están pensadas para su uso en herramientas de edición de beans, en la cual los beans puedan combinarse, personalizarse y manipularse. Un tipo de editor bean es el diseñador GUI en un entorno de desarrollo integrado(IDE).  java.awt La Abstract Window Toolkit contiene rutinas para soportar operaciones básicas GUI y utiliza ventanas básicas desde el sistema nativo subyacente. Muchas implementaciones independientes de la API Java implementan todo excepto AWT, el cual no es usado por la mayoría de las aplicaciones de lado de servidor. Este paquete también contiene la API de gráficos Java 2D.
  • 3. java.rmi El paquete java.rmi suministra invocación a métodos remotos Java para soportar llamadas a procedimientos remotos entre dos aplicaciones Java que se ejecutan en diferentes JVM. Esto es esencial para tener en cuenta en la certificación  java.security Soporte para seguridad, incluyendo el algoritmo de resumen de mensaje, está incluido en el paquete java.security.  java.sql Una implementación de la API JDBC (usada para acceder a bases de datos SQL) se agrupa en el paquete java.sql.  javax.rmi suministra el soporte para la comunicación remota entre aplicaciones, usando el protocolo RMI sobre IIOP. Este protocolo combina características de RMI y CORBA.  org.omg.CORBA Suministra el soporte para comunicación remota entre aplicaciones usando general inter ORB protocol y soporta otras características de common object request broker architecture. Igual que RMI y RMI-IIOP, este paquete es para llamar métodos remotos de objetos en otras máquinas virtuales (normalmente por la red). De todas las posibilidades de comunicación CORBA es la más portable entre varios lenguajes. Sin embargo es también un poco difícil de comprender.  javax.swing Swing es una colección de rutinas que se construyen sobre java.awt para suministrar un toolkit de widgets independiente de plataforma. Swing usa las rutinas de dibujado 2D para renderizar los componentes de interfaz de usuario en lugar de confiar en el soporte GUI nativo subyacente del Sistema operativo. Swing es un sistema muy rico por sí mismo, soportando pluggable looks and feels (PLAFs) para que los controles(widgets) en la GUI puedan imitar a aquellos del sistema nativo subyacente. Los patrones de diseño impregnan el sistema, especialmente una modificación del patrón modelo-vista-controlador, el cual afloja el acoplamiento entre función y apariencia. Una inconsistencia es que (para J2SE 1.3) las fuentes son dibujadas por el sistema nativo subyacente, limitando la portabilidad de texto. Mejoras, tales como usar fuentes de mapas de bits, existen. En general, las layouts(disposiciones de elementos) se usan y mantienen los elementos dentro de una GUI consistente a través de distintas plataformas.
  • 4. javax.swing.text.html.parser Suministra el parser de HTML tolerante a errores que se usa para escribir varios navegadores web y web bots. J2ME La plataforma Java Micro Edition, o anteriormente Java 2 Micro Edition(J2ME), es una especificación de un subconjunto de la plataforma Java orientada a proveer una colección certificada de APIs de desarrollo de software para dispositivos con recursos restringidos. Está orientado a productos de consumo como PDAs, teléfonos móviles o electrodomésticos. Java ME se ha convertido en una buena opción para crear juegos en teléfonos móviles debido a que se puede emular en un PC durante la fase de desarrollo y luego subirlos fácilmente al teléfono. Al utilizar tecnologías Java el desarrollo de aplicaciones o videojuegos con estas APIs resulta bastante económico de portar a otros dispositivos. JRE También conocido como JRE, es un conjunto de utilidades que permite la ejecución de programas Java. En su forma más simple, el entorno en tiempo de ejecución de Java está conformado por una Máquina Virtual de Java o JVM, un conjunto de bibliotecas Java y otros componentes necesarios para que una aplicación escrita en lenguaje Java pueda ser ejecutada. El JRE actua como un "intermediario" entre el sistema operativo y Java. La JVM es el programa que interpreta el código Java mientras que las librerias de clases estándar son las que implementan el API de Java. Ambas JVM y API deben ser consistentes entre sí, de ahí que sean distribuidas de modo conjunto. Un usuario sólo necesita el JRE para ejecutar las aplicaciones desarrolladas en lenguaje Java, mientras que para desarrollar nuevas aplicaciones en dicho lenguaje es necesario un entorno de desarrollo, denominado JDK, que además del JRE (mínimo imprescindible) incluye, entre otros, un compilador para Java.
  • 5. JVM Una Máquina virtual Java (en inglés Java Virtual Machine, JVM) es un máquina virtual de proceso nativo, es decir, ejecutable en una plataforma específica, capaz de interpretar y ejecutar instrucciones expresadas en un código binario especial (el Java bytecode), el cual es generado por el compilador del lenguaje Java. El código binario de Java no es un lenguaje de alto nivel, sino un verdadero código máquina de bajo nivel, viable incluso como lenguaje de entrada para un microprocesador físico. Como todas las piezas del rompecabezas Java, fue desarrollado originalmente por Sun Microsystems. La JVM es una de las piezas fundamentales de la plataforma Java. Básicamente se sitúa en un nivel superior al Hardware del sistema sobre el que se pretende ejecutar la aplicación, y este actúa como un puente que entiende tanto el bytecode, como el sistema sobre el que se pretende ejecutar. Así, cuando se escribe una aplicación Java, se hace pensando que será ejecutada en una máquina virtual Java en concreto, siendo ésta la que en última instancia convierte de código bytecode a código nativo del dispositivo final. La gran ventaja de la máquina virtual java es aportar portabilidad al lenguaje de manera que desde Sun Microsystems se han creado diferentes máquinas virtuales java para diferentes arquitecturas y así un programa .class escrito en un Windows puede ser interpretado en un entorno Linux. Tan solo es necesario disponer de dicha máquina virtual para dichos entornos. De ahí el famoso axioma que sigue a Java, "escríbelo una vez, ejecútalo en cualquier parte", o "Write once, run anywhere". Pero, los intentos de la compañía propietaria de Java y productos derivados de construir microprocesadores que aceptaran el Java bytecode como su lenguaje de máquina fueron más bien infructuosos. La máquina virtual de Java puede estar implementada en software, hardware, una herramienta de desarrollo o un Web browser; lee y ejecuta código precompilado bytecode que es independiente de la plataforma multiplataforma. La JVM provee definiciones para un conjunto de instrucciones, un conjunto de registros, un formato para archivos de clases, la pila, un heap con recolector de basura y un área de memoria. Cualquier implementación de la JVM que sea aprobada por SUN debe ser capaz de ejecutar cualquier clase que cumpla con la especificación. Existen varias versiones, en orden cronológico, de la máquina virtual de Java. En general la definición del Java bytecode no cambia significativamente entre versiones, y si lo hacen, los desarrolladores del lenguaje procuran que exista compatibilidad hacia atrás con los productos anteriores. A partir de J2SE 5.0, los cambios en la especificación de la JVM han sido desarrollados bajo el auspicio de la Java Community Process (JCP) y especificada en la JSR 924.[1] Desde el año 2006, cambios en la especificación para soportar las modificaciones del formato del fichero de clases (JSR 202[2] ) se están
  • 6. llevando a cabo en una versión de mantenimiento en la JSR 924. Las especificaciones para la JVM están publicadas en lo que se conoce como "el libro azul".[3] Así reza el prefacio: Esperamos que esta especificación documente suficientemente la Máquina Virtual de Java para hacer posibles implementaciones desde cero. Sun proporciona tests que verifican que las implementaciones de la Máquina Virtual de Java opere correctamente Kaffe es un ejemplo de una implementación de JVM desde cero. Sun es la propietaria de la marca registrada "Java", que usa para certificar aquellas implementaciones que se ajustan y son totalmente compatibles con sus especificaciones. Bytes Code. El bytecode es un código intermedio más abstracto que el código máquina. Habitualmente es tratado como un fichero binario que contiene un programa ejecutable similar a un módulo objeto, que es un fichero binario producido por el compilador cuyo contenido es el código objeto o código máquina . El bytecode recibe su nombre porque usualmente cada código de operación tiene una longitud de un byte, si bien la longitud del código de las instrucciones varía. Cada instrucción tiene un código de operación entre 0 y 255 seguido de parámetros tales como los registros o las direcciones de memoria. Esta sería la descripción de un caso típico, si bien la especificación del bytecode depende ampliamente del lenguaje. Como código intermedio, se trata de una forma de salida utilizada por los implementadores de lenguajes para reducir la dependencia respecto del hardware específico y facilitar la interpretación. Menos frecuentemente se utiliza el bytecode como código intermedio en un compilador. Algunos sistemas, llamados traductores dinámicos o compiladores just-in-time traducen el bytecode a código máquina inmediatamente antes de su ejecución para mejorar la velocidad de ejecución. Los programas en bytecode suelen ser interpretados por un intérprete de bytecode (en general llamado máquina virtual, dado que es análogo a un ordenador). Su ventaja es su portabilidad: el mismo código binario puede ser ejecutado en diferentes plataformas y arquitecturas. Es la misma ventaja que presentan los lenguajes interpretados. Sin embargo, como el bytecode es en general menos abstracto, más compacto y más orientado a la máquina que un programa pensado para su modificación por humanos, su rendimiento suele ser mejor que el de los lenguajes interpretados. A causa de esa mejora en el rendimiento, muchos lenguajes interpretados, de hecho, se compilan para convertirlos en bytecode y después son ejecutados por un intérprete de bytecode. Entre esos lenguajes se
  • 7. encuentran Perl, PHP y Python. El código Java se suele trasmitir como bytecode a la máquina receptora, que utiliza un compilador just-in-time para traducir el bytecode en código máquina antes de su ejecución. Son asimismo interesantes los denominados p-Codes, similares a bytecodes pero cuyos códigos de operación pueden constar de más de un byte y pueden ser variables en tamaño, como los opcodes de muchas CPUs. Estos códigos trabajan a muy alto nivel, incluyendo instrucciones del estilo de «imprime esta cadena» o «borra la pantalla». Por ejemplo, BASIC utiliza p-Codes. Garbage Collection Un recolector de basura (del inglés, garbage collector) es un mecanismo implícito de gestión de memoria implementado en algunos lenguajes de programación de tipo interpretado o semi-interpretado. Cuando un lenguaje dispone de recolección de basura, el programador no tiene que invocar a una subrutina para liberar memoria. La reserva de memoria también es más o menos automática sin la intervención del programador. Por ejemplo: En los lenguajes orientados a objetos: se reserva memoria cada vez que el programador crea un objeto, pero éste no tiene que saber cuanta memoria se reserva ni cómo se hace esto. En los lenguajes declarativos: cada vez que se construye una expresión se reserva memoria (de una manera inteligente), pero el programador no es consciente de ello. Cuando se compila el programa, automáticamente se incluye en éste una subrutina correspondiente al recolector de basura. Esta subrutina también es invocada periódicamente sin la intervención del programador. El recolector de basura es informado de todas las reservas de memoria que se producen en el programa. Además, el compilador colabora para que sea posible llevar una cuenta de todas las referencias que existen a un determinado espacio de memoria reservado. Cuando se invoca el recolector de basura, recorre la lista de espacios reservados observando el contador de referencias de cada espacio. Si un contador ha llegado a cero significa que ese espacio de memoria ya no se usa y, por tanto, puede ser liberado. Naturalmente, este proceso consume un cierto tiempo en el que no se hace nada verdaderamente útil para el propósito del programa. Por tanto, no puede ser invocado con demasiada frecuencia.
  • 8. En consecuencia, el único inconveniente a este mecanismo es determinar cuándo se tiene que ejecutar el recolector de basura. Existen varios algoritmos para hacerlo, pero el más eficiente es el primero de ellos: Esperar a que no quede memoria libre, y entonces, ejecutar el recolector de basura. Fijar un umbral de ocupación de la memoria libre y ejecutar el recolector de basura cuando se supere dicho umbral. Ejecutar el recolector de basura a intervalos regulares (no siempre es posible). Ejecutar el recolector de basura justo antes de cada reserva de memoria. Permitir al programador que invoque explícitamente al recolector de basura cuando quiera. SDK Un kit de desarrollo de software o SDK (siglas en inglés de software development kit) es generalmente un conjunto de herramientas de desarrollo que le permite a un programador crear aplicaciones para un sistema concreto, por ejemplo ciertos paquetes de software, frameworks, plataformas de hardware, computadoras, videoconsolas, sistemas operativos, etc. Es algo tan sencillo como una interfaz de programación de aplicaciones o API (del inglés application programing interface) creada para permitir el uso de cierto lenguaje de programación, o puede, también, incluir hardware sofisticado para comunicarse con un determinado sistema embebido. Las herramientas más comunes incluyen soporte para la detección de errores de programación como un entorno de desarrollo integrado o IDE (del inglés Integrated Development Environment) y otras utilidades. Los SDK frecuentemente incluyen, también, códigos de ejemplo y notas técnicas de soporte u otra documentación de soporte para ayudar a clarificar ciertos puntos del material de referencia primario. Los SDK como técnica de Marketing Un programador suele recibir el SDK del desarrollador del sistema para el que se está escribiendo el programa. Incluso, a veces el SDK puede descargarse de Internet. De hecho, muchos SDKs se distribuyen gratuitamente para animar a los desarrolladores a usar el sistema o el lenguaje. Así pues podemos deducir que a veces son usados como herramientas de marketing, por ejemplo, Foo Products distribuye el Widget SDK gratis para animar a la gente a utilizarlo. En consecuencia mucha gente se anima a comprar muchos otros widgets suyos ya que pueden programarlos gratuitamente.
  • 9. Los proveedores de SDK para ciertos sistemas o subsistemas pueden utilizar un término más específico que el de "software". Por ejemplo, tanto Microsoft como Apple proveen Driver Development Kits (DDK) o kits para el desarrollo de drivers para desarrollar drivers para dispositivos, y PalmSource distribuye su propio kit de desarrollo como el PalmOS Development Kit (PDK) o kit de desarrollo para PalmOS.