J U S T I F I C A C I Ó N:
Se puede decir que el proyecto SCAF, desarrollado por la empresa
HydraSoft a lo largo del semestre es distribuido ya que considera y cubre cada
una de las características con las que se definió un sistema distribuido, a continuación,
desglosaremos cada una de ellas y explicaremos de qué forma el proyecto
las cubre.
Por definición, el proyecto tiene corriendo en distintas computadoras
(con distintos procesadores), los distintos módulos que lo integran, se accede
a él a través de una red local de computadoras, cuyos componentes se comunican
a través de un protocolo (IP) para intercambiar mensajes para un fin común, por
lo que lo que cumple con la definición estricta de un sistema
distribuido.
CARACTERISTICAS DEFINIDAS:
"Por definición estricta, se menciona que un sistema distribuido
cumple con las siguientes características..." (Coulouris, 2005)
1.-Concurrencia: Los recursos del proyecto pueden ser
utilizados o consultados al mismo tiempo por los diversos usuarios que utilizan
el sistema. A su vez, dichos recursos están disponibles en forma de módulos
para todos los usuarios, cada uno de ellos instalado y ejecutándose en una
unidad de procesamiento distinta.
2.-Fallos independientes: Cuando se da el caso de que un
modulo o servidor individual falle, los otros 3 pueden seguir corriendo los
procesos propios de cada modulo, es decir que cada modulo tiene tolerancia a
fallos independientes.
3.-Carencia de reloj global: Cada computadora tiene
definida su propia hora de sistema y este no está conectado o relacionado de
ninguna forma con el de los otros tres componentes del sistema, en los procesos
en los que se requiere obtener hora de un sistema, se utiliza aquella obtenida
del reloj de la unidad de procesamiento donde se está ejecutando el proceso.
DESAFIOS O CARACTERISTICAS REQUERIDAS:
"Como parte de las características requeridas para el óptimo
funcionamiento de un sistema se señalan características, comúnmente llamados
“desafíos” que deben ser cubiertas" (Liu, 2004)
1.-Heterogeneidad: La comunicación entre unidades de procesamiento está regulada y
estandarizada por los protocolos de conexión y la estructura de las clases,
aunado a la validación del sistema lo que permite una conexión que se da a través
de múltiples elementos de hardware y software: De igual forma, al ser
conformada por 4 equipos distintos, cada uno utiliza su propio hardware y un
software estandarizado para el sistema.
2.-Seguridad:La seguridad se cubre dado que al
establecerse el intercambio de mensajes entre las unidades de procesamiento, no
puede haber intrusión de un agente externo y a su vez, la información que se
guarda a base de datos, como por ejemplo contraseñas, se manejan de una forma
distinta que los datos de comunicación comunes y siempre que el sistema este
corriendo, estos están disponibles, aunado a la seguridad que proporciona
centralizar la base de datos en un servidor, aun siendo 4 los que ejecuten el
sistema integrado.
3.-Escalabilidad: Se conserva la capacidad de
respuesta y efectividad del sistema al aumentar las peticiones y usuarios, lo
que se puede hacer de una manera confiable y sin riesgo a que el proceso se vea
afectado de ninguna forma desde cualquiera de los 4 servidores disponibles.
4.-Transparencia: La comunicación entre un
cliente y los distintos servidores distribuidos que conforman al sistema en sí,
es totalmente transparente para el usuario, ya que el re direccionamiento con la
tecnología IP permite una navegación fluida y continua, sin necesidad de
direccionar manualmente en ningún momento y sin muestras muy evidentes del
cambio entre los distintos servidores.
5.-Extensibilidad: Puede darse el caso del
desarrollo de un nuevo modulo del proyecto el cual podría acoplarse al sistema
actual, pudiéndose ejecutar en un servidor externo a los que actualmente llevan
a cabo la ejecución del sistema. Del mismo modo en el caso de la eliminación de
un modulo actualmente implementado, es posible el retiro de dicho modulo del
sistema sin afectar el resto.
El utilizar la tecnología de los sistemas distribuidos en el proyecto
nos da la enseñanza de lo útiles y poderosas que pueden ser estas herramientas
en el desarrollo de un sistema, ya que, aunque parecieran simples en un único,
las características que se adquieren al distribuir una aplicación en servidores
separados y modulares, son útiles en el proceso de la ejecución y también
interesantes para el estudio de la lógica del programa.