En el proyecto se resolvio el problema distribución de carga para procesamiento de
calculos desde clientes para un servidor. La solución consiste en distribuir la
carga entre distintos servidores.
En muchos casos para una determinada red de computadores existe un solo servidor
que efectua cálculos para un determinado número de ususarios como el servidor
de Matlab del departamento de electronica. Cuando el número de clientes aumenta el
procesamiento y la memoria aumentan, y al llegar a cierto número de clientes el
el tiempo de espera para un resultado se hace mayor debido a que un solo servidor
atiende a los usuarios. Con el fin de solucionar el problema en el presente proyec
to se implementa un sistema de distrubición de tareas entre un numero determinado
de servidores encargados de efectuar los calculos.
Los objetivos son:
1-Implementar un sistema distribuido para la carga de multiples clientes
2-Hacer que el servidor encargado de la distribución de las tareas implemente
hebras para atender clientes y calculadoras(las encargadas de efectuar el calculo)
Se defienen los siguientes grupos:
Clientes: terminales que toman un cálculo del usuario y lo envían al Servidor.
Servidor: encargado tomar las peticiones de clientes y distribuirlas entre las
Calculadoras.
Calculadoras: Encargadas de efectuar el cálculo
A continuación se muetra un esquema de la solución implementada:
1- El cliente envia el string con el calculo completo a realizar.
2- El servidor separa el string en operaciones basicas y elige una calculadora
3- El servido envia opercaciónes basicas a la calculadora hasta que no quede
4- El Servidor envia la respuesta al cliente
A continuación se muestra un diagrama de flujo con el las aplicaciones una vez
establecida la conexion
A continuación se muestra diagrama de blouques para los módulos implementados en
el servidor:
Servidor encargada de:
1-Recibir conexiones de clientes.
2-Recibir conexiones de calculadoras.
3-Recibir String de calculadoras y enviarlo a Conexion.
4-Recibir Resultado de conexión y enviarlo al cliente.
Conexion se encarga de:
1-Manejar conexión con un cliente.
2-Recibir string del servidor.
3-Separar en operaciones básicas el string.
4-Priorizar las operaciones.
5-Buscar calculadora disponible en (Conexioncalc) y enviar operación6-Recibir las
operaciones y enviar resultado al cliente
Conexioncalc encargada de:
1-Manejar conexión con calculadora
2-Recibir operaciones de Conexión.
3-Enviar operaciones a Calculadora
4-Administrar flag para conexiones a las Calculadoras.
El modulo usado para calculadora fue solo calculadora el cual cumple las
siguientes funciones:
1-Admistrar la conección con el servidor.
2-Recibir operaciones basicas
3-Calcular operaciones básicas
4-Enviar resultado al servidro
El modulo cliente se encarga de la interaccion con el usuario, sus clases son:
Calculator:
1-Contiene el main encargado de ejecutar el programa.
CalculatorFrame:
1-Contiene el frame que contiene las componentes visuales de la calculadoras
CalculadorPanel encarga de:
1-Encargado de crear el panel del programa.
2-Provee funciones para poner las componentes visuales correspondientes a la interfaz de bienvenida y posteriormente para la interfaz de la calculadora.
2-Provee funciones para el envió de datos al servidor.
AceptarAction encargada de:
1-Extrae los datos del servidor a conectarse desde la interfaz de bienvenida.
2-Establece la conexión al servidor.
InsertAction encargada de:
1-Atiende las interrupciones generadas al apretar cualquier botón de la calculadora, excepto el de igual (=).
2-Encarga de mantener un pequeño control sobre los botones que se aprietan, evitando algunos de los errores posibles.
CommandAction encargada de:
1-Atiende la interrupción generada al apretar el botón igual (=) en la calculadora.
2-Llama a la función que envía los datos al servidor.
-El programa se hace mas eficiente y útil con mayor cantidad de
calculadoras. O menor cantidad de clientes . -El programa se hace mas útil con cálculos grandes, ya que para
operaciones de que requieren poca CPU y memoria el costo de conexión y
transmisión es mayor que el del cálculo.