Debido al auge que tienen actualmente los sistemas orientados a web y la importancia de la comunicaci'on m'aquina-a-m'aquina, este proyecto de grado se enfoca en la medici'on y mejora de la Escalabilidad de un Web Service2.1. En el Ap'endice
puede consultarse informaci'on sobre los conceptos y rendimiento de los Web Services; algunas m'etricas de rendimiento generales, 'esta tecnolog'ia en el marco del movimiento FLOSS (Free/Libre/Open Source Software), sus caracter'isticas, su arquitectura, sus ventajas y desventajas.
A'un cuando existen diferentes conceptos sobre WS enmarcados en este proyecto de grado, un Web Service es un componente de software que cumple con un conjunto de est'andares como SOAP, WSDL, XML y UDDI, que permite el intercambio de datos entre aplicaciones. Se pueden publicar, encontrar, buscar e invocar a trav'es de la web haciendo uso de un conjunto de protocolos y sin uso de alg'un tipo de interfaz gr'afica.
Los WS poseen caracter'isticas especiales que afectan su rendimiento. menasce ofrecen un conjunto de atributos orientados a servicios Web (no necesariamente Web Services) para la medici'on del rendimiento. Entre estos tributos se encuentran: Tiempo de Respuesta, Cantidad de solicitudes por segundo, Cantidad de datos en Mbps, Errores por segundo, Visitantes por d'ia, Visitantes 'unicos por d'ia.
Para poder ofrecer una mejora en la Escalabilidad de un sistema es necesario entender algunos conceptos, sus relaciones y sus aplicaciones en el mundo del software. La Escalabilidad, como atributo de calidad, est'a referenciada por diversos autores como una caracter'istica importante en el dise no de una aplicaci'on. Sin embargo, se encuentran diferencias entre los conceptos que ofrece la literatura. Para esclarecer el concepto, se realiz'o una revisi'on bibliogr'afica sobre los conceptos de los atributos de calidad que est'an m'as relacionados con la Escalabilidad: Mantenibilidad, Rendimiento y Fiabilidad. Dicha revisi'on puede ser consultada en el Ap'endice
(Marco Conceptual). En el presente Cap'itulo s'olo son rese nados los aspectos estrictamente necesarios sobre este concepto.
Seg'un gorton los atributos de calidad son parte de los requerimientos no funcionales de una aplicaci'on. Incluso este autor establece que la Escalabilidad, la Seguridad, el Rendimiento y la Fiabilidad son atributos de calidad generalmente utilizados. Por su parte el iso9126-1 separa los atributos de calidad internos y externos, y se categorizan en seis caracter'isticas: Funcionalidad, Fiabilidad, Usabilidad, Eficiencia (Rendimiento), Mantenibilidad y Portabilidad. La Escalabilidad es un t'ermino que, aun siendo com'unmente utilizado, no posee una definici'on precisa en la literatura duboc, e inclusive se puede notar que en el iso9126-1 no es tomado como parte de las caracter'isticas o subcaracter'isticas del modelo de calidad.
Bajo los conceptos consultados en la revisi'on bibliogr'afica, 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. En la siguiente secci'on ser'an explicados algunos antecedentes relevantes para esta investigaci'on.