Facultad de Ingeniería de Sistemas e Informática

Ingeniería de Control

CONTROLADOR DE SERVIDOR WEB APACHE TOMCAT

TESINA DE INGENIERÍA DE CONTROL

Facultad de Ingeniería de Sistemas e Informática

Integrantes: Maraví Navarro, Giancarlo Ortiz Gil, Erick Pinto Luna, Andrés Rojas Cuadros, Víctor Jean Franz Torres Rivera, Tomás 07200195 07200012 07200154 07200034 07200184

Profesor:

Fermín Pérez, Félix Armando Noviembre 2010

Controlador de un Servidor Web

2010 -II 1

Facultad de Ingeniería de Sistemas e Informática

Ingeniería de Control

Tabla de contenidos
1. Introducción.................................................................................................................................3 1.1 Antecedentes.....................................................................................................................3 1.2 Definición del Problema...................................................................................................4 1.3 Objetivos...........................................................................................................................5 1.4 Justificación......................................................................................................................6 1.5 Propuesta...........................................................................................................................6 1.6 Organización de la tesina..................................................................................................7 2. Marco teórico...............................................................................................................................7 2.1 Lógica Difusa....................................................................................................................7 2.2 Servidor Web..................................................................................................................10 2.3 Apache Tomcat...............................................................................................................12 2.4 Sockets, comunicación entre procesos............................................................................13 3. Estado del arte...........................................................................................................................15 3.1 Taxonomía del Problema................................................................................................15 3.2 Método............................................................................................................................16 3.3 Modelo............................................................................................................................20 4. Resolución del problema aplicando la técnica seleccionada.....................................................21 4.1 Análisis...........................................................................................................................21

Entradas y salidas del modelo.................................................................................21 Descripción de cada variable:..................................................................................21 Fuzzificacion de las entradas...................................................................................22 Fuzzificacion de la salida........................................................................................22 Graficas para cada variable......................................................................................23
Tabla de Decisión (FAM)....................................................................................................25 Mecanismo de Inferencia Borroso Usados..........................................................................25

Para las entradas .....................................................................................................25 Para la salida ...........................................................................................................26 PROCESO DE LA SIMULACIÓN........................................................................27
Generación de Código mediante fuzzyTech.................................................................................29 5. Conclusiones..............................................................................................................................32 6. Referencias bibliográficas .......................................................................................................32

Controlador de un Servidor Web

2010 -II 2

Facultad de Ingeniería de Sistemas e Informática

Ingeniería de Control

1. Introducción 1.1 Antecedentes La diversidad cada vez mayor de aplicaciones que se apoyan en la World Wide Web y la creciente popularidad de las aplicaciones basadas en Web en tiempo crítico (como el comercio en línea) motivan a la construcción de servidores Web compatibles con QoS (Calidad de Servicio). Dichos servidores personalizan sus atributos de rendimiento en función de las clase de las solicitudes tal que las solicitudes más importante recibir un mejor servicio.

Desde la perspectiva de los clientes que solicitan, el atributo de servicio de rendimiento más visible suele ser la latencia del servidor. Peticiones diferentes pueden tener diferentes tolerancias a la latencia.

Por ejemplo, se puede argumentar que las solicitudes de comercio de acciones se deben servir con mayor rapidez que las solicitudes de información. Del mismo modo, el cliente interactivo se debe servir con más prontitud que los agentes de software como rastreadores de fondo y los servidores Proxy Web,

Desde la perspectiva del servidor, una empresa puede contar con políticas que limitan la memoria y la CPU consumida por los servidores Web. Estas políticas vienen de las necesidades del negocio, incluyendo: (a) proporcionar la suficiente potencia para aplicaciones de co-localizados (por ejemplo, servidor de archivos, servidor de base de datos), (b) evitar la fatiga y los fracasos como resultado de la
Controlador de un Servidor Web 2010 -II 3

gestión de proveedores de servicios y proveedores de servicios de almacenamiento). Algunas empresas también desean proporcionar una latencia de servicios diferentes a diferentes clases de clientes en función de sus cuotas mensuales o importancia. Con frecuencia. En los últimos años han sido testigos de un crecimiento espectacular del número de proveedores de servicios electrónicos (por ejemplo.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control utilización excesiva. proveedores de servicios de aplicaciones. hay una "falta de concordancia" entre lo que las políticas de los administradores quieren y los controles que se dan. y (c) garantizar que hay capacidad suficiente para manejar picos de carga de trabajo y/o fallas en el servidor. Controlador de un Servidor Web 2010 -II 4 . 1. Estas políticas vienen de las necesidades del negocio. Con este crecimiento se ha recorrido un gran interés en los acuerdos de nivel de servicio y la automatización de su cumplimiento. percibirlo como una desventaja. proveedores de servicios Internet. cualquier ambigüedad en relación con la mejora del rendimiento esperado puede causar la preocupación cliente y por tanto.2 Definición del Problema La explotación generalizada de tecnologías de la información (TI) ha motivado la necesidad de una gestión basada en políticas de recursos de TI. En una situación en la que los clientes pagan para recibir un mejor servicio.

dando una buena calidad de servicio. Nuestros estudios con un verdadero servidor de web Apache Tomcat sugieren que tal sistema puede mejorar el rendimiento sin la intervención humana. Un ejemplo de tal conocimiento cualitativo en el servidor web Apache Tomcat es "MaxThreads tiene un efecto cóncavo hacia arriba en los tiempos de respuesta". 1. los administradores del sistema han sido responsables de la optimización de parámetros de ajuste. los administradores deben operar indirectamente mediante el ajuste de varios parámetros de ajuste. se Controlador de un Servidor Web 2010 -II 5 . Más bien. El problema a resolver es no poder controlar directamente el uso del Procesador asociado a las aplicaciones alojadas en el servidor Web Apache Tomcat. para eso se debe encontrar la forma de poder hacerlo mediante otros parámetros de control de ajuste del servidor que afecten el rendimiento del CPU y memoria. los administradores quieren controlar el uso del CPU asociado a la aplicación de Apache Tomcat. Además. El objetivo de este trabajo es describir un enfoque para la automatización de ajuste de parámetros utilizando un controlador difuso que emplea reglas borrosas para incorporar conocimiento cualitativo de los efectos de los parámetros de ajuste. y por lo tanto un alto costo. un proceso que consume mucho tiempo y cursos intensivos.3 Objetivos Tradicionalmente. El personal de operaciones debe llevar a cabo experimentos para determinar cómo usos deseados se puede lograr con los controles que están disponibles.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control En un servidor web de aplicaciones Tomcat. pero no hay manera de hacerlo directamente.

5 Propuesta Lo que se propone es la elaboración de un controlador difuso modelo MISO (2 entradas y una salida). consultas. así también brindamos una buena satisfacción del cliente al acceder a los servicios y que nuestro servidor pueda realizar sus actividades óptimamente. La empresa prestadora de los servicios lo que busca es poder controlar ese rendimiento de CPU usado por los servidores web. el cual es MaxThreads. que pueda manejar indirectamente el rendimiento del CPU y la memoria usada por el servidor.. Pues para esto debería existir un controlador capaz de poder manejar estos parámetros indirectamente. mayor velocidad en la navegación de los clientes. sea transaccional. ya que es muy importante porque así se puede dar una mejor calidad de servicio para los clientes teniendo buena performance. 1.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control muestra que el controlador puede adaptarse automáticamente a cambios en las cargas de trabajo. Controlador de un Servidor Web 2010 -II 6 . siguiendo las políticas dadas por la empresa. razón por lo cual genera mucho uso de CPU en los servidores. 1. más rápido puede ser el acceso. etc. esto se realizará mediante el parámetro de ajuste del servidor Tomcat. obteniendo así una buena perfomance y ofreciendo una buena calidad de servicio a los clientes.4 Justificación Hoy en día la mayor cantidad de personas utilizan páginas web para realizar todo tipo de operaciones.

y finalmente en el capítulo 6 se detallará las conclusiones obtenidas del presente trabajo.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control 1. Marco teórico 2. 2.1 Concepto Una de las disciplinas matemáticas con mayor número de seguidores actualmente es la llamada lógica difusa o borrosa. Controlador de un Servidor Web 2010 -II 7 . el planteamiento de manera profunda del sistema y la técnica de desarrollo a usar. los sistemas de control basados en lógica difusa combinan variables de entrada. en términos de conjuntos borrosos que se combinan en reglas para definir acciones: si la temperatura es alta entonces enfriar mucho.6 Organización de la tesina El presente trabajo está organizado en 6 capítulos. es decir.1 Lógica Difusa 1. la verdad absoluta y la falsedad total. en el capítulo 2 se presentará el marco teórico relacionado al problema. como estatura media o temperatura baja. que es la lógica que utiliza expresiones que no son ni totalmente ciertas ni completamente falsas. en el capítulo 4 se detallará la resolución del problema con la técnica seleccionada. sino el objeto que estudia: expresa la falta de definición del concepto al que se aplica. La lógica difusa permite tratar información imprecisa. en el capítulo 5 se presentará el sistema de control computacional realizado. es la lógica aplicada a conceptos que pueden tomar un valor cualquiera de veracidad dentro de un conjunto de valores que oscilan entre dos extremos. De esta manera. Conviene recalcar que lo que es difuso. impreciso o vago no es la lógica en sí. borroso. en el capítulo 3 se presentará el estado del arte.1.

para ilustrar el concepto de conjunto difuso. a mediados de los años sesenta en la Universidad de Berkeley (California) por el ingeniero Lotfy A.1. por primera vez.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control definidas en términos de conjuntos difusos. Según la teoría de la lógica clásica el conjunto “hombres altos” es un conjunto al que pertenecerían Controlador de un Servidor Web 2010 -II 8 .3 Conjuntos borrosos y funciones características El primer ejemplo utilizado por Lofti A. nuestra capacidad para ser precisos y construir instrucciones sobre su comportamiento disminuye hasta el umbral más allá del cual. fue el conjunto “hombres altos”. que es mayoritariamente del tipo lingüístico cualitativo y no necesariamente cuantitativo. Zadeh. 1. La lógica difusa permite representar el conocimiento común. los términos lingüísticos son inherentemente menos precisos que los datos numéricos pero en muchas ocasiones aportan una información más útil para el razonamiento humano. Introdujo entonces el concepto de conjunto difuso (Fuzzy Set) bajo el que reside la idea de que los elementos sobre los que se construye el pensamiento humano no son números sino etiquetas lingüísticas.1. en un lenguaje matemático a través de la teoría de conjuntos difusos y funciones características asociadas a ellos.2 Breve historia y aplicaciones La lógica difusa fue investigada. por medio de grupos de reglas que producen uno o varios valores de salida. Permite trabajar a la vez con datos numéricos y términos lingüísticos. Zadeh cuando se dio cuenta de lo que él llamó principio de incompatibilidad: “Conforme la complejidad de un sistema aumenta. 1. la precisión y el significado son características excluyentes”.

entre 0 y 1.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control los hombres con una estatura mayor a un cierto valor. El enfoque de la lógica difusa considera que el conjunto “hombres altos” es un conjunto que no tiene una frontera clara para pertenecer o no pertenecer a él: mediante una función que define la transición de “alto” a “no alto” se asigna a cada valor de altura un grado de pertenencia al conjunto. Así tendríamos que un hombre que mide 1. especificando las propiedades que deben cumplir los elementos que pertenecen a ese conjunto o.1]. y todos los hombres con una altura inferior a este valor quedarían fuera del conjunto. Un conjunto difuso en el universo de discurso U se caracteriza por una función de pertenencia μA(x) que toma valores en el intervalo [0. que podemos establecer en 1.80 metros.81 metros de estatura pertenecería al conjunto hombre altos. ya que conocer (x) A m es lo mismo que conocer A. y en cambio un hombre que mida 1. y puede representarse como un conjunto de pares ordenados de un elemento x y su valor de pertenencia al conjunto: Controlador de un Servidor Web 2010 -II 9 . no parece muy lógico decir que un hombre es alto y otro no lo es cuando su altura difiere en dos centímetros. Sin embargo. en términos de la función de pertenencia μA(x): Podemos además decir que el conjunto A es matemáticamente equivalente a su función de pertenencia o característica (x) A m. por ejemplo.79 metros de altura ya no pertenecería a ese conjunto. Formalmente. se puede definir de varias formas: enumerando los elementos que pertenecen al conjunto. un conjunto clásico A. en un universo de discurso U.

Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control 1.1.2 Servidor Web 1. Todo ordenador tiene un servidor o máquina dedicada. Este ordenador o máquina. es conocida Controlador de un Servidor Web 2010 -II 10 . entre otros importantes dispositivos. cuando son solicitadas por usuarios de la red.5 Definición Un servidor Web es el corazón de Internet. la cual está conectada a Internet para dar disponibilidad a sitios Web.4 Operaciones con conjuntos borrosos Las operaciones básicas entre conjuntos difusos son las siguientes: o El conjunto complementario de un conjunto difuso es aquel cuya función característica viene definida por: o La unión de dos conjuntos difusos A y B es un conjunto difuso A U B en U cuya función de pertenencia es: o La intersección de dos conjuntos difusos A y B es un conjunto difuso A B en U con función característica: Estas tres operaciones definidas para conjuntos difusos cumplen. asociatividad. conmutatividad y distributividad así como las leyes de Morgan. al igual que en la teoría clásica de conjuntos. 2.1.

1. una vez recibido el código. lo interpreta y lo exhibe en pantalla. de mostrar las fuentes. los colores y la disposición de los textos y objetos de la página. cuando alguien quiere ver una página Web en cuestión pinchando un enlace. el ordenador donde lanza una petición al servidor Web donde dicha página está alojado. entre otras cosas.1. probar nuestros desarrollos vía local.6 Funcionamiento El Servidor web se ejecuta en un ordenador manteniéndose a la espera de peticiones por parte de un cliente (un navegador web) y que responde a estas peticiones adecuadamente.7 Servidor Web Local Instalar un servidor web en nuestro PC nos permitirá. En otras palabras. A modo de ejemplo.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control como servidor Web. éste realiza una petición HTTP al servidor de dicha dirección. al teclear www. el cliente es el encargado de interpretar el código HTML.wikipedia. poder montar nuestra propia página web sin necesidad de contratar hosting. imágenes. acceder a los archivos de nuestro equipo Controlador de un Servidor Web 2010 -II 11 . ficheros. las cuales suelen ser páginas HTML y objetos enlazados. mediante una página web que se exhibirá en el navegador o mostrando el respectivo mensaje si se detectó algún error. etc. es decir. Este equipo acepta las peticiones “http” del navegador Web del usuario. 1. el servidor tan sólo se limita a transferir el código de la página sin llevar a cabo ninguna interpretación de la misma. 1. El servidor responde al cliente enviando el código HTML de la página.org en nuestro navegador. el cliente. Como vemos con este ejemplo. y entrega las páginas Web que podemos ver.

que compila JSPs convirtiéndolas en servlets.1.1.9 Entorno Tomcat es un servidor web con soporte de servlets y JSPs. 1. Incluye el compilador Jasper. Tomcat no es un servidor de aplicaciones. con el consiguiente coste debido al consumo de electricidad (conviene tener en cuenta que hay alojamientos web gratuitos. incluso sin publicidad y con interesantes funciones). como utilizar un servidor FTP) o utilizar alguno de los programas basados en web tan interesantes que están viendo la luz últimamente. El motor de servlets de Tomcat a menudo se presenta en combinación con el servidor web Apache. En sus inicios existió la percepción de que el uso de Tomcat de forma autónoma era sólo recomendable para entornos de desarrollo y entornos con requisitos mínimos de velocidad y gestión de transacciones. El problema de usar nuestro ordenador como servidor web es que conviene tenerlo encendido permanentemente (para que esté accesible de forma continua como la mayoría de los sitios webs). Tomcat puede funcionar como servidor web por sí mismo. 2. como JBoss o JOnAS.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control desde un PC remoto (aunque para esto existen otras opciones.3 Apache Tomcat 1.8 Definición Tomcat (también llamado Jakarta Tomcat o Apache Tomcat) funciona como un contenedor de servlets desarrollado bajo el proyecto Jakarta en la Apache Software Foundation. Tomcat implementa las especificaciones de los servlets y de JavaServer Pages (JSP) de Sun Microsystems. Hoy en día ya no existe esa Controlador de un Servidor Web 2010 -II 12 .

un protocolo de transporte y un número de puerto. Las versiones más recientes son las 6.0. generalmente de manera fiable y ordenada.0. comunicación entre procesos 1. Un socket queda definido por una dirección IP. funciona en cualquier sistema operativo que disponga de la máquina virtual Java.1.x. Las primeras distribuciones de Tomcat fueron las versiones 3.1.1. 2.1. A partir de la versión 4.x.11 Definición Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadoras distintas) pueden intercambiar cualquier flujo de datos. las primeras computadoras en implementar sus protocolos fueron aquellas de la universidad de Berkeley. que implementan las especificaciones de Servlet 2. 1.12 Orígenes En los orígenes de Internet.5 y de JSP 2. Dicha Controlador de un Servidor Web 2010 -II 13 . Dado que Tomcat fue escrito en Java.10 Estado de su desarrollo Tomcat es mantenido y desarrollado por miembros de la Apache Software Foundation y voluntarios independientes.4 Sockets.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control percepción y Tomcat es usado como servidor web autónomo en entornos con alto nivel de tráfico y alta disponibilidad. 1. Jakarta Tomcat utiliza el contenedor de servlets Catalina. Los usuarios disponen de libre acceso a su código fuente y a su forma binaria en los términos establecidos en la Apache Software Licence.

Esto lo hace adecuado para el envío de mensajes frecuentes pero no demasiado Controlador de un Servidor Web 2010 -II 14 . los sockets están implementados como bibliotecas de programación para multitud de sistemas operativos. El protocolo más utilizado es Transmission Control Protocol. En ningún caso se garantiza que llegue o que lleguen todos los mensajes en el mismo orden que se mandaron.1. Pronto se hizo evidente que los programadores necesitarían un medio sencillo y eficaz para escribir programas capaces de intercomunicarse entre sí.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control implementación tuvo lugar en una variante del sistema operativo Unix conocida como BSD Unix. aunque también es posible utilizar UDP o IPX. simplificando la tarea de los programadores. Se garantiza la transmisión de todos los octetos sin errores ni omisiones. 1. Sólo se garantiza que si un mensaje llega. El protocolo UDP es un protocolo no orientado a la conexión.13 Propiedades Las propiedades de un socket dependen de las características del protocolo en el que se implementan. llegue bien. Estas propiedades son muy importantes para garantizar la corrección de los programas que tratan la información. los sockets tienen las siguientes propiedades: • • • Orientado a conexión. Se garantiza que todo octeto llegará a su destino en el mismo orden en que se ha transmitido. Hoy día. también en Unix. Gracias al protocolo TCP. Esta necesidad dio origen a la primera especificación e implementación de sockets.

Estado del arte 3. Figura1. Controlador de un Servidor Web 2010 -II 15 . Esquema de comunicación entre procesos mediante socket TCP 3.1 Taxonomía del Problema El problema a resolver.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control importantes. el cual describe un enfoque de control basado en la teoría de la aplicación de políticas para las métricas relacionadas. como por ejemplo. en nuestro caso el servidor web Apache Tomcat. mensajes para los refrescos (actualizaciones) de un gráfico. pertenece a los tipos de problemas de control.

cuyo comportamiento será no lineal. el controlador basado en lógica difusa será un caso particular de un controlador digital. Fundamentalmente porque podrá aplicarse con sencillez a procesos complejos y pobremente definidos ya sea porque no se dispone de conocimiento cuantitativo de su dinámica o porque la información proveniente de sensores es imperfecta (faltante.2 Método El método empleado para diseñar el controlador será el método basado en la lógica difusa: Controlador Basado en Lógica Difusa Un Controlador Basado en Lógica Difusa es un sistema electrónico e informático que sirve de soporte físico para realizar inferencias con lógica difusa. 3. ya que siempre se necesitará de un controlador que realice lo que las políticas de la empresa manifieste pero sin disminuir el rendimiento de la aplicación. una Base de Datos (BD) o Controlador de un Servidor Web 2010 -II 16 . Sin embargo. así lograremos un mejor performance de la aplicación. corrompida por ruido). Por lo tanto. imprecisa. Se considera que la variable controlada es de tipo analógica y que debe ser convertida a digital antes de ser usada en los cálculos internos del controlador. Sus bloques constitutivos son una Base de Conocimiento (BC). Este tipo de problemas suele ser bastante corriente en los ambientes industriales. estos procesos pueden ser manejados por operadores humanos de un modo eficiente.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Estos tipos de problemas son muy vistos hoy en día.

Generalmente m reglas del tipo: Donde las Xi son salidas del sistema a controlar. Por ejemplo: “Si error de Controlador de un Servidor Web 2010 -II 17 . derivadas). un Motor de Inferencias (MI).Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control memoria de trabajo. para el CBLD es la de un sistema basado en conocimiento. o funciones de dicha salida (errores. así como también los objetivos de control. aunque para los sistemas de tipo reactivos (que responden a las entradas provenientes de sensores) como los CBLD. provenientes de sensores o estimadores. Mediante reglas de este tipo se codifica en el sistema informático parte del conocimiento humano en el manejo del proceso. un Borrosificador (F) y un Desborrosificador (D). Para representar el conocimiento existen muchos métodos. las Y son directamente las variables manipuladas que tendrán que ser convertidos a valores únicos para manejar los actuadores. y los Ai son conjuntos difusos. ya que estos controladores pueden considerarse como un caso particular de aquellos sistemas. el método preferido suele ser la representación en forma de reglas. Base de Conocimientos La arquitectura que se aprecia en la figura.

en una suerte de normalización. se pueden distinguir las siguientes funciones: • Medir los valores de las variables de entrada. • Hacer una adaptación de escalas desde estas variables de entrada y el universo de discurso. Desborrosificador Controlador de un Servidor Web 2010 -II 18 .Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control temperatura es Grande Positivo y la derivada error de temperatura es Grande Positiva entonces aumento de combustible inyectado es Grande Negativo”. • Asociar a la entrada un valor lingüístico que puede verse como la pertenencia a un dado conjunto difuso. De esta manera. Transforma la medición del valor determinístico de una variable en valores subjetivos mediante un proceso de verbalización. aplicando recursivamente una regla de inferencia composicional. Borrosificador La función de este bloque es la de asociar a las entradas una función de pertenencia. Por ejemplo. el operador máx/min. Motor de Inferencia Es el encargado de concatenar las implicancias de la Base de Conocimiento. acorde con el particionamiento del universo de discurso que se haya efectuado.

la media de máximos. tornándose verdadero el consecuente de la regla disparada. combinando el resultado propuesto por cada una de ellas. el motor de inferencias buscará qué reglas poseen entre sus antecedentes estos patrones en un procedimiento que se conoce en la literatura como “pattern matching”. Para ello se supondrá lo que ocurre con el error. es necesario obtener una única acción de control. A partir de esta descripción en bloques. Allí. en un intervalo de muestreo. Con estos valores simbólicos se ingresa en la memoria de trabajo. Supóngase que una de las reglas que se disparan tiene en su consecuente que la Controlador de un Servidor Web 2010 -II 19 . que seguramente serán más de una. En el instante kT la variable controlada analógica es convertida al tiempo discreto. Cuando se produce esta coincidencia. Por ejemplo el error puede haber resultado luego de este procedimiento como PM (positivo medio) con μPM=0. este bloque es el encargado de servir de soporte para la aplicación de alguna de las técnicas elegidas (el máximo. En el dominio de la lógica difusa. Éste ingresa al emborronador. la aserción verdadero tiene toda la gama de matices posibles y se modelan con la función de pertenencia.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control A partir de los consecuentes de las reglas que se hayan disparado. en el que se le añade una etiqueta lingüística (conjunto difuso) y un valor entre [0.7. la regla se dispara. Luego se compara con la referencia y se obtiene un valor para el error.3 y PG (positivo grande) con μPG=0. el centroide). una de las entradas a este controlador. es posible comprender el funcionamiento del CBLD. Para ello. entre dos bajadas sucesivas de esa llave que está tomando muestras (como puede considerarse a un conversor A/D ideal).1]. asignándole una pertenencia a dicho conjunto difuso.

. Con la toma de una nueva muestra para calcular el error en (k+1)T se inicia nuevamente. ALSO. y luego de calcular la función de pertenencia correspondiente teniendo en cuenta el método para modelar las conjunciones y la implicancia. existen. de esta manera es lógico pensar que para mantener la única salida del sistema debe hacerse los ajustes necesarios a la entrada y se lograría el propósito del control. para esos errores. en el procedimiento que se conoce como agregación (“if.. 3.3 Modelo Existen 2 modelos importantes para el análisis de un controlador: MIMO (Multiple Input Multiple Output) y SISO (Single Input Single Output)..6. positiva grande. por lo que el motor de inferencias debe combinar la evidencia de cada una de las que se disparó.”). Los sistemas MIMO presentan interacción entre cada una de sus salidas y sus distintas entradas. Controlador de un Servidor Web 2010 -II 20 . El resultado de esta combinación es un nuevo conjunto difuso.then. sin embargo algunos sistemas.. sin embargo. que debe ser desborrosificado por el bloque correspondiente para obtener un valor determinado que se aplicará sobre el actuador. Los sistemas SISO son aquellos que cuentan con simplemente una entrada y una salida. pueden ser modelado como sistemas de lazo múltiples independientes siempre y cuando exista dependencia fuerte entre cada salida y única entrada.. el sistema puede ser modelado como un sistema multivariable de lazos independientes.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control acción de control debe ser. completando este ciclo. Seguramente se dispararán más de una regla.. Este valor también se anota en la memoria de trabajo. se encuentra que μPG=0.

4. es decir la cantidad que va a variar la cantidad de MaxThreads para poder regular el CPU. Resolución del problema aplicando la técnica seleccionada Para resolver dicho problema usaremos un controlador basado en lógica difusa en la cual mide el rendimiento del CPU. es decir las entradas a mi controlador serán: El número de MaxThreads. La salida de dicho controlador será: El incremento de MaxThreads.es la diferencia entre la lectura de porcentaje de uso de CPU y el porcentaje de CPU deseado. esta diferencia se mide en porcentaje. La diferencia entre porcentaje de CPU deseado y el porcentaje de CPU actual. 4.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Para nuestro caso usaremos un sistema tipo MISO (Multiple Input Single Output). su rango es : Controlador de un Servidor Web 2010 -II 21 . donde habrán 2 entradas al controlador difuso y solo existirá una única salida. a través de la variación de la variable del servidor de apache Tomcat “MaxThreads”. la cual es la cantidad máxima de los clientes concurrentes que pueden estar en el servidor.1 Análisis Entradas y salidas del modelo Descripción de cada variable: difCPU..

La variable difCPU se descompone en las siguientes etiquetas: Etiqueta muy_negativo negativo poco_negativo cero poco_positivo positivo muy_positivo Variable crisp -100% – -60% -90% – -30% -60% – 0% -30%– 30% 0% – 60% 30% – 90% 60% – 100% La variable maxThread se descompone en las siguientes etiquetas: Etiqueta muy_pequeño pequeño medio grande muy_grande Variable crisp 0u – 340 u 160u – 500u 340u – 640u 500u – 840u 640u – 1000u Fuzzificacion de la salida. ya sea positivo o negativo. este valor se mide en unidades y su rango es: -20 – 20 unidades Fuzzificacion de las entradas. que variara el valor actual del maxThread.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control -100 – 100 porcentaje maxThread.-es el valor actual del maxThread del servidor Tomcat. este valor se mide en unidades y su rango es: 0 – 1000 unidades incMaxThread..es el incremento. La variable incMaxThread se descompone en las siguientes etiquetas: Controlador de un Servidor Web 2010 -II 22 .

Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Etiqueta muy_negativo negativo cero positivo muy_positivo Variable crisp -20u – -8u -17u – 0u -8u – 8u 0u – 17u 8u – 20u Graficas para cada variable Entrada 1: difCPU Controlador de un Servidor Web 2010 -II 23 .

Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Entrada 2: maxThread Salida 1: incMaxThread Controlador de un Servidor Web 2010 -II 24 .

el valor crisp interseca la función de pertenencia y se determina un cierto grado de validez.Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Tabla de Decisión (FAM) Mecanismo de Inferencia Borroso Usados Para las entradas ComputeMBF Es el método tradicional de fuzzificación. Controlador de un Servidor Web 2010 -II 25 .

Controlador de un Servidor Web 2010 -II 26 .Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Para la salida CoM Centro de Máximos Computa la salida crisp utilizando un promedio ponderado de los valores máximos de los términos de la variable según los resultados de la inferencia.

Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control PROCESO DE LA SIMULACIÓN Primero se representa el modelo en el Fuzzy TECH definiendo las dos entradas y la salida Controlador de un Servidor Web 2010 -II 27 .

y el valor de salida Controlador de un Servidor Web 2010 -II 28 .Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Para empezar la simulación se debe de hacer clic. A continuación se puede observar los valores que toman cada variable de entrada.

Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Generación de Código mediante fuzzyTech Para generar la clase en java mediante el Fuzzytech ir a la siguiente opción: Controlador de un Servidor Web 2010 -II 29 .

Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Controlador de un Servidor Web 2010 -II 30 .

Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control Con lo cual se genera el siguiente archivo java Controlador de un Servidor Web 2010 -II 31 .

utilizando un controlador basado en lógica difusa y un sensor software (hecho en JAVA) capaz de capturar el rendimiento del CPU en un tiempo determinado. 6. obteniendo un resultado de acuerdo a la política de la empresa para la que se desarrolla. Departamento de Ciencias de Computación Artículo: A Web Server’s View of the Transport Layers Fecha: Octubre 2000. Universidad Tecnológica de Pereira Artículo: A feedback control architecture and design methodology for service delay guarantees in web servers Fecha: Agosto 2001. Referencias bibliográficas Libro: Ingeniería de Control Moderna – Tercera Edición Autor: Katsuhiko Ogata Artículo: Técnicas de Control Adaptativas Aplicadas a Sistemas Multivariables Fecha: Agosto 2007. con sólo manejar el parámetro de ajuste de cantidad de hilos del servidor (MaxThreads).Facultad de Ingeniería de Sistemas e Informática Ingeniería de Control 5. Conclusiones Poniendo en práctica los temas tratados en clase. ACM Computer Communication Review Controlador de un Servidor Web 2010 -II 32 . concluimos que es posible poder controlar el uso del CPU de un servidor web (Apache Tomcat). Universidad de Virginia.