You are on page 1of 69

Sistema de Control de una aplicación web Versión: Modificado

Controlador difuso Fecha: 11/12/2011

INGENIERIA 11 de diciembre

DE
CONTROL
2011
SISTEMA DE
TRABAJO - PROYECTO CONTROL DE UNA
APLICACIÓN WEB

TEMA INFORME FINAL

INTEGRANTES

07200062 REYES MARZANO, ALEJANDRO

07200135 HUAPAYA VASQUEZ , JOSE

07200074 CASASOLA, CESAR MIGUEL

07200179 MALLQUI PARRA, FRANCO ERNESTO

Confidencial  FISI-UNMSM Pág. 1


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

TABLA DE CONTENIDOS
1 Introducción 3
1.1 Antecedentes 3
1.2 Definición del problema 3
1.3 Objetivos 4
1.4 Justificación 4
1.5 Propuesta 4
1.6 Organización de la tesina 4

2 Marco teórico 4
2.1 Teoría de control 5
2.2 Ingeniería de control 7
2.3 Servidor web 7
2.4 E-commerce 10
2.4.1 Historia del e-commerce 10
2.4.2 Clases de e-commerce 10
2.4.3 Factores claves de éxito en e-commerce 11

3 Estado del arte 12


3.1 Taxonomía 12
3.2 Sistema usado 13
3.3 Modelo matemático 13
3.4 Métodos 13
3.5 Software relacionado 13

4 Resolución del problema aplicando la técnica seleccionada 14


4.1 El modelo matemático del servidor apache 14
4.1.1 Configuración del servidor apache 14
4.1.2 Experimento con el generador de carga de trabajo JMETER 16
4.1.2.1 Equipos de software y hardware para el experimento. 16
4.1.2.2 Determinación del MaxClients 17

5 Descripción de la solución tecnológica 17


5.1 Pruebas con el JMETER 18

6 Construcción del modelo matemático 48


6.1 Diseño del controlador web 55
6.2 Modelo difuso del controlador 57
6.3 Construcción del controlador difuso 62
6.3.1 Programación en java 62
6.3.2 Ejecución del controlador 64

7 Conclusiones y trabajos futuros 68

8 Referencias bibliográficas 69

Confidencial  FISI-UNMSM Pág. 2


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

ANALISIS Y DISEÑO DE UN SISTEMA DE CONTROL APLICADO A UNA WEB

1 Introducción

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las


tareas se reparten entre los proveedores de recursos o servicios, llamados servidores,
y los demandantes, llamados clientes. Un cliente realiza peticiones a otro programa,
el servidor, que le da respuesta. Esta idea también se puede aplicar a programas que
se ejecutan sobre una sola computadora, aunque es más ventajosa en un sistema
operativo multiusuario distribuido a través de una red de ordenadores.

La separación entre cliente y servidor es una separación de tipo lógico, donde el


servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente
un sólo programa. Los tipos específicos de servidores incluyen los servidores web,
los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos
varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.

Para este caso analizaremos el comportamiento de un servidor web en especial, el


APACHE SERVER, sus problemas frente a casos reales relacionados con la cantidad
de clientes que pueda manejar y una forma de solucionar dicha interrogante.

1.1 Antecedentes

El creciente uso de internet y la World wide web que es el principal servicio del
internet, para aplicaciones como e-commerce, redes sociales, trabajos en línea, etc.
Esto hace que los servidores que son los que alojan las aplicaciones web,
experimenten una sobre carga de trabajo, esto a su vez provoca una mala calidad de
los servicios, esto es una señal de desprestigio para cualquier empresa, en
consecuencia surge una necesidad de solucionar este problema, al no haber una
solución en términos de un modelo conocido, es necesario hacer una serie de
simulaciones para ver el funcionamiento de los servidores y a partir de allí sacar un
modelo de comportamiento de los servidores para su posterior planificación y control
de los accesos a los servicios, con la intención de ayudar a dar un mejor servicio y de
acuerdo a un criterio de acceso de modo que no haya una sobrecarga de peticiones
con tiempos de latencia alta y al final nadie acceda.

1.2 Definición del problema

El problema encontrado es: “que los servidores de aplicación web como apache v2.2,
no tienen un control automático de la cantidad de peticiones de acuerdo a los recursos
existentes en el servidor, en consecuencia debe existir un administrador del servidor
que esté cambiando de manera manual los valores de la cantidad máxima de clientes
MaxClients, esto hace que existan en algunos casos una cantidad de peticiones por
encima del MaxClients y como resultado un tiempo de respuesta alta y una mala
calidad de los servicios”

Confidencial  FISI-UNMSM Pág. 3


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

1.3 Objetivos

El objetivo de nuestro trabajo es la propuesta de solución del problema identificado


anteriormente el cual consiste en la aplicación de la teoría de control para el diseño de
un controlador que permita ajustar los parámetros del servidor sin la necesidad de un
operario y así reducir la probabilidad de falla del sistema debido a la carga de trabajo.

1.4 Justificación

El uso del internet y especialmente de la world wide web se hace cada vez más
indispensable para las organizaciones de cualquier índole sea con o sin ánimo de
lucro, inclusive las personas de todo nivel de conocimiento hacen de internet una
forma de vida ya sea en las redes sociales como Facebook, twitter, blogger, y otras
aplicaciones, también el e-commerce cada vez hay más gente comprando, vendiendo
algo por medios electrónicos como el internet. Esto hace que exista servicios que den
soporte a estas aplicaciones de manera fiable y con un tiempo transparente para el
común de los internautas, es por ello que proponemos que haya un controlador que
controle a los servidores web de manera automática o con la mínima intervención
humana, apra ello aplicamos la teoría de control que ya se han aplicado en otras áreas
de la ingeniería como en control de procesos industriales.

1.5 Propuesta

Nuestra propuesta es la implementación de un controlador de tipo SISO (una entrada


y una salida), el cual consiste que existirá una variable de entrada el MaxClients y
una de salida el Tiempo de respuesta, esto usando el modelo matemático que resulta
de la simulación de las cargas de trabajo son la herramienta JMETER.

1.6 Organización de la tesina

El trabajo está organizado en 7 capítulos de la siguiente manera capítulo 1 una


pequeña introducción al trabajo en la que se da a conocer los antecedentes, definición
del problema, objetivos, justificación y propuesta de solución. En el capítulo 2 se
presenta el marco teórico en la que se sustenta el trabajo. En el capítulo 3 se presenta
el estado del arte, el cual consiste en la presentación de los trabajos existentes hasta
este momento referente al tema. En el capítulo 4 se presenta el trabajo en sí, el cual
consiste en la implementación de un controlador. El capítulo 5 consiste en la
descripción de la solución propuesta. El capítulo 6 nos muestra las conclusiones a la
que llegamos y los trabajos a futuro referente al tema en cuestión. El capítulo 7
cosiste en la presentación de las bibliografías consultadas para la realización del
presente trabajo.

2 Marco teórico

El marco teórico es la teoría en la que se fundamenta el trabajo en cuestión en este caso


el diseño de un controlador web, para lo cual se necesita conocer la teoría de control, la
Confidencial  FISI-UNMSM Pág. 4
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

ingeniería de control, los servidores web, el e-commerce el cual será la aplicación a


simular, y toda la argumentación teórica referente a la revisión de las bibliografías
citadas al final del trabajo.

2.1 Teoría de control

Una línea de investigación interdisciplinaria que abarca los campos de la ingeniería y


de las matemáticas, en la cual se trata de estudiar el comportamiento de sistemas
dinámicos a través de modelos para su posterior control, en este sistema de control se
tiene entradas y para los cuales se tiene cierta salida, a esta salida se le conoce con el
nombre de referencia, todo ello con el objetivo de tener un efecto deseado en la salida
del sistema.

A partir del año 1955, se desarrollan los métodos temporales, con el objetivo de
solucionar los problemas planteados en aplicaciones aerospaciales, estos métodos
reciben un fuerte impulso con el desarrollo de las computadoras digitales, que
constituían la plataforma tecnológica necesaria para su implantación, prueba y
desarrollo. Aparece un nuevo método de diseño de control, conocido a partir de
entonces como teoría de control moderna. Se basaba en representar los sistemas en
variables de estado o representación interna y trabajando casi exclusivamente en el
dominio del tiempo.

La primera formulación en términos de estado, función de transición y de lectura, se


hizo en el marco de la teoría de máquinas discretas formulada por Turing, en 1936. Los
investigadores de la Unión Soviética son los primeros que utilizan el método de
descripción interna en el estudio de los sistemas continuos. Destacan los trabajos de
Aizerman, Lerner, Lurie, Pontryagin, La Salle, Popov, Minorsky, Kabala y Bellman.

La teoría de control moderna está basada en el concepto de estabilidad de Liapunov


presentado a finales del siglo XIX. Los trabajos desarrollados por Lurie sobre
servomecanismos de posicionamiento de torretas de tanques dieron lugar al concepto
de estabilidad absoluta, generalizada después por Popov con el concepto de
hiperestabilidad, que considera no linealidades en la realimentación. Los criterios de
Confidencial  FISI-UNMSM Pág. 5
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

controlabilidad y observabilidad de sistemas dinámicos lineales, se deben a Kalman,


aunque la noción de controlabilidad fue utilizada anteriormente por Pontryagin.

Los métodos de control óptimo se basan en los trabajos de físicos de los siglos XVII a
XIX, entre los que destaca Euler, con su cálculo de variaciones. En el desarrollo de
estos métodos se deben destacar los trabajos de Pontryagin, La Salle, Bellman
y Kalman. Kalman efectúa la resolución de los problemas de control óptimo cuadrático
y lineal cuadrático gaussiano.
Zadeh generaliza los resultados de teoría de circuitos a sistemas en el espacio de
estados y Luenberger en 1966 lo hace en lo que concierne al diseño de observadores.
En el control álgebraico, basado en la utilización de matrices polinomiales y
racionales, hay que hacer mención de los trabajos de Kalman, Rosembrock y
Wolowich. Son métodos que utilizan la descripción externa. Al final de los sesenta y
comienzo de los setenta se presenta el enfoque geométrico del problema de control,
que utiliza métodos del álgebra lineal. En paralelo se desarrollan los métodos de
identificación de sistemas, por mínimos cuadrados y de máxima verosimilitud, este
último fue desarrollado por Fisher en 1912 y aplicado en sistemas industriales por
Åström y Bohlin en 1965. También se desarrollan las técnicas de control adaptativo.
Desde un punto de vista conceptual, las técnicas adaptatívas aparecen cuando se
transvasan a la máquina comportamientos inherentes al hombre: La adaptación, no en
términos de decisiones (conseguida con la realimentación simple), sino en término de
estructuras para la decisión. Las Estructuras de Control adaptatívas que han tenido
mayor impacto técnico son:

Sistemas Auto-Ajustables.
Sistemas Adaptativos con Modelo de Referencia (S.A.M.R.).

El concepto de regulador autoajustable fue propuesto inicialmente por Kalman,


utilizando un método de identificación de mínimos cuadrados recursivos en su artículo
"Design of a self-optimizing control system", otro sistema, basado en la minimización
de la varianza de salida es desarrollado por Peterka en 1970, y por Åström y
Witenmark Se consideraba el problema en un entorno estocástico.

La técnica de los sistemas autoajustables se basa en que si se dispone de un método


válido de diseño de reguladores que parte del conocimiento del modelo del proceso,
para realizar un control que se adapte a los cambios en el proceso basta con acoplar ese
método de diseño de reguladores con un procedimiento de identificación en línea. Para
ello se supone, evidentemente, que existe una separación entre las tareas de
identificación y control. Se dispondrá de un "calculador" que en paralelo al control se
encarga de calcular los valores óptimos de los coeficientes del regulador. Este
"calculador" consiste en un estimador recursivo de los parámetros del sistema o
proceso controlado. Los resultados del estimador servirán para calcular los valores
óptimos de los coeficientes del regulador.

El principal inconveniente de esta aproximación es que la estabilidad no llega a


asegurarse en el caso general. Los sistemas adaptativos con modelo de referencia
Confidencial  FISI-UNMSM Pág. 6
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

(SAMR) fueron propuestos por los investigadores del M.I.T. Whitaker, Narmon y
Kezer en 1958 al estudiar los servomecanismos con ganancia variable en la
publicación "Desing of a Model Reference Adaptive System for Aírcraft".

Los Sistemas Adaptativos con Modelo de Referencia se basan en otro concepto muy
simple: se desea que el comportamiento del proceso sea "idéntico" al de un modelo que
se da como referencia. Si existe diferencia entre las salidas del proceso y del modelo
un mecanismo de adaptación intenta minimizarla con el ajuste de los parámetros del
regulador, o añadiendo una variación en la acción sobre el sistema físico.

Pero se tuvo que admitir que la bondad del diseño dependía de la bondad del modelo y
de las especificaciones que se emplean para desarrollarlos.

Se han llegado a desarrollar métodos mecanizados de diseño en el dominio de la


frecuencia que son equivalentes a los métodos de diseño de variable de estado cuando
la estructura del control es coincidente.

2.2 Ingeniería de control

La ingeniería de control es la aplicación de la teoría de control a un problema en


concreto, es decir usar elementos sistemáticos como control numérico, controladores
PID, circuitos lógicos programables, etc. A procesos industriales y en nuestro caso en
procesos computacionales como en el caso concreto del control automático de
servidores de e-commerce. Como la ingeniería de control se preocupa principalmente a
controlar sistemas dinámicos sin la intervención humana.

2.3 Servidor web

Un servidor web es un programa que se ejecuta continuamente en un computador,


manteniéndose a la espera de peticiones de ejecución que le hará un cliente o un
usuario de Internet. El servidor web se encarga de contestar a estas peticiones de forma
adecuada, entregando como resultado una página web o información de todo tipo de
acuerdo a los comandos solicitados. En este punto es necesario aclarar lo siguiente:
mientras que comúnmente se utiliza la palabra servidor para referirnos a una
computadora con un software servidor instalado, en estricto rigor un servidor es el
software que permite la realización de las funciones descritas.

El servidor vendría a ser la "casa" de los sitios que visitamos en la Internet. Los sitios
se alojan en computadores con servidores instalados, y cuando un usuario los visita son
estas computadoras las que proporcionan al usuario la interacción con el sitio en
cuestión. Cuando se contrata un plan de alojamiento web con una compañía, esta
última proporciona un servidor al dueño del sitio para poder alojarlo; al respecto hay
dos opciones, optar por un "servidor dedicado", lo que se refiere a una computadora
servidora dedicada exclusivamente al sitio del cliente (para aplicaciones de alta
demanda), o un "servidor compartido", lo que significa que un mismo servidor
Confidencial  FISI-UNMSM Pág. 7
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

(computadora + programa servidos) se usará para varios clientes compartiendo los


recursos.

Gracias a los avances en conectividad y la gran disponibilidad de banda ancha, hoy en


día es muy común establecer los servidores web dentro de la propia empresa, sin tener
que recurrir a caros alojamientos en proveedores externos. Esto es posible gracias a
Apache, uno de los mejores y el más utilizado entre los servidores Web que existen.
Apache ha construido una gran reputación entre los servidores web gracias a su gran
estabilidad, confiabilidad y el gran aporte del grupo de voluntarios que planean y
desarrollan todo lo relativo a esta plataforma, desde la documentación hasta el mismo
código en sí.

Entre las ventajas que presenta un servidor como Apache se encuentran las siguientes:

Es personalizable, la arquitectura modular de Apache permite construir un servidor


hecho a la medida. Además permite la implementación de los últimos y más nuevos
protocolos.

En cuanto a la administración los archivos de configuración de Apache están en


ASCII, por lo que tiene un formato simple, y pueden ser editados tan solo con un editor
de texto. Estos son transferibles, lo que permite la clonación efectiva de un servidor. El
servidor puede ser administrado vía línea de comandos, lo que hace la administración
remota muy conveniente.
Por otra parte se trata de un servidor muy eficiente. Mucho esfuerzo se ha puesto en
optimizar el rendimiento del código “C” de Apache. Como resultado, este corre rápido
y consume menos recursos de sistema en comparación a otros servidores. Además,
Apache corre en una amplia variedad de sistemas operativos, incluyendo varias
versiones de UNIX, Windows9x/NT, MacOS (Sobre Power PC), y varios otros.

El soporte de Apache es provisto por “The Apache Group” o “La Fundación Apache”,
una gran cantidad de usuarios muy dedicados a su comunidad, así como compañías que
ofrecen versiones pagadas de Apache.

Lista de servidores web más conocidos:

Nombre del Servidor Sistema operativo


Apache NetWare
OS/2
Unix
Windows 95/98
Windows NT 4.0
BadBlue Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows XP
Confidencial  FISI-UNMSM Pág. 8
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Baikonur Web App Server Windows 95/98


Windows NT 4.0
Java Server HP-UX
IRIX
Linux
OS/2
Solaris
Windows 95/98
Windows NT 4.0
Jigsaw Java_VM
Solaris
Windows 95/98
Windows NT 4.0
Microsoft Internet Information Windows Server 2003
Services
RapidSite BSD
IRIX
Windows 2000
Windows Server 2003
RomPager Embedded Web Embedded
Server
Roxen WebServer Linux
MacOS X Server
Solaris
Windows 2000
Windows Server 2003
Windows XP
Sambar Server Red Hat Linux
Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows Server 2003
Windows XP
Savant Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Servertec Internet Server AIX
HP-UX
Linux
Solaris
Windows 2000
Windows 95/98
Windows ME

Confidencial  FISI-UNMSM Pág. 9


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Windows NT 4.0
Windows Server 2003
Windows XP
Shadow Web Server MVS
SimpleServer:WWW Windows 2000
Windows 95/98
Windows ME
Windows NT 4.0
Windows XP
Sun Java System Web Server Red Hat Linux
Solaris
Windows 2000
Windows XP
Tcl Web Server Linux
MacOS
Unix
Windows NT 4.0

2.4 E-commerce

El Comercio Electrónico o E-Commerce consiste principalmente en la distribución,


compra, venta, marketing y suministro de información de productos o servicios a
través de Internet. Poder tener nuestro negocio disponible en Internet las 24 horas del
día y accesible desde cualquier parte del mundo, se ha convertido hoy en una
herramienta fundamental para potenciar las ventas de las empresas.

En pocas palabras el e-commerce es la compra venta de productos (transacción) a


través de medios electrónicos en concreto del internet y de la plataforma web.

2.4.1 Historia del e-commerce

El significado del término "comercio electrónico" ha cambiado a lo largo del tiempo.


Originariamente, "comercio electrónico" significaba la facilitación de transacciones
comerciales electrónicas, normalmente utilizando tecnología como la Electronic Data
Exchange (EDI, presentada finales de los años 70) para enviar documentos como
pedidos de compra o facturas. Más tarde pasó a incluir actividades más precisamente
denominadas "Comercio en la red" la compra de bienes y servicios a través de la
World Wide Web vía servidores seguros (como ser HTTPS, un protocolo de servidor
especial que encripta la realización confidencial de pedidos para la protección de los
consumidores y los datos de la organización) con tarjetas de compra electrónica y con
servicios de pago electrónico como autorizaciones para tarjeta de crédito.

2.4.2 Clases de e-commerce

Se diferencia al comercio electrónico directo (que, por referirse a bienes o servicios


Confidencial  FISI-UNMSM Pág. 10
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

digitales, se concreta y ejecuta completamente por vía informática)


del indirecto (referido a bienes o servicios físicos que aun cuando permitan una
celebración por medios tecnológicos, requieren del medio físico tradicional para su
cumplimiento). También se suele categorizar en comercio electrónico de empresa a
empresa (B2B), de empresa a consumidor (B2C), de consumidor a
consumidor (C2C) o entre empresa y Gobierno (B2G).

2.4.3 Factores claves de éxito en e-commerce

Varios factores han tenido un importante papel en el éxito de las empresas de comercio
electrónico. Entre ellos se encuentran:

 Proporcionar valor al cliente. Los vendedores pueden conseguirlo ofreciendo


un producto o una línea de producto que atraiga clientes potenciales a un precio
competitivo al igual que suceden en un entorno no electrónico.

 Proporcionar servicio y ejecución. Ofrecimiento de una experiencia de compra


amigable, interactiva tal como se podría alcanzar en una situación cara a cara.

 Proporcionar una página web atractiva. El uso de colores, gráficos, animación,


fotografías y distintas tipografías puede aumentar el éxito en este sentido.

 Proporcionar un incentivo para los consumidores para comprar y retornar. Las


promociones de ventas pueden incluir cupones, ofertas especiales y descuentos.
Las webs unidas por links y los programas de publicidad pueden ayudar en este
aspecto.

 Proporcionar atención personal. Webs personalizadas, sugerencias de compra y


ofertas especiales personalizadas pueden allanar el camino de sustituir el
contacto personal que se puede encontrar en un punto de venta tradicional.

 Proporcionar un sentido de comunidad. Las áreas de chat, foros, registración


de clientes, esquemas de fidelización y programas de afinidad pueden ayudar.

 Proporcionar confianza y seguridad. Servidores paralelos, redundancia de


hardware, tecnología de seguridad ante fallas, inscripción de la información y
firewalls lograrán que su e-commerce funcione en todo momento, logrando
crear una imagen de solidez en sus clientes.

 Poseer la experiencia total del consumidor. Esto se consigue tratando al


consumidor como parte de una gran experiencia, con lo cual se mejora la
percepción de su marca respecto de sus competidores.

 Optimizando los procesos de negocio, posiblemente a través de tecnologías de


reingeniería de la información.
Confidencial  FISI-UNMSM Pág. 11
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

 Dejando que los consumidores se ayuden a sí mismos. Proporcionando sistemas


de autoayuda sin asistencia puede ayudar en este sentido.

 Ayudar a los consumidores a hacer el trabajo de consumir. Los vendedores


pueden proporcionar esta ayuda ampliando la información comparativa y las
búsquedas de producto. La provisión de información de componentes y
comentarios de seguridad e higiene puede ayudar a los minoristas a definir el
trabajo del comprador.

 Construir un modelo de negocios sólido. Si este factor clave hubiera aparecido


en los libros de texto en año 2000, muchas compañías 'punto com' no habrían
quebrado.

 Crear una cadena de valor añadido en la que uno se orienta a un número


'limitado' de competencias clave. (Las tiendas electrónicas pueden presentarse
bien como especialistas o como generalistas).

 Operar en o cerca del límite de la tecnología y permanecer allí mientras la


tecnología sigue cambiando (pero recordando que los principios fundamentales
del comercio se mantienen indiferentes a la tecnología).

 Construir una organización con suficiente agilidad y sistemas de alerta para


responder rápidamente a los cambios en el entorno económico, social y físico
de una empresa.
Es por ello necesario implementar un controlador de servidor web para que soporte
todas las transacciones generadas por el e-commerce para tener una buena performance
en el servicio a los clientes.

3 Estado del arte

3.1 Taxonomía

Un sistema de control es el tipo de sistema que se caracteriza por la presencia de una


serie de elementos que permiten influir en el funcionamiento de un sistema. La
finalidad de un sistema de control es conseguir, mediante la manipulación de las
variables de control, un dominio sobre las variables de salida, de modo que estas
alcancen unos valores prefijados (consigna).

El tipo de sistema de control que estamos usando es uno basado en el número de


entradas y salidas. Muchas empresas en estos días necesitan optimizar las salidas
(outputs) y entradas (inputs) de los sistemas que utilizan para optimizar su
rendimiento

Confidencial  FISI-UNMSM Pág. 12


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

3.2 Sistema usado

El sistema que estamos usando es el SISO (single input –single output). Nuestra
entrada es el número de clientes. El cual será configurado en el Apache Server y en
nuestro software para la prueba de stress (JMeter). Y la salida será el tiempo de
respuesta del servidor Apache a las peticiones de cada cliente.

3.3 Modelo matemático

El número de métodos disponibles para ayudar en la construcción de un modelo que


ayude a capturar las relaciones entre las entradas del controlador y las salidas del
sistema. Nosotros escogeremos ajustar los datos a un modelo ARX.

3.4 Métodos

La metodología de trabajo que hemos utilizado se basa en el esquema de la figura 2.1


Sistema de control de lazo cerrado.
· Primero definimos el servidor a utilizar, en nuestro caso Apache server

· Elegimos que aplicación E-Comerce utilizaremos para que trabaje con el


servidor web, en nuestro caso elegimos el Oscommerce.

· Analizamos el funcionamiento de dicho servidor.

· Como consecuencia de lo anterior, definimos las variables de entrada y salida,


en nuestro caso los inputs son MC (Max-Clients) y N (número de clientes) y el
output es los TR (tiempos de respuesta).

· Obtencion de las variables:

 Configuramos el servidor para que muestre los tiempos de


respuesta.

 Usar un Motor de carga de trabajo para simular las peticiones al


servidor mediante la aplicación web (oscomerce).

· Generar el modelo matemático para definir el controlador, a partir de las


variaciones del MC y TR.

3.5 Software relacionado

 JMeter: es un software opensource, una aplicación hecho 100% en Java. Es una


prueba de herramienta de carga para medir el comportamiento y el rendimiento. En
Confidencial  FISI-UNMSM Pág. 13
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

un principio fue diseñado para testar aplicaciones webs pero en la actualidad su


funcionalidad se ha expandido. Con esto software hacemos la simulación de la
carga de usuarios, previa configuración del apache, que entran al servidor. Luego a
través de gráficas, que el mismo software provee, procedemos a ver el desempeño
de las respuestas del servidor.
 Oscommerce: es un aplicativo web opensource de comercio electrónico (e-
commerce) hecho en PHP. Este es el aplicativo que se subirá al servidor para poder
hacer las pruebas de stress con el JMeter

 Apache Server: es el servidor web HTTP que estamos utilizando. Este software
también es opensource. En este servidor se harán las configuraciones respectivas del
número de clientes para luego poder efectuar las pruebas de stress con el JMeter.

4 Resolución del problema aplicando la técnica seleccionada

El problema en este caso “que los servidores de aplicación web como apache v2.2, no
tienen un control automático de la cantidad de peticiones de acuerdo a los recursos
existentes en el servidor, en consecuencia debe existir un administrador del servidor
que esté cambiando de manera manual los valores de la cantidad máxima de clientes
MaxClients, esto hace que existan en algunos casos una cantidad de peticiones por
encima del MaxClients y como resultado un tiempo de respuesta alta y una mala
calidad de los servicios”. Será resuelto usando el modelo matemático, que por cierto
derivará a partir de la información del archivo log del servidor apache.

4.1 El modelo matemático del servidor apache

Pero antes de todo debemos configurar el apache.

4.1.1 Configuración del servidor apache

Una vez hecha la instalación del servidor apache, se debe proceder a configurar el log.
Para ello abrimos el archivo httpd.conf que se encuentra en la carpeta conf dentro del
apache, esto con la intención de que el log registre el tiempo de respuesta del servidor
en la primera columna del archivo en cuestión.

Confidencial  FISI-UNMSM Pág. 14


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Donde los parámetros indican:

LogFormat: Configura el formato para los archivos de registro del servidor Web.

D: tiempos de respuesta los cuales se encuentran en milisegundos

%h: dirección IP del host remoto o nombre de la máquina cliente.

%t: Lista la fecha y hora de la solicitud.

%r: Lista la cadena de la solicitud exactamente como viene del navegador o cliente.

%s: Lista el estado de código HTTP el cual fue devuelto al host cliente.

Una vez hecha la configuración anterior colocamos CustomLog "logs/access.log"


especial en lugar de CustomLog "logs/access.log" common

Confidencial  FISI-UNMSM Pág. 15


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

También se guarda aplicación del e-commerce en la carpeta htdocs.

El resultado de log es el siguiente: el cual muestra en la primera columna el tiempo en


milisegundos de respuesta de cada petición de las cargas de trabajo generados por el
software JMETER.

4.1.2 Experimento con el generador de carga de trabajo JMETER

Para llegar a nuestro modelo matemático, al no haber uno establecido que sigue las
leyes físicas se tiene que proceder a simular eventos de petición a nuestra aplicación de
e-commerce para tener cierta cantidad de información estadística de los tiempos de
respuesta para cada configuración del MaxClients.en esta parte describiremos los
procedimientos que se han seguido.

4.1.2.1 Equipos de software y hardware para el experimento.

Nuestros equipos que hemos usados consiste en una pc de escritorio cuyas


características son procesador Intel core i5 2.3 Ghz con 4GB de memoria RAM con el
sistema operativo Windows en la que está corriendo el servidor web apache con la
aplicación de e-commerce y otra máquina que actúa como cliente en la que se
encuentra el JMETER para el envío de peticiones al servidor.

Confidencial  FISI-UNMSM Pág. 16


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

4.1.2.2 Determinación del MaxClients

El MaxClients se determinara con la siguiente fórmula matemática:

(
= ñ

La memoria usada en la PC que hemos asignado para que funcione el servidor apache
consume un total de 2.38 GB de memoria RAM, el proceso apache consume en
promedio 20MB de RAM, entonces reemplazando en la formula se tiene el valor de
MaxClients

( . )
=

= 85

5 Descripción de la solución tecnológica

Las herramientas usadas en la solución del problema son principalmente el servidor


apache v2.2 y el generador de carga de trabajo JMETER.

Servidor apache, esta herramienta soportara el correcto funcionamiento de nuestra


aplicación de e-commerce y permitirá atender las peticiones de los clientes cuando
realizan las transacciones en línea.
Confidencial  FISI-UNMSM Pág. 17
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Apache JMeter es un software de código abierto, un 100% puro Java aplicación de


escritorio diseñado para cargar el comportamiento de pruebas funcionales y medir el
desempeño. Originalmente fue diseñado para probar las aplicaciones web, pero desde
entonces ha ampliado a las funciones de prueba (definición dada por apache). El
JMETER hace el bombardeo de peticiones simulando como si fuera un entorno real
hecho por clientes esto con la intención de analizar y medir el desempeño del servidr
apache v2.2.

MATBLAB. Es un software matemático que proporciona un entorno integrado de


desarrollo, el cual nos permitirá obtener el modelo matemático a partir de los datos del
archivo log en la que se ha almacenado el tiempo de respuesta del servidor para cada
MaxClients.

5.1 Pruebas con el JMETER

Primero descargar el apache hhtp server de la página oficial de apache que es el


siguientes http://httpd.apache.org/

Apache HTTP Server. El proyecto Apache HTTP Server es un esfuerzo para


desarrollar y mantener un servidor HTTP de código abierto para sistemas operativos
modernos, incluyendo UNIX y Windows NT. El objetivo de este proyecto es
proporcionar un servidor seguro, eficiente y extensible que proporciona servicios de
HTTP en sincronía con los estándares HTTP actuales.

Servidor web Apache es el servidor web más popular en Internet desde abril de 1996, y
celebró su cumpleaños número 15 como un proyecto de este mes de febrero.
El Apache HTTP Server (“httpd”) es un proyecto de la fundación The Apache Software

Confidencial  FISI-UNMSM Pág. 18


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Foundation.

Descargaremos la versión estable del software

Hacer clic en descargar versión estable

Vemos que se está descargando el apache

Una vez descargada el apache ahora prosigamos a instalar, para luego colocar en ella
una aplicación de e-commerce.

Confidencial  FISI-UNMSM Pág. 19


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Instalación del Apache HTTP Server

Para ello primero descomprimimos el contenido del paquete winrar descargado

Una vez descomprimido el archivo procedemos a instalar.

Hacer clic en ejecutar

Confidencial  FISI-UNMSM Pág. 20


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Siguiente

Siguiente

Confidencial  FISI-UNMSM Pág. 21


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Siguiente

Confidencial  FISI-UNMSM Pág. 22


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Siguiente

Siguiente

Funciona!!

Confidencial  FISI-UNMSM Pág. 23


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Ahora vamos a instalar una aplicación de comercio electrónico

Ahora vamos instalar la aplicación de comercio electrónico

Oscommerce

Abrimos en el navegador en la dirección http:/localhost/oscommerce

Confidencial  FISI-UNMSM Pág. 24


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Hacemos clic en catalogo para proseguir con la instalación

Luego nos aparece la siguiente página

Confidencial  FISI-UNMSM Pág. 25


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Luego vamos configurar el nombre del servidor (localhost)


También el nombre de usuario de la base de datos y la contraseña también el nombre
de la base de datos para nuestra aplicación

Siguiente

Confidencial  FISI-UNMSM Pág. 26


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

También ponemos el nombre de nuestra tienda

Luego de haber instalado nos podemos logear como administrador para configurar
algunas coas.

Confidencial  FISI-UNMSM Pág. 27


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Este es el panel del administrador

Este es el panel del cliente

Confidencial  FISI-UNMSM Pág. 28


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Descaragar JMeter

Para ello accedemos a la página oficial de apache jakarta un proyecto open source
http://jakarta.apache.org/

Fundada en 1999, el Proyecto de Yakarta encuentra un conjunto diverso de populares


soluciones de código abierto de Java.En 2005, como parte de la creación de un plano
de Apache Software Foundation, los subproyectos de Yakarta comenzó a llenarse de
alto nivel de proyectos de Apache. Este proceso ha continuado hasta nuestros días,
todos los subproyectos que ya han abandonado el proyecto de Yakarta para convertirse
en proyectos de alto nivel, se unen otros TLP (Comunes), o en algunos casos se retiró
estado.

Confidencial  FISI-UNMSM Pág. 29


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Para descargar nos direcciona a la siguiente pagina http://jmeter.apache.org/

Descripción. El Apache JMeter ™ aplicación de escritorio es un software de código


abierto, una aplicación 100% puro Java diseñado para cargar el comportamiento de las
pruebas funcionales y medir el desempeño. Originalmente fue diseñado para probar las
aplicaciones web, pero desde entonces ha ampliado las funciones de prueba.

¿Qué puedo hacer con él?

Apache JMeter se puede utilizar para probar el rendimiento, tanto en recursos estáticos
Confidencial  FISI-UNMSM Pág. 30
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

y dinámicos (archivos, Servlets, scripts de Perl, objetos Java, bases de datos y


consultas, servidores FTP y mucho más). Se puede utilizar para simular una carga
pesada en un servidor, red o un objeto para poner a prueba su resistencia o para
analizar el rendimiento general en diferentes tipos de carga. Puede usarlo para hacer un
análisis gráfico de rendimiento o para probar su servidor / script / comportamiento del
objeto con carga pesada concurrentes.

¿Qué hacer?

Apache JMeter características incluyen:

Puede cargar y rendimiento de la prueba muchos tipos de servidores diferentes:


Web - HTTP, HTTPS

Base de datos a través de JDBC


LDAP
JMS
Correo electrónico - POP3 (S) e IMAP (S)
Portabilidad completa y 100% de pureza Java.

Completo multithreading marco de muestreo permite concurrentes por muchos hilos y


muestreo simultáneo de las funciones de diferentes grupos de hilo separado.

Cuidado GUI diseño permite un funcionamiento más rápido y los tiempos más
precisos.
El almacenamiento en caché sin conexión y análisis / repetición de resultados de la
prueba.

Altamente flexible.

Samplers conectables permiten capacidades ilimitadas de la prueba.


Varias estadísticas de carga puede ser elegido con temporizadores conectable .
Análisis de datos y complementos de visualización permiten extensibilidad grandes, así
como de personalización.
Funciones se pueden utilizar para proporcionar información dinámica a una prueba o
proporcionar la manipulación de datos.
Muestras de secuencias de comandos (BeanShell es totalmente compatible, y hay un
sampler que apoya BSF compatible con los idiomas)

JMeter no es un navegador.

JMeter no es un navegador. En cuanto a servicios web y servicios a distancia se refiere,


JMeter se parece a un navegador (o, mejor dicho, varios navegadores), pero JMeter no
lleva a cabo todas las acciones apoyadas por los navegadores. En particular, JMeter no
ejecuta el Javascript en páginas HTML.Tampoco se hacen las páginas HTML en un
Confidencial  FISI-UNMSM Pág. 31
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

navegador (es posible ver la respuesta, como HTML, etc, pero los tiempos no están
incluidos en ninguna de las muestras, y sólo una muestra de un hilo cada vez es visto a
la vez).

Configuración del apache

Primero configuremos el log del apache para poder mostrar en la primera columna del
archivo los tiempos de respuesta

Configuración previa del log de apache

Luego colocamos LogFormat “%D %h %t \ “%r \ “ %>S” especial dentro de


<IfModule log_config_module> después, cambiamos: #CustomLog "logs/access.log"
common por CustomLog “wamp/logs/access.log" especial

Confidencial  FISI-UNMSM Pág. 32


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Ejecucion del JMeter

Primera iteración
Plan de pruebas dar clic en Plan de Pruebas luego Añadir Hilos y agregar Grupo de
Hilos

Luego se muestra la siguiente pantalla

Confidencial  FISI-UNMSM Pág. 33


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Según el “cuadro de cantidad de usuarios entrando al servidor” el valor de “Número


de Hilos” es 5, los cuales se mantienen inalterables durante toda la iteración.

Luego damos check en Planificador para configurar

En tiempo de arranque colocamos la hora del sistema en que vamos a lanzar la


simulación no puede ser cualquier hora, ya que no se ejecutará la simulación.
El tiempo de finalización no importa.

En duración colocamos 30, ya que es el tiempo en que debemos de cambiar el valor de


maxclients.
Confidencial  FISI-UNMSM Pág. 34
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

MaxClients. El comando MaxClients establece un límite al total de los procesos del


servidor (es decir, clientes conectados simultáneamente) que se ejecutan a la vez. Debe
mantener el comando MaxClients a un valor alto (el valor por defecto es 150), porque
no se permitirán nuevas conexiones una vez que se alcance el número máximo de
clientes simultáneamente conectados. El valor del comando MaxClients no puede
superar el 256 sin que se haya recompilado Apache. La principal razón de tener el
parámetro MaxClients es evitar que un servidor errático vuelva inestable al sistema
operativo.

Luego de 30 segundos, cambiamos el valor de Threads y reiniciamos el apache, luego


veremos cómo implementar el script que automatiza este proceso.

En Jmeter, seleccionamos Grupo de Hilos, hacemos click derecho, seleccionamos


Añadir, Elemento de Configuración, Valores por Defecto para Peticion HTTP:

Luego agregamos la siguiente información en Valores por Defecto para Peticion HTTP
(HTTP Request Defaults):
Nombre del Servidor o IP: localhost
Confidencial  FISI-UNMSM Pág. 35
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

El siguiente paso es añadir las Peticiones HTTP para cada una de las páginas que
integran la página web, en este caso nuestra página web tiene varias páginas agrupadas
en categorías: hardware, software, DVD Movies, Gadgets. Que a su vez hay
subcategorías.

A continuación una Petición HTTP para la página tiendita_control, para la demás


paginas es igual solo se le cambia el valor de Path que es la dirección de cada página.

En Jmeter, seleccionamos Grupo de Hilos, hacemos click derecho, seleccionamos

Confidencial  FISI-UNMSM Pág. 36


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Añadir, Muestreador, Petición HTTP.

Luego, agregamos la siguiente informacion en “Petición HTTP”:


Nombre: tiendita_control
Path: /oscommerce/catalog/index.php

Para las otras páginas, como ya dijimos, se efectúa el mismo procedimiento, solo se
cambia el valor de Path, que son las direcciones de cada página. A continuación,
damos el Path de la demás páginas:
Hardware /oscommerce/catalog/index.php?cPath=1
Software /oscommerce/catalog/index.php?cPath=2

Confidencial  FISI-UNMSM Pág. 37


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Por último, podemos agregar el elemento Listener llamado “Statistical Aggregate


Report” para tener una mejor visibilidad del tiempo de respuesta, teniendo en cuenta
que el cálculo exacto lo hará el Sensor software del que hablaremos más adelante. Esta
funcionalidad no se encuentra dentro del JMETER original sino que es un plugin, que
se puede descargar de: http://pierfinazzi.wordpress.com/tag/jmeter/

Una vez descargado se descomprime y se guarda en la carpeta lib de JMeter

Una vez descargada el plugin se procede a cerrar el JMeter y volver a reiniciar.

Confidencial  FISI-UNMSM Pág. 38


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Se muestra la siguiente imagen con el plugin, donde se ira graficando lo de las


peticiones.

Ahora, ya estamos listos para llevar a cabo la ejecución, vamos al menú “Lanzar” y
escogemos “Arrancar”

Para Maxclients = 45

Confidencial  FISI-UNMSM Pág. 39


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Este es el grafico de las peticiones cuando el MaxClients es 45

Reiniciamos el apache y cambiamos el valor de Maxclients = 56

Confidencial  FISI-UNMSM Pág. 40


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Reiniciamos el apache y cambiamos el valor de Maxclients =65

Confidencial  FISI-UNMSM Pág. 41


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Reiniciamos el apache y cambiamos el valor de Maxclients =73

Reiniciamos el apache y cambiamos el valor de Maxclients =80

Confidencial  FISI-UNMSM Pág. 42


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Reiniciamos el apache y cambiamos el valor de Maxclients =85

Bueno no pondremos todas las corridas en el informe pero se seguirá para obtener la
mayor cantidad de data que sea posible para tener un buen modelo.
Confidencial  FISI-UNMSM Pág. 43
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Ya en los siguientes recuadros tenemos la data importada en Excel y algunas graficas


previas.

Estos datos que se observa en la vista de resultados en árbol del JMeter, estos datos
serán llevados al Excel para sacar el promedio por cada corrida y maxclients

Confidencial  FISI-UNMSM Pág. 44


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Una vez que tenemos todos los tiempos de respuesta promedio, consolidamos esos
datos y realizamos una gráfica para ver el comportamiento del tiempo de respuesta
promedio con respecto al tiempo.

T (Periodo) 600

t 2PI*t /T maxclients
0 0 45
30 0.31415927 56
60 0.62831853 65
90 0.9424778 73
120 1.25663706 80
150 1.57079633 85
180 1.88495559 80
210 2.19911486 73
240 2.51327412 65
270 2.82743339 56
300 3.14159265 45
330 3.45575192 34
360 3.76991118 25
390 4.08407045 17
420 4.39822972 10
450 4.71238898 5
480 5.02654825 10
510 5.34070751 17
540 5.65486678 25
570 5.96902604 34
600 6.28318531 45

Grefico de MaxClients Vs Tiempo

Confidencial  FISI-UNMSM Pág. 45


2011
960 25 82
990 27 43
1020 10 16
Sistema de Control de una aplicación web Versión: Modificado
1050 5 8
Controlador difuso 1080 Fecha:
10 11/12/2011
20
1110 17 42
tiempo de respuesta 1140 25 tiempo de82respuesta
tiempo (s) maxclients tiempo (s) maxclients
promedio (ms) 1170 34 promedio
143 (ms)
0 45 190 0
1200 45 190
195
30 56 221 30
1230 56 221
60 65 259 60
1260 65 259
90 73 298 90
1290 73 298
120 80 338 120
1320 80 338
150 85 372 150
1350 85 372
378
180 80 342 180
1380 80 342
210 73 295 210
1410 73 295
301
240 65 255 240
1440 65 255
254
270 56 223 270
1470 56 223
233
300 45 192 300
1500 45 192
200
330 34 145 330
1530 34 145
146
360 25 80 360
1560 25 80
78
390 27 41 390
1590 27 41
420 10 15 420
1620 10 15
450 5 6 450
1650 5 69
480 10 17 480
1680 10 17
510 17 45 510
1710 17 45
540 25 82 540
1740 25 82
570 34 143 570
1770 34 143
600 45 193 600
1800 45 193
190
630 56 222 630
1830 56 222
221
660 65 257 660
1860 65 257
259
690 73 300 690
1890 73 300
298
720 80 337 720
1920 80 337
338
750 85 370 750
1950 85 370
372
780 80 340 780
1980 80 340
342
810 73 300 810
2010 73 300
295
840 65 257 840
2040 65 257
255
870 56 223 870
2070 56 223
900 45 192 900
2100 45 192
930 34 146 930
2130 34 146
145
960 25 82 960
2160 25 82
83
990 27 43 990
2190 27 43
41
1020 10 16 1020
2220 10 16
15
1050 5 8 1050
2250 5 85
1080 10 20 1080
2280 10 20
17
1110 17 42 1110
2310 17 42
45
1140 25 82 1140
2340 25 82
1170 34 143 1170
2370 34 143
1200 45 195 1200
2400 45 195
189
1230 56 221 1230 56 221
1260 65 259 1260 65 259
Confidencial 1290 73 298 FISI-UNMSM 1290 73 298 Pág. 46
1320 80 338 2011 1320 80 338
1350 85 378 1350 85 378
1380 80 342 1380 80 342
1410 73 301 1410 73 301
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Gráfico: MaxClients Vs Tiempo

Grafico tiempo de respuesta Vs Tiempo

Observación: Usamos Maxclients pero del verdadero nombre vendría a ser


“ThreadsPerChild” que esta directa es propia del MPM_WINNT que pertenece al
sistema operativo Windows; mientras que “MaxClients” es una directa del
MPM_PREFORK, propio del sistema operativo LINUX.

Seguidamente, calculamos el número de iteraciones o corridas y la cantidad de


usuarios que querrán acceder al sistema: (como prueba consideramos 6 iteraciones)

CANT
USUARIOS
Nº CORRIDA ENTRANDO
AL
SERVIDOR
1 5
2 17
3 34
4 56
5 73
6 85

Confidencial  FISI-UNMSM Pág. 47


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

6 Construcción del modelo matemático

Para la construcción del modelo matemático usaremos los datos de las simulaciones
con el JMeter.

Para lo cual usaremos en el MatLab el comando “ident” para ingresar al SYSTEM


IDENTIFICATION TOOL del MatLab

Input =MaxClients
Output= Tiempo de respuesta

Para importar elegimos la opción time domian data, para usar las variables que se han
creado

En la ventana siguiente indicamos las variables, para continuar con el proceso de


generación del modelo matemático

Confidencial  FISI-UNMSM Pág. 48


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

La data ya se encuentra cargadas en el sistema.

Confidencial  FISI-UNMSM Pág. 49


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Continuando no aparece el siguiente gráfico.

En la figura u1es la variable de entrada MaxClients, ya que el valor máximo de la


variable es 85 (de acuerdo a los datos obtenidos).

La variable y1 es la variable de salida Tiempo de Respuesta, ya que el valor máximo


de esta variable es 378 (de acuerdo a los datos obtenidos).

Confidencial  FISI-UNMSM Pág. 50


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

En seguida seleccionamos “Linear Parametrics Model” de la herramienta.

Configuramos de la siguiente manera na=2, nb=2 y nk=3, de acuerdo al tutorial que


envió el profe.

El resultado es el siguiente grafico al hacer doble clic sobre la gráfica en el color verde
que es ARX223

Confidencial  FISI-UNMSM Pág. 51


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Confidencial  FISI-UNMSM Pág. 52


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Y al seleccionar la checkbox Output, se verifica el nivel de confianza en este caso del


82.93

Lugo seleccionamos el checkbox Zeros and Poles obtenemos:

Confidencial  FISI-UNMSM Pág. 53


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Finalmente tenemos el modelo matemático resultante:

Discrete-time IDPOLY model: A(q)y(t) = B(q)u(t) + e(t)

A(q) = 1 - 1.568 q^-1 + 0.6428 q^-2

B(q) = 0.6429 q^-3 – 1.037 q^-4

Estimated using ARX fron data set eDat

Loss function 178.351 and FPE 213.151

Sampling interval: 1

Confidencial  FISI-UNMSM Pág. 54


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

6.1 Diseño del controlador web

Una vez obtenida los datos y el modelo matemático, ejecutaremos el comando


SISOTOOL del MatLab, en el cual se pasa como parámetros los modelos
matemáticos, en el que vamos generar una interfaz, en el cual podemos elegir tipos de
controladores, para nuestro proyecto usaremos el tipo PID.

Seguidamente tenemos los pasos a seguir para la obtención de la función del


controlador.

Herramienta del SISOTOOL (MaxClient – Tiempo Respuesta)

Confidencial  FISI-UNMSM Pág. 55


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Obtener Función del Controlador (MaxClient – Tiempo Respuesta)

Finalmente, con esta función se implementó el algoritmo del controlador en NetBeans


en el cual se ha incluido la implementación con sockets.

Arquitectura mostrada

Confidencial  FISI-UNMSM Pág. 56


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

6.2 Modelo difuso del controlador

En Toolboxes ingresamos a Fuzzy Logic GUI (fuzzy)

A continuación nos muestra la siguiente pantalla

Confidencial  FISI-UNMSM Pág. 57


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Sigue la siguiente ventana. En la que por defecto aparece el modelo Mandani

Procederemos a agregar variables

Confidencial  FISI-UNMSM Pág. 58


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Para los grados de membrecía

Mostramos el primer Input:

Mostramos el segundo input

Confidencial  FISI-UNMSM Pág. 59


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Mostramos el output

Regresamos a nuestro modelo difuso ahora con 2 Inputs y seleccionamos el bloque


blanco para entrar a la configuración de reglas:

Confidencial  FISI-UNMSM Pág. 60


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Aquí se pueden observar los 2 inputs; luego de haber ingresado las reglas, entramos al
menú VIEW

Observando nuestro diagrama de reglas, donde podemos personalizar las variables de


entra y de salida.

Confidencial  FISI-UNMSM Pág. 61


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

6.3 Construcción del controlador difuso

6.3.1 Programación en java

En este caso usamos el IDE NetBeans para la programación del controlador difuso, el
cual es una continuación del diseño hecho en el Matlab.

Para ello hemos creado un proyecto en el NetBeans llamado ControladorDifuso, el cual


consta de 4 paquetes: Conexión, EditorApache, LogicaDifusa y rendimiento. Cada una
de ellas agrupa a diferentes clases que son funcionales y necesarios en cada caso.

Paquete de conexión.

La conexión será realizada usando Sockets el cual sirve para la implementación de


flujo de comunicación de tipo orientado a conexión TCP/IP entre procesos en este caso
el servidor y los clientes.

En el caso del diseño del controlador difuso es importante usar este tipo de clases del
java, pues se necesita que la comunicación sea orientada a comunicación TCP/IP pues
tiene que haber una constante comunicación entre el cliente y el servidor para de esa
manera hacer la simulación de los procesos de peticiones y poder controlar esas
peticiones. En otro tipo de aplicaciones se pueden usar comunicación no orientado a
conexión UDP.

Confidencial  FISI-UNMSM Pág. 62


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Paquete EditorApache.

En este paquete lo que se va hacer es la configuración del archivo de servidor apache


httpd-mpm.conf en el cual se va modificar el maxClients, desde luego el objetivo del
proyecto es automatizar esta tarea que veníamos haciendo de manera manual apagando
el servidor luego modificando en archivo en cuestión y encender el servidor, pero con
este controlador esto será de manera automática.

Paquete LogicaDifusa.

A que se tiene la clase LogicaDifusa generado de manera automática por el software


FuzzyTech, en el que previamente se ha hecho todo el proceso de configuración de las
expresiones lingüísticas.

Confidencial  FISI-UNMSM Pág. 63


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Paquete de rendimiento.

Por ultimo tenemos el paquete de rendimiento, el cual contiene una serie de clases que
nos permite extraer la disponibilidad de los recurso donde se encuentra funcionando el
servidor, para obtener de esa forma una información oportuna necesaria y completa
para tener que calcular el maxClients para luego configurar en el apache esto en el
paquete EditorApache.

6.3.2 Ejecución del controlador

En el siguiente grafico se observa la corrida de la parte servidor del controlador. En la


cual aparece un mensaje “esperando una conexión”. El cual nos indica que está en
Confidencial  FISI-UNMSM Pág. 64
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

ejecución.

Aquí tenemos el controlador por el lado del cliente que se está conectando al servidor,
al final aparece un mensaje el cual nos indica que la conexión se llevó acabo de manera
exitosa.

A continuación se observa los dos módulos tanto por parte del servidor como por el
lado del cliente.

Confidencial  FISI-UNMSM Pág. 65


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

En la imagen siguiente se observa la interacción constante del servidor con el cliente,


en la que el primero le envía en cada instante la actualización de los recursos
disponibles y del maxClients.

Para la modificación del archivo http-mpm.conf se tiene la ruta especificada en el


código, en la cual ara la modificación con el maxClients que se observa en cada cierto
tiempo según eventos que va ocurriendo el recurso donde está el servidor.

Confidencial  FISI-UNMSM Pág. 66


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Para comprobar vamos al archivo http-mpm.conf.

Una vez abierta el archivo se observa la veracidad de la modificación.

Confidencial  FISI-UNMSM Pág. 67


2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

7 Conclusiones y trabajos futuros

El trabajo principalmente consiste en la implementación de un controlador de un


servidor web, el cual hace que el sistema funcione de manera automática o en su
defecto con la mínima intervención humana. Es por ello que se tuvo que hacer las
simulaciones necesarias para que podemos determinar cuál es el modelo que sigue el
funcionamiento de un sistema web a través de cargas de trabajo, los cuales eran
generados por un software de simulación como el JMETER.

También fue un trabajo en la que descubrimos que como se puede usar la teoría de
control que ya han sido usados en otras áreas de la ingeniería en el área de la
computación.

El trabajo fue una oportunidad muy interesante porque nos permitió aprender a usar la
teoría del control para hacer un modelo de control para un aplicación de comercio
electrónico, el cual empesamos con la descarga de las herramientas en este caso el
apache, para el comercio electrónico una herramienta suite que integra el apache, php,
mysql el wampp.

Luego descargamos una aplicación de comercio electrónico el osCommerce el cual es


un manejador de comercio electrónico, después descargamos el JMeter para hacer las
corridas necesaria para tener la data para el modelo matemático, pero antes se
configuró el apache para capturar los tiempos de respuesta de las peticiones de la
herramienta generadora de las cargas de trabajo. También se configuro el maxclients a
partir del cálculo como máximo de 85 clientes.

Una vez hecho todo lo mencionado se procedió a obtener la data del log para subir al
Confidencial  FISI-UNMSM Pág. 68
2011
Sistema de Control de una aplicación web Versión: Modificado
Controlador difuso Fecha: 11/12/2011

Excel para luego usar en la elaboración del modelo en el matlab y allí se generó el
modelo matemático, seguidamente el modelo fuzzy.

8 Referencias bibliográficas

OGATA K., "Ingeniería de Control Moderna", Prentice Hall Hisp., 1991.

KUO B., "Sistemas de Control Automático", Prentice Hall Hisp., 1996.

CANALES R., BARRERA R., "Introducción a sistemas dinámicos y control


automático", Wiley.

FRANKLIN G., POWELL J.D., EMMAMI-NAEINI, "Control de sistemas dinámicos


con retroalimentación", Addison Wesley Hisp., 1991.

ÅSTRÖM R. WITTENMARK B., "Sistemas controlados por computador", Paraninfo,


1988.

PHILLIPS L., NAGLE H.T., "Digital Control Systems, Analysis and Design", Prentice
Hall, 1984.

Confidencial  FISI-UNMSM Pág. 69


2011