Mca010. Manual Programación en Java. Manual Programación en Java. Sé diferente, intégrate. Fecha:20 /06 / 2013 AUTOR: ORLANDO GUTIERREZ

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Mca010. Manual Programación en Java. Manual Programación en Java. Sé diferente, intégrate. Fecha:20 /06 / 2013 AUTOR: ORLANDO GUTIERREZ"

Transcripción

1 Sé diferente, intégrate Mca010 Manual Programación en Java Fecha:20 /06 / 2013 AUTOR: ORLANDO GUTIERREZ Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 1

2 INDICE Pag. 5 Pag. 6 Pag. 7 Pag. 9 Pag. 13 Pag. 17 Pag. 20 Pag. 20 Pag. 21 Pag. 24 Pag. 36 Pag. 38 Pag. 39 Pag. 40 Pag. 42 Pag. 44 Pag. 46 Pag. 49 Pag. 55 Pag. 56 Pag. 56 Pag. 64 Pag. 65 Pag. 68 Lección 1 Introducción a la plataforma de computación Java Lección 2 Problemas con el desarrollo de software en la actualidad Lección 3 La solución ofrecida por la plataforma de computación Java Lección 4 Arquitectura de la plataforma de computación Java Lección 5 El lenguaje de programación Java Lección 6 Características del lenguaje Lección 7 Breve historia Lección 8 Máquina Virtual, JVM Lección 9 Compilación en Java Lección 10 La librería de clases de Java Lección 11 Los APIs de JAVA Lección 12 Tipos de aplicaciones en Java Lección 13 Ventajas y Desventajas de Java Lección 14 Comparación con otras plataformas de desarrollo Lección 15 Técnicas de programación en Java Lección 16 Clases Lección 17 Paquetes Lección 18 Variables y Tipos de datos Lección 19 Constantes Lección 20 Inicialización Lección 21 Estructuras de Control Lección 22 Estructuras de repetición Lección 23 Funciones Lección 24 Arreglos y Colecciones Pag. 83 Pag. 83 Lección 25 Manejo de Errores Lección 26 Excepciones en Java, palabra clave throwable Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 2

3 Pag. 85 Pag. 86 Pag. 87 Pag. 87 Pag. 89 Pag. 96 Pag. 96 Pag. 101 Lección 27 El objeto Exception Lección 28 Try Catch Finally Lección 29 Throw Lección 30 Encadenación de Excepciones Lección 31 Programación Orientada a Objetos Lección 32 Campos Lección 33 Métodos Lección 34 Constructores Pag. 102 Lección 35 Clases anidadas Pag. 102 Pag. 104 Pag. 106 Pag. 107 Pag. 108 Pag. 111 Pag. 112 Pag. 113 Pag. 114 Pag. 115 Pag. 119 Pag. 119 Pag. 121 Pag. 123 Pag. 128 Pag. 128 Pag. 130 Pag. 130 Pag. 131 Pag. 134 Lección 36 Alcance de clases y miembros public, private, protected y package Lección 37 Herencia Lección 38 Polimorfismo: Sobrecarga, Sobreescritura, coerción de tipos Lección 39 Miembros Static Lección 40 Eventos Lección 41 La clase Object Lección 42 Clases selladas (finales) y virtuales Lección 43 Interfaces Lección 44 Creando librerías de objetos y paquetes Lección 45 Plantillas (Genéricos) Lección 46 Espacios de nombres Lección 47 Reflexión Lección 48 Expresiones regulares Lección 49 Metadatos (Anotaciones) Lección 50 Programando con la librería de clases de Java Lección 51 Sistema unificado de tipos, tipos de valor y tipos de referencia Lección 52 Conversión de tipos "type safety" Lección 53 Boxing y Unboxing Lección 54 La clase String Lección 55 La clase StringBuffer Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 3

4 Pag. 137 Pag. 139 Pag. 142 Pag. 142 Pag. 143 Pag. 144 Pag. 145 Lección 56 Vectores en Java Lección 57 Tablas de Hashing en Java Lección 58 Tipos de datos numéricos Lección 59 La clase DateFormat Lección 60 Enumeraciones Lección 61 Caso de estudio: applets Lección 62 Caso de estudio: JavaBeans Pag. 147 Lección 63 La palabra reservada (keyword) strictfp Pag. 148 Pag. 149 Pag. 150 Pag. 151 Lección 64 Palabra reservada assert Lección 65 varargs Lección 66 Super paquetes Lección 67 Closures Pag. 152 Lección 68 Estudio y comparación de las diferentes versiones de Java Edicion Standard (JSE) : JDK 1.0, JDK 1.1, J2SE 1.2, J2SE 1.3, J2SE 1.4, J2SE 5.0, Java SE 6, Java SE 7 Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 4

5 LECCION 1 Introducción a la plataforma de computación Java En la siguiente figura se muestra la plataforma de computación Java para la edición estándar. Java es más que un lenguaje de Programación, es también una plataforma de computación debido a que ofrece una cantidad de servicios como acceso a redes, seguridad y acceso de información, servicios de middleware, servicio de acceso a base de datos, servicio de ejecución remota de procesos, servicio de nombres para implementar los conceptos de localidad entre otros. Java se encuentra diseñado primordialmente para trabajar en Internet y por lo tanto es una plataforma de computación distribuida. La plataforma de computación Java podría ser dividida en dos grandes grupos, el ambiente de desarrollo y el ambiente de ejecución. EL AMBIENTE DE DESARROLLO EN JAVA La programación en Java se realiza a través del SDK (Software Development Kit). El SDK de java ofrece varios servicios, siendo el más importante el de compilación el cual traduce el código fuente a código entendible por la máquina virtual de Java el JVM (Java Virtual Machine). Además a la compilación, se encuentran disponibles los servicios de depuración y documentación automática para las clases. La mayor ventaja de Java sobre otros lenguajes de programación es la existencia de una librería de clases extensa y poderosa. Desde el punto de vista de los programadores esta librería de clases es utilizada como un API (Application Programming Interface) o Interfaz de Programación de Aplicaciones. Los API en Java, como se observa en la figura son agrupados en tres grandes grupos: Los API principales core, los API de integración y los API para el desarrollo de interfaces gráficas. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 5

6 Los API core contienen todos los constructores del lenguaje de programación Java, los utilitarios para el manejo de estructuras de datos como vectores, la entrada/salida a través de los archivos y dispositivos, el manejo de la red, el soporte a XML, Los API de integración permiten realizar la conexión con bases de datos a través de JDBC Java DataBase Connectivity, el manejo de los servicios de middleware a través de CORBA Common Object Request Broker Architecture, el manejo de ejecución remota de procesos a través de RMI Remote Machine Invocation. Los API para el desarrollo de interfaces gráficas se concentran en dos grandes grupos. AWT Abstract Windowing Toolkit y Swing la cual se apega al estandard JFC Java Foundation Class. EL AMBIENTE DE EJECUCIÓN EN JAVA El ambiente de ejecución de Java es conocido como el JRE (Java Runtime Environment) El ambiente de ejecución en Java se fundamenta en el concepto de máquina virtual, Java Virtual Machine. Como se observa en la figura, la JVM es la capa de software que tiene el contacto directo con la plataforma de computación. Debido a la existencia del JVM, Java es independiente de la plataforma. La JVM debe ser instalada en cada máquina para tener disponible la plataforma de computación Java y esta se encarga de ejecutar un código que es independiente de la plataforma. La JVM recibe como entrada código compilado en Java en archivos.class y se encarga de interpretarlo en código asociado con la plataforma. De esta manera es posible la portabilidad absoluta de código en Java. Como se observa en la figura, todas las librerías de clases o API disponibles en el ambiente de desarrollo son soportadas por la plataforma de ejecución de Java. LECCION 2 Problemas con el desarrollo de software en la actualidad INTRODUCCIÓN Los problemas del área de desarrollo de Software se pueden clasificar en dos grandes áreas. En primer lugar el desarrollo propiamente dicho y en segundo lugar, no menos importante, la integración con otras aplicaciones o procesos de los negocios. Ambas áreas sufren de los males de no ofrecer portabilidad. La portabilidad puede referirse al área de los lenguajes de Programación (más asociada al desarrollo) o a la plataforma donde se ejecutan las aplicaciones. Es bien conocido, que una clase implementada en C++ podría no ser re-utilizada por una aplicación desarrollada en Java. Más crítico aún, que dos programas escritos en el mismo lenguaje, pero en diferentes plataformas no son compatibles. En el área de desarrollo propiamente dicho, existe otro mal aún más preocupante, el mantenimiento de las soluciones. En muchas ocasiones se requiere agregar una funcionalidad a una aplicación, sin necesidad de alterar el funcionamiento de las otras partes, como si se tratara de cambiar la pieza de un rompecabezas sin necesidad de destruir lo resto ya armado. La panacea del desarrollo de software es lograr aplicaciones que puedan ejecutarse en cualquier momento (robustez y disponibilidad), en cualquier lugar (independencia de plataforma y accesibilidad), comunicarse con cualquier otra (integración transparente, independencia del lenguaje e independencia de la plataforma). Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 6

7 ARQUITECTURAS DE DESARROLLO DE APLICACIONES La arquitectura de las aplicaciones ha evolucionado de la siguiente manera: 1. StandAlone o aplicaciones Cliente Las aplicaciones realizan el proceso en una sola máquina, siendo un ente monolítico que no se comunica. Los Datos, las interfaces con el usuario y los programas que resuelven el problema se encuentran todos en la misma estructura. 2. Cliente-Servidor En este caso se separan los datos de las aplicaciones, pudiéndose compartir los datos entre varias aplicaciones. Se poseen dos capas. La capa de datos, realiza el manejo de los mismos. La capa del cliente contiene las interfaces con el usuario y los programas que resuelven el problema. 3. Arquitectura de 3 capas En este caso se separa la lógica para la resolución del problema de la interfaz con el usuario. De esta manera, adicionalmente a las ventajas ofrecidas en el caso cliente-servidor se añade la separación de la interfaz con el usuario, permitiendo acceder a las funciones de la lógica de resolución del problema empleando distintas interfaces. 4. Arquitectura múltiple-capas El siguiente paso ( stage ) consiste en dividir la lógica de resolución del problema en varias capas, logrando independencia entre las mismas. Esta abstracción permite dividir los negocios por roles y responsabilidades y separar la lógica del negocio aplicando la estructura funcional de la misma. LECCION 3 La solución ofrecida por la plataforma de computación Java FUNDAMENTOS DE JAVA Java esta diseñado para desarrollar aplicaciones distribuidas y con múltiples-capas ( n-tier ) en ambiente WEB; lo cual no limita a desarrollar aplicaciones stand-alone o de cualquier otro tipo. Uno de los principales objetivos de la plataforma de computación Java es el desarrollo de Servicios Web basados en XML( XML Web Services ), compitiendo par a par con la plataforma de computación de.net. Para lograr el objetivo anteriormente introducido, el cual requiere portabilidad y seguridad; el compilador de Java (javac) genera código portable (en archivos.class) el cual se ejecuta en el motor de ejecución de aplicaciones JVM (Java Virtual Machine). El lenguaje de programación Java permite: 1. Simplificar el proceso de programación a través de una herramienta totalmente orientada por objetos, donde se reduce y simplifica el proceso de programación. Además de soportar una metodología consistente. 2. Reutilización de código y mantenimiento incremental añadiendo nuevas funciones a las soluciones. 3. Legibilidad y Mantenibilidad del código. 4. Soportar a los programadores, evitando al máximo los errores en la codificación 5. Desarrollar aplicaciones más robustas y más fáciles de depurar. CONCEPTOS Y PODER EXPRESIVO DEL LENGUAJE Java es considerado un lenguaje orientado por objetos ya que soporta naturalmente los conceptos de herencia, polimorfismo, encapsulamiento, sobrecarga, y ocultamiento de información. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 7

8 Java también es un lenguaje fuertemente tipado, los tipos de datos deben ser definidos y en tiempo de compilación se puede realizar chequeo de tipos. Además se puede forzar a declarar explícitamente todas las variables utilizadas. En el resto de este manual se cubrirá la solución ofrecida por la plataforma Java, cómo se logra la independencia de la plataforma, la librería de clases disponible en la plataforma, las técnicas de programación en Java y Programación Orientada por Objetos en Java. CARACTERÍSTICAS DE LA PLATAFORMA DE COMPUTACIÓN JAVA Java es plataforma desarrollada por Sun Microsistems para mejorar la productividad y simplificar el proceso de desarrollo de aplicaciones en un ambiente altamente distribuido como lo es Internet, aunque no limitando al desarrollo únicamente en Internet. El desarrollar aplicaciones en ambiente Internet resuelve varios de los problemas de portabilidad ya que la comunicación entre aplicaciones se realiza a través de protocolos estándar como HTTP, SOAP basado en XML, etc. Otra de las ventajas de Internet es que permite integrar en una página WEB la invocación a un JSP (Java Server Page, desarrollado en JAVA) con la invocación a un ASP (ActiveX Server Page, desarrollado en ambiente Microsoft). La plataforma de computación Java permite independencia del lenguaje, a través del JVM Java Virtual Machine. Las clases desarrolladas en Java son compiladas, generando código en archivos.class el cual es controlado en tiempo de ejecución por el JVM. ARQUITECTURA DE DESARROLLO DE APLICACIONES Java soporta el desarrollo de aplicaciones cliente, cliente-servidor, tres capas, múltiples capas convencionales, servicios WEB, y aplicaciones combinando múltiples capas convencionales con servicios WEB. DESARROLLO DE APLICACIONES CLIENTE STAND ALONE Las aplicaciones cliente se ejecutan en una máquina y pueden ser consideradas piezas monolíticas. En este tipo de aplicaciones se muestran ventanas o formularios al usuario, permitiéndole realizar una tarea. En las aplicaciones cliente se suelen emplear ventanas, menús, botones y otros elementos de la interfaz gráfica de usuario, y suelen tener acceso a recursos locales como el sistema de archivos y a dispositivos periféricos como las impresoras. Las clases disponibles en AWT (Abstract Winowing Toolkit) o en Swing (soportando JFC, Java Foundation Classes) están diseñadas para utilizarse en el desarrollo de GUI. Puede crear ventanas, botones, menús, barras de herramientas y demás elementos de pantalla fácilmente con la flexibilidad requerida para adaptarse a la evolución de las necesidades del problema a resolver. DESARROLLO DE APLICACIONES CLIENTE-SERVIDOR En este caso, las aplicaciones separan el manejo de datos de la lógica de la aplicación. Para el manejo de datos Java ofrece el API JDBC (Java Data Base Connectivity) permitiendo el acceso a la mayoría de los manejadores de Bases de Datos existentes). Adicionalmente ofrece el manejo de datos en formateo XML (extended Markup Language), el cual ofrece muchas posibilidades tanto en el manejo de datos como en la integración de aplicaciones. Para las interfaces gráficas con el usuario GUI se emplean las mismas funcionalidades descritas en las aplicaciones cliente. DESARROLLO DE APLICACIONES MÚLTIPLES CAPAS Java soporta el desarrollo de componentes con sus interfaces, siendo ideal para separar la lógica de los programas en múltiples capas. En esta caso, cada capa es un componente y el acceso a la implementación de la capa se define a través de una interfaz. Adicionalmente en Java se pueden desarrollar eficientemente Web Services y cada Web Service puede ser considerado como una capa. Un Web Service es un servicio disponible en la WEB, el servicio implementa una Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 8

9 funcionalidad específica y requiere de un protocolo para poder accederlo. El protocolo empleado para los Web services es el SOAP (Simple Object Access Protocol). De esta manera el Web service puede estar desarrollado en cualquier lenguaje, ser ejecutado en cualquier plataforma y para poder accederlo únicamente de Internet y respetar el protocolo (muy bueno para ser verdad, pero lo es). LECCION 4 Arquitectura de la plataforma de computación Java En la siguiente figura se muestra la plataforma de computación Java para la edición estándar. Java es más que un lenguaje de Programación, es también una plataforma de computación debido a que ofrece una cantidad de servicios como acceso a redes, seguridad y acceso de información, servicios de middleware, servicio de acceso a base de datos, servicio de ejecución remota de procesos, servicio de nombres para implementar los conceptos de localidad entre otros. En esta sección se consideran los componentes de la arquitectura describiéndolos brevemente. La arquitectura utiliza un modelo de capas, donde cada capa le ofrece servicios a la capa siguiente. La descripción comienza desde la capa más cercana al hardware, hasta llegar a las capas de mayor nivel de abstracción en el software. La descripción utilizada en este manual consdera la plataforma Java 2 platform, Standard Edition, v1.4 JAVA VIRTUAL MACHINE (JVM), MÁQUINA VIRTUAL La edición estándar de Java 2 SDK, ofrece dos implementaciones de la máquina virtual (VM) Java HotSpot Client VM Esta es la máquina virtual por defecto de Java2 tanto para el SDK como para el ambiente de ejecución (Java 2 Runtime Environment). Como su nombre lo indica, esta máquina se encuentra ajustada para ofrecer mejor rendimiento cuando se ejecutan aplicaciones en un ambiente de cliente. Esta mejora en el rendimiento se logra reduciendo el tiempo de arranque start-up de la aplicación y el manejo de la memoria (la huella o footprint ). Java HotSpot Server VM Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 9

10 Esta máquina virtual es diseñada para obtener máxima velocidad de ejecución de los programas en aplicaciones ejecutándose en un ambiente de servidor. Esta máquina virtual es invocada utilizando la línea de comando java con la opción -server. Por ejemplo java -server aplicacion1 A continuación se muestran las características de la tecnología Java HotSpot, comunes a ambas implementaciones de máquinas virtuales. COMPILADOR ADAPTIVO: Las aplicaciones son arrancadas launched empleando un interpretador estándar, pero el código es analizado a medida que se ejecuta para detectar cuellos de botella en el rendimiento o "hot spots". La máquina virtual Java HotSpot compila estas porciones de código críticas en rendimiento para mejorar el rendimiento, adicionalmente evita la compilación innecesaria del resto del código (el cual debería ser la mayoría del programa). La máquina virtual Java HotSpot también utiliza el compilador adaptivo para decidir, en tiempo de ejecución, la mejor manera de optimizar el código compilado empleando técnicas como in-lining. Desde el punto de vista del programador, es transparente la decisión sobre las estrategias de optimización de código, la máquina virtual de Java lo determina dinámicamente dependiendo del estado de la ejecución de la aplicación. ASIGNACIÓN RÁPIDA DE MEMORIA Y RECOLECCIÓN DE MEMORIA NO UTILIZADA GARBAGE COLLECTION : La máquina virtual de Java ofrece una asignación de memoria rápida para los objetos y un mecanismo efectivo y eficiente para realizar la recolección de memoria no utilizada. Nuevamente, la máquina virtual de java realiza este trabajo por el programador. SINCRONIZACIÓN DE PROCESOS THREAD : El lenguaje de programación Java permite la utilización de múltiples procesos concurrentemente, estos procesos son llamados "threads". La capacidad de manejo de threads permite la utilización de Java para realizar implementaciones escalables empleando servidores con múltiples procesadores y memoria compartida, soportando la programación paralela. API CENTRALES (CORE APIs): A continuación se describen las características básicas de los API (Interfaces de Programas de Aplicación) más básicos empleados en Java. Estos API se encuentran agrupados en paquetes. Paquete java.lang Provee las clases fundamentales del diseño del lenguaje de programación Java. En este paquete se encuentran los bloques del lenguaje de programación Paquete java.util Provee el soporte al modelo de eventos, el manejo de la colecciones y las facilidades de fecha y tiempo y un conjunto de clases utilitarias. Paquete java.io y Paquete java.nio Ofrecen la funcionalidad de entrada/salida a través de streams de datos, la serialización y el sistema de archivos. Java.nio (New IO) se introduce en la versión 1.4 ofreciendo nuevas características y mejorando el rendimiento. Paquete java.net Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 10

11 Provee el soporte de manejo de red en Java. Java.net soporta direccionamiento, establecimiento de conexiones TCP, envío y recibo de paquetes de datos via UDP, localización e identificación de recursos de red y manejo de seguridad. Interfaz Nativa de Java (JNI) JNI es una interfaz estándar de programación en Java soportando la escritura de código nativo en Java y permitiendo embeber código de la máquina virtual de Java dentro de una aplicación nativa. El objetivo de esta interfaz es lograr la compatibilidad binaria de librerías de métodos nativos a través de todas las implementaciones de máquina virtual en una plataforma determinada. Manejo de Seguridad Permite implementar seguridad en Java, a través de criptografía, manejo de certificados. Se encuentran implementados en los paquetes java.security.* XML en Java XML (Extensible Markup Language) es una manera flexible de compartir y transmitir información en la Web en intranet o en cualquier plataforma de computación. XML son archivos de texto basado en HTML y siguiendo unas reglas de formación. Una de las mayores ventajas es que XML es un lenguaje extensible siendo posible crear estructuras personalizadas para el manejo de la información en un documento XML. Java Beans El componente JavaBeans permite el desarrollo de componentes reusables, extendiendo la capacidad de la plataforma Java (escribe el código un sola vez y ejecútalo en cualquier lugar). JavaBeans es un paso adicional para el manejo de internetworking ya que puede operar con ActiveX, OpenDoc, and LiveConnect. APIs DE INTEGRACIÓN Estos API soportan los servicios de manejo de datos: Manejo de Bases de Datos, servicios de Middleware a través de CORBA (Common Object Request Broker Architecture), servicios de manejo de nombres y de directorios, servicios de acceso a objetos remotos en una arquitectura distribuida. Java RMI (Remote Method Invocation), Interfaz de máquina remota La interfaz remota de métodos permite desarrollar aplicaciones con objetos distribuidos siendo posible enviar un mensaje a un método, el cual se ejecuta en un servidor diferente al de la invocación, y obtener el resultado del mismo desde donde se invocó. Los paquetes implementando RMI en Java se encuentran en java.rmi.* JDBC (Java Data Base Connectivity), conectividad con las Bases de Datos El API JDBC provee acceso a los datos de una manera universal desde el lenguaje de programación Java. A través del API JDBC 3.0, es posible acceder virtualmente a cualquier fuente de datos, desde bases de datos relacionales hasta hojas de cálculo e inclusive archivos planos. El API JDBC 3.0 se compone de dos paquetes. El paquete java.sql y el paquete javax.sql, el cual incorpora capacidades de manejo del lado del servidor. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 11

12 JNDI (Java Naming and Directory Interface), Interfaces de directorios y servicios de nombres JNDI provee la funcionalidad de directorios y de nombres a las aplicaciones escritas en el lenguaje de programación Java. JNDI está diseñado para ser independiente de cualquier servicio de nombres específicos o cualquier servicio de directorios. La arquitectura de JNDI consiste de una interfaz de programa de aplicación API y una interfaz proveedora de servicios SPI. Las aplicaciones Java emplean este API para acceder a una variedad de servicios de nombres y de directorios. SPI habilita una variedad servicios de nombres y de directorios para ser incorporados plugged transparentemente, permitiendo a una aplicación de Java emplear el API de la tecnología JNDI para acceder a los servicios. CORBA COMMON OBJET REQUEST BROKER ARCHITECTURE La plataforma Java 2, provee un Object Request Broker (ORB) y dos modelos de Programación CORBA : CORBA ORB e Internet InterORB Protocol (IIOP). La tecnología CORBA ofrece servicios de middleware para implementar objetos distribuidos. La tecnología CORBA es parte integral de la plataforma Java 2. Consiste de un Object Request Broker (ORB), APIs para el modelo de programación RMI, y APIs para el modelo de programación IDL. APIs DESARROLLO DE INTERFACES GRÁFICAS CON EL USUARIO (GUI) La plataforma de computación Java ofrece dos APIs para el desarrollo de interfaces gràficas con el usuario. Java AWT y Java Swing. AWT (Abstract Windowing Toolkit): AWT provee un conjunto de APIs para construir componentes de interfaces de usuario como menús, botones, etiquetas, cajas de dialogo, cajas de chequeo y manejo de entrada de datos. Adicionalmente, AWT permite desplegar figuras en pantalla como óvalos y polígonos; y habilita a los desarrolladores para controlar el layout de la interfaz así como controlar las fuentes de las letras. Swing El API Swing de Java provee un componente GUI para ser empleado en interfaces de usuario. Swing se basa en JFC (Java Foundation Classes). Los APIs de Swing se encuentran escritos en Java sin poseer ninguna dependencia con las facilidades de GUI provistas por el sistema de operación donde se ejecuta. Esto permite que los componentes de GUI de Swing tenga un look-and-feel plugable que puede ser cambiado mientras una aplicación se ejecuta (en un PC es posible mostrar botones estilo Motif de la plataforma Unix) TECNOLOGÍAS DE PUESTA EN MARCHA ( DEPLOYMENT TECHNOLOGIES ) Esta capa de desarrollo permite la ejecución de programas en Java. Componente plug-in Este componente permite la ejecución de applets escritos en Java en los navegadores de web Netscape Navigator y en los navegadores Microsoft Internet Explorer. Java Web Start Java Web Start es una tecnología de puesta en marcha de aplicaciones que permite la ejecución de aplicaciones Java realizando un click desde un navegador. Esta tecnología permite descargar y ejecutar aplicaciones, como una hoja de cálculo o un chat en el cliente, sin necesidad de utilizar procesos de instalación complicados. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 12

13 HERRAMIENTAS DE DESARROLLO DE SOFTWARE Esta capa ofrece las herramientas empleadas por los desarrolladores para implementar programas escritos en el lenguaje de programación Java. Compilador de java javac La herramienta javac lee código fuente en java (archivos.java) conteniendo definiciones de clases e interfaces, y los compila produciendo archvios.class (uno para cada clase definida). Este código.class es independiente de la plataforma. Depurador de java jdb La herramienta jdb ayuda a los programadores a conseguir y depurar errores bugs en programas escritos en el lenguaje de programación Java. El depurador de java, jdb, es un depurador sencillo ejecutado como una línea de comando sobre clases en Java. Herramienta de documentación javadoc Javadoc es una herramienta que realiza un parsing sobre las declaraciones de tipo y los comentarios colocados dentro del código fuente y produce un conjunto de páginas HTML describiendo las clases, las interfaces, los constructores, los métodos y los campos. Arquitectura de depuración de la plataforma Java (JPDA) Java Platform Debugger Architecture (JPDA) consiste de tres interfaces diseñadas para utilizar por los depuradores en ambientes de desarrollo de desktop. La interfaz de depuración de la máquina virtual define los servicios soportados por ésta para realizar la depuración. El protocolo Java Debug Wire define el formato de la información y los requerimientos transferidos entre los procesos durante un proceso de depuración. LECCION 5 El lenguaje de programación Java INTRODUCCIÓN Java es un lenguaje de programación orientado por objetos de alto nivel utilizado primordialmente en la programación de aplicaciones WEB. Java, además de ser un lenguaje de Programación es una plataforma de computación completa. En este curso únicamente cubriremos Java como lenguaje de programación. Existen varios ambientes integrados para el desarrollo de aplicaciones en Java como J++ y J# de Microsoft, JBuilder de Borland Inc o Eclipse de IBM. En este curso no se trabajaran con estos ambientes integrados sino que se emplearan las herramientas de desarrollo de programas SDK provistas por Sun Microsystems. La estructura de un proyecto en Java, como cualquier proyecto, es el resultado de aplicar las fases de diseño de software estudiadas. Durante el diseño se debe tender a conseguir los siguientes resultados: Listado de las tareas para las que se va a diseñar la aplicación Esquema de las dependencias de unas tareas con otras y, por tanto, de la interdependencia de cada una de las partes del programa. Criterios de comprobación de las tareas y de los resultados de las mismas. En el caso de las aplicaciones visuales, se tienen tres fases claramente definidas: Luego de la descripción de las tareas y sus objetivos se debe comenzar el diseño de la interfaz del usuario, que es lo que nos va a permitir la comunicación usuario-aplicación. Una segunda fase es la escritura del código fuente que debe responder a los posibles sucesos que se generan en tiempo de ejecución sobre los controles del soporte gráfico de la aplicación. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 13

14 La tercera fase es la comprobación de la correctitud de la aplicación a través de las pruebas necesarias para determinar si se producen los resultados para los que se diseñó la aplicación. En el caso de las aplicaciones no visuales, se tienen tres fases claramente definidas: Luego de la descripción de las tareas y sus objetivos se debe comenzar el diseño de la interacción a través de comandos en línea. Una segunda fase es la escritura del código fuente para implementar las respuestas a los posibles comandos. La tercera fase, al igual que el caso anterior, es la comprobación de la correctitud de la aplicación a través de las pruebas necesarias para determinar si se producen los resultados para los que se diseñó la aplicación. Todos los proyectos están compuestos por: Archivos.java: Contienen el código fuente de la aplicación, conjunto de procedimientos, métodos y funciones que implementan las tareas y/o comandos del sistema. En estos archivos de definen los módulos de la aplicación y pueden contener tareas de validación, cálculos, etc. Archivos.class: Archivos java compilados. Son los archivos utilizados por la máquina virtual de Java (JVM). Es importante recordar en el caso de Java por tratarse de ser un lenguaje diseñado para trabajar en múltiples plataformas no se generan archivos ejecutables. En su lugar, la JVM interpreta los archivos.class en código específico de la plataforma donde se ejecuta. Los archivos.java se compilan a través del comando javac <archivo.java> generándose los archivos.class. Para ejecutar la aplicación se utiliza el comando java <archivo> donde se especifica el archivo.class sin colocar la extensión. El comando java representa la máquina virtual de Java. En esta sección se resumen los componentes sintácticos y gramáticos del lenguaje de programación Java. En las sucesivas secciones se cubrirán en detalle cada uno de estos elementos o componentes. TIPOS, VALORES Y VARIABLES Java es un lenguaje de programación fuertemente tipado, de esta manera toda variable y/o expresión debe tener asociado un tipo y el mismo debe ser conocido a tiempo de compilación. Los tipos limitan los valores que pueden tomar las variables o los valores almacenados en una expresión ; así como las operaciones soportadas por el conjunto de valores y la semántica asociada con la operación. La característica de fuertemente tipado permite detectar errores en tiempo de compilación. Los tipos en Java son divididos en dos categorías: tipos primitivos (o de valor) y tipos de referencia. Los tipos primitivos son los tipos simples agrupados en valores lógicos y en valores numéricos. Los tipos de referencia los conforman las clases, las interfaces y los arreglos. Una variable es una localidad de almacenamiento en memoria. Una variable de un tipo primitivo almacena un valor del tipo respectivo. Una variable del tipo referencia almacena una referencia al objeto referenciado. CONVERSIONES DE TIPOS Cada expresión escrita en Java posee un tipo, el cual es calculado en tiempo de compilación a partir de la estructura de la expresión y de los tipos de las constantes, variables y métodos empleados por la expresión. El lenguaje de programación realiza la conversión explícitamente, y determina según el contexto posibles errores en la expresión. Por ejemplo, tratar de asignar una expresión del tipo double a una variable entera, o utilizar en una condición de una instrucción selectiva una expresión de un tipo diferente a boolean. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 14

15 NOMBRES Los nombres son utilizados para referir entidades (elementos) declaradas (definidos) en un programa. Una entidad declarada es un paquete, una clase, una interfaz, un miembro (campo) de un tipo de referencia, un parámetro o una variable local. Cada declaración especificando un nombre tiene un alcance asociado, el cual permite determina la visibilidad scope de la declaración. PAQUETES Los programas en Java son organizados en paquetes (descomposición de un sistema en sub-sistemas). Cada paquete posee un conjunto de nombres para tipos (clases e interfaces), lo cual ayuda a prevenir conflictos de nombres. Es posible tener dos tipos con el mismo nombre en diferentes paquetes, para eliminar la ambigüedad se utiliza el nombre del paquete como calificador. Por ejemplo, en el paquete Fig existe la clase Elipse y en el paquete Mat existe también la clase Elipse, para referirse a cada una de estas clases sin ninguna posibilidad de ambigüedad se coloca Fig.Elipse y Mat.Elipse. Un tipo definido en un paquete es accesible fuera del mismo si es declarado como público. La estructura de nombres asociada con los paquetes es jerárquica. Los paquetes son descompuestos en subpaquetes. CLASES Las clases en Java son el componente fundamental de la Programación orientada por objetos. Las definiciones (declaraciones) de clases definen nuevos tipos de referencia en Java y describen como son implementadas. Estructuralmente una clase se compone de campos. Los campos pueden ser propiedades o atributos y métodos u operaciones. Las propiedades o atributos representan los elementos de datos de la clases mientras que los métodos u operaciones representan el código asociado con la clase. Para acceder a los campos de la clase, independientemente se trate de propiedades o métodos se emplea el operador.. INTERFACES Otro de los mecanismos de programación orientada por objetos ofrecida en Java son las interfaces. Una interfaz permite relacionar clases independientes, las cuales implementan los métodos definidos en la interfaz. Una interfaz es un tipo de referencia compuesta de miembros, los cuales pueden ser clases, otras interfaces, constantes y métodos abstractos. Las interfaces no poseen implementación (únicamente agrupan elementos, lo cual es fundamental para implementar el concepto de polimorfismo), pero permiten a clases no relacionadas entre sí implementarlas escribiendo código para los métodos abstractos definidos en la interfaz. Un ejemplo de una interfaz es el caso de la interfaz Icomp (para realizar comparaciones) con un método virtual int comparar (object o1, object o2). Este método compara dos objetos de cualquier tipo y devuelve 0 si son iguales, +1 si o1 es mayor que o2 y 1 si o1 es menor que o2. De esta manera, cualquier clase puede implementar la interfaz Icomp implementando el método comparar y para comparar cualquier objeto con otro de su mismo tipo invoco al método comparar. ARREGLOS En el lenguaje de programación java, los arreglos son objetos creados dinámicamente, los cuales pueden ser asignados a variables del tipo Object. Todos los métodos de la clase Object pueden ser invocados en un arreglo. Un objeto arreglo almacena un número de variables. El número de variables puede ser 0, en ese caso el arreglo se considera como vacío. Las variables almacenadas en un arreglo no poseen nombres, en lugar se accede a estas con el operador [] empleando un valor de índice. Estas variables se conocen como los componentes del arreglo. Si un arreglo tiene n componentes, la longitud del arreglo es n y los posibles valores para los índices del arreglo varían desde 0 hasta n-1 inclusive. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 15

16 EXCEPCIONES Cuando un programa viola las restricciones (semánticas, las sintácticas se chequean en tiempo de compilación) de Java en tiempo de ejecución, la máquina virtual de java detecta esta excepción y le envía al programa una señal de error a través de un objeto del tipo exception. Un ejemplo de esta violación es el caso de una división por cero o tratar de acceder un índice de un arreglo más allá de su longitud. En algunos lenguajes de programación al ocurrir una excepción, el programa simplemente finaliza su ejecución. En el caso de Java, la excepción es capturada y el control es transferido a un punto del programa el cual debe ser explícitamente indicado por el programador. Una excepción es manejada cuando este código de transferencia es codificado por el programador y capturada cuando se especifica este punto de código. EJECUCIÓN DE UN PROGRAMA EN JAVA La máquina virtual de java comienza la ejecución cargando el código de la clase especificada y luego invocando el método main codificado en esta clase. Los pasos para la ejecución de un programa en java son los siguientes: Compilar los archivos de código fuente.java con el comando javac, produciendo lo archivos.class (uno por cada clase definida). Los archivos.class contienen el código compilado asociado con la clase. Ejecutar en la máquina virtual el código de la clase conteniendo el método main, empleando el comando java BLOQUES E INSTRUCCIONES La secuencia de ejecución de un programa es controlada por las instrucciones, las cuales son ejecutadas y producen los resultados para los cuales fueron programadas. Las instrucciones son agrupadas en bloques aplicando los principios de programación estructurada. En Java el primer nivel de agrupación de instrucciones son los métodos (agrupando instrucciones definidas u otros métodos), luego las clases (agrupando métodos, en programación modular una clase equivale a un módulo), luego los paquetes (agrupando clases, en programación modular un paquete equivale a un subsistema) y finalmente en un sistema. Java soporta cuatro bloques típicos de instrucciones: 1. Instrucciones secuenciales: se ejecutan una detrás de otra y se separan por la instrucción,. 2. Instrucciones condicionales o selectivas: permite la ejecución condicional de un bloque de instrucciones. 3. Instrucciones repetitivas: permite la ejecución repetitiva de un bloque de instrucciones mientras se cumpla una condición. 4. Instrucciones concurrentes o paralelas: debido a que Java es un lenguaje de programación concurrente ofrece mecanismos de programación para disparar la ejecución concurrente de pedazos de programas en plataformas de computación distribuida (múltiples procesadores) con memoria compartida. Adicionalmente Java soporta instrucciones manejando la terminación anormal de programas. EXPRESIONES Gran parte del código de un programa en Java emplea expresiones. Las expresiones son evaluadas por Java, pudiendo causar efectos secundarios como las asignaciones, u obtener valores. Las expresiones pueden ser utilizadas como argumentos de métodos u operandos en expresiones más largas, o para controlar la secuencia de ejecución de las instrucciones en los bloques condicionales y en los bloques repetitivos. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 16

17 CONCURRENCIA La máquina virtual de Java puede soportar varios hilos de ejecución ( threads ) concurrentemente. Estos threads ejecutan código independiente los cuales operan sobre valores y objetos almacenados en memoria compartida. Los threads también pueden ser utilizados en arquitecturas de múltiples procesadores o por sistemas con único procesador, pero múltiples proceso. Java soporta concurrencia a través de mecanismos de sincronización, de modo de darle un control determinístico a los programas. Para sincronizar los threads, Java emplea monitores. Los monitores, son un mecanismo de programación de alto nivel, permitiendo ejecutar la región de código protegida por el monitor por un solo thread a la vez. Java también emplea el concepto de candados para el manejo de la concurrencia LECCION 6 Características del lenguaje Java es un lenguaje de propósito general, soportando concurrencia y desde el punto de vista de programación es totalmente orientado por objetos y basado en clases. El diseño del lenguaje permite lograr independencia de implementación (independencia de plataforma, de hardware ). Java permite desarrollar al programador código para poder ser ejecutado anywhere en Internet. Java se conforma en paquetes packages, cada paquete es un grupo de clases e interfaces totalmente relacionadas. Los tres paquetes core (básicos ) de java son : java.lang, java.io, y java.util. El paquete java.lang contiene todos los constructores del lenguaje, el paquete java.io permite ejecutar la entrada y salida básica de las aplicaciones en Java y el paquete java.util contiene un grupo de utilitarios básicos y poderosos para desarrollar programas como: contenedores, tablas de hashing, vectores y muchos de los constructores de programación disponibles en los patrones de diseño. Java es una plataforma de software desarrollada por Sun Microsystems. Esta plataforma ha sido desarrollada de tal manera que los programas desarrollados para ella puedan ejecutarse de la misma forma en diferentes tipos de arquitecturas y dispositivos computacionales. La portabilidad de la plataforma se logra por la implementación de la máquina virtual. La sintaxis de Java se inspira en la la sintaxis de C++, pero su funcionamiento es más similar al de Smalltalk que a éste. Incorpora sincronización y manejo de tareas en el lenguaje mismo (similar a Ada) e incorpora interfaces como un mecanismo alternativo a la herencia múltiple de C++. A finales de los 90s, Java llegó a ser el lenguaje de mayor acogida para programas de servidor. Utilizando una tecnología llamada JSP (similar a ASP de Microsoft), se hizo muy fácil escribir páginas dinámicas para sitios de Internet. Sumado a esto, la tecnología de JavaBeans, al incorporarse con JSP, permitía utilizar el patrón MVC (modelo-vista-controlador) que ya tanto se había aplicado a interfaces gráficas. Java llegó a ser extremadamente popular cuando Sun Microsystems introdujo la plataforma y el modelo de programación J2EE (Java 2 Enterprise Edition). Este modelo permite una separación entre la presentación de los datos al usuario (JSP o Applets), el modelo de datos (EJB), y el control (Servlets). Enterprise Java Beans (EJB) que es una tecnología de objetos distribuidos permitiendo la creación de una plataforma de objetos distribuidos con un monitor de transacciones. Con este nuevo estándar, empresas como BEA, IBM, Sun Microsystems, Oracle y otros crearon nuevos "servidores de aplicaciones" que tuvieron gran acogida en el mercado. Además de programas del servidor, Java permite escribir programas de interfaz gráfica o textual. Además se pueden correr programas de manera incorporada o embebida en los navegadores web de Internet, aunque estas aplicaciones ejecutándose del lado del cliente no han llegado a ser tan populares, tal como se esperaba con su diseño. Los programas en Java generalmente son compilados a un lenguaje intermedio, y luego interpretados por una máquina virtual (JVM). Esta última sirve como una plataforma de abstracción entre la máquina y el lenguaje permitiendo que se pueda "escribir el programa una vez, y correrlo en cualquier lado". También existen compiladores nativos de Java, tanto comercial como libre de costos. A continuación se agrupan las características del lenguaje de programación Java Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 17

18 SIMPLICIDAD Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de seguridad, pero C y C++ son lenguajes más difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar un rápido y fácil aprendizaje. Java elimina muchas de las características de otros lenguajes como C++, para mantener reducidas las especificaciones del lenguaje y añadir características muy útiles como el garbage collector (control de memoria dinámica). No es necesario preocuparse de liberar memoria, el controlador se encarga de ello y como es un thread de baja prioridad, cuando entra en acción, permite liberar bloques de memoria muy grandes, reduciendo la fragmentación de la memoria. Java reduce en un 50% los errores más comunes de programación con lenguajes como C y C++ al eliminar muchas de las características de éstos, entre las que destacan: a) manipulación de apuntadores b) no existen referencias c) registros (struct) d) definición de tipos (typedef) e) macros (#define) f) necesidad de liberar memoria (free) ORIENTACIÓN POR OBJETOS Java es totalmente orientado por objetos, los programas son un conjunto de clases e interfaces. Soporta las tres características propias del paradigma de la orientación por objetos: encapsulamiento, herencia y polimorfismo. Las instancias de las clases son conocidas como objetos. No es posible tener piezas de código fuera de una clase o de una interfaz. Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolución dinámica de métodos. Las clases en Java tienen una representación en el tiempo de ejecución que permite a los programadores interrogar por el tipo de datos de un objeto y enlazar dinámicamente la clase con el resultado de la búsqueda. LENGUAJE CON FACILIDADES DE MANEJO DISTRIBUIDO Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen librerías de clases para acceder e interactuar con protocolos como http y ftp. Esto permite a los programadores acceder a la información a través de la red con tanta facilidad como a los archivos almacenados localmente en la máquina. ROBUSTEZ Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en tiempo de ejecución. El chequeo de tipos en Java ayuda a detectar errores, lo antes posible, en el ciclo de desarrollo. Java obliga a la declaración explícita de métodos, reduciendo así las posibilidades de error. Maneja la memoria, eliminando la posibilidad de mal uso de la misma o la corrupción de ésta. Los espacios de memoria asignados a los arreglos son chequeados de modo de evitar sobreescritura en zonas de memoria no válidas. INDEPENDENCIA DE PLATAFORMA El compilador Java (javac) compila su código a un archivo objeto (.class) de formato independiente de la arquitectura de la máquina donde se ejecutará. Cualquier máquina donde se instale la máquina virtual de java (JVM, Java Virtual Machine) puede ejecutar (interpretando) ese código objeto, sin importar en modo alguno la Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 18

19 máquina donde fue compilado. Actualmente existen máquinas virtuales para Solaris 2.x, SunOs 4.1.x, Windows 95, Windows NT, Linux, Irix, Aix, Mac, Apple. SEGURIDAD La seguridad en Java tiene dos facetas. No es posible tener acceso ilegal a la memoria debido a que no existen apuntadores y es un sistema fuertemente tipado (es el mismo caso del código administrado en la plataforma.net). En java además se pueden implementar servicios de autenticación y de autorización sobre los componentes de los sistemas. Java permite chequear en tiempo de compilación a) El código no produce desbordamiento de operandos en la pila b) El tipo de los parámetros de todos los códigos de operación son conocidos y correctos c) No ha ocurrido ninguna conversión ilegal de datos, tal como convertir enteros en apuntadores d) El acceso a los campos de un objeto se sabe que es legal: public, private, protected e) No existe ningún intento de violar las reglas de acceso y seguridad establecidas Las aplicaciones de Java resultan extremadamente seguras, no es posible acceder a zonas delicadas de memoria o de sistema, con lo cual evitan la interacción de ciertos virus. Java no posee una semántica específica para modificar la pila de programa, la memoria libre o utilizar objetos y métodos de un programa sin los privilegios del kernel del sistema de operación. Respecto a la seguridad del código fuente, no ya del lenguaje, JDK proporciona un desemsamblador del código compilado, que permite que cualquier programa pueda ser convertido a código fuente, significando para el programador una vulnerabilidad total del código. Utilizando javap no se obtiene el código fuente original, pero sí es posible recuperar la lógica del programa. La protección de los programadores ante esto es utilizar llamadas a programas nativos, externos (incluso en C o C++) de forma que no sea posible reconstruir todo el código; aunque así se pierda portabilidad. Este es uno de los problemas de Java. PORTABILIDAD DE CÓDIGO Adicionalmente a la independencia de plataforma, Java implementa estándares de portabilidad para facilitar el desarrollo. Los enteros son siempre enteros y además, enteros de 32 bits en complemento a 2. Además, Java construye sus interfaces de usuario a través de un sistema abstracto de ventanas de forma que las ventanas puedan ser implantadas en entornos Unix, Pc o Mac. LA MÁQUINA VIRTUAL DE JAVA INTERPRETA EL CÓDIGO La máquina virtual de java (en tiempo de ejecución) ejecuta directamente el código objeto sin necesidad de producir el ejecutable. Java es más lento que otros lenguajes de programación, como C++, ya que debe ser interpretado y no ejecutado como sucede en cualquier programa tradicional. Debido a que Java es un lenguaje independiente del sistema operativo y del procesador que incorpore la máquina utilizada, es tanto interpretado como compilado. El código fuente se compila con javac produciendo archivos.class (llamado byte-code) CONCURRENCIA Java permite disparar múltiples hilos de ejecución de un programa (conocidos como threads ), permitiendo la ejecución de actividades simultáneas en un programa. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 19

20 El beneficio de ser miltithreaded consiste en un mejor rendimiento interactivo y mejor comportamiento en tiempo real. DINAMISMO Java se beneficia todo lo posible de la tecnología orientada a objetos. Java no intenta conectar todos los módulos que comprenden una aplicación hasta el tiempo de ejecución. Las librerías nuevas o actualizadas no paralizarán las aplicaciones actuales (siempre que mantengan el API anterior). Java también simplifica el uso de protocolos nuevos o actualizados. LECCION 7 Breve historia Originalmente, Java fue llamado Oak, y se encontraba diseñado para trabajar en aplicaciones electrónicas embebidas. El padre de Oak es James Gosling. Después de varios años de experiencia en el uso del lenguaje y las contribuciones significativas de otras personas del área como Ed Frank, Patrick Naughton, Jonathan Payne, y Chris Warth el diseño fue reorientado para trabajar en Internet y renombrado como Java, siendo el lenguaje que conocemos actualmente. Las especificaciones del lenguaje en su forma final fueron escritas por James Gosling, Bill Joy, Guy Steele, Richard Tuck, Frank Yellin, y Arthur van Hoff, con la colaboración de otros colegas. Java ha ido evolucionando, incorporando nuevas clases e implementaciones y algunos constructores de programación. Java se considera un lenguaje bastante maduro e inclusive empleado en aplicaciones comerciales (la edición empresarial considera la modelación de lógica del negocio en beans de Java reusables) y cuenta con una gran cantidad y variedad de programadores y usuarios. La primera especificación formal completa de Java, aparece en 1996 y se mantiene vigente en cuanto a los fundamentos del lenguaje y en cuanto a los constructores de programación. Existe mucho trabajo de investigación y experimentación en Java, proveyendo constantes mejoras y actualizaciones manteniendo la modernidad del lenguaje. Actualmente, Java tiene un fuerte competidor en Microsoft en la plataforma.net. LECCION 8 Máquina Virtual, JVM La máquina virtual de Java es la pieza fundamental del lenguaje de programación Java y de la plataforma de computación Java en cualquiera de las versiones y ediciones de la misma. Este componente es el responsable de lograr la independencia entre el "hardware" y el sistema de operación. Una de las mayores ventajas del JVM es la generación de código compilado (.class) de tamaño reducido y compacto y la habilidad de ofrecer una plataforma protegida o código controlado. Gracias a la JVM, un programa en Java no puede acceder a zonas de memoria no asignadas al programa ni modificar archivos o datos pertenecientes a otros usuarios. La máquina virtual de Java, es una abstracción de una máquina de computación. Al igual a una máquina de computación posee un conjunto de instrucciones entendibles por ésta y manipula diferentes áreas de memoria durante los procesos de computación. El primer prototipo de implementación de la JVM, realizado por Sun Microsystems, Inc., emulaba el conjunto de instrucciones de la máquina virtual de Java a través de un "software" cargado en un dispositivo "handheld" muy parecido a los hoy conocidos como "Personal Digital Assistant (PDA)". Las implementaciones actuales de las máquinas virtuales de Java y sus componentes como el ambiente de desarrollo "Software Develoment Kit" y el ambiente de tiempo de ejecución "Runtime Environment" emulan la máquina virtual en una gran cantidad de plataformas Windows, Solaris, Linux, etc. de una manera más sofisticada. Es importante destacar, que la tecnología de la máquina virtual de Java no asume ninguna tecnología particular de implementación, ningún tipo especial de "hardware" y ningún tipo especial de sistema de operación. La máquina virtual realiza un proceso de interpretación de línea por línea, traduciendo al código entendible por la unidad de procesamiento donde se ejecuta la aplicación. La máquina virtual de Java, no trabaja directamente con el código fuente de la aplicación (archivos.java). La JVM emplea el código compilado en formato binario (los archivos.class). Un archivo de clases contiene instrucciones de la JVM (los llamados bytecodes) y una tabla de símbolos para poder resolver las referencias. Todos los derechos reservados, prohibida la reproducción, Instituto Gala de Venezuela 20

INTRODUCCIÓN A JAVA. Índice

INTRODUCCIÓN A JAVA. Índice INTRODUCCIÓN A JAVA Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía 2 1 Qué es Java? La tecnología Java

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante Modulo 2. Inicio con Java Muchas veces encontramos en nuestro entorno referencias sobre Java, bien sea como lenguaje de programación o como plataforma, pero, que es en realidad Java?, cual es su historia?,

Más detalles

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas... .NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS Definiciones...2 C# y Java.....3 Similitudes...4 Ventajas...4 Definiciones Sobre J2EE J2EE (Java 2 Platform Enterprise Edition)

Más detalles

Tema 1: y el lenguaje Java 1.Programación orientada a objetos 2.El lenguaje Java 3.Compilación, bytecode y JVMs 4.Entornos de desarrollo Java 5.Java vs otros lenguajes OO Programación orientada a objetos

Más detalles

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA EE 5. Arquitectura, conceptos y ejemplos. JAVA EE 5. Arquitectura, conceptos y ejemplos. INTRODUCCIÓN. MODELO DE LA APLICACIÓN JEE5. El modelo de aplicación Java EE define una arquitectura para implementar servicios como lo hacen las aplicaciones

Más detalles

INF 473 Desarrollo de Aplicaciones en

INF 473 Desarrollo de Aplicaciones en INF 473 Desarrollo de Aplicaciones en Java Unidad II El Lenguaje de Programación Java Prof. José Miguel Rubio jose.rubio.l@ucv.cl jrubio@inf.ucv.cl PUCV Marzo 2008 1 Orígenes del Lenguaje Java 1991. James

Más detalles

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios Diplomado Java Descripción El lenguaje de programación Java es uno de los más utilizados hoy en día. Su potencia, simplicidad, funcionalidad y capacidad hacen que este lenguaje sea una de las herramientas

Más detalles

Seminario de Java. Contenido

Seminario de Java. Contenido Seminario de Java Programación Orientada a Objetos Curso 2006/2007 Contenido 1. Introducción 2. Primeros pasos con Java. El entorno Eclipse 3. La sintaxis del lenguaje Java 4. Clases y objetos 5. Cadenas

Más detalles

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

servicios. El API es definido al nivel de código fuente y proporciona el nivel de GLOSARIO API Application Program -ming- Interface Es la interfaz por la cual una aplicación accede al sistema operativo u a otros servicios. El API es definido al nivel de código fuente y proporciona el

Más detalles

Programación Java. M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx

Programación Java. M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx Programación Java M.C. Jorge Eduardo Ibarra Esquer Universidad Autónoma de Baja California jorgeeie@uabc.mx Febrero de 2006 Objetivos Conocer las características de la Tecnología Java Comprender las características

Más detalles

Novedades. Introducción. Potencia

Novedades. Introducción. Potencia Introducción Basado en el demostrado rendimiento y flexibilidad de la versión 8.5, Crystal Reports 9 presenta una amplia variedad de avanzadas funciones para que el diseño, entrega e integración de informes

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

Módulo 2. Inicio con Java

Módulo 2. Inicio con Java Módulo 2. Inicio con Java Objetivos: -Clasificar el lenguaje de programación Java según las formas de clasificar los lenguajes de programación. -Describir el funcionamiento de la plataforma Java. -Explicar

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

Tema 2: La Tecnología Java

Tema 2: La Tecnología Java Tema 2: La Tecnología Java 0 La Tecnología de Java Es : Un lenguaje de programación Similar a C/C++ sin los problemas de manejo de memoria. Un ambiente de desarrollo Compilador, intérprete, generados de

Más detalles

La Pirámide de Solución de TriActive TRICENTER

La Pirámide de Solución de TriActive TRICENTER Información sobre el Producto de TriActive: Página 1 Documento Informativo La Administración de Sistemas Hecha Simple La Pirámide de Solución de TriActive TRICENTER Información sobre las Soluciones de

Más detalles

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD 1 Java es un lenguaje de programación de Sun Microsystems originalmente llamado "Oak. James Gosling Bill Joy 2 Oak nació para programar pequeños dispositivos electrodomésticos, como los asistentes personales

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Java y Eclipse. Lenguajes y Entornos de Programación Libre

Java y Eclipse. Lenguajes y Entornos de Programación Libre Java y Eclipse Lenguajes y Entornos de Programación Libre El lenguaje Java Un poco de historia: 1990: James Gosling, responsable de una empresa filial creada por Sun Microsystems, empieza a diseñar Java

Más detalles

http://www.cem.itesm.mx/extension/ms

http://www.cem.itesm.mx/extension/ms Diplomado Programación orientada a objetos con Java y UML Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

CAPÍTULO 3 VISUAL BASIC

CAPÍTULO 3 VISUAL BASIC CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para

Más detalles

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1 Gerardo Lecaros Felipe Díaz Problemática Petición de salas de forma tradicional Solución J2EE Java 2 Platform, Enterprise Edition

Más detalles

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1) TECNOLOGÍAS (1/2) (L1) EJB ( Enterprise Java Beans ) JSP ( Java Server Pages ) JNDI ( Java Naming and Directory Interface ) JDBC ( Java Data Base Connectivity ) Java Mail JSF ( Java Server Faces ) TECNOLOGÍAS

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: EL PROCESO DE DISEÑO DE SISTEMAS DISTRIBUIDOS MANEJANDO LOS DATOS EN LOS SISTEMAS DISTRIBUIDOS DISEÑANDO SISTEMAS PARA REDES DE ÁREA LOCAL DISEÑANDO SISTEMAS PARA ARQUITECTURAS CLIENTE/SERVIDOR

Más detalles

Visión General de GXportal. Última actualización: 2009

Visión General de GXportal. Última actualización: 2009 Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explícito de

Más detalles

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

Arquitectura de Software

Arquitectura de Software Arquitectura de Software (Estilos Arquitectónicos) Universidad de los Andes Demián Gutierrez Mayo 2011 1 Diseño Arquitectónico Diseño Arquitectónico Arquitectura del Software Estilos Arquitectónicos Frameworks

Más detalles

Tema 1. Java: Conceptos generales

Tema 1. Java: Conceptos generales Introducción James Gosling (Sun Microsystems) inicia en 1991 un lenguaje para programación de electrodomésticos denominado OAK. En 1994 se le cambia el nombre por el de Java y se orienta a Internet. La

Más detalles

Programador en Plataforma Java y XML

Programador en Plataforma Java y XML Programador en Plataforma Java y XML Java Fundamentos Módulo 1: Java Básico Introducción En la presente unidad, se detalla los fundamentos de la tecnología Java, reconociendo las 3 plataformas que la conforman.

Más detalles

Java Básico. Introducción a Java. Copyright

Java Básico. Introducción a Java. Copyright Java Básico Introducción a Java Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano v1.0

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes

Más detalles

19. Packages o paquetes

19. Packages o paquetes Programación orientada a objetos con Java 201 19. Packages o paquetes Objetivos: a) Definir el concepto de paquete b) Interpretar el código fuente de una aplicación Java donde se utilicen paquetes c) Construir

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el

Más detalles

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms Patrones Patrones Es una solución reusable de problemas comunes. Los patrones solucionan problemas que existen en muchos niveles de abstracción. desde el análisis hasta el diseño y desde la arquitectura

Más detalles

Apéndice A Herramientas utilizadas

Apéndice A Herramientas utilizadas Apéndice A Herramientas utilizadas A.1 Java Media Framework El Java Media Framework (JMF) es una interfaz para el desarrollo de aplicaciones (API) e incorpora el manejo de audio y video en el lenguaje

Más detalles

Índice. Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador?

Índice. Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? INTRODUCCIÓN A JAVA 20/02/2007 Introducción a JAVA 2 Índice Qué es Java? La plataforma Java 2 La Máquina Virtual de Java Características principales Qué ventajas tengo como desarrollador? Bibliografía

Más detalles

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas Capítulo I Definición del problema y objetivos de la tesis 1.1 Introducción En la actualidad Internet se ha convertido en una herramienta necesaria para todas las personas ya que nos permite realizar diferentes

Más detalles

VISIÓN GENERAL HERRAMIENTAS COMERCIALES

VISIÓN GENERAL HERRAMIENTAS COMERCIALES VISIÓN GENERAL El servidor de MS SQL se ha convertido en un estándar en muchas partes de la América corporativa. Puede manejar volúmenes de datos grandes y se integra bien con otros productos de Microsoft.

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente.

computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente. Investigar Qué es un IIS? Internet Information Services o IIS es un servidor web y un conjunto de servicios para el sistema operativo Microsoft Windows. Originalmente era parte del Option Pack para Windows

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto Introducción: Sobre casi cualquier tema del quehacer humano que se aborde, existen

Más detalles

Entidad Formadora: Plan Local De Formación Convocatoria 2010

Entidad Formadora: Plan Local De Formación Convocatoria 2010 Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú

Más detalles

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado Centro de Capacitación en Tecnologías de la Información Desarrollo de Objetivo Dotar al alumno de la metodología y los fundamentos de la programación en Java usando la plataforma J2SE (Java 2 Standard

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com Introducción a los Servicios Web Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com Servicios Web y Soa En un contexto SOA y los servicios web son una oportunidad de negocios en la actualidad.

Más detalles

JAVA PARA PRINCIPIANTES

JAVA PARA PRINCIPIANTES UN POCO DE HISTORIA Java fue creado en 1991 por James Gosling de Sun Microsystems inicialmente llamado Oak que significa roble, esto debido a la cantidad de arboles que rodeaban el sitio donde este trabajaba.

Más detalles

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes. SISTEMAS DISTRIBUIDOS DE REDES 2.- MODELOS ORIENTADOS A OBJETOS DISTRIBUIDOS 2.1. Tecnologías de sistemas distribuidos Para la implementación de sistemas distribuidos se requiere de tener bien identificados

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Paradigmas de programación 2 Paradigmas de programación Paradigma de programación estructurada Enfatiza la separación datos de un programa

Más detalles

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

Estructuras de Sistemas Operativos

Estructuras de Sistemas Operativos Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar

Más detalles

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS La introducción de las redes locales marca una nueva etapa en la evolución de las computadoras personales al permitir ligar varias

Más detalles

TEMA: DESARROLLO DE APLICACIONES WEB INTERACTIVAS UTILIZANDO LA TÉCNICA AJAX AUTOR: MERY SUSANA ZAMBONINO BAUTISTA

TEMA: DESARROLLO DE APLICACIONES WEB INTERACTIVAS UTILIZANDO LA TÉCNICA AJAX AUTOR: MERY SUSANA ZAMBONINO BAUTISTA TEMA: DESARROLLO DE APLICACIONES WEB INTERACTIVAS UTILIZANDO LA TÉCNICA AJAX AUTOR: MERY SUSANA ZAMBONINO BAUTISTA AREA DEL TEMA: INGENIERÍA DE SOFTWARE OBJETIVO GENERAL Desarrollar aplicaciones web utilizando

Más detalles

CONCLUISIONES Y RECOMENDACIONES

CONCLUISIONES Y RECOMENDACIONES CONCLUISIONES Y RECOMENDACIONES CONTENIDO 7.1 Verificación de Hipótesis 7.2 Conclusiones 7.3 Recomendaciones Mónica Cecilia Gallegos Varela - 145 - VERIFICACIÓN DE HIPÓTESIS La hipótesis planteada al inicio

Más detalles

Tema 1. Introducción a Java EE

Tema 1. Introducción a Java EE Objetivos del tema Propiedades de las aplicaciones empresariales El Modelo Cliente/Servidor Presentar la Plataforma Java Presentar Java EE y otras tecnologías horizontales Tema 1. Introducción a Java EE

Más detalles

CAPÍTULO 5 IMPLEMENTACIÓN DEL SISTEMA

CAPÍTULO 5 IMPLEMENTACIÓN DEL SISTEMA CAPÍTULO 5 IMPLEMENTACIÓN DEL SISTEMA Capítulo 7: Resultados y Trabajo a Futuro 5.1 Servidor Web Jakarta-Tomcat Para el desarrollo de un Sistema de Comercio Electrónico (SCE) se uso un servidor Web compatible

Más detalles

Oracle 12c DISEÑO Y PROGRAMACIÓN

Oracle 12c DISEÑO Y PROGRAMACIÓN Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo

Más detalles

Windows Server 2003. Windows Server 2003

Windows Server 2003. Windows Server 2003 Windows Server 2003 Windows Server 2003 Es un sistema operativo de la familia Windows de la marca Microsoft para servidores que salió al mercado en el año 2003. Está basada en tecnología NT y su versión

Más detalles

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Capítulo I. Marco Teórico

Capítulo I. Marco Teórico 1 Capítulo I. Marco Teórico 1. Justificación Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende

Más detalles

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES En el anterior capítulo se realizaron implementaciones en una red de datos para los protocolos de autenticación Kerberos, Radius y LDAP bajo las plataformas Windows

Más detalles

Edición de Ofertas Excel Manual de Usuario

Edición de Ofertas Excel Manual de Usuario Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE

Más detalles

1. INTRODUCCIÓN Y OBJETIVOS

1. INTRODUCCIÓN Y OBJETIVOS 1. INTRODUCCIÓN Y OBJETIVOS Los teléfonos móviles son ya parte esencial en nuestra forma de vida y cada día son más los usuarios de estos terminales. Hasta ahora nos han acompañado a todas partes y nos

Más detalles

Gestión de archivos (módulo transversal, MF0978_2)

Gestión de archivos (módulo transversal, MF0978_2) Gestión de archivos (módulo transversal, MF0978_2) Curso de capacitación para la obtención del módulo formativo Gestión de archivos del Certificado de profesionalidad (código MF0978_2), asociado a la unidad

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

DESARROLLO DE APLICACIONES ACCESIBLES

DESARROLLO DE APLICACIONES ACCESIBLES DESARROLLO DE APLICACIONES ACCESIBLES OBJETIVOS Entender como funcionan las ayudas técnicas en entornos Windows Y Linux. Saber qué características debe tener una aplicación para que sea Accesible. DEFINICIÓN

Más detalles

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV Página 1 de 6 1. OBJETIVO El presente documento tiene la finalidad de citar los beneficios de la migración de la herramienta de análisis de riesgo, mantenimiento e inspección que en lo sucesivo se denominará

Más detalles

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR

CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR CAPÍTULO 4 ANÁLISIS Y DISEÑO: e-commerce CONSTRUCTOR En este capítulo se describe el análisis y diseño de un sistema, denominado e-commerce Constructor, el cual cumple con los siguientes objetivos: Fungir

Más detalles

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA

TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura

Más detalles

INFRAESTRUCTURA Y COMUNICACIONES DGA

INFRAESTRUCTURA Y COMUNICACIONES DGA INFRAESTRUCTURA Y COMUNICACIONES DGA Tema Descripción de la infraestructura y de las comunicaciones del SIDUNEA World para la parte del Cliente. Fecha 07/10/2009 Beneficiarios Archivo Cliente SIDUNEA World

Más detalles

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta. Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Más detalles

Novedades en Q-flow 3.02

Novedades en Q-flow 3.02 Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Microsoft Office 2010 Illustrated. Tipos de Software

Microsoft Office 2010 Illustrated. Tipos de Software Microsoft Office 2010 Illustrated Tipos de Software SOFTWARE Conjunto de instrucciones que le indican a la computadora que hacer. Existen tres tipos de software: Sofware de Aplicacion Sofware de Programacion

Más detalles

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN Los protocolos de capa de aplicación de TCP/IP más conocidos son aquellos que proporcionan intercambio de la información

Más detalles

Utilidades de la base de datos

Utilidades de la base de datos Utilidades de la base de datos Desde esta opcion del menú de Access, podemos realizar las siguientes operaciones: Convertir Base de datos Compactar y reparar base de datos Administrador de tablas vinculadas

Más detalles

JAVA. 40 horas 60 días

JAVA. 40 horas 60 días JAVA DURACIÓN DÍAS DE CONEXIÓN 40 horas 60 días CONTACTO: formacion@fgulem.es El Campus Virtual ha sido concebido con una metodología dinámica e interactiva, basada en el aprendizaje activo y participativo

Más detalles

Service Oriented Architecture: Con Biztalk?

Service Oriented Architecture: Con Biztalk? Service Oriented Architecture: Con Biztalk? Pablo Abbate Servicios Profesionales Danysoft SOA supone una nueva forma de pensar acerca de la arquitectura IT para las empresas. De hecho, es una asociación

Más detalles

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS. 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Arquitectura de computadoras Lugar de ejecución: Lab. de arquitectura de computadoras, edif. de electrónica. Tema: INSTALACIÓN Y PARTICIONAMIENTO

Más detalles

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma DEPARTAMENTO: Informática MATERIA: Programación NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma 1. Objetivos. Competencias Profesionales, Personales y Sociales 1.1 Objetivos del ciclo formativo La

Más detalles

Ayuda de Symantec pcanywhere Web Remote

Ayuda de Symantec pcanywhere Web Remote Ayuda de Symantec pcanywhere Web Remote Conexión desde un navegador web Este documento incluye los temas siguientes: Acerca de Symantec pcanywhere Web Remote Protección de la sesión de Web Remote Formas

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

Visual Studio 2008 es el conjunto de herramientas de

Visual Studio 2008 es el conjunto de herramientas de 1. VISUAL STUDIO 2008 Visual Studio 2008 es el conjunto de herramientas de desarrollo y programación creado por Microsoft tanto para aplicaciones Windows como aplicaciones web. La aparición de Visual Studio

Más detalles

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services. Windows Server 2012: Identidad y Acceso Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services. Manual del Módulo Autor: Andrew J Warren, Content Master Publicado: Septiembre 10 de

Más detalles

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA. 3.1. Características SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA 3.1. Características La tendencia hacia el futuro es el de lograr la integración total de componentes realizados por terceras partes, para lo cual es necesario

Más detalles

Autenticación Centralizada

Autenticación Centralizada Autenticación Centralizada Ing. Carlos Rojas Castro Herramientas de Gestión de Redes Introducción En el mundo actual, pero en especial las organizaciones actuales, los usuarios deben dar pruebas de quiénes

Más detalles

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd

Maxpho Commerce 11. Gestión CSV. Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Maxpho Commerce 11 Gestión CSV Fecha: 20 Septiembre 2011 Versión : 1.1 Autor: Maxpho Ltd Índice general 1 - Introducción... 3 1.1 - El archivo CSV... 3 1.2 - Módulo CSV en Maxpho... 3 1.3 - Módulo CSV

Más detalles

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente

Visualización y modelado de elementos geográficos en dispositivos móviles. Capítulo 5: Aplicaciones cliente Capítulo 5: Aplicaciones cliente 46 5.1 La aplicación cliente en la Pocket PC La aplicación desarrollada para el cliente en un dispositivo móvil como corresponde a la Pocket PC necesita una capa muy delgada

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Curso de Spring Framework

Curso de Spring Framework Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Spring es un proyecto de código abierto (open source), originalmente creado por Rod Johnson y descrito en su

Más detalles