Professional Documents
Culture Documents
INGENIERIA 11 de diciembre
DE
CONTROL
2011
SISTEMA DE
TRABAJO - PROYECTO CONTROL DE UNA
APLICACIÓN WEB
INTEGRANTES
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
8 Referencias bibliográficas 69
1 Introducción
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.
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”
1.3 Objetivos
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
2 Marco teórico
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.
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.).
(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.
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
Entre las ventajas que presenta un servidor como Apache se encuentran las siguientes:
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.
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
Varios factores han tenido un importante papel en el éxito de las empresas de comercio
electrónico. Entre ellos se encuentran:
3.1 Taxonomía
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.4 Métodos
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.
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.
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.
LogFormat: Configura el formato para los archivos de registro del servidor Web.
%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.
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.
(
= ñ
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
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
Foundation.
Una vez descargada el apache ahora prosigamos a instalar, para luego colocar en ella
una aplicación de e-commerce.
Siguiente
Siguiente
Siguiente
Siguiente
Siguiente
Funciona!!
Oscommerce
Siguiente
Luego de haber instalado nos podemos logear como administrador para configurar
algunas coas.
Descaragar JMeter
Para ello accedemos a la página oficial de apache jakarta un proyecto open source
http://jakarta.apache.org/
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
¿Qué hacer?
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.
JMeter no es un navegador.
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).
Primero configuremos el log del apache para poder mostrar en la primera columna del
archivo los tiempos de respuesta
Primera iteración
Plan de pruebas dar clic en Plan de Pruebas luego Añadir Hilos y agregar Grupo de
Hilos
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.
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
Ahora, ya estamos listos para llevar a cabo la ejecución, vamos al menú “Lanzar” y
escogemos “Arrancar”
Para Maxclients = 45
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
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
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
CANT
USUARIOS
Nº CORRIDA ENTRANDO
AL
SERVIDOR
1 5
2 17
3 34
4 56
5 73
6 85
Para la construcción del modelo matemático usaremos los datos de las simulaciones
con el JMeter.
Input =MaxClients
Output= Tiempo de respuesta
Para importar elegimos la opción time domian data, para usar las variables que se han
creado
El resultado es el siguiente grafico al hacer doble clic sobre la gráfica en el color verde
que es ARX223
Sampling interval: 1
Arquitectura mostrada
Mostramos el output
Aquí se pueden observar los 2 inputs; luego de haber ingresado las reglas, entramos al
menú VIEW
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.
Paquete de conexión.
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.
Paquete EditorApache.
Paquete LogicaDifusa.
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.
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.
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.
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
PHILLIPS L., NAGLE H.T., "Digital Control Systems, Analysis and Design", Prentice
Hall, 1984.