You are on page 1of 63

Ao del Centenario de Machu Picchu para el Mundo

Carrera profesional de Computacin e Informtica









TRABAJO TERICO PRCTICO

Presentado por:

Aguirre Paucar, Miguel Oscar
Bolaos Victoria, Ivn Arturo
De La Cruz Vilcahuaman, Teresa Yaneth

Para Optar el ttulo profesional de:
TCNICO EN COMPUTACIN E INFORMTICA


Huancayo Per
2011





Proyecto de Implementacin de Servidores
Web con Uso de Tecnologas Tornado y
MongoDB




















ASESOR:
Ing. Jess Alberto Zea Salas





























A: Nuestros padres con amor y cario por
su apoyo incondicional que cada da nos
brindan.








NDICE
Portada i
Asesora ii
Dedicatoria iii
ndice iv
Introduccin vii
Captulo I
MARCO METODOLGICO

1.1. El problema de investigacin 6
1.1.1. El problema 6
1.1.2. Los Objetivos 7
1.1.3. La Justificacin 8
1.2. Metodologa 10
1.2.1. Marco Metodolgico 10
1.2.2. Tcnicas 11
1.2.3. Instrumentos 11


Captulo II
MARCO TERICO
2.1. Antecedentes de Proyecto 12
2.2. Descripcin del tema del Proyecto 12
2.3. Terminologa Bsica 13

Captulo III
DESARROLLO DEL PROYECTO

3.1. Descripcin operativa del proyecto 22
3.1.1. Estructura y funcionamiento de un servidor Web 22
3.1.2. Estructura y funcionamiento de un gestor de base de datos 23
3.1.3. Estructura y funcionamiento de un Framework 29
3.1.4. Tecnologas para implementar Servidores Web 33
3.1.4.1 Modelado de la aplicacin del ejemplo 34
3.1.4.2 Implementacin en LAMP 36
3.1.4.3 Implementacin con tecnologas Microsoft 38
3.1.4.4 Implementacin con Tornado y MongoDB 41
3.1.4.5 Comparativa entre las soluciones propuestas 43
3.2. Resultados Obtenidos 54
3.2.1. Anlisis y evaluacin final

54
CONCLUSIONES 57
SUGERENCIAS 59




BIBLIOGRAFIA 60
ANEXOS 61






INTRODUCCIN
El presente trabajo trata de enfocar los nuevos problemas que van surgiendo
debido al alto incremento de usuarios en los sistemas y aplicaciones basadas en
web.
Los portales de mayor relevancia tienen problemas para atender a un nmero
elevado de usuarios ya que sus servicios no estn preparados para esta tarea,
haciendo que se tenga que crecer a nivel de hardware ocasionando altos gastos
hacia la empresa o entidad.

Por lo tanto el objetivo del proyecto es tener los lineamientos para implementar
servicios web que sean capaces de mantenerse en ejecucin con un rendimiento
aceptable ante el incremento de la carga de trabajo sin necesidad de tener que
incrementar nuestros costos de hardware usando las tecnologas Tornado y
MongoDB.

Para desarrollar el trabajo se ha realizado una investigacin en base a diversas
fuentes bibliogrficas analizando los conceptos de servicios web, lenguajes de
programacin, framework y bases de datos aplicables. Posteriormente se
consideran las caractersticas en funcionamiento de diversas metodologas de
trabajo con diversas tecnologas presentes en el mercado actual. Finalmente se
realiza la implementacin del servicio en funcin al servidor web/framework
Tornado y al gestor de bases de datos MongoDB.


6










Captulo I
MARCO METODOLGICO

1.1. El problema de investigacin
1.1.1. El problema
Actualmente las Empresas y personas buscan tener un espacio
en Internet donde puedan publicitar sus productos o expresar sus
ideas, muchas veces estas pginas estn diseadas para soportar
un pequeo nmero de usuarios, y muchas veces no consideran
que en el futuro su nmero de usuarios podra incrementarse
considerablemente.
Algunas pginas se han desarrollado pensado en un cierto
nmero de usuario, con el pasar del tiempo han recibido un
incremento considerable de sus usuarios lo que ocasiona que el
servicio no est en la capacidad de responder a todas las
peticiones al mismo tiempo haciendo que sus sitios web no estn
disponibles temporalmente y en ocasiones que los servidores
sufran un colapso.
Podemos mencionar el caso del sitio web del Diario El Comercio
el cual estuvo fuera de servicio en las elecciones PERU - 2011 a
causa del alto nmero de personas que consultaban los resultados
electorales.
Debido al auge de Internet en la actualidad los sitios web se
volvieron de gran importancia en el mundo, por ello el inters por
abordar el problema de mantener la disponibilidad al momento en el

7

cual la carga de trabajo del servidor se incremente
considerablemente.
Por esto se busca plantear los lineamientos para poder
implementar un servidor web que sea capaz de soportar un
incremento de su carga de trabajo usando la tecnologa del servidor
web escalable, no bloqueante Tornado Web y la base de datos
escalable de alto rendimiento MongoDB.

1.1.2. Los Objetivos

Objetivo General
Demostrar que la implementacin de un servicio web usando las
tecnologas tornado y MongoDB nos permite manejar un alto
nmero de usuario concurrentes sin perder redimiendo y velocidad
en nuestra aplicacin.

Objetivos Especficos
Comprender como trabaja un servicio web.

Estudiar y conocer cules son las ventajas y desventajas de
trabajar con una base de datos MongoDB en comparacin a
MS SQL Server y MySQL.

Estudiar y conocer cules son las ventajas y desventajas de
trabajar con un Framework web.

Llevar a cabo una breve comparativa del rendimiento de los
conjuntos de soluciones LAMP (Linux, Apache, MySQL y PHP),
IIS (Internet Informacin Server) con .Net y Tornado con
MongoDB.

Modelar un Sitio Web y sus interfaces, en base a las tecnologas
Tornado y MongoDB.

8

Implementar un sitio web MongoDB con Tornado.

1.1.3. La Justificacin
Las empresas crecen ms cada da y su presencia en internet
resulta de gran importancia para incrementar su presencia en el
mercado cada vez mas fragmentado, ya que en la actualidad la
mayora de las personas cuentan con una conexin a internet en
sus casas.

Al crecer el nmero de usuarios de un servicio web determinado
se hace ms difcil manejar la gran cantidad de trfico en sus
servicios y la cantidad de datos que deben almacenar en sus
bases de datos, lo que termina ocasionando costos en cuestin de
incremento de caractersticas de los servidores para poder atender
este incremento.

Por lo tanto se plantea el uso de tecnologas actuales que estn
preparadas para los problemas de la ltima dcada y que estn en
constante avance, como son el caso de Tornado un servidor web y
framework desarrollado en el lenguaje de programacin Python en
cual nos ofrece ser capaz de atender a ms de diez mil usuarios
concurrentes con una estructura escalable y dinmica, adems de
traer consigo un framework de desarrollo web para el mismo
lenguaje lo cual lo hace una de las herramientas ms importante al
momento de buscar servicios web escalables capaces de atender
un gran incremento de usuario sin agregar recursos adicionales y
capaz de mantenerse en el tiempo.

Adems se plantea el uso del gestor de base de datos no-SQL
(que no usa sentencias tipo SQL para la insercin, actualizacin y
seleccin de datos) como es MongoDB el cual es un gestor de base
de datos gil, escalable, de alto rendimiento y orientado a objetos
que al ser open source cuenta con una gran comunidad de
desarrollo. Este Gestor de base de datos nos brinda la ventaja de
9

atender un mayor nmero de consultas concurrentes y de manejar
una mayor cantidad de datos, es tambin capaz de mantener su
rendimiento en el caso de un alto incremento de sus usuarios y
datos por lo cual se hace ideal al momento de elegirlo pensando en
el futuro de los servicios web.

Por lo tanto el uso de estas dos tecnologas, generan beneficios
expresados en la optimizacin de los procesos y la mejora del
rendimiento de los servicios web adems de la capacidad de
atender un gran incremento de usuarios y datos sin perder
rendimiento, a fin de mejorar la calidad beneficiando tanto a los
usuarios como a los empresarios que apuesten por estas
tecnologas.

Desde el punto de vista prctico, se plantearan los lineamientos
y caractersticas que hay que tener en cuenta para implementar una
solucin con estas tecnologas y se realizara una comparacin con
otros modelos ms conocidos en el mercado.

Desde el punto de vista terico, esta investigacin generar
reflexin y discusin tanto sobre el conocimiento existente del rea
investigada, como dentro del mbito de la tecnologa web, ya que
de alguna manera u otra, se confrontan teoras (en nuestro caso se
analizara desde las mejoras que traen consigo las nuevas
tecnologas y se buscara que la opcin de tornado y mongodb se
plantee como una opcin a tomar en cuenta en el momento de
planear un proyecto web ), lo cual necesariamente conlleva hacer
epistemologa del conocimiento existente.

Desde el punto de vista metodolgico, esta investigacin est
generando la aplicacin de un nuevo mtodo para obtener
conocimiento vlido y confiable dentro del rea de la Tecnologas
de la informacin de las organizaciones.

10

Por otra parte, en cuanto a su alcance, esta investigacin abrir
nuevos caminos para empresas que presenten situaciones
similares a la que se plantea, sirviendo como marco referencial a
estas.

Por ltimo, profesionalmente pondr en manifiesto los
conocimientos adquiridos durante la carrera y permitir sentar las
bases para otros estudios que surjan partiendo de la problemtica
especificada.

1.2. Metodologa
1.2.1. Marco Metodolgico
Mtodos, tcnicas e instrumentos utilizados
Los mtodos que se emplearon para la ejecucin de las prcticas
fueron:

Mtodo Descriptivo:
Se utiliz cuando el emisor se propone a transmitir al receptor las
imgenes y sirven tanto para el modo narrativo como el modo
expositivo por su naturaleza descriptiva.

Mtodo dialctico:
Busca una explicacin de las contradicciones y conflictos en la
sociedad, formulando de esta manera una relacin dialctica
respecto al objeto.

Mtodo Lgico Deductivo:
Mediante el cual se aplican los principios descubiertos a casos
particulares, a partir de una enlace de juicios.

Mtodo Comparativo:
Porque nos permiti establecer diferencias entre las diversas
tecnologas usadas para montar sitios web.

11

Mtodo Inductivo:
Es el razonamiento que, partiendo de casos particulares se eleva a
conocimientos generales, Este mtodo permite la formacin de
hiptesis, investigacin de leyes cientficas, y las demostraciones.

Mtodo sinttico:
Consiste en la reunin racional de varios elementos dispersos en
una nueva totalidad, este se presenta ms en el planteamiento de
la hiptesis.
1.2.2. Tcnicas
Las tcnicas que se emplearon para la ejecucin de las prcticas
fueron:
Tcnicas de evaluacin: (estrategia que utilizamos y lo que
estamos proponiendo)
Son las que sirven para evaluar y tomar decisiones sobre el
desarrollo de un proceso grupal.
Se pueden usar tambin para modificar estrategias.

Tcnica de entrevistas:
Es la tcnica ms usual y da muchos resultados exitosos.
1.2.3. Instrumentos
Los instrumentos que se emplearon fueron:
Gua de observacin:
Las observaciones se efectan para comprobar o refutar alguna
teora, y slo se registran las observaciones cuando se consideran
relevantes para alcanzar tal fin.

Lluvia de Ideas:
Desarrollar y ejercitar la imaginacin creadora; crear un clima
informal, libre de tensiones; desarrollar actitudes espontneas;
Actuar con autonoma, originalidad. Se deja que las personas
acten en un clima totalmente informal, con absoluta libertad para
expresarse y pensar, con el fin de obtener ideas originales y
soluciones nuevas.
12










Captulo II
MARCO TERICO

2.1. Antecedentes de Proyecto
Actualmente en el Per se utiliza estructuras de servidores web con
LAMP o ASP.NET, SQL Server con IIS y cuando tiene alta concurrencia
(caso el Comercio en eventos importantes como las elecciones) tienden a
bloquearse, sin embargo hay soluciones que obtienen una mejor
performance como es el caso de Tornado con MongoDB, por ello
implementamos esta herramienta para que as las pginas web que tengan
alto nmero de usuario puedan guiarse de este trabajo para obtener
menores tiempos de respuesta.

2.2. Descripcin del tema del Proyecto
Este proyecto pretende mostrar las diferentes tecnologas que se usan
para la implementacin de sitios web y hacer nfasis en tecnologas
actuales que sean capaces de manejar un gran flujo de trabajo y que sean
capaces de responder ante un gran nmero de usuarios concurrentes.

Para el desarrollo del proyecto nos enfocaramos en tecnologas Open
Source de ltima generacin que son Tornado Web, un framework y
servidor web escalable no bloqueante y MongoDB un gestor de base de
datos no SQL no relacional



13

2.3. Terminologa Bsica
Internet.- es un conjunto descentralizado de redes de comunicacin
interconectadas que utilizan la familia de protocolos TCP/IP, garantizando
que las redes fsicas heterogneas que la componen funcionen como una
red lgica nica, de alcance mundial. Uno de los servicios que ms xito
ha tenido en Internet ha sido la World Wide Web (WWW, o "la Web"), hasta
tal punto que es habitual la confusin entre ambos trminos.

La World Wide Web.- Es un sistema de distribucin de informacin
basado en hipertexto o hipermedios enlazados y accesibles a travs de
Internet. Con un navegador web, un usuario visualiza sitios web
compuestos de pginas web que pueden contener texto, imgenes, videos
u otros contenidos multimedia, y navega a travs de ellas usando
hiperenlaces.

Navegador o navegador web.- ( web browser) Es una aplicacin que
opera a travs de Internet, interpretando la informacin de archivos y sitios
web para que podamos leerla, (ya se encuentre sta alojada en un servidor
dentro de la World Wide Web o en un servidor local). El navegador
interpreta el cdigo, HTML generalmente, en el que est escrita la pgina
web y lo presenta en pantalla permitiendo al usuario interactuar con su
contenido y navegar hacia otros lugares de la red mediante enlaces o
hipervnculos.


Servidores Web.- Un servidor web es un programa que se ejecuta
continuamente en un computador, mantenindose a la espera de
peticiones de ejecucin 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 pgina web o informacin de
todo tipo de acuerdo a los comandos solicitados.



14

Aplicaciones Web.- En la ingeniera de software se denomina aplicacin
web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a
un servidor web a travs de Internet o de una intranet mediante un
navegador. En otras palabras, es una aplicacin software que se codifica
en un lenguaje soportado por los navegadores web en la que se confa la
ejecucin al navegador.

Cliente-servidor.- La arquitectura cliente-servidor es un modelo de
aplicacin 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 tambin se puede
aplicar a programas que se ejecutan sobre una sola computadora, aunque
es ms ventajosa en un sistema operativo multiusuario distribuido a travs
de una red de computadoras.

Modelo TCP/IP.- Es un modelo de descripcin de protocolos de red creado
en la dcada de 1970 por DARPA, una agencia del Departamento de
Defensa de los Estados Unidos. El modelo TCP/IP, describe un conjunto
de guas generales de diseo e implementacin de protocolos de red
especficos para permitir que una computadora pueda comunicarse en una
red. TCP/IP provee conectividad de extremo a extremo especificando
como los datos deberan ser formateados, direccionados, transmitidos,
enrutados y recibidos por el destinatario. Existen protocolos para los
diferentes tipos de servicios de comunicacin entre computadoras.

HTML.- HTML, siglas de HyperText Marckup Language (Lenguaje de
Marcado de Hipertexto), es el lenguaje de marcado predominante para la
elaboracin de pginas web. Es usado para describir la estructura y el
contenido en forma de texto, as como para complementar el texto con
objetos tales como imgenes. HTML se escribe en forma de etiquetas,
rodeadas por corchetes angulares (<,>). HTML tambin puede describir,
hasta un cierto punto, la apariencia de un documento, y puede incluir un
15

script (por ejemplo JavaScript), el cual puede afectar el comportamiento de
navegadores web y otros procesadores de HTML.

HTTP.- Hypertext Transfer Protocol o HTTP (en espaol protocolo de
transferencia de hipertexto) es el protocolo usado en cada transaccin de
la World Wide Web. Es un protocolo orientado a transacciones y sigue el
esquema peticin-respuesta entre un cliente y un servidor. Al cliente que
efecta la peticin (un navegador web o un spider) se lo conoce como
"user agent" (agente del usuario). A la informacin transmitida se la llama
recurso y se la identifica mediante un localizador uniforme de recursos
(URL).

Base de datos SQL.- El lenguaje de consulta estructurado o SQL, es
un lenguaje declarativo de acceso a bases de datos relacionales que
permite especificar diversos tipos de operaciones en stas. Una de sus
caractersticas es el manejo del lgebra y el clculo relacional permitiendo
efectuar consultas con el fin de recuperar -de una forma sencilla-
informacin de inters de una base de datos, as como tambin hacer
cambios sobre ella.

Base de datos no SQL.- No SQL es un trmino usado en informtica para
agrupar una serie de almacenes de datos no relacionales que no
proporcionan garantas ACID. Normalmente no tienen esquemas fijos de
tablas ni sentencias "join".
El trmino ACID hace referencia a un conjunto de caractersticas
necesarias para que una serie de instrucciones puedan ser consideradas
como una transaccin.
Estos sistemas responden a las necesidades de escalabilidad horizontal
que tienen cada vez ms empresas.

Microsoft SQL Server.- Es un sistema para la gestin de bases de datos
producido por Microsoft basado en el modelo relacional. Sus lenguajes
para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye
16

la alternativa de Microsoft a otros potentes sistemas gestores de bases de
datos como son Oracle o Postgre SQL o MySQL.

MySQL.- Es un sistema de gestin de bases de datos relacional, multi-hilo
y multiusuario con ms de seis millones de instalaciones. MySQL AB
desde enero de 2008 una subsidiaria de Sun Microsystems y sta a su vez
de Oracle Corporation desde abril de 2009 desarrolla MySQL como
software libre en un esquema de licenciamiento dual.

MongoDB.- Es un sistema de base de datos multiplataforma orientado a
documentos, de esquema libre. Las caractersticas que ms destacara
de MongoDB son su velocidad y su rico pero sencillo sistema de
consulta de los contenidos de la base de datos. Se podra decir que
alcanza un balance perfecto entre rendimiento y funcionalidad,
incorporando muchos de los tipos de consulta que utilizaramos en nuestro
sistema relacional preferido, pero sin sacrificar en rendimiento.

LAMP.- El acrnimo 'LAMP' se refiere a un conjunto de subsistemas de
software necesarios para alcanzar una solucin global, en este caso
configurar sitios web o servidores dinmicos con un esfuerzo reducido.
En las tecnologas LAMP esto se consigue mediante la unin de las
siguientes tecnologas:
Linux, el sistema operativo; En algunos casos tambin se refiere a
LDAP.
Apache, el servidor web;
MySQL, el gestor de bases de datos;
Perl, PHP, o Python, los lenguajes de programacin.

Frameworks de desarrollo.- En el desarrollo de software, un framework
es una estructura conceptual y tecnolgica de soporte definida,
normalmente con artefactos o mdulos de software concretos, con base en
la cual otro proyecto de software puede ser organizado y desarrollado.
Tpicamente, puede incluir soporte de programas, bibliotecas y un lenguaje
17

interpretado entre otros programas para ayudar a desarrollar y unir los
diferentes componentes de un proyecto.

IIS.- Internet Information Services o IIS es un servidor web y un conjunto
de servicios para el sistema operativo Microsoft Windows. Originalmente
era parte del Option Pack para Windows NT. Luego fue integrado en otros
sistemas operativos de Microsoft destinados a ofrecer servicios, como
Windows 2000 o Windows Server 2003. Windows XP Profesional incluye
una versin limitada de IIS. Los servicios que ofrece son: FTP, SMTP,
NNTP y HTTP/HTTPS.
Este servicio convierte a una PC en un servidor web para Internet o una
intranet, es decir que en las computadoras que tienen este servicio
instalado se pueden publicar pginas web tanto local como remotamente.

ASP.Net y IIS.- Las aplicaciones ASP.NET se suelen ejecutar con IIS
(Servicios de Internet Information Server) como servidor Web.

Tornado.- Es un servidor web escalable no-bloqueante. A la vez es un
framework similar a Google WebApps pero con herramientas adicionales
que sacan ventaja de la infraestructura no-bloqueante.

Microsoft .NET.- Es un framework de Microsoft que hace un nfasis en la
transparencia de redes, con independencia de plataforma de hardware y
que permita un rpido desarrollo de aplicaciones. Basado en ella, la
empresa intenta desarrollar una estrategia horizontal que integre todos sus
productos, desde el sistema operativo hasta las herramientas de mercado.

Visual Basic.- Es un lenguaje de programacin dirigido por eventos,
desarrollado por el alemn Alan Cooper para Microsoft. Este lenguaje de
programacin es un dialecto de BASIC, con importantes agregados. Su
primera versin fue presentada en 1991, con la intencin de simplificar la
programacin utilizando un ambiente de desarrollo completamente grfico
que facilitara la creacin de interfaces grficas y, en cierta medida, tambin
la programacin misma.
18

C Sharp.- C# (pronunciado si sharp en ingls) es un lenguaje de
programacin orientado a objetos desarrollado y estandarizado por
Microsoft como parte de su plataforma .NET, que despus fue aprobado
como un estndar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es
uno de los lenguajes de programacin diseados para la infraestructura de
lenguaje comn.
Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la
plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de
otros lenguajes.

Python.- Es un lenguaje de programacin de alto nivel cuya filosofa hace
hincapi en una sintaxis muy limpia y que favorezca un cdigo legible.
Se trata de un lenguaje de programacin multiparadigma ya que soporta
orientacin a objetos, programacin imperativa y, en menor medida,
programacin funcional. Es un lenguaje interpretado, usa tipado dinmico,
es fuertemente tipado y multiplataforma.

JSON.- JSON, acrnimo de JavaScript Object Notation, es un formato
ligero para el intercambio de datos. JSON es un subconjunto de la notacin
literal de objetos de JavaScript que no requiere el uso de XML.
La simplicidad de JSON ha dado lugar a la generalizacin de su uso,
especialmente como alternativa a XML en AJAX. Una de las supuestas
ventajas de JSON sobre XML como formato de intercambio de datos en
este contexto es que es mucho ms sencillo escribir un analizador
semntico de JSON.

JavaScript.- JavaScript es un lenguaje de programacin utilizado para
crear pequeos programitas encargados de realizar acciones dentro del
mbito de una pgina web. Con JavaScript podemos crear efectos
especiales en las pginas y definir interactividades con el usuario. El
navegador del cliente es el encargado de interpretar las instrucciones
JavaScript y ejecutarlas para realizar estos efectos e interactividades, de
modo que el mayor recurso, y tal vez el nico, con que cuenta este
lenguaje es el propio navegador.
19

CSS.- CSS son las siglas de Cascading Style Sheets - Hojas de Estilo en
Cascada - que es un lenguaje que describe la presentacin de los
documentos estructurados en hojas de estilo para diferentes mtodos de
interpretacin, es decir, describe cmo se va a mostrar un documento en
pantalla, por impresora, por voz (cuando la informacin es pronunciada a
travs de un dispositivo de lectura) o en dispositivos tctiles basados en
Braille.

PHP.- PHP Hypertext Pre-processor (PHP) es una de las tecnologas Web
ms extendida en la actualidad, muy sencillo de aprender, realizado
inicialmente para trabajar sobre Linux con servidor Apache, pero hoy en
da puede alojarse en cualquier servidor. El cdigo fuente est abierto, por
los que los problemas que se presentan son rpidamente controlados, y
solucionados; excelente biblioteca de funciones que permite realizar
cualquier. Su sintaxis es muy similar a la C y Perl. Se comunica con bases
de datos sin necesidad de usar ODBC, una de las caractersticas ms
relevante que tiene.

ASP.- Active Server Pages (ASP) es la tecnologa pionera en las
aplicaciones Web que se ejecutan en el servidor, Desarrollado por
Microsoft y optimizado para su ejecucin en servidores Windows con
tecnologa NT bajo IIS. Al ser una tecnologa propietaria, no tiene la gran
cantidad de mdulos que PHP, aunque mediante los objetos COM, trabaja
fcilmente con archivos dll. Es un tanto desorganizado, utiliza lenguajes
de scripting no tipados como VBScript o JScript. No hay una distincin
formal entre el contenido de una pgina y su comportamiento, se pone
contenido y esperamos a ver qu ocurre.

ASP.NET.- Es un conjunto de tecnologas de desarrollo de aplicaciones
web comercializado por Microsoft. Rompe totalmente con el pensamiento
script que se tena hasta el momento; el cambio en la arquitectura es
radical. Dado que la Web no se lee secuencial, sino que se compila, lo
primero que llama la atencin es el enorme incremento de velocidad de
respuesta del servidor; adems el incremento en seguridad y fortaleza es
20

muy grande. ASP.NET introduce el concepto del code-behind, por el que
una misma pgina se compone de dos ficheros: el de la interfaz de usuario
y el de cdigo.

Ajax.- viene de: Asynchronous JavaScript and XML, y describe una
tcnica desarrollada para crear aplicaciones web interactivas. La finalidad
es lograr una sensacin de interactividad total al realizar intercambios de
informacin con el servidor sin la necesidad de recargar toda la pgina
web. sta tcnica usa una combinacin de varios elementos, como lo son:
XHTML o HTML y CSS para desplegar y estilizar la informacin.
El DOM accesado por medio de lenguajes de script del lado del cliente,
como son JavaScript y JScript.
El objeto XMLHttpRequest para intercambiar los datos con el servidor
web.
XML que es comnmente el formato usado para realizar los
intercambios de informacin, aunque cualquier formato puede ser
usado.

Finalmente el propsito es brindarle al usuario una manera ms sencilla de
realizar la navegacin, pues con AJAX puedes realizar cambios sin la
necesidad de cargar toda la pgina web nuevamente.

Servidor HTTP Apache.- Es un servidor web HTTP de cdigo abierto para
plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y
otras, que implementa el protocolo HTTP/1.1 y la nocin de sitio virtual.
Apache presenta entre otras caractersticas altamente configurables, bases
de datos de autenticacin y negociado de contenido, pero fue criticado por
la falta de una interfaz grfica que ayude en su configuracin.

Sistema de gestin de base de datos.- son un tipo de software muy
especfico, dedicado a servir de interfaz entre la base de datos, el usuario y
las aplicaciones que la utilizan. El propsito general de los sistemas de
gestin de bases de datos es el de manejar de manera clara, sencilla y
21

ordenada un conjunto de datos que posteriormente se convertirn en
informacin relevante para una organizacin.

Tecnologas.- es el conjunto de conocimientos tcnicos, ordenados
cientficamente, que permiten disear y crear bienes y servicios que
facilitan la adaptacin al medio ambiente y satisfacer tanto las necesidades
esenciales como los deseos de las personas.

OpenSource.- Cdigo abierto es el trmino con el que se conoce al
software distribuido y desarrollado libremente. El cdigo abierto tiene un
punto de vista ms orientado a los beneficios prcticos de compartir el
cdigo que a las cuestiones morales y/o filosficas las cuales destacan en
el llamado software libre.

Implementacin.- Es la realizacin de una especificacin tcnica o
algoritmos como un programa, componente software, u otro sistema de
cmputo. Muchas implementaciones son dadas segn a una especificacin
o un estndar. Por ejemplo, un navegador web respeta (o debe respetar)
en su implementacin, las especificaciones recomendadas segn el World
Wide Web Consortium, y las herramientas de desarrollo del software
contienen implementaciones de lenguajes de programacin.

Concurrencia de usuarios.- Se llama concurrencia cuando varios
usuarios intentan acceder a determinada aplicacin al mismo tiempo










22









Captulo III
DESARROLLO DEL PROYECTO

3.1. Descripcin operativa del proyecto
3.1.1. Estructura y funcionamiento de Un servidor Web
Un servidor web o servidor HTTP es un programa que procesa
cualquier aplicacin del lado del servidor realizando conexiones
bidireccionales y/o unidireccionales y sncronas o asncronas con el
cliente generando o cediendo una respuesta en cualquier lenguaje
o Aplicacin del lado del cliente. El cdigo recibido por el cliente
suele ser compilado y ejecutado por un navegador web. Para la
transmisin de todos estos datos suele utilizarse algn protocolo.
Generalmente se utiliza el protocolo HTTP para estas
comunicaciones, perteneciente a la capa de aplicacin del modelo
OSI. El trmino tambin se emplea para referirse al ordenador que
ejecuta el programa.

GRFICO N 01
ESTRUCTURA Y FUNCIONAMIENTO DE UN SERVIDOR WEB


23

Funcionamiento
El Servidor web se ejecuta en un ordenador mantenindose a la
espera de peticiones por parte de un cliente (un navegador web) y
que responde a estas peticiones adecuadamente, mediante una
pgina web que se exhibir en el navegador o mostrando el
respectivo mensaje si se detect algn error. A modo de ejemplo, al
teclear www.wikipedia.org en nuestro navegador, ste realiza una
peticin HTTP al servidor de dicha direccin. El servidor responde
al cliente enviando el cdigo HTML de la pgina; el cliente, una vez
recibido el cdigo, lo interpreta y lo exhibe en pantalla. Como
vemos con este ejemplo, el cliente es el encargado de interpretar el
cdigo HTML, es decir, de mostrar las fuentes, los colores y la
disposicin de los textos y objetos de la pgina; el servidor tan slo
se limita a transferir el cdigo de la pgina sin llevar a cabo ninguna
interpretacin de la misma.
GRFICO N 02


















3.1.2. Estructura y funcionamiento de un Gestor de base de datos
Una base de datos o banco de datos (en ocasiones abreviada con
la sigla BD o con la abreviatura b. d.) es un conjunto de datos
24

pertenecientes a un mismo contexto y almacenados
sistemticamente para su posterior uso. En este sentido, una
biblioteca puede considerarse una base de datos compuesta en su
mayora por documentos y textos impresos en papel e indexados
para su consulta. En la actualidad, y debido al desarrollo
tecnolgico de campos como la informtica y la electrnica, la
mayora de las bases de datos estn en formato digital
(electrnico), que ofrece un amplio rango de soluciones al problema
de almacenar datos.
Existen programas denominados sistemas gestores de bases de
datos, abreviados SGBD, que permiten almacenar y posteriormente
acceder a los datos de forma rpida y estructurada. Las
propiedades de estos SGBD, as como su utilizacin y
administracin, se estudian dentro del mbito de la informtica.
Las aplicaciones ms usuales son para la gestin de empresas e
instituciones pblicas. Tambin son ampliamente utilizadas en
entornos cientficos con el objeto de almacenar la informacin
experimental.
SQL (de primera generacin)
Base de Datos Relacional
Una base de datos relacional es un conjunto de una o ms
tablas estructuradas en registros (lneas) y campos (columnas),
que se vinculan entre s por un campo en comn, en ambos
casos posee las mismas caractersticas como por ejemplo el
nombre de campo, tipo y longitud; a este campo generalmente
se le denomina ID, identificador o clave. A esta manera de
construir bases de datos se le denomina modelo relacional.
Estrictamente hablando el trmino se refiere a una coleccin
especfica de datos pero a menudo se le usa, en forma errnea
como sinnimo del software usado para gestionar esa coleccin
de datos. Ese software se conoce como SGBD (sistema gestor
de base de datos) relacional o RDBMS (del ingls relational
database management system).
25

Las bases de datos relacionales pasan por un proceso al que se
le conoce como normalizacin de una base de datos, el cual es
entendido como el proceso necesario para que una base de
datos sea utilizada de manera ptima.
Entre las ventajas de este modelo estn:
Garantiza herramientas para evitar la duplicidad de registros, a
travs de campos claves o llaves.
Garantiza la integridad referencial: As al eliminar un registro
elimina todos los registros relacionados dependientes.
Favorece la normalizacin por ser ms comprensible y aplicable.

SQL
El lenguaje de consulta estructurado o SQL (por sus siglas en
ingls structured query language) es un lenguaje declarativo de
acceso a bases de datos relacionales que permite especificar
diversos tipos de operaciones en stas. Una de sus
caractersticas es el manejo del lgebra y el clculo relacional
permitiendo efectuar consultas con el fin de recuperar -de una
forma sencilla- informacin de inters de una base de datos, as
como tambin hacer cambios sobre ella.

Caractersticas generales del SQL
El SQL es un lenguaje de acceso a bases de datos que explota
la flexibilidad y potencia de los sistemas relacionales permitiendo
gran variedad de operaciones en stos ltimos.
Es un lenguaje declarativo de "alto nivel" o "de no
procedimiento", que gracias a su fuerte base terica y su
orientacin al manejo de conjuntos de registros, y no a registros
individuales, permite una alta productividad en codificacin y la
orientacin a objetos. De esta forma una sola sentencia puede
equivaler a uno o ms programas que se utilizaran en un
lenguaje de bajo nivel orientado a registros.


26

Lenguaje de definicin de datos (DDL)
El lenguaje de definicin de datos (en ingls Data Definition
Language, o DDL), es el que se encarga de la modificacin de la
estructura de los objetos de la base de datos. Existen cuatro
operaciones bsicas: CREATE, ALTER, DROP y TRUNCATE.

Lenguaje de manipulacin de datos DML (Data Manipulation
Language)
Un lenguaje de manipulacin de datos (Data Manipulation
Language, o DML en ingls) es un lenguaje proporcionado por el
sistema de gestin de base de datos que permite a los usuarios
llevar a cabo las tareas de consulta o manipulacin de los datos,
organizados por el modelo de datos adecuado.
El lenguaje de manipulacin de datos ms popular hoy da es
SQL, usado para recuperar y manipular datos en una base de
datos relacional.

INSERT
Una sentencia INSERT de SQL agrega uno o ms registros a
una (y slo una) tabla en una base de datos relacional.
Forma bsica
INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES
(''valor1'', [''valor2,...''])
Ejemplo
INSERT INTO agenda_telefonica (nombre, numero) VALUES
('Roberto Jeldrez', 4886850);
UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los
valores de un conjunto de registros existentes en una tabla.
Forma bsica
SQL="UPDATE ''tabla'' SET columna1=valor1 WHERE
''columna1'' = ''valor1''"
Ejemplo
27

UPDATE My_table SET field1 = 'updated value asd' WHERE
field2 = 'N';
DELETE
Una sentencia DELETE de SQL borra uno o ms registros
existentes en una tabla.
Forma bsica
SQL="DELETE FROM ''tabla'' WHERE ''columna1'' = ''valor1''"
Ejemplo
DELETE FROM My_table WHERE field2 = 'N';
Sistemas de gestin de base de datos
Los sistemas de gestin de base de datos con soporte SQL ms
utilizados son, por orden alfabtico:
a) DB2
b) Firebird
c) Informix
d) Interbase
e) Microsoft SQL Server
f) MySQL
g) Oracle
h) PostgreSQL
i) PervasiveSQL
j) SQLite
k) SQL Server
l) Sybase ASE

No SQL (de segunda generacin)
No SQL es un trmino usado en informtica para agrupar una
serie de almacenes de datos no relacionales que no
proporcionan garantas ACID. Normalmente no tienen esquemas
fijos de tablas ni sentencias "join"
Ventajas
Estos sistemas responden a las necesidades de escalabilidad
horizontal que tienen cada vez ms empresas

28

Arquitectura
Tpico de bases de datos relacionales modernos han mostrado
un pobre desempeo en ciertas aplicaciones intensivas de datos,
incluyendo la indexacin de un gran nmero de documentos,
servicio de pginas en los sitios web de alto trfico, y la entrega
de medios de streaming. Las implementaciones tpicas RDBMS
se afinan ya sea para leer pequeas pero frecuentes / escritura
de las transacciones y para las operaciones en bloque de gran
tamao con los accesos de escritura rara. No SQL, por el
contrario, puede dar servicio pesado de lectura / escritura cargas
de trabajo. Despliegues del mundo real No SQL incluyen 3 Digg
TB para las insignias verdes y Facebook es 50 TB bandeja de
entrada para la bsqueda.
Arquitecturas No SQL suelen ofrecer garantas de consistencia
dbil, tales como la consistencia eventual, o las operaciones
restringidas de elementos de datos individuales. Algunos
sistemas, sin embargo, ofrecer plenas garantas de ACID, en
algunos casos mediante la adicin de una capa de middleware
adicionales (por ejemplo, AppScale y CloudTPS).
Varios sistemas de No SQL emplean una arquitectura
distribuida, con los datos en poder de una manera redundante en
varios servidores, a menudo usando una tabla hash distribuidas.
De esta manera, el sistema puede escalar fcilmente mediante
la adicin de ms servidores, y el fracaso de un servidor puede
ser tolerado.
Algunos defensores de No SQL. Promueven interfaces muy
simples, tales como arrays asociativos o pares de clave y valor.
Otros sistemas, tales como bases de datos XML nativa,
promover el apoyo del estndar XQuery. Los sistemas ms
modernos, como tambin el apoyo CloudTPS consultas de
unin.
Para crear una tabla es implcita por que podras ingresar de la
forma siguiente para crear una coleccin, que es equivalente a
una tabla.
29

Insertar datos a una coleccin
db.users.insert({a:3,b:5})

Seleccionar datos de una coleccin
db.users.insert({a:3,b:5})

Seleccionar solo una coincidencia
db.users.findOne()

Seleccionar datos distintos
db.users.distinct('last_name')

Contar las coincidencias
db.users.find({age: {'gt': 30}}).count ()

Actualizar datos
db.users.update({b:'q'},{$set:{a:1}},false,true)

Eliminar datos
db.users.remove ({z:'abc'});

Sistemas:
Cassandra, de Apache The Apache Cassandra
BigTable, de Google
Dynamo, de Amazon
CouchDB, de Apache Apache CouchDB
MongoDB, de 10gen MongoDB

3.1.3. Estructura y funcionamiento de un Framework
Un framework es una estructura conceptual y tecnolgica de
soporte definida, normalmente con artefactos o mdulos de
software concretos, con base en la cual otro proyecto de software
puede ser organizado y desarrollado. Tpicamente, puede incluir
soporte de programas, bibliotecas y un lenguaje interpretado entre
30

otros programas para ayudar a desarrollar y unir los diferentes
componentes de un proyecto.
Son diseados con la intencin de facilitar el desarrollo de software,
permitiendo a los diseadores y programadores pasar ms tiempo
identificando requerimientos de software que tratando con los
tediosos detalles de bajo nivel de proveer un sistema funcional. Por
ejemplo, un equipo que usa Apache Struts para desarrollar un sitio
web de un banco, puede enfocarse en cmo los retiros de ahorros
van a funcionar en lugar de preocuparse de cmo se controla la
navegacin entre las pginas en una forma libre de errores. Sin
embargo, hay quejas comunes acerca de que el uso de frameworks
aade cdigo innecesario y que la preponderancia de frameworks
competitivos y complementarios significa que el tiempo que se
pasaba programando y diseando ahora se gasta en aprender a
usar frameworks.
Fuera de las aplicaciones en la informtica, puede ser considerado
como el conjunto de procesos y tecnologas usados para resolver
un problema complejo. Es el esqueleto sobre el cual varios objetos
son integrados para una solucin dada.
Despus de todo, un framework no debe ser consciente de todos
estos requerimientos sin tener que ser intrusivo con las aplicaciones
que permite dentro de s mismo. A esto le sumamos la capacidad
de extenderse sin prejuicios para diversificar la expresin del
programa mismo as.

Arquitectura
Dentro de este aspecto, podemos basarnos en el modelo MVC
(Controlador => Modelo => Vista) ya que debemos fragmentar
nuestra programacin. Tenemos que contemplar estos aspectos
bsicos en cuanto a la implementacin de nuestro sistema:




31

GRFICO N 03


















Controlador:
Con este apartado podemos controlar el acceso (incluso todo) a
nuestra aplicacin, esto pueden ser: archivos, scripts o
programas; cualquier tipo de informacin que permita la interfaz.
As, podremos diversificar nuestro contenido de forma dinmica,
y esttica (a la vez); pues, slo debemos controlar ciertos
aspectos (como se ha mencionado antes).

Modelo:
Este miembro del controlador maneja las operaciones lgicas, y
de manejo de informacin (previamente enviada por su ancestro)
para resultar de una forma explicable, y sin titubeos. Cada
miembro debe ser meticulosamente llamado, en su correcto
nombre y en principio, con su verdadera naturaleza: el manejo
de informacin, su complementacin directa.

Vista:
Al final, a este miembro de la familia le corresponde dibujar, o
expresar la ltima forma de los datos: la interfaz grfica que
32

interacta con el usuario final del programa (GUI). Despus de
todo, a este miembro le toca evidenciar la informacin obtenida
hasta hacerla llegar con el controlador. Solo (e inicialmente), nos
espera demostrar la informacin.

Estructura
Dentro del controlador, modelo o vista podemos manejar lo
siguiente: datos. Depende de nosotros como interpretar y
manejar estos 'datos'. Ahora, sabemos que el nico dato de una
direccin esttica web es: conseguir un archivo fsico en el disco
duro o de internet, etc. he interpretado o no, el servidor
responde.
El modelo, al igual que el controlador y la vista, maneja todos los
datos que se relacionen consigo (solo es el proceso medio de la
separacin por capas que ofrece la arquitectura MVC). Y slo la
vista, puede demostrar dicha informacin. Con lo cual ya hemos
generado la jerarqua de nuestro programa: Controlador, Modelo
y Vista.

Lgica
Al parecer, debemos inyectar ciertos objetos dentro de sus
parientes en esta aplicacin, solo as compartirn herencia y
coherencia en su aplicacin.
Rpidamente, para una aplicacin web sencilla debemos
establecer estos objetos:

Una base (MVC)
o Controlador: ste debe ser capaz de manejar rutas, archivos,
clases, mtodos y funciones.
o Modelo: es como un script habitual en el servidor, solo que
agrupado bajo un 'modelo' reutilizable.
o Vista: como incluyendo cualquier archivo en nuestra
ejecucin, muy simple.

33

Un sistema
o Ruteador: con l podemos dividir nuestras peticiones sin
tantas condicionales.
o Cargador
3.1.4. Tecnologas para implementar Servidores Web
En la actualidad el mbito de los servidores web y tecnologas
adyacentes a esta estn dominadas por soluciones Open Source,
generalmente por el ya conocido LAMP (Linux, Apache, MySQL y
PHP) con una participacin en el mercado del 65.18% para Agosto
del 2011 siendo seguido por las soluciones brindadas por Microsoft
con una participacin del 15.86%. Por lo cual se plantea el uso de
estas soluciones as como la implementacin y comparacin con la
solucin propuesta (Tornado y MongoDB).


GRFICO N 04









34

Developer Julio 2011 Porcentaje Agosto 2011 Porcentaje Cambio
Apache 235,326,985 65.86% 301,771,518 65.18% -0.69
Microsoft 60,086,346 16.82% 73,415,916 15.86% -0.96
nginx 23,357,497 6.54% 35,533,439 7.67% 1.14
Google 15,641,574 4.38% 17,061,003 3.68% -0.69

FUENTE: NetCraft ah agosto del 2011


3.1.4.1 Modelado de la aplicacin del ejemplo
Para la aplicacin de ejemplo se plantea un escenario
minimalista para poder hacer las pruebas respectivas se
cuenta con dos entidades:
Empleado: Persona que trabaja en un determinada
organizacin y pertenece a un rea.
rea: el rea de trabajo en el cual se desarrolla el
empleado.


GRFICO N 05



35

Se cuenta con tres vistas (pgina web):

Principal: Muestra una lista de todos los empleados y
te permite buscar a un empleado especifico, o listar
todos los empleados de determinada rea.

GRFICO N 06





Detalles de Empleado: detalla los datos del empleado.











GRFICO N 07

















36

rea: lista todos los empleados de esa rea y sus datos respectivos.

GRFICO N 08















Se realizar la implementacin de este modelo
propuesto teniendo en cuento el modelo de datos las
vistas y la funcionalidad para luego compararlos y
recoger altos relevantes para el desarrollo del proyecto.

3.1.4.2 Implementacin en LAMP
Para la implementacin en LAMP se us el framework
MVC escrito en PHP llamado Symfony.

Modelo: El esquema de la base de datos se
desarroll de acuerdo al modelo especificado, en el
cual se plantean las entidades y relaciones.
Adems se genera una capa de abstraccin en la
cual se aplican filtros de seguridad y clases que
facilitan la obtencin, actualizacin, insercin y
eliminacin de datos por parte del controlador.
37

Vista: la vista se renderiza tomando en layout
(plantilla principal) sobre la cual se reenderizan las
plantillas de cada accin (pginas web)

GRFICO N 09


Controlador: se tomas las peticiones desde la vista
para luego llamar al modelo y pedirle los datos
requeridos los cuales ser enviados a las plantillas
las cuales renderizaran y se la regresaran al
navegador en formato HTML.

Implementacin:
Debian GNU/Linux: GNU/Linux o Linux tiene una
gran cantidad de distribuciones (versiones) para
cubrir mltiples necesidades y con mltiples
caractersticas, para el desarrollo de este proyecto se
eligi debian GNU/Linux porque es una distribucin
segura y muy organizada, es usada por empresas y
universidades adems
Cuenta con un gran nmero de paquetes
(aplicaciones)
instalacin de debian: ver anexo X

Apache: Al ser Open Source est apoyado por una
gran comunidad que se encarga de hacerlo cada vez
ms seguro y confiable, lo cual se refleja en su alto
38

uso siendo el servidor web predominante en internet
desde hace muchos aos instalacin en debian 6.0:
# apt-get install apache2
#apt-get install libapache2-mod-php5

MySQL:
instalacin en debian 6.0:
apt-get install mysql-server

PHP:
instalacin en debian 6.0
#apt-get install php5
#apt-get install php5-mysql

Se desarroll haciendo uso del IDE de desarrollo
NetBeans con las libreras para PHP5 y usando el
framework Symfony
- se crea el proyecto de symfony (ver anexo X) el
modelo de la base de datos se crea en un archivo de
configuracin. (Ver anexo X)
- el modelo se genera con la utilizacin de la librera
doctrine lo que nos crea las clases para la
abstraccin de datos (ver anexo X)
- se crea la aplicacin a desarrollar lo cual genera la
estructura de archivos necesarias para empezar el
desarrollo (ver anexo X)
- se procede con la programacin (ver anexo X)

3.1.4.3 Implementacin con tecnologas Microsoft
Instalacin de visual estudio .NET 2010






39

Instalacin de SQL Server 2008











































40

instalacin de IIS



Descripcin de los procesos de la implementacin.
Creacin de la base de datos empresa
Creacin de las tablas empleado y rea
Creacin de los procedimientos buscar Empleados y
buscar por reas que Realizaran la bsqueda en las
tablas por nombre de los empleados y Creacin del
proyecto en asp.net con visual Basic por las reas.
Creacin del dataset en asp.net
Creacin del script index.aspx donde estarn las
consultas
Buscar Empleados y buscar por reas.
Una vez realizada la aplicacin web la llevamos a
c://inetpub/wwwroot donde trabajara con IIS





41

3.1.4.4 Implementacin con Tornado y MongoDB
Se necesit descarga el archivo de mongoDB ya que es
veloz y de alto rendimiento, escogemos el que va con ti
arquitectura, ya sea de 32 64 bits.
Una vez que ya haya este descargado:
Lo descomprimimos:
tar -xzvf ARCHIVO.tgz
Donde ARCHIVO es el nombre del archivo que
descargaste, por ejemplo mongodb-linux-x86_64-
1.8.1.tgz
Una vez que se acab de descomprimir el archivo, se
debe crear el directorio que usa MongoDB para
almacenar los datos, el cual es /data/db. Se crea de la
siguiente manera (Como sper usuario).
# mkdir -p /data/db
mkdir sirve para crear directorios desde la consola de
Linux, y el parmetro p es para que si se da una ruta
larga y las carpetas padres no existen, se
creen automticamente.
Despus se cambian los permisos:
# chown USUARIO /data/db
Donde USUARIO es tu nombre de usuario en Linux. Si
no sabes cul es, puede probar ejecutando como
usuario normal el comando whoami

Una vez cambiado el usuario a la carpeta /data/db, se
debe ir a los archivos extrados de mongo y entrar a la
carpeta bin, y ejecutar (como usuario) la aplicacin: /
MongoDB
Si no aparece el mensaje "really exiting now" entonces
se est ejecutando el demonio de MongoDB y est listo
para conectarse en el puerto 27017, y tambin tiene una
interfaz web que puede consultarse en
http://localhost:28017.
42

Para finalizar el demonio se presiona control + c, para
poder hacer consultas desde consola de debe usar otra
terminal.
En la otra terminal se debe ir a la misma carpeta donde
se descomprimi MongoDB, y entrar a la carpeta bin y
esta vez ejecutar la aplicacin. ./mongo y nos debe
regresar el siguiente prompt
Para ver las bases de datos:
show dbs
Para ver la base de datos actual:
Db

Para cambiar de base de datos:
use NOMBRE
Para buscar las colecciones de la base de datos
actual:
show collections
Para mostrar ayuda:
Help
Vamos a buscar en una base de datos de prueba:
db.foo.find()
Y al darle enter, no nos dar resultados, por lo que
vamos a ingresar un dato de la siguiente manera:
db.foo.save({ a : 1 })
Y de nuevo vamos a buscar con
db.foo.find()
Y nos dar como resultado:
{ "_id" : bjectId("4da264a9ae5a73975e992d25"),
"a" : 1}
Eso significa que ya est para el uso respectivo
Para la instalacin de tornado web
43

Se necesit descargar el archivo de tornado pero
antes tenemos que tener python en versiones
superiores a 2.5.
Para descargarlo: http://www.tornadoweb.org/
Lo descomprimimos.
$ tar xvzf tornado-0.2.tar.gz
Lo podemos ver en la consola.
$ cd tornado-0.2
Y ya est fcil para el uso respectivo.
Ahora si se podr usar los dos componentes para el
uso respectivo.

3.1.4.5 Comparativa entre las soluciones propuestas
Se mostrara una comparativa entre lo propuesto y
Microsoft
Pruebas Lam
Para 100 usuarios concurrentes:
rbol datos de los archivos


44





Grfico del Informe Agregado



Grfico de resultado


45

Para 1000 usuarios

rbol datos de los archivos






46

Grfico del informe agregado




Grfico de resultados














47

Para 10000 usuarios

rbol datos de los archivos






48




Grfico del informe agregado




Grfico de resultado





49

Pruebas con tornado y mongoDB
Para 100 usuarios
rbol datos de los archivos











50

Grfico del informe agregado


Grfico de resultado



Para 1000 usuarios

rbol datos de los archivos


51



Grfico del informe agregado

Grfico de resultado




52

Para 10000 usuarios

rbol datos de los archivos








53




Grfico del informe agregado




Grfico de resultado



54

Se analiz lo propuesto y vimos que lo propuesto es ms til y rpido
para hacer los fines prcticos


Cuadro de resultados finales

Peticiones
(concurrentes)
Tiempo y
Error
LAMP IIS Tornado
100 Tiempo 238-2373 273-297 16-614
% Error 0 % 0 % 0 %
1000 Tiempo 339-94470 210-5068 73-46931
% Error 0.30 % 0 % 0%
10000 Tiempo 0-241376 26-14197 0-269270
% Error 74.64% 71.64% 65.65 %

Como se puede observar en la imagen anterior el tiempo de respuesta,
a una amplia cantidad de usuarios de la estructura del servidor web
basado en tornado y mongoDB da un bajo porcentaje de errores.

3.2. Resultados Obtenidos
3.2.1. Anlisis y evaluacin final
Se implement nuestro modelo de aplicacin web en tres
entornos y tecnologas de trabajo distintas sobre la misma
mquina para analizar el modo en el cual cada tecnologa facilita
o no en desarrollo de la aplicacin, medir el rendimiento y la
tolerancia a un gran nmero de carga de trabajo

El mtodo de Desarrollo que se usa para realizar un aplicacin
LAMP varia de un mtodo tradicional escribiendo las clases y
funciones desde cero a el uso de framework el cual te facilita la
abstraccin de datos la seguridad y separa la vista de la lgica
del negocio

Por otro lado el desarrollo en Visual Studio .NET te brinda
herramientas visuales de fcil manejo en el aspecto de UI, sin
embargo al momento de manejar aspectos internos de un
sistema el entorno de desarrollo de Microsoft pasa a ser pesado
55

y fastidioso en el sentido del uso de libreras y handlers y su
puesta en marcha
El desarrollo usando el framework de tornado resulta sencillo y
rpido si bien no cuenta con herramientas visuales si es
necesario se puede usar algn ide con soporte para python.

Para probar el rendimiento y la tolerancia a errores se us la
herramienta jmeter con la cual se prob cada aplicacin con 10,
100, y 1000 consultas concurrentes. Esta prueba de estrs nos
dio como resultado que el uso del conjunto de tecnologas
tornado y mongoDB nos brindan mayor velocidad confiabilidad y
tolerancia a una mayor carga de trabajo.

Escenario de pruebas
Las pruebas se realizaron sobre una laptop hp con las siguientes
caractersticas:

Nombre del producto HDX X16-1060ES
Procesador Intel core 2 duo
Memoria 4096 MB
Disco duro 320 GB (5400 rpm)
Tarjeta de red LAN Ethernet Gigabit 10/100/1000
integrada
Conectividad
inalmbrica
Intel WiFi Link 5100
Bluetooth

El software usado para cada caso probado fue:

LAMP Tecnologas
Microsoft
Tornad/
mongoDB
sistema operativo debian GNU/Linux
6.0
MS Windows 7 debian GNU/Linux
6.0
56

Servidor web apache 2 IIS 7 Tornado 2.0
HTTP server
Base de Datos MySQL 5.5 Ms SQL Server
2008
MongoDB
Framework Synfony 1.4 net Framework 4 Tornado 2.0 web
Lenguaje de
programacin
PHP 5 Visual Basic python 2.7

Comprobacin de la hiptesis
Segn los resultados obtenidos en las pruebas realizadas se
tiene que:
en un entorno no optimizado para la puesta en produccin
de un servidor web la capacidad de la red limita el acceso a
un gran nmero de usuario concurrentes
El Servidor web Tornado est mejor preparado para atender
mltiples requet en menor tiempo y con mejor uso de los
recursos del ordenador.




















57











CONCLUSIONES

Se logr demostrar que el conjunto de tecnologas Tornado y mongoDB
nos brindan un rendimiento mayor a las otras tecnologas usadas, ya que
el servidor web Tornado nos permite manejar un mayor nmero de
usuarios concurrentes y la base de datos mongoDB nos permite una
mayor velocidad en las consultas realizadas.

Se logr entender que cuando alguna organizacin realiza un
aplicativo web debe de mirarse al futuro y pensar si su aplicativo
puede llegar a tener una gran concurrencia de usuarios, esta debe de
realizarse con un diseo q provea esto. En el caso de la base de datos se
optara por una base de datos no-sql por las rpidas respuestas que
presenta ante consultas que tenga que ver con un amplia cantidad de
datos.

Se logr entender que los frameworks permiten reducir el tiempo de
desarrollo y que nos brindan un gran nmero de herramientas para
procesos repetitivos. esto ya que cuenta con pre procesos que te agilizan
todo el proceso de desarrollo.

Se logr realizar la comparativa de las tres estructuras web LAMP, IIS y
ASP.NET y Tornado con Mongodb con lo cual se demuestra como la
estructura de tornado con Mongodb da menores casos de que el servidor
web no responda a las peticiones y responde con mayor velocidad.

58

Al modelar una aplicacin web podemos darnos cuenta que estos
diseos se pueden implementar con distintas tecnologas afines a las
soluciones web.

Al implementar un sitio web con tornado y Mongodb podemos ver que
estas soluciones nos reducen el tiempo de desarrollo y nos da como
resultado una aplicacin con mejor rendimiento y mayor capacidad para
crecer horizontalmente tambin se encontr con el problema del
mantenimiento ya que al ser tecnologas nuevas y pocas conocidas no
tienen amplio soporte.












59





SUGERENCIAS

Que, se mire al futuro y no solo basarse en tecnologas antiguas sino que
tambin hay que tener en cuenta las tecnologas modernas con visin a
futuro como en el caso de Tornado y MongoDB

Que, se tome en serio la escalabilidad de la base de datos y pensar en
que el futura la aplicacin puede albergar una gran cantidad de
informacin asiendo difcil manejar toda esta carga.

Que, los programadores o estudiantes tengan en cuenta que la
tecnologa va avanzado y los framework son el modelo de facto en la
actualidad para el desarrollo de aplicaciones.

Que, se implemente Tornado y MongoDB para realizar aplicaciones web
pensadas a futuro, pues a medida que estas crezcan el costo de
mantenimiento se mantendr estable o con una variacin mnima.

Que, se modele las soluciones planteadas antes de empezar el
desarrollo.

Que, se tenga en cuenta la documentacin oficial de las tecnologas con
las que se desarrolla la aplicacin ya que en estas se encuentra toda la
informacin necesario para el desarrollo del mismo, tambin se sugiere
revisar foros y blogs relacionados ya que brindan soluciones a problemas
tpicos lo cual no permitir ahorrar tiempo.

Que, se usen modelos modernos de desarrollo ya que estos estn
preparados para las tecnologas actuales y las que vengan.

60








BIBLIOGRAFA
I. Libros:
1) Michael Dory, Adam Parrish y Brendan Berg
2010 Introduccin a Tornado, Estados Unidos Editorial Amazon
2) Jennifer Campbell, Paul Gries, Jason Montojo y Greg Wilson
2004 An Introduction to Computer Science Using Python, Estados
Unidos Editorial Amazon
3) Alex Martelli, Anna Ravenscroft y David Ascher
2005 Python Cookbook, Estados Unidos Editorial Amazon
4) Kristina Chodorow y Michael Dirolf
2010 Scaling MongoDB Estados Unidos Editorial Amazon
5) Kyle Banker
2006 MongoDB in Action Estados Unidos Editorial Amazon
6) Charles B. Weinstock y John B. Goodenough
2006 On System Scalability

II. URLS:

http://www.amazon.com
http://es.wikipedia.org/
http://www.tornadoweb.org/
http://www.mongodb.org/
http://www.python.org/
http://www.linux-es.org/
http://news.netcraft.com
http://www.linux.org/

61

ANEXOS


Diagrama entidad relacion de MongoDB



Diagrama de entidad relacin de Tornado Web

You might also like