3.3 Parsers SAX con JAXP
|
|
- Juan Manuel Agüero Palma
- hace 8 años
- Vistas:
Transcripción
1 3.3 Parsers SAX con JAXP
2 Introducción (1) Un parser XML permite comprobar que el documento está bien formado y acceder a los datos Si además el parser es validante, permite validar el documento (usando su DTD o similar) Dos tipos de parsers SAX Simple API for XML Es un pequeño framework basado en eventos El programador proporciona uno o varios objetos callback a los que el parser llamará cada vez que ocurra un evento de interés (apertura de un tag, cierre de un tag, un error, etc.) DOM Document Object Model Construye una representación (un árbol) en memoria del documento El programador puede acceder a los datos del documento recorriendo el árbol
3 Introducción (2) Las APIs de SAX y DOM están estandarizadas y existen un gran número de implementaciones para distintos lenguajes (C++, Java, etc.) Ej.: Apache Software Foundation proporciona Crimson (SAX y DOM sólo para Java), Xerces (SAX y DOM) y Xalan (XSL) En el caso de Java, familia de paquete org.xml.sax y org.w3c.dom (básicamente contienen interfaces y clases abstractas) Lo que no está estandarizado es cómo crear instancias de los parsers Qué es JAXP? Java API for XML Processing Formará parte de J2SE 1.4 Familia de paquetes java.xml.{parsers, transform
4 Qué es JAXP? (cont) Introducción (y 3) Define un API para trabajar con parsers SAX, DOM y transformaciones XSL Proporciona factorías para crear instancias de parses y transformadores XSL de manera portable Existen un gran número de implementaciones que proporcionan adaptadores para JAXP Ej.: Crimson, Xerces y Xalan Sun proporciona una implementación de JAXP para versiones anteriores a J2SE 1.4 Incluye las APIs org.xml.sax, org.w3c.dom y javax.xml.{parsers, transform Incluye Crimson y Xalan como implementaciones por defecto Se pueden usar otras implementaciones vía configuración
5 Continuación del ejemplo Objetivo Construir una sencilla aplicación de administración que permita insertar información sobre películas en la BD Para que el ejemplo sea sencillo La fachada de administración no insertará los datos en la BD, sino que los imprimirá en System.out La aplicación de administración será un simple comando que se ejecuta desde una shell, y que recibe como parámetro la URI del documento XML con los datos de las películas En este apartado Construiremos la infraestructura básica de la aplicación La estrategia de parsing será redefinible Proporcionaremos una implementación con SAX Y en el siguiente apartado, una implementación DOM
6 Estrategia de inserción en la BD (1) Estrategia 1: cada vez que tengamos los datos completos de una película (evento </movie>), la insertamos en la BD Demasiadas transacciones (e invocaciones remotas en una arquitectura en 3 capas) en caso de haya un elevado número de películas Estrategia 2: cada vez que tengamos los datos completos de una película (evento </movie>), la insertamos en una lista, y cuando se termine de parsear el fichero (evento </movies>), insertamos todas las películas de la lista en la BD Si hay muchas películas, problemas de memoria en el cliente y transacción demasiado grande (y gran cantidad de datos transferidos en la invocación remota en una arquitectura en 3 capas)
7 Estrategia de inserción en la BD (y 2) Los problemas de las dos anteriores estrategias son especialmente ciertos en aplicaciones en los que muchos threads parsean documento XML (no es el caso del ejemplo) Estrategia 3: Idem 2, pero cada vez que la lista tiene k elementos, vaciamos la lista a la BD Cuando se termine de parsear el fichero, vaciamos la lista si tenía algún elemento Solución eficiente Es la que usaremos k será configurable Si ocurre un error durante este proceso (error de parsing, inserción en la BD, etc.), abortaremos la ejecución, informando de cuál fue la última película insertada satisfactoriamente En una aplicación real podría ser conveniente continuar y registrar en un log los problemas que ha habido
8 Estructura de paquetes es.udc.fbellas.j2ee.util.xml es.udc.fbellas.j2ee.xmltutorial.movies controller moviesadder model dom sax movie vo moviesadminfacade delegate shell
9 es.udc.fbellas.j2ee.xmltutorial.movies.model.movie.vo MovieVO - movieidentifier : Long - title : String - runtime : int - releasedate : Calendar - directornames : List - actornames : List - genres : List - synopsis : String <<Interface>> Serializable (from io) + MovieVO(...) + getmovieidentifier() : Long + gettitle() : String + settitle(title : String) : void + getruntime() : int + setruntime(runtime : int) : void + getreleasedate() : Calendar + setreleasedate(releasedate : Calendar) : void + getdirectornames() : List + setdirectornames(directornames : List) : void + getactornames() : List + setactornames(actornames : List) : void + getgenres() : List + setgenres(genres : List) : void + getsynopsis() : String + setsynopsis(synopsis : String) : void + tostring() : String
10 es.udc.fbellas.j2ee.xmltutorial.movies.model.moviesadminfacade.delegate MoviesAdministrationFacadeDelegate + MoviesAdministrationFacadeDelegate() + addmovies(listofmovies : List) : void
11 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder MoviesAdderFactory - MoviesAdderFactory() <<static>> + getmoviesadder() : MoviesAdder <<instantiate>> <<Interface>> MoviesAdder + setmoviesblocksize(moviesblocksize : int) : void + addmovies(xmldocumenturi : String) : void <<use>> ConfigurationParametersManager (from configuration)
12 es.udc.fbellas.j2ee.xmltutorial.movies.shell AddMovies <<static>> + main(args : String[]) : void <<use>> <<use>> MoviesAdderFactory (from moviesadder) <<Interface>> MoviesAdder (from moviesadder)
13 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax Visión global <<Interface>> MoviesAdder (from moviesadder) DefaultErrorHandler (from xml) <<instantiate>> SAXMoviesAdder - moviesblocksize : int + SAXMoviesAdder() <<instantiate>> MoviesContentHandler
14 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.saxmoviesadder (1) package es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder. sax; import javax.xml.parsers.saxparserfactory; import javax.xml.parsers.saxparser; import org.xml.sax.xmlreader; import org.xml.sax.saxexception; import es.udc.fbellas.j2ee.util.xml.defaulterrorhandler; import es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder. MoviesAdder; import es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder. MoviesAdderException; public class SAXMoviesAdder implements MoviesAdder { private int moviesblocksize; public void setmoviesblocksize(int moviesblocksize) { this.moviesblocksize = moviesblocksize;
15 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.saxmoviesadder (2) public void addmovies(string xmldocumenturi) throws MoviesAdderException { ElementHandlerContext context = new ElementHandlerContext(moviesBlockSize); try { /* Get a SAX parser factory. */ SAXParserFactory saxparserfactory = SAXParserFactory.newInstance(); /* Enable validation. */ saxparserfactory.setvalidating(true); /* * Create a SAX parser instance and use it to parse the * document. */ SAXParser saxparser = saxparserfactory.newsaxparser(); XMLReader xmlreader = saxparser.getxmlreader(); xmlreader.seterrorhandler(new DefaultErrorHandler()); xmlreader.setcontenthandler(new MoviesContentHandler(context)); xmlreader.parse(xmldocumenturi);
16 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.saxmoviesadder (y 3) catch (SAXException e) { Exception encapsulatedexception = e.getexception(); if (encapsulatedexception!= null) { // InternalErrorException or // model exception throw new MoviesAdderException( context.getlastinsertedmovietitle(), encapsulatedexception); else { // Parsing exception throw new MoviesAdderException( context.getlastinsertedmovietitle(), e); catch (Exception e) { // ParserConfigurationException or // IOException throw new MoviesAdderException( context.getlastinsertedmovietitle(), e);
17 Comentarios (1) javax.xml.parsers.saxparserfactory <<instantiate>> javax.xml.parsers.saxparser <<instantiate>> <<interface>> org.xml.sax.xmlreader <<use>> <<use>> <<interface>> org.xml.sax.errorhandler <<interface>> org.xml.sax.contenthandler
18 Comentarios (2) javax.xml.parsers.saxparserfactory Factoría abstracta El programador obtiene una factoría concreta con el método estático newinstance La documentación JavaDoc documenta varias formas de especificar el nombre de la clase concreta de la factoría Ej.: Definir la propiedad javax.xml.parsers.saxparserfactory=<nombreclase Concreta> en el fichero $JAVA_HOME/lib/javax.properties Si no se especifica ninguna, por defecto, devuelve una dependiente del sistema La factoría concreta no tiene porque ser thread-safe Por tanto, en un entorno multi-thread, cada thread necesita crear su propia factoría Obsérvese que el código de SAXMoviesAdder es, en consecuencia, thread-safe
19 Comentarios (y 3) javax.xml.parsers.saxparserfactory (cont) Permite configurar determinados aspectos globales de los parsers que creará Ej.: saxparserfactory.setvalidating(true) org.xml.sax.xmlreader Permite parsear el documento XML Antes es preciso establecer gestores de eventos Gestor de errores Clase que implementa org.xml.sax.errorhandler Gestor de eventos de contenido (apertura de tag, cierre de tag, etc.) Clase que implementa org.xml.sax.contenthandler
20 org.xml.sax.errorhandler public interface ErrorHandler { public void warning(saxparseexception exception) throws SAXException; public void error(saxparseexception exception) throws SAXException; public void fatalerror(saxparseexception exception) throws SAXException;
21 Comentarios org.xml.sax.saxparseexception es una subclase de org.xml.sax.saxexception que contiene Un mensaje descriptivo Información sobre la localización del error (org.xml.sax.locator) Opcionalmente, una excepción encapsulada Cada vez que el parsing encuentra un error llama al método correspondiente Si el método devuelve SAXParseException, la ejecución del parser termina XMLReader.parse devuelve la excepción Tipos de errores Warnings y errores: algo no es conforme al DTD Errores fatales: el documento no está bien formado
22 es.udc.fbellas.j2ee.util.xml.defaulterrorhandler public class DefaultErrorHandler implements ErrorHandler { public void warning(saxparseexception exception) throws SAXException { throw exception; public void error(saxparseexception exception) throws SAXException { throw exception; public void fatalerror(saxparseexception exception) throws SAXException { throw exception;
23 org.xml.sax.contenthandler public interface ContentHandler { public void setdocumentlocator(locator locator); public void startdocument() throws SAXException; public void enddocument() throws SAXException; public void startelement(string namespaceuri, String localname, String qualifiedname, Attributes attributes) throws SAXException; public void endelement(string namespaceuri, String localname, String qualifiedname) throws SAXException; public void characters(char[] chars, int start, int length) throws SAXException; // Otros métodos...
24 Comentarios La transparencia anterior sólo muestra los métodos que más se usan startelement y endelement incluyen información sobre espacios de nombres Nuestros documentos no usan espacios de nombres characteres El parser nos informa del texto de un elemento de tipo #PCDATA El parser puede necesitar llamar a este método varias veces para un elemento dado Para facilitar la implementación de la interfaz ContentHandler es.udc.fbellas.j2ee.util.xml.defaultcontenthandler proporciona una implementación vacía de todos los métodos Un ContentHandler específico puede extender de DefaultContentHandler y redefinir los métodos que le interese
25 Implementación de un ContentHandler Implementación directa Los métodos startelement, endelement y characters suelen tener muchos if para contemplar todos los elementos La implementación termina siendo grande y difícil de mantener En el ejemplo se ha aplicado el patrón Strategy para procesar los eventos Se ha definido el interfaz ElementHandler, con operaciones para los eventos de interés (apetura de tag, cierre de tag, etc.) Existe un ElementHandler concreto para cada tipo de elemento (movie, director, actor, etc.) Todos ElementHandlers necesitan compartir información El MovieVO actual La lista de MovieVOs El título de la última película insertada en la BD Etc. Compartirán un mismo ElementHandlerContext
26 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax (1) <<Interface>> MoviesAdder (from moviesadder) <<instantiate>> DefaultErrorHandler (from xml) SAXMoviesAdder - moviesblocksize : int + SAXMoviesAdder() <<instantiate>> <<instantiate>> MoviesContentHandler - elementhandlers : Map - elementlocalnameforcharacters : String - context : ElementHandlerContext ElementHandlerContext - locator : Locator - lastinsertedmovietitle : String - currentmovievo : MovieVO - moviesblocksize : int - currentlistofmovievos : List - facade : MoviesAdministrationFacadeDelegate + MoviesContentHandler(context : ElementHandlerContext) 1..n ElementHandler - context : ElementHandlerContext + ElementHandlerContext(moviesBlockSize : int) + getlocator() : Locator + setlocator(locator : Locator) : void + getlastinsertedmovietitle() : String + getcurrentmovievo() : MovieVO + setcurrentmovievo(currentmovievo : MovieVO) : void + addcurrentmovievotolist() : void + flushlistofmovievos() : void + ElementHandler(context : ElementHandlerContext) # getcontext() : ElementHandlerContext + startelement(attributes : Attributes) : void + endelement() : void + characters(chars : char[], start : int, length : int) : void
27 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax (y 2) ElementHandler ActorElementHandler MovieElementHandler + ActorElementHandler(context : ElementHandlerContext) + MovieElementHandler(context : ElementHandlerContext) DirectorElementHandler SynopsisElementHandler + DirectorElementHandler(context : ElementHandlerContext) + SynopsisElementHandler(context : ElementHandlerContext) GenreElementHandlerContext + GenreElementHandlerContext(context : ElementHandlerContext)
28 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.moviescontenthandler (1) public class MoviesContentHandler extends DefaultContentHandler { private Map elementhandlers; private String elementlocalnameforcharacters; private ElementHandlerContext context; public MoviesContentHandler(ElementHandlerContext context) { this.context = context; elementhandlers = new HashMap(); elementhandlers.put("movies", new ElementHandler(context)); elementhandlers.put("movie", new MovieElementHandler(context)); elementhandlers.put("director", new DirectorElementHandler(context)); elementhandlers.put("actor", new ActorElementHandler(context)); elementhandlers.put("genre", new GenreElementHandler(context)); elementhandlers.put("synopsis", new SynopsisElementHandler(context));
29 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.moviescontenthandler (2) public void setdocumentlocator(locator locator) { context.setlocator(locator); public void startelement(string namespaceuri, String localname, String qualifiedname, Attributes attributes) throws SAXException { elementlocalnameforcharacters = localname; getelementhandler(localname).startelement(attributes); public void endelement(string namespaceuri, String localname, String qualifiedname) throws SAXException { getelementhandler(localname).endelement();
30 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.moviescontenthandler (y 3) public void characters(char[] chars, int start, int length) throws SAXException { getelementhandler(elementlocalnameforcharacters). characters(chars, start, length); public void enddocument() throws SAXException { context.flushlistofmovievos(); private ElementHandler getelementhandler(string elementlocalname) { return (ElementHandler) elementhandlers.get(elementlocalname);
31 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.elementhandler public class ElementHandler { private ElementHandlerContext context; public ElementHandler(ElementHandlerContext context) { this.context = context; protected ElementHandlerContext getcontext() { return context; public void startelement(attributes attributes) throws SAXException { public void endelement() throws SAXException { public void characters(char[] chars, int start, int length) throws SAXException {
32 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.movieelementhandler (1) public class MovieElementHandler extends ElementHandler { public MovieElementHandler (ElementHandlerContext context) { super(context); public void startelement(attributes attributes) throws SAXException { /* Get attribute values. */ String title = attributes.getvalue("", "title"); String runtimeasstring = attributes.getvalue("", "runtime"); String releasedayasstring = attributes.getvalue("", "releaseday"); String releasemonthasstring = attributes.getvalue("", "releasemonth"); String releaseyearasstring = attributes.getvalue("", "releaseyear"); NOTA: El primer parámetro de Attributes.getValue es la URI del espacio de nombres Especificamos dado que no usamos espacios de nombres
33 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.movieelementhandler (2) /* * Convert string values into their true types, and validate if * necessary. * * NOTE: Release date is not fully validaded. */ int runtime = validateruntime(runtimeasstring); int releaseday = Integer.parseInt(releaseDayAsString); int releasemonth = Integer.parseInt(releaseMonthAsString); int releaseyear = Integer.parseInt(releaseYearAsString); Calendar releasedate = Calendar.getInstance(); releasedate.set(calendar.day_of_month, releaseday); releasedate.set(calendar.month, Calendar.JANUARY + releasemonth - 1); releasedate.set(calendar.year, releaseyear);
34 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.movieelementhandler (3) /* * Create a MovieVO with the above values and set it as the * current MovieVO. */ MovieVO movievo = new MovieVO(new Long(-1), title, runtime, releasedate, new ArrayList(), new ArrayList(), new ArrayList(), ""); getcontext().setcurrentmovievo(movievo); public void endelement() throws SAXException { getcontext().addcurrentmovievotolist();
35 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.movieelementhandler (y 4) private int validateruntime(string runtime) throws SAXParseException { try { int runtimeasint = Integer.parseInt(runtime); if ( runtimeasint <= 0) { throw new NumberFormatException(); return runtimeasint; catch (NumberFormatException e) { throw new SAXParseException( "'runtime' must be an integer > 0", getcontext().getlocator());
36 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.directorelementhandler public class DirectorElementHandler extends ElementHandler { public DirectorElementHandler (ElementHandlerContext context) { super(context); public void startelement(attributes attributes) throws SAXException { String name = attributes.getvalue("", "name"); getcontext().getcurrentmovievo().getdirectornames().add(name); ActorElementHandler y GenreElementHandler se implementan de forma análoga
37 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.synopsiselementhandler public class SynopsisElementHandler extends ElementHandler { private StringBuffer synopsisbuffer; public SynopsisElementHandler (ElementHandlerContext context) { super(context); public void startelement(attributes attributes) throws SAXException { synopsisbuffer = new StringBuffer(); public void endelement() throws SAXException { getcontext().getcurrentmovievo(). setsynopsis(synopsisbuffer.tostring()); public void characters(char[] chars, int start, int length) throws SAXException { synopsisbuffer.append(chars, start, length);
38 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.elementhandlercontext (1) public class ElementHandlerContext { private Locator locator; private String lastinsertedmovietitle; private MovieVO currentmovievo; private int moviesblocksize; private List currentlistofmovievos; private MoviesAdministrationFacadeDelegate moviesadministrationfacadedelegate; public ElementHandlerContext(int moviesblocksize) { this.moviesblocksize = moviesblocksize; currentlistofmovievos = new ArrayList(); // Varios métodos get/set... public void addcurrentmovievotolist() throws SAXParseException { currentlistofmovievos.add(currentmovievo); if (currentlistofmovievos.size() == moviesblocksize) { flushlistofmovievos();
39 es.udc.fbellas.j2ee.xmltutorial.movies.controller.moviesadder.sax.elementhandlercontext (y 2) public void flushlistofmovievos() throws SAXParseException { try { if (moviesadministrationfacadedelegate == null) { moviesadministrationfacadedelegate = new MoviesAdministrationFacadeDelegate(); moviesadministrationfacadedelegate.addmovies( currentlistofmovievos); currentlistofmovievos.clear(); lastinsertedmovietitle = currentmovievo.gettitle(); catch (InternalErrorException e) { throw new SAXParseException("", locator, e);
40 Gestión de excepciones (1) La única manera de detener el proceso de parsing cuando se detecta un error es Lanzando SAXParseException, y Usando un ErrorHandler al estilo de DefaultErrorHandler En el ejemplo se ha seguido el siguiente convenio Lanzar SAXParseException sin excepción encapsulada cuando es un error de parsing que no es posible especificar con el DTD (ej.: runtime no válido) Lanzar SAXParseException con mensaje cuando hay un problema con la fachada de administración, y con la excepción correspondiente encapsulada El parser lanzará SAXParseException si el documento no está bien formado o no es válido No encapsulada excepción
41 Gestión de excepciones (y 2) Observar la última parte del código de SAXMoviesAdder En caso de problemas, se lanza una excepción MoviesAdderException Indica el título de la última película insertada satisfactoriamente (null si no se insertó ninguna) Encapsula una excepción, que puede ser: Instancia directa de SAXException Sólo llevará mensaje asociado Sólo puede ocurrir en el siguiente apartado (DOM) SAXParseException Sólo llevará mensaje asociado e información sobre ubicación IOException: error de entrada/salida Otra excepción (InternalErrorException o una excepción específica del modelo) Echar un vistazo a es.udc.fbellas.j2ee.xmltutorial.movies.shell.addmovies
SAX Parser. Ing. Augusto Dobeslao Herández López (Bases de Datos en XML)
SAX Parser Ing. Augusto Dobeslao Herández López (Bases de Datos en XML) Simple API for XML (SAX) Proporciona mecanismos para leer desde un documento XML. Es un API orientada a eventos, actualmente en su
Más detalles3.4 Parsers DOM con JAXP
3.4 Parsers DOM con JAXP Una representación DOM de Movies.xml Document DocumentType Element (movies) Comment Element (movie, La Maldición..) Comment Element (movie, Amelie) Element (director) Element (actor)
Más detallesSAX. cómo funciona? Introducción. La API de análisis basada en eventos
La API de análisis basada en eventos César Ignacio García Osorio SAX Introducción SAXReader Las excepciones de SAX ContentHandler: setdocumentlocator, startdocument, enddocument, processinginstruction,
Más detallesProcesamiento de archivos XML (Parte 1)
Procesamiento de archivos XML (Parte 1) Rubby Casallas 1 Referencias Esta presentación es un breve resumen de XML y no pretende ser exhaustiva. Para más información por favor consultar las siguientes referencias:
Más detallesProcesamiento de documentos XML
Procesamiento de documentos XML Documentación Electrónica Soto Montalvo Contenido Introducción Document Object Model Simple API for XML DOM vs. SAX Cómo podemos manipular los documentos XML? SAX (Simple
Más detalles5.3 Diseño por capas con Servicios Web
5.3 Diseño por capas con Servicios Web Diseño por capas Misma idea que en CORBA Interfaz de usuario (no WS) Capa de traducción y delegación (WS) Capa de traducción y delegación (WS) IDL Capa de lógica
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detalles3.9 Patrón Distributed callback
3.9 Patrón Distributed callback Motivación (1) Queremos que la aplicación de administración de los termostatos Monitorize la temperatura de algunos termostatos, avisándonos si ésta baja o sube por encima
Más detallesPráctica sobre compartición de instancias remotas.
Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta
Más detallesProgramación Orientada a Objetos. Java: Excepciones
Programación Orientada a Objetos Java: Excepciones Eduardo Mosqueira Rey Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detallesIntroducción a Java LSUB. 15 de enero de 2015 GSYC
Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Más detallesUso de excepciones en Java
Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que
Más detallesIngeniería del Software Arquitectura Física en 3 niveles
Introducción En este laboratorio desplegaremos en 3 niveles físicos una aplicación que verifica si una cuenta y un password son correctos, basada en la que fue presentada en el laboratorio Separación entre
Más detallesPROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07
PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 Ejercicio 1. Un indice de referencias cruzadas de las palabras que aparecen en un texto es una tabla por palabras y, por cada
Más detallesCurso 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 detalles2.2 Parsing de documentos XML
2.2 Parsing de documentos XML Introducción (1) Un documento XML se apoya en dos ideas [Obligatoria] Tiene que estar bien formado, y en consecuencia, estar construido en base a las normas de XML (los tags
Más detallesModelo 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 detallesInteracción entre Aplicaciones: XML
UPCDAC/FIBPXC 1 Interacción entre Aplicaciones: XML En esta práctica se va a conocer y experimentar con la manipulación de documentos XML y las herramientas que hay disponibles. Muchas aplicaciones utilizan
Más detallesTema IV. XML V. APIs (DOM & SAX)
Tema IV. XML V. APIs (DOM & SAX) Desarrollo de Aplicaciones para Internet Curso 12 13 Índice 1.Introducción 2.DOM i. Introducción ii. Interfaces y Clases iii.ejemplos 3.SAX i. Introducción ii. Interfaces
Más detallesSolución al Examen de Prácticas de Programación (Ingeniería Informática)
Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa
Más detallesManual del Protocolo XML-RPC de Mensajería Negocios
Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...
Más detallesRepaso de las características más importantes de la programación Java y su adaptación a Android
Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y
Más detallesEXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
Más detallesATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS
ATLAS MANUAL DE INTEGRACIÓN Cliente del Servicio de SMS Versión 1.0 Arquitectura de Software Hoja de Control Título Documento de Referencia Responsable Servicio de SMS Cliente NORMATIVA ATLAS Arquitectura
Más detallesFRAMEWORK 2 Recepción de SMS
FRAMEWORK 2 Versión 1.1 Área de Integración y Arquitectura de Aplicaciones Hoja de Control Título Documento de Referencia Responsable FW2_MUS_Recepcion_SMS Área de Integración y Arquitectura de Aplicaciones
Más detallesJava RMI. Sistemas Distribuidos Rodrigo Santamaría
+ Java RMI Sistemas Distribuidos Rodrigo Santamaría RMI Java RMI 2 + RMI 3 Remote Method Invocation: middleware para que un objeto que se ejecuta en una JVM use métodos de otro objeto que se ejecuta en
Más detallesDISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA
DISEÑO DE UNA ARQUITECTURA CLIENTE/SERVIDOR MEDIANTE OBJETOS DISTRIBUIDOS EN JAVA José Luis Pastrana Brincones (pastrana@lcc.uma.es) Dpto. Lenguajes y Ciencias de la Computación. Universidad de Málaga
Más detallesInteracción y manejo de documentos XML.
Interacción y manejo de documentos XML. Como último miembro de la familia XML, nos planteamos la tecnología por la cual una aplicación externa, escrita en no importa que lenguaje de programación, puede
Más detallesPatrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de diseño Patrón básico Handler Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de diseño Introducción Objetivos: Diseño específico para el problema, pero general para
Más detallesPatrón Fábrica Abstracta. Julio Ariel Hurtado Alegría Ingeniería de Software II 2015
Patrón Fábrica Abstracta Julio Ariel Hurtado Alegría Ingeniería de Software II 2015 Contenido Descripción General Problema Solución Participantes Ejemplo: Fábrica de Carros Ejemplo: RelojVisual 2 Descripción
Más detallesXML, Servicios Web y Web Semántica
XML, Servicios Web y Web Semántica Departamento de Informática Universidad de Oviedo Sesión 7 Programación XML SAX, DOM, Enlaces Departamento de Informática Universidad de Oviedo NOTA: Gran parte de estas
Más detallesTema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión
Más detallesProgramación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 4 Herencia y Polimorfismo Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Herencia
Más detallesTema 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 detallesIdentificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente
Más detallesPatrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype
Temario Patrones de Diseño de Software Fundamentos de Ingeniería de SW Jocelyn Simmonds GOF: Patrones Creacionales Patrones Estructurales ILI-236 (JS) Patrones II 1 / 31 ILI-236 (JS) Patrones II 2 / 31
Más detallesINDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)
APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:
Más detallesclass Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }
REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)
Más detallesPrimera 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 detallesProgramación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Clase! Objeto! Atributo o variable de instancia! Método! Instanciar/crear un objeto!
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesMANEJO DE FICHEROS XML Versión 1.0
MANEJO DE FICHEROS XML Versión 1.0 NOVIEMBRE 2006 Página: 1 1 TABLA DE CONTENIDO 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 ELEMENTOS NECESARIOS PARA EL DESARROLLO... 3 4 GENERAR ESQUEMA... 3 5 LECTURA
Más detallesPruebas de unidad con JUnit
Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro
Más detallesLo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.
Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de
Más detalles1 HILOS (THREADS) EN JAVA
1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los
Más detalles5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados
5.4 Caso de estudio: diseño e implementación de la capa modelo de MiniPortal con EJB. Tipos de EJBs y patrones usados Introducción Qué tipos de EJBs ilustra MiniPortal? Entity Beans CMP (UserProfile) SLSBs
Más detallesJava en 2 horas. Rodrigo Santamaría
+ Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión
Más detallesUniversidad ORT - Arquitectura de Software. Requisitos
Requisitos Versión 1.5 (o superior) de la JDK de Java NetBeans 6.5 como IDE de desarrollo JBoss 4.2.x como Application Server Variable de entorno de Windows JAVA_HOME apuntando al directorio de instalación
Más detallesPatrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte.
Más detallesProgramación Orientada a Objetos con Java
Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la
Más detalles2.2.- Paradigmas de la POO
2.2.- Paradigmas de la POO Los principios propios de la orientación a objetos son: 2.2.1.- Abstracción de Datos 2.2.2.- Encapsulamiento 2.2.3.- Ocultamiento 2.2.4.- Herencia 2.2.5.- Polimorfismo Cualquier
Más detallesDesarrollo de Aplicaciones para Android
Desarrollo de Aplicaciones para Android Sesión 7: Servicios de red Desarrollo de Aplicaciones para Android Depto. Ciencia de la Computación e IA Servicios de red-1 Puntos a tratar Conexiones HTTP Parsing
Más detallesProgramación en Java. Programación en OO
Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,
Más detallesArquitectura Cliente/Servidor. Invocación de Métodos Remotos RMI: Remote Method Invocation. Llamadas a Métodos Remotos
Invocación de Métodos Remotos RMI: Remote Method Invocation Prof Wílmer Pereira Universidad Simón Bolívar Arquitectura Cliente/Servidor Cliente Request Reply Servidor Cómo permitir comunicación entre objetos
Más detallesDesarrollo de Servicios Web con JBuilder
Artículos técnicos Grupo Danysoft: Desarrollo de Servicios Web con JBuilder Segunda parte Oscar Cristobal Ruiz Departamento Java Equipo Grupo Danysoft Enero 2003 - (902) 123146 www.danysoft.com Desarrollo
Más detallesIngeniería del Software II. Curso 2003/2004. Enunciado de la práctica del Segundo parcial.
Ingeniería del Software II. Curso 2003/2004. Enunciado de la práctica del Segundo parcial. Para este parcial, debe modificarse la práctica del primer parcial de la siguiente manera: Servidor: la aplicación
Más detallesCarmen. Estándares de codificación. Manuel Arias Calleja
Carmen. Estándares de codificación Manuel Arias Calleja II Índice general 1. Estandares de codificación 1 1.1. Nombres de ficheros........................ 1 1.2. Organización de ficheros......................
Más detallesAdministración Local Soluciones
SISTEMA INTEGRADO DE GESTIÓN DE EXPEDIENTES MODULAR (SIGM) FUNCIONALIDAD ANTIVIRUS (MÓDULO TRAMITACIÓN ELECTRÓNICA) SIGM v3 Administración Local Soluciones Control de versiones Versión Fecha aprobación
Más detallesTitulación: Ingeniero Técnico en Informática de Gestión Curso: 2º
1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,
Más detalles%& %)& '$!%*+ $, %%%&$ %%
OBJETIVO!!"#$$ %& '(%"#% (% %& %)& '$!%*+ $, %%%&$ %% REQUERIMIENTOS SOFTWARE VERSIÓN LINK Java Development Kit (JDK) 6 http://java.sun.com NetBeans 6.1 http://www.netbeans.org MySQL 5.0 http://dev.mysql.com/
Más detallesTutorial 1: Desarrollo de un plugin
Tutorial 1: Desarrollo de un plugin En este tutorial introductorio se creará un plugin siguiendo una de las plantillas que ofrece Eclipse. Concretamente se extenderá una vista para mostrar cierta información
Más detallesJava en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría
Java en 3 horas Ampliación de Sistemas Operativos Rodrigo Santamaría Generalidades Desarrollado por Sun Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas
Más detallesIntroducción al lenguaje Java
Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno
Más detalles5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI
5.1 Introducción a las tecnologías de objetos distribuidos con Java RMI Contenidos Tutorial de Java RMI Caso de estudio: diseño e implementación de la capa modelo de MiniBank con Java RMI Arquitectura
Más detallesLlamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2
Tema 9 Llamada a métodos remotos (RMI). Departament d Informàtica. Índice 1. Introducción 2 1.1. Cómo funciona RMI?.......................................... 2 2. Usando RMI 4 2.1. Fase de desarrollo:
Más detallesIntroducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Encapsulamiento: Control de Acceso Clases en Java (1) UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO En Java se organizan las clases en paquetes
Más detallesTema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos
Tema 3: Genericidad en Java Tema 3: Genericidad en Java Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general: 1. Definición y Ventajas de la
Más detallesFUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005
Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas
Más detallesEstructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC)
Estructura de las Aplicaciones Orientadas a Objetos El patrón Modelo-Vista-Controlador (MVC) Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial
Más detallesMicrosoft XML Core Services MSXML
Microsoft XML Core Services MSXML Sergio Luján Mora sergio.lujan@ua.es http://gplsi.dlsi.ua.es/~slujan/ 1 MSXML... 3 Introducción... 3 Objetos del DOM... 5 Objeto XMLDOMDocument... 5 Construcción de un
Más detallesEstructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo
Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense
Más detallesIntroducción - por qué usarlas?(1)
Excepciones en Java Introducción - por qué usarlas?(1) En el mundo de la programación hay algo que siempre ocurre: los errores en los programas. Pero qué sucede realmente después de que ha ocurrido el
Más detallesLenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2
Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3
Más detallesPlataforma de Contratación del Sector Público
del Sector Público Dirección General del Patrimonio del Estado Subdirección General de Coordinación de la Contratación Electrónica Versión: 1. Fecha: 10/12/2015 DEL PATRIMONIO DEL DEL ESTADO CONTROL DE
Más detallesTécnicas Avanzadas de Testing Automatizado
Técnicas Avanzadas de Testing Automatizado Introducción: Testing ad hoc Testing sistemático Testing unitario Unidad y Suite de tests Frameworks xunit Fixtures compartidos e independecia Tests parametrizados
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesEjercicio 4. EJB Sesión - Sistema SGA. Java EE. Ejercicio 4. EJB Sesión Sistema SGA. Curso de Java EE
Java EE Ejercicio 4 EJB Sesión Sistema SGA Objetivo del Ejercicio El objetivo del ejercicio es agregar un EJB de Sesión a nuestro proyecto SGA (Sistema de Gestión de Alumnos), el cual desarrollaremos a
Más detallesEXCEPCIONES EN JAVA. Las sentencias que tratan las excepciones son try y catch. La sintaxis es:
EXCEPCIONES EN JAVA Uno de los problemas más importantes al escribir aplicaciones es el tratamiento de los errores. Errores no previstos que distorsionan la ejecución del programa. Las excepciones de Java
Más detallespublic static void main(string[ ] args) { Numero f1 = new Numero(3); Numero f2 = new Numero(4); Numero f3 = f1; f1.value = f2.value; Numero f4 = null;
Examen de Programación Convocatoria de Septiembre 2005 Licenciatura de Lingüística y Nuevas Tecnologías Pregunta 1 Tenemos el siguiente programa: public class Numero { int value; public Numero(int i) {
Más detallesJDBC. Una mini-introducci. introducción
JDBC Una mini-introducci introducción Introducción JDBC (Java DataBase Connectivity) Protocolo para utilizar bases de datos relacionales desde Java Se basa en la utilización n de drivers que implementan
Más detallesPráctica 2: Java Remote Method Invocation (RMI)
Práctica 2: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es conocer un poco más sobre el paradigma de objetos remotos. La idea principal es
Más detalles2. Estructura de un programa en Java
24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador
Más detallesPatrones para persistencia (I) Ingeniería del Software II
Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura
Más detallesPráctica 5: Common Object Request Broker Architecture CORBA
Práctica 5: Common Object Request Broker Architecture CORBA Aplicaciones Telemáticas II Introducción El objetivo de esta práctica es entender mejor el funcionamiento de CORBA (Common Object Request Broker
Más detallesPartes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.
Partes de un programa en Java A. Ejemplo de un Programa en Java /* class Ejemplo1 { //comienza la clase Ejemplo1. public static void main(string[] args) { // comienza el método main. JFrame miventana;
Más detallesSOLUCION PARCIAL TASK SCHEDULER. Task Scheduler
Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,
Más detallesExamen de Prácticas de Programación Ingeniería Informática
Examen de Prácticas de Programación Ingeniería Informática Septiembre 2007 1) (3.5 puntos) Se pretende desarrollar un programa para gestionar las reparaciones de coches realizadas en un garaje. Del análisis
Más detallesPráctica 4: Java Remote Method Invocation (RMI)
Práctica 4: Java Remote Method Invocation (RMI) Aplicaciones Telemáticas II Introducción Hasta el momento hemos visto aplicaciones remotas donde un cliente utiliza un objeto remoto que ha sido publicado
Más detallesMONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar
MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un
Más detallesElementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
Más detallesTambién añado a la clase Libro los siguientes métodos: (que programaré más adelante)
1.Creación de la capa de negocios La capa del Dominio de Negocios consta de una clase creada a partir de la tabla Libro a la que le he añadido los atributos no persistentes: CodPais, artic y digcontrol.
Más detalles1. Manejo de memoria estática 2. Manejo de memoria dinámica
1. Manejo de memoria estática 2. Manejo de memoria dinámica *La administración de memoria de una computadora es una tarea fundamental debido a que la cantidad de memoria es limitada. *El sistema operativo
Más detalles1. Visión general de RMI
1. Visión general de RMI Java RMI permite al programador ejecutar métodos de objetos remotos utilizando la misma semántica que si fueran invocaciones locales (Véase Figura 1). Máquina Local (Cliente) Máquina
Más detallesProgramación Orientada a Objetos en C#.NET CAPÍTULO 8 E V E N T O S. Ing. Bruno López Takeyas, M.C. http://www.itnuevolaredo.edu.
CAPÍTULO 8 E V E N T O S 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Quéesunevento? Paraquésirve? Qué temas se deben dominar para implementar aplicaciones con eventos? Qué se requiere
Más detallesClases abstractas e interfaces
Clases abstractas e interfaces Clases abstractas Una clase abstracta es una clase que no se puede instanciar se usa únicamente para definir subclases Cuándo es una clase abstracta? En cuanto uno de sus
Más detallesen otra máquina exactamente de la misma manera que si se encontrará en la misma máquina
Máquina A Máquina B Máquina C Lo ideal sería tener un sistema distribuido orientado a objetos que permita: 1)Invocar un método de un objeto que se localiza en otra máquina exactamente de la misma manera
Más detallesJava Inicial (20 horas)
Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción
Más detallesTema 2. El lenguaje de programación Java (Parte 1)
Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de
Más detallesEspecialista Universitario Java Enterprise. Struts. Sesión 4: Introducción a Struts 2. 2010-2011 Depto. Ciencia de la Computación e IA
Struts Sesión 4: Introducción a Struts 2 Indice Motivación De Struts 1.x a Struts 2 Acciones Actionforms Taglibs Internacionalización Validación Conceptos nuevos en Struts 2 2 Por qué era necesario Struts
Más detalles