Aplicaciones Distribuidas en Java Con Tecnologia RMI
Aplicaciones Distribuidas en Java Con Tecnologia RMI
Aplicaciones Distribuidas en Java Con Tecnologia RMI
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/266794630
CITATIONS READS
0 2,939
2 authors:
Some of the authors of this publication are also working on these related projects:
ICT-FLAG: Enhancing ICT education through Formative assessment, Learning Analytics and
Gamification View project
All content following this page was uploaded by Santi Caballé on 13 October 2014.
Página de Copyright
V
A nuestras famı́lias.
VI Programación Distribuida con Java
VII
Prefacio
La programación distribuida, des de sus incios, ha formado parte de los currı́culums de los estudios
de informática y hoy en dı́a está presente no sólo en los planes de estudios informáticos sino que
también en las ingenierı́as en general, e incluso en nuevas titulaciones como las bioinformática.
Además, la comunidad de los profesionales que usan la programación distribuida como su her-
ramienta de programación ha ido siempre creciendo.
Con Internet y otras nuevas tecnologı́as, la programación distribuida ha recibido un nuevo im-
pulso. La propia naturaleza de Internet como una plataforma distribuida ha hecho de la progra-
mación distribuida un paradigma indispensable para el desarrollo de aplicaciones de Internet. Como
consecuencia, la programación distribuida ha resultado aún más importante para los estudios uni-
versitarios.
El libro Aplicaciones Distribuidas con Java explica los fundamentos de la programación dis-
tribuida con Java. El contenido propuesto tiene como objetivo cubrir las necesidades de las titula-
ciones de ingenierı́as técnicas y superior en Informática en cuanto a asignaturas de arquitectura y
programación intermedia y avanzada. Por otra parte, el contenido representa un punto de partida
para profesionales informáticos que deseen introducirse en la programación distribuida. Los con-
tenidos del libro cubren el desarrollo de las aplicaciones distribuidas paso a paso transmitiendo ası́
la metodologı́a que el estudiante y el profesional necesitan y pueden aplicar para afianzar los con-
ceptos teóricos. Para ello, se ha considerado el caso de la tecnologı́a RMI de manera sistemática:
empezando por los conceptos basicos, ejemplos y aplicaciones sencillas hasta llegar a aplicaciones
complejas.
El libro tiene un enfoque eminentemente pragmático combinando los conceptos teóricos prin-
cipales con gran cantidad de ejemplos. Estos ejemplos se encuentran en forma de gráficos para
representar los modelos de arquitecturas expuestas conceptualmente y sobretodo incluye casos re-
sueltos tanto especı́ficos como completos en forma de código fuente. Los ejemplos presentados a
lo largo del libro se han escogido cuidadosamente y motivados por problemas reales.
El objetivo del libro es que se pueda utilizar como material de soporte para estudiantes univer-
sitarios que tienen que afrontar ejercicios prácticos como parte del plan de estudios para superar
las asignaturas. Además se ha concebido como una obra para el aprendizaje incremental desde
los conceptos básicos hasta los más avanzados. El libro no presupone ningun conocimiento de la
programación distribuida si bien presupone algunos conocimientos muy básicos de Programación
Orientada a Objetos (POO). Óbviamente, en las aplicaciones distribuidas, las bases de datos juegan
un papel importante y por tanto algunos conocimientos básicos de bases de datos y SQL facilitarı́an
la lectura del libro. Remarcamos, de todas formas, que no ha sido objetivo de este libro explicar
temas de bases de datos si bien se han explicado en detalle las bases de datos en el contexto de los
VIII Programación Distribuida con Java
ejemplos prácticos.
A partir de una lectura secuencial del libro, cualquier lector (estudiante o profesional) podrá
avanzar en sus conocimientos de programación distribuida y su aplicación en Java de forma grad-
ual. También se facilitará al lector la posibilidad de experimentar a fondo con todos los ejemplos
ofrecidos en el libro mediante la disposición de material complementario que se encuentra en el
sitio Web de Delta Publicaciones. El objetivo es aprovechar los altos beneficios pedagógicos que
ofrecen las prácticas en este sentido al implicar la instalación y el uso de las tecnologı́as necesarias
para experimentar con los ejemplos del libro.
Nuestros agradecimientos a Joan Carles Giménez Alcober por su ayuda en la preparación del
material. Este libro se ha beneficiado de las sugerencias de los estudiantes de la asignatura Técnicas
de Desarrollo de Software de la Universidad Abierta de Cataluña (UOC) y muy particularmente a
los estudiantes del grupo JAVA22 de los estudios de Informatica de Gestión de la UOC.
Contenido
Introducción 1
2.4.1 Multi-threading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.4.2 Modelo de compartición de datos . . . . . . . . . . . . . . . . . . . . . . 58
2.4.3 Modelo basado en paso de mensajes . . . . . . . . . . . . . . . . . . . . . 58
2.5 Proceso de construcción de una aplicación distribuida . . . . . . . . . . . . . . . . 59
2.5.1 Descomposición en paquetes/componentes y ciclo en espiral . . . . . . . . 59
2.5.2 Modelo-Vista-Controlador con patrón Observador . . . . . . . . . . . . . 60
Observer y Observable de Java. . . . . . . . . . . . . . . . . 61
2.5.3 Factores que miden el éxito del proceso de desarrollo de aplicaciones dis-
tribuidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Test de auto-evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7 Aplicaciones distribuidas con Java: interfaces gráficas de usuario con Swing 179
7.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
7.2 Capa de presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
7.3 Soporte Java a las interfaces gráficas . . . . . . . . . . . . . . . . . . . . . . . . . 181
7.4 El paquete Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
7.4.1 Swing básico: componentes gráficos habituales . . . . . . . . . . . . . . . 183
7.4.1.1 Ventanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Ejemplo 7.1.: Código completo para crear una ventana. . . . . . . . 184
7.4.1.2 Paneles y organizadores de contenido (layouts) . . . . . . . . . . 185
Combinación de diferentes organizadores. . . . . . . . . . . . . . . 187
Ejemplo 7.2.: Dar color al fondo de pantalla. . . . . . . . . . . . . 188
7.4.1.3 Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Ejemplo 7.3.: Etiquetas JLabel. . . . . . . . . . . . . . . . . . . . 189
7.4.1.4 Campos y áreas de texto . . . . . . . . . . . . . . . . . . . . . . 191
Ejemplo 7.4.: Campo de texto. . . . . . . . . . . . . . . . . . . . . 191
7.4.1.5 Botones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
XIV Programación Distribuida con Java
Bibliografı́a 371
Acrónimos 373