Anda di halaman 1dari 3

ASIGNATURA: Aplicaciones Distribuidas Nivel: 7

TEMA: Hilos y Concurrencia Proyecto Nº: 1

1. INTRODUCCIÓN: Contador de palabras en paralelo

2. OBJETIVO GENERAL: Implementar en Java un sistema que cuente las


palabras en un documento dado, utilizando ExecutorCompletionService

2.1. OBJETIVOS ESPECÍFICOS Nivel*


Poner en práctica todos los conceptos de concurrencia y paralelismo A
Dominar el uso de los objetos concurrentes de las librerías Java A
*Alto(A), Medio (M), Bajo (B)

3. DEFINICIONES: Hilos, Concurrencia, Paralelismo

4. BASE CONCEPTUAL: POO, Hilos, Ejecutores

5. ACTIVIDADES PREVIAS:
- Describa detalladamente el modelo Map-Reduce
- Describa brevemente los 3 frameworks OpenSource más utilizados, que
adopten el modelo Map-Reduce

6. MÉTODO/PROCEDIMIENTO

- Trabaje en grupos de 3 personas


- Diseñe un programa Java de múltiples hilos que cuente las palabras en un
documento de texto, de acuerdo a los siguientes requerimientos:
o El ejecutor tendrá un pool de X threads, donde X es igual al doble de
procesadores (núcleos) del equipo.
o El hilo principal creará una tarea por cada párrafo en el documento y
las pasará el ejecutor.
o Cada tarea contará la cantidad de cada palabra en su párrafo, y
devolverá esta información al hilo principal.
o El hilo principal consolidará esta información y presentará la tabla
con el resultado global.
o Los símbolos de puntuación se ignorarán, así como mayúsculas y
minúsculas (hola == HOLA).
o Su programa debe poder trabajar con archivos como este:
o http://textfiles.com/stories/cybersla.txt

7. EQUIPOS Y MATERIALES:
- Java
- NetBeans

8. CONDICIONES DE SEGURIDAD:

1
9. CUESTIONARIO DE INVESTIGACIÓN:

- Detalle 3 similitudes y 3 diferencias existentes entre los objetos:


o ExecutorService
o ExecutorCompletionService
o ForkJoin
- Explique cuáles son las ventajas y desventajas de utilizar los objetos del
paquete java.util.concurrent, en lugar de utilizar las primitivas y objetos
tradicionales del paquete java.lang.
- Calcule la diferencia en tiempo de cálculo, de resolver este problema
utilizando de 1 a 20 hilos. Presente y explique los resultados, cotejándolos
con el número de procesadores/cores en el(los) equipo utilizado para el
experimento

10. EVALUACIÓN DEL APRENDIZAJE:

Resultados de aprendizaje de Resultados de aprendizaje Nivel del


la carrera de la asignatura aprendizaje
de la práctica
Aplica pensamiento lógico, Implementa sistemas A
fundamentos matemáticos, distribuidos cuyos
principios algorítmicos, técnicas componentes compartan
y lenguajes de programación; correctamente la información,
en la fundamentación, diseño y el procesamiento y la lógica
desarrollo de programas de la ejecución.
computacionales.
*Alto(A), Medio (M), Bajo (B)

11. EVALUACIÓN DE RESULTADOS OBTENIDOS:

Resultados obtenidos SI NO Observaciones


Implementa una aplicación distribuida compleja y X
completa en Java

12.- BIBLIOGRAFÍA:

- [PS] Pablo Sznajdleder. (2010). Java a Fondo. Alfaomega, México


- [SH] Schildt (2014). Java The Complete Reference (9th edition). Oracle.
ISBN-13: 978-0071808552
-https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-
summary.html

13.- RUBRICA DE EVALUACIÓN DEL PROYECTO


- presentación y defensa: 80%
- entrega programa: 10%
- entrega informe: 10%

2
Elaborado por: Revisado por: Aprobado por:

_____________________ _____________________ _____________________


Diego Ordóñez Víctor Gálvez Oswaldo Moscoso
DOCENTE RESPONSABLE DE COORDINADOR DE
ÁREA CARRERA
Fecha: 10 / 10 / 2018 Fecha: / / 2018 Fecha: / / 2018

Anda mungkin juga menyukai