Aplicaciones Distribuidas en Java Con Tecnologia RMI: JANUARY 2008
Aplicaciones Distribuidas en Java Con Tecnologia RMI: JANUARY 2008
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/266794630
READS
910
2 AUTHORS:
Santi Caball
Fatos Xhafa
SEE PROFILE
SEE PROFILE
II
III
IV
Pagina de Copyright
A nuestras famlias.
VI
VII
Prefacio
La programacion distribuida, des de sus incios, ha formado parte de los currculums de los estudios
de informatica y hoy en da esta presente no solo en los planes de estudios informaticos sino que
tambien en las ingenieras en general, e incluso en nuevas titulaciones como las bioinformatica.
Ademas, la comunidad de los profesionales que usan la programacion distribuida como su herramienta de programacion ha ido siempre creciendo.
Con Internet y otras nuevas tecnologas, la programacion distribuida ha recibido un nuevo impulso. La propia naturaleza de Internet como una plataforma distribuida ha hecho de la programacion distribuida un paradigma indispensable para el desarrollo de aplicaciones de Internet. Como
consecuencia, la programacion distribuida ha resultado aun mas importante para los estudios universitarios.
El libro Aplicaciones Distribuidas con Java explica los fundamentos de la programacion distribuida con Java. El contenido propuesto tiene como objetivo cubrir las necesidades de las titulaciones de ingenieras tecnicas y superior en Informatica en cuanto a asignaturas de arquitectura y
programacion intermedia y avanzada. Por otra parte, el contenido representa un punto de partida
para profesionales informaticos que deseen introducirse en la programacion distribuida. Los contenidos del libro cubren el desarrollo de las aplicaciones distribuidas paso a paso transmitiendo as
la metodologa que el estudiante y el profesional necesitan y pueden aplicar para afianzar los conceptos teoricos. Para ello, se ha considerado el caso de la tecnologa RMI de manera sistematica:
empezando por los conceptos basicos, ejemplos y aplicaciones sencillas hasta llegar a aplicaciones
complejas.
El libro tiene un enfoque eminentemente pragmatico combinando los conceptos teoricos principales con gran cantidad de ejemplos. Estos ejemplos se encuentran en forma de graficos para
representar los modelos de arquitecturas expuestas conceptualmente y sobretodo incluye casos resueltos tanto especficos como completos en forma de codigo 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 universitarios que tienen que afrontar ejercicios practicos como parte del plan de estudios para superar
las asignaturas. Ademas se ha concebido como una obra para el aprendizaje incremental desde
los conceptos basicos hasta los mas avanzados. El libro no presupone ningun conocimiento de la
programacion distribuida si bien presupone algunos conocimientos muy basicos de Programacion
VIII
ejemplos practicos.
A partir de una lectura secuencial del libro, cualquier lector (estudiante o profesional) podra
avanzar en sus conocimientos de programacion distribuida y su aplicacion en Java de forma gradual. Tambien se facilitara al lector la posibilidad de experimentar a fondo con todos los ejemplos
ofrecidos en el libro mediante la disposicion de material complementario que se encuentra en el
sitio Web de Delta Publicaciones. El objetivo es aprovechar los altos beneficios pedagogicos que
ofrecen las practicas en este sentido al implicar la instalacion y el uso de las tecnologas necesarias
para experimentar con los ejemplos del libro.
Nuestros agradecimientos a Joan Carles Gimenez Alcober por su ayuda en la preparacion del
material. Este libro se ha beneficiado de las sugerencias de los estudiantes de la asignatura Tecnicas
de Desarrollo de Software de la Universidad Abierta de Cataluna (UOC) y muy particularmente a
los estudiantes del grupo JAVA22 de los estudios de Informatica de Gestion de la UOC.
Los autores
Contenido
IX
Contenido
Introduccion
1 El paradigma de la computacion distribuida
1.1 Introduccion . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Sistemas distribuidos y centralizados . . . .
1.2 Que es la computacion distribuida . . . . . . . . . .
1.3 Anatoma de un entorno de computacion distribuida .
1.3.1 Capa hardware . . . . . . . . . . . . . . . .
1.3.2 Capa sistema operativo de red . . . . . . . .
1.3.2.1 Procesos . . . . . . . . . . . . . .
1.3.2.2 Threads . . . . . . . . . . . . . .
1.3.2.3 Comunicacion a redes . . . . . . .
1.3.3 Capa software intermediario (middleware) . .
1.3.4 Capa aplicacion . . . . . . . . . . . . . . . .
1.4 Beneficios de la computacion distribuida . . . . . . .
1.4.1 Escalabilidad . . . . . . . . . . . . . . . . .
1.4.2 Apertura . . . . . . . . . . . . . . . . . . .
1.4.3 Heterogeneidad . . . . . . . . . . . . . . . .
1.4.4 Fiabilidad . . . . . . . . . . . . . . . . . . .
1.4.5 Viabilidad . . . . . . . . . . . . . . . . . . .
1.5 Costes y soluciones en la computacion distribuida . .
1.5.1 Interoperabilidad . . . . . . . . . . . . . . .
1.5.2 Eficiencia y seguridad . . . . . . . . . . . .
1.5.3 Vision global . . . . . . . . . . . . . . . . .
1.5.3.1 Coherencia . . . . . . . . . . . . .
1.5.3.2 Sincronizacion . . . . . . . . . . .
1.5.3.3 Administracion . . . . . . . . . .
1.5.3.4 Balanceo de carga . . . . . . . . .
1.5.4 Transparencia en la computacion distribuida .
1.5.4.1 Transparencia de acceso . . . . . .
1.5.4.2 Transparencia de ubicacion . . . .
1.5.4.3 Transparencia de migracion . . . .
1.5.4.4 Transparencia de replicacion . . .
1.5.4.5 Transparencia a fallos . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
12
13
15
16
16
17
17
17
18
18
19
20
21
22
22
23
24
24
25
26
26
27
27
28
28
28
29
29
29
29
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
30
31
32
33
33
34
35
35
36
38
39
39
40
41
42
43
44
44
45
45
46
47
47
47
48
48
49
49
49
50
50
51
51
52
53
53
54
56
56
57
58
Contenido
XI
2.4.1 Multi-threading . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.2 Modelo de comparticion de datos . . . . . . . . . . . . . . . . . . .
2.4.3 Modelo basado en paso de mensajes . . . . . . . . . . . . . . . . . .
2.5 Proceso de construccion de una aplicacion distribuida . . . . . . . . . . . . .
2.5.1 Descomposicion en paquetes/componentes y ciclo en espiral . . . . .
2.5.2 Modelo-Vista-Controlador con patron Observador . . . . . . . . . .
Observer y Observable de Java. . . . . . . . . . . . . .
2.5.3 Factores que miden el e xito del proceso de desarrollo de aplicaciones
tribuidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Test de auto-evaluacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Java para aplicaciones distribuidas
3.1 Paradigma de orientacion a objetos . . . . . . . . . . . . . . . . . . .
3.1.1 Modularizacion y ocultacion de la informacion . . . . . . . .
Ejemplo 3.1.: Gestion de Empleados de una Empresa.
3.1.2 Clasificacion y abstraccion . . . . . . . . . . . . . . . . . . .
Ejemplo 3.2. Abstraer el modelo de un coche. . . . . .
3.1.3 Herencia y polimorfismo . . . . . . . . . . . . . . . . . . . .
3.1.4 Documentacion y mantenimiento . . . . . . . . . . . . . . .
3.2 Interoperabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Interoperabilidad a nivel de plataforma . . . . . . . . . . . .
3.2.1.1 Bytecode . . . . . . . . . . . . . . . . . . . . . . .
3.2.1.2 Java Native Interface . . . . . . . . . . . . . . . .
Ejemplo de JNI. . . . . . . . . . . . . . . . . . . . .
3.2.2 Interoperabilidad a nivel de aplicacion . . . . . . . . . . . . .
3.2.2.1 Capa de presentacion . . . . . . . . . . . . . . . .
3.2.2.2 Capa de negocio . . . . . . . . . . . . . . . . . . .
3.2.2.3 Capa de datos . . . . . . . . . . . . . . . . . . . .
3.3 Soporte al trabajo en red (networking) . . . . . . . . . . . . . . . . .
3.3.1 Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1.1 OutputStream . . . . . . . . . . . . . . . . . . . .
Ejemplo 3.3: Manejo de ficheros. . . . . . . . . . . .
3.3.1.2 InputStream . . . . . . . . . . . . . . . . . . . . .
Ejemplo 3.4.: Fichero de entrada. . . . . . . . . . . .
Ejemplo 3.5.: Streams. . . . . . . . . . . . . . . . . .
3.3.2 Sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2.1 Socket . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2.2 ServerSocket . . . . . . . . . . . . . . . . . . . . .
Ejemplo 3.6.: Uso de sockets. . . . . . . . . . . . . .
3.4 Soporte al modelo de objetos distribuidos . . . . . . . . . . . . . . .
3.4.1 CORBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.2 Remote Method Incocation RMI . . . . . . . . . . . . . . .
3.5 Seguridad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Seguridad en applets y aplicaciones . . . . . . . . . . . . . .
Ejemplo 3.7.: Ejemplo de norma y permisos. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . .
. . .
. . .
. . .
. . .
. . .
. . .
dis. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
58
58
58
59
59
60
61
62
63
65
65
66
67
70
70
73
74
74
75
76
76
77
78
78
79
79
79
80
81
81
82
82
85
86
86
86
88
89
89
93
95
95
98
XII
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
98
99
99
100
101
104
107
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
109
109
110
112
112
113
114
114
116
117
118
119
120
122
123
124
125
126
126
127
129
129
130
130
131
133
134
135
135
136
136
137
137
138
139
141
Contenido
5.2.1 Compilar la interfaz remota, servidor y cliente
5.2.2 Generar stubs y skeletons con rmic . . . . . . .
5.2.3 Arrancar el registro (RMIRegistry) . . . . . . .
5.2.4 Ejecutar el servidor . . . . . . . . . . . . . . .
5.2.5 Ejecutar el cliente . . . . . . . . . . . . . . . .
5.3 Automatizacion de tareas . . . . . . . . . . . . . . . .
5.4 Despliegue y ejecucion en un entorno real . . . . . . .
Test de auto-evaluacion . . . . . . . . . . . . . . . . . . . .
XIII
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
141
141
142
142
143
145
146
148
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
151
151
151
152
155
155
157
157
158
158
161
163
163
163
165
167
171
174
176
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
179
179
180
181
182
183
184
184
185
187
188
189
189
191
191
193
XIV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
193
195
196
198
198
200
203
203
204
214
214
221
221
224
224
229
231
231
232
235
236
237
237
239
245
248
248
249
252
252
252
253
255
256
258
260
261
265
267
267
272
274
274
276
Contenido
XV
La clase java.sql.ResultSet. . . . . . . . . . . . . . . . .
La clase PantallaConsultarElector. . . . . . . . . . . . .
La clase GestorDiscoElector para consulta. . . . . . . .
Ejecucion. . . . . . . . . . . . . . . . . . . . . . . . . .
Resultado de la consulta de un elector. . . . . . . . . . .
8.3.3.3 Sentencias executeUpdate para modificar informacion
La clase PantallaModificarElector. . . . . . . . . . . . .
La clase GestorDiscoElector para modificacion. . . . . .
Ejecucion. . . . . . . . . . . . . . . . . . . . . . . . . .
Resultados de modificar un elector. . . . . . . . . . . .
8.3.3.4 Sentencias executeUpdate para eliminar . . . . . . .
La clase PantallaBorrarElector. . . . . . . . . . . . . . .
La clase GestorDiscoElector. . . . . . . . . . . . . . . .
Ejecucion. . . . . . . . . . . . . . . . . . . . . . . . . .
Resultado de la eliminacion de un elector. . . . . . . . .
Test de auto-evaluacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 Poniendo las piezas juntas...la aplicacion distribuida eVotoSeguro
9.1 Presentacion del problema de la votacion electronica . . . . . .
9.2 Especificacion y analisis de la aplicacion eVotoSeguro . . . . . .
9.2.1 Descripcion del sistema . . . . . . . . . . . . . . . . .
9.2.2 Programa Electorado . . . . . . . . . . . . . . . . . . .
Electores. . . . . . . . . . . . . . . . . . . . . .
Partidos. . . . . . . . . . . . . . . . . . . . . .
Candidatos. . . . . . . . . . . . . . . . . . . . .
Circunscripciones. . . . . . . . . . . . . . . . .
Comarcas. . . . . . . . . . . . . . . . . . . . . .
Municipios. . . . . . . . . . . . . . . . . . . . .
Centros. . . . . . . . . . . . . . . . . . . . . . .
Mesas electorales. . . . . . . . . . . . . . . . .
Impresion del acta. . . . . . . . . . . . . . . . .
Envo de los votos a la Central Electoral. . . . .
Creacion de archivos historicos. . . . . . . . . .
Escrutinio. . . . . . . . . . . . . . . . . . . . .
9.2.3 Programa Contrasena . . . . . . . . . . . . . . . . . . .
Identificacion. . . . . . . . . . . . . . . . . . . .
Obtencion de contrasena. . . . . . . . . . . . . .
9.2.4 Programa Votantes . . . . . . . . . . . . . . . . . . . .
Identificacion. . . . . . . . . . . . . . . . . . . .
Votacion. . . . . . . . . . . . . . . . . . . . . .
Introduccion de la contrasena. . . . . . . . . . .
Seleccion del candidato. . . . . . . . . . . . . .
Confirmacion de la seleccion. . . . . . . . . . .
Despido. . . . . . . . . . . . . . . . . . . . . .
9.2.5 Resumen Esquematico . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
276
279
282
283
284
284
285
291
292
293
295
295
298
299
299
299
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
303
303
304
304
305
305
305
306
306
307
307
307
308
308
308
308
308
309
309
309
309
309
309
310
310
310
310
310
XVI
9.3
9.4
9.5
Recursos necesarios . . . . . . . . . . . . . . . . . . . .
Otros requerimientos . . . . . . . . . . . . . . . . . . . .
Extensibilidad de eVotoSeguro. . . . . . . . . . . .
Codigos de barras. . . . . . . . . . . . . . . . . .
Pantalla tactil. . . . . . . . . . . . . . . . . . . . .
Distribucion del espacio y disposicion de la cabina.
9.2.8 Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagramas de casos de uso . . . . . . . . . . . . . . . . . . . . .
9.3.1 Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3.1.1 Identificacion de los actores . . . . . . . . . . .
9.3.1.2 Diagrama de casos de uso de los requisitos . . .
9.3.2 Descripcion textual de los casos de uso . . . . . . . . . .
Caso de uso Gestion electores. . . . . . . . . . . .
Caso de uso Gestion de partidos. . . . . . . . . . .
Caso de uso Gestion de candidatos. . . . . . . . .
Caso de uso Gestion circunscripciones. . . . . . .
Caso de uso Gestion comarcas. . . . . . . . . . .
Caso de uso Gestion municipios. . . . . . . . . . .
Caso de uso Gestion de centros. . . . . . . . . . .
Caso de uso Gestion mesa electoral. . . . . . . . .
Caso de uso Tratamiento escrutinio. . . . . . . . .
Caso de uso Calcular participacion. . . . . . . . .
Caso de uso Identificacion y finalizacion. . . . . .
Caso de uso Identificar elector. . . . . . . . . . .
Caso de uso Comprobar contrasena. . . . . . . . .
Caso de uso Emitir voto. . . . . . . . . . . . . . .
Caso de uso Crear acta. . . . . . . . . . . . . . .
Arquitectura / diseno de la aplicacion eVotoSeguro . . . . . . . . .
9.4.1 Diagrama de entidades . . . . . . . . . . . . . . . . . . .
9.4.2 Diagrama de paquetes . . . . . . . . . . . . . . . . . . .
9.4.3 Subsistema Gestion Basica Central Electoral . . . . . . .
9.4.3.1 Descripcion . . . . . . . . . . . . . . . . . . .
9.4.3.2 Diagramas de jerarquas . . . . . . . . . . . .
9.4.4 Subsistema Calculo Votos . . . . . . . . . . . . . . . . .
9.4.4.1 Resultados . . . . . . . . . . . . . . . . . . . .
9.4.4.2 Consultas . . . . . . . . . . . . . . . . . . . .
9.4.4.3 Diagrama de clases . . . . . . . . . . . . . . .
9.4.5 Subsistema Actividades Centro . . . . . . . . . . . . . .
9.4.5.1 Descripcion . . . . . . . . . . . . . . . . . . .
9.4.5.2 Diagrama de clases . . . . . . . . . . . . . . .
9.4.6 Diagrama de estados . . . . . . . . . . . . . . . . . . . .
Persistencia de datos . . . . . . . . . . . . . . . . . . . . . . . .
9.5.1 Descripcion . . . . . . . . . . . . . . . . . . . . . . . . .
9.5.2 Diseno conceptual Diagrama ER . . . . . . . . . . . . .
Descripcion de los atributos . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
311
311
311
312
312
312
312
313
314
314
314
317
317
317
317
318
318
318
319
319
319
320
320
320
321
321
321
322
322
322
324
324
325
325
327
328
328
328
328
330
330
331
331
331
331
Contenido
9.6
XVII
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
333
334
334
334
335
335
343
345
345
346
347
347
349
350
351
353
357
361
361
362
364
369
Bibliografa
371
Acronimos
373
Indice
de terminos
374