next up previous contents
Siguiente: Mantenibilidad Subir: Escalabilidad Anterior: Atributos de calidad Non-Runtime   Índice General


Conceptos de Escalabilidad

Es importante se nalar que el t'ermino Escalabilidad no es aceptado por la Real Academia Espa nola (RAE) como una palabra, por lo tanto es tomada del ingl'es Scalability. As'i pues para tomar un concepto referencial, seg'un hyperdictionary, Escalabilidad se entiende como qu'e tan bien funcionar'a la soluci'on a un problema, cuando el tama no del mismo aumente.

Entendiendo el t'ermino de Escalar un sistema, como la acci'on de aumentar la capacidad de atender consistentemente las solicitudes enviadas al mismo, entonces Escalable se refiere a la capacidad de realizar esta acci'on.

gorton se refiere a que la Escalabilidad trabaja sobre c'omo un dise no puede hacer frente al requerimiento de que algunos aspectos de la aplicaci'on aumenten en tama no. Es importante entender exactamente qu'e se espera que crezca (Carga requerida, Conexiones Simult'aneas, Tama no de datos, Despliegue, entre otros). La Escalabilidad debe ser alcanzada sin modificaciones a la arquitectura subyacente gorton.

Por su parte ziavras expresa que en general, la Escalabilidad es concerniente a la posibilidad de construir sistemas m'as grandes para darle soluci'on a problemas m'as grandes sin una degradaci'on significativa de su rendimiento, dado el incremento en comunicaci'on y otras latencias en un ambiente paralelo o distribuido.

Seg'un luke, Escalabilidad (en sistemas paralelos) es simple: dado un rendimiento razonable en un problema, el incremento en la carga de trabajo puede ser resuelto con un rendimiento razonable, mediante un c'onsono incremento de recursos computacionales. Es decir, que si el problema aumenta, deber'ia mantenerse el rendimiento aumentando en la misma proporci'on los recursos.

Para talkington la Escalabilidad es b'asicamente una m'etrica que indica los beneficios del rendimiento de m'ultiples procesadores, basados en sistemas a los que se les puede realizar Scale Up .2 y/o Scale Out .3. Es importante notar que para talkington la Escalabilidad es simplemente una m'etrica.

perez2005 establecen que la Escalabilidad es una subcaracter'istica de la Fiabilidad y se refiere a la habilidad de atender consistentemente las solicitudes a pesar de las variaciones del volumen de la demanda.

reekie intentan definir a la Escalabilidad como qu'e tan f'acil un sistema puede ser escalado. Es decir, la capacidad de adaptaci'on a enfrentarse a una mayor demanda de desempe no. Es importante recordar que estos mismos autores catalogan esta caracter'istica como Non-Runtime, lo que puede significar que tiene una relaci'on directa con la Mantenibilidad/Modificabilidad, en caso de que la acci'on de adaptaci'on a una mayor demanda sea realizada a trav'es de m'etodos de modificaci'on del Software del sistema.

Bajo estos conceptos es posible observar dos caracter'isticas distintas que pudieran estar siendo llamadas con el mismo nombre, pero que sin lugar a dudas tienen cualidades distintas. gorton, luke, talkington y perez2005 parecen establecer que la caracter'istica de Escalabilidad est'a definida como la capacidad de un sistema a responder adecuadamente cuando la demanda haya aumentado, y a'un cuando s'olo la aproximaci'on de perez2005 dejan entender directamente que se refiere a la capacidad (m'axima) actual del sistema, no hay indicios suficientes para decir que los dem'as autores no respalden esta tesis. Estos autores no hacen referencia a la facilidad con que se realice el proceso de aumentar la capacidad actual del mismo, mientras que ziavras y reekie se centran en la posibilidad de construir sistemas m'as grandes o a la facilidad con que un sistema puede ser Escalado, dejando entender que son necesarios algunos cambios para que estos logros sean alcanzados. Esto crea ambig"uedad al t'ermino y dificulta el establecimiento de una definici'on.

As'i pues, para este proyecto de investigaci'on son tomados los conceptos de gorton, luke, talkington, y perez2005, entendiendo que la Escalabilidad es la capacidad m'axima actual que tiene un Software a responder adecuadamente cuando la demanda haya aumentado. Por lo tanto, es importante entender que el hecho de que un sistema tenga la caracter'istica de Escalabilidad, no significa que el sistema sea Escalable. Ya que Escalable, por definici'on, es la capacidad de Escalar, es decir, de aumentar la caracter'istica de Escalabilidad. Por lo tanto, Escalar se refiere a aumentar, Escalable es la posibilidad de aumentar y Escalabilidad es la capacidad actual de un sistema a seguir aportando soluciones, manteniendo el rendimiento requerido, cuando el tama no del problema haya aumentado.

Tambi'en es posible concluir, bajo estos conceptos, que la Escalabilidad se refiere al incremento del problema en cuanto al tama no y no en cuanto a la complejidad. Por lo tanto, la capacidad que tiene el software de que se le a nadan nuevas funcionalidades no corresponde a la caracter'istica de Escalabilidad sino directamente a la caracter'istica de Mantenibilidad.

Los atributos de calidad Escalabilidad y Rendimiento est'an altamente ligados, y es por esta raz'on que definiciones derivadas de la Escalabilidad est'an relacionadas con el rendimiento de una aplicaci'on. El t'ermino de Scaling Up es com'unmente utilizado para referirse al incremento del rendimiento a trav'es de a nadir m'as procesadores a un servidor. El incremento de sistemas completos se le suele llamar Scaling Out talkington. En sistemas cr'iticos de accesos de lectura de base de datos puede ser mejorado el rendimiento y Escalabilidad de una manera Scale Out, a nadiendo m'ultiples r'eplicas de servidores de base de datos como puede ser visto en la Figura [*] kloski.

Figura: Dise no de r'eplicas m'ultiples de servidores de base de datos para mejoramiento en el rendimiento de acceso a lectura.

Fuente: kloski

Al t'ermino Scale Up se le puede llamar Escalabilidad Vertical, mientras que al t'ermino Scale Out se le suele llamar Escalabilidad Horizontal kloski.

Para withall existen dos maneras principales de realizar escaladas de un sistema en cuanto al desempe no: Scaling Up y Scaling Out (utilizando el mismo concepto que kloski). withall comenta que la habilidad de realizar Scale Out demanda mayor cantidad de requerimientos porque influye en la arquitectura b'asica del software y no puede ser ajustada posteriormente, mientras que realizar Scaling Up t'ipicamente no afecta al software de ninguna forma. Si se desea escalar a trav'es del aumento de n'umero de sitios en donde se ejecuta el sistema, se debe considerar el c'omo coordinar estos sitios withall. De esta manera, se se nala que existen requerimientos arquitect'onicos para llevar a cabo un proceso de mejoramiento de la Escalabilidad a trav'es de m'etodos distintos a Scale Up.

Es importante notar que para implementar alguno de estos dos mecanismos de aumento en la Escalabilidad es necesario: bien tener la capacidad de a nadir m'as Hardware a los sistemas o incluir sistemas completos. Para lo segundo, es necesario contar con alguna funcionalidad de adhesi'on de sistemas para distribuir la carga, o la capacidad de implementar los mismos. Para esta 'ultima opci'on es de suma importancia la caracter'istica de Mantenibilidad/Modificabilidad. Sabiendo que la Mantenibilidad es una pieza clave para realizar cualquier tipo de mejora de Escalabilidad a trav'es de modificaciones de Software, a continuaci'on se describe esta caracter'istica de calidad.


next up previous contents
Siguiente: Mantenibilidad Subir: Escalabilidad Anterior: Atributos de calidad Non-Runtime   Índice General
Daniel Moros 2010-05-05