TESIS QUE PRESENTA PARA OBTENER EL TTULO DE INGENIERO EN COMUNICACIONES Y ELECTRNICA:
Instituto Politcnico Nacional Escuela Superior de Ingeniera Mecnica y Elctrica
Implementacin de una pgina Web para la Subdireccin Acadmica de la ESIME Zacatenco Castan Leo Joel Ariosto
2
Contenido Contenido ................................................................................................................ 2 Planteamiento del problema: ................................................................................... 3 Objetivo general: ..................................................................................................... 3 Objetivos especficos: ............................................................................................. 3 Justificacin ............................................................................................................. 4 1 Aplicaciones Web ............................................................................................. 5 1.1 Modelo Cliente Servidor .......................................................................... 5 1.1.1 Caractersticas de la arquitectura Cliente Servidor ........................... 6 1.2 Cliente ........................................................................................................ 7 1.3 Servidor ...................................................................................................... 8 1.3.1 Tipos de Servidores ............................................................................. 8 1.3.2 Servidor Web ....................................................................................... 9 1.3.3 Servidor IIS ........................................................................................ 10 1.4 Base de Datos .......................................................................................... 10 1.5 Lenguaje de Programacin Web .............................................................. 12 1.6 Metodologas para Desarrollo de Software .............................................. 13 1.6.1 Metodologas Estructuradas .............................................................. 14 1.6.2 Metodologas Orientadas a Objetos .................................................. 14 1.6.3 Metodologas Tradicionales ............................................................... 15 1.6.4 Metodologas giles .......................................................................... 15 2 Desarrollo ....................................................................................................... 17 3 Bibliografa ......................................................................................................... 18
3
Figura 4.1: Ilustra un sistema bsico Cliente Servidor [24] ................................... 6
Planteamiento del problema: Debido a la necesidad de dar a conocer la estructura y las actividades que tiene el departamento de Subdireccin Acadmica, se decide implementar una mejora a su pgina Web, ya que con el desarrollo de un nuevo diseo, el modo de desplegar la informacin sobre las actividades, ser ms funcional para la comunidad Politcnica. Objetivo general: Desarrollar una pgina Web, en la cual se integrarn de una forma ms organizada, detallada y especfica toda la informacin pertinente del rea de Subdireccin Acadmica, as como cubrir un diseo ms amigable para los usuarios, una navegacin ms comprensible y un ambiente ms familiar. Objetivos especficos: Creacin de mens dinmicos para la fcil navegacin de los usuarios, incluir submens especficos por reas, desde Recursos Humanos hasta Contabilidad. Creacin de un organigrama funcional del rea por departamentos que la constituyen.
4
Justificacin
5
1 Aplicaciones Web Una aplicacin Web son aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor Web a travs de Internet o de una intranet mediante un navegador. Es una aplicacin de software que se codifica en un lenguaje soportado por los navegadores Web en la que se confa la ejecucin del navegador. Las aplicaciones Web son populares debido a lo prctico del navegador Web como cliente ligero, a la independencia del sistema operativo, as como a la facilidad para actualizar y mantener aplicaciones Web sin distribuir e instalar software a miles de usuarios potenciales.
1.1 Modelo Cliente Servidor Desde el punto de vista funcional, se puede definir al modelo Cliente - Servidor como una arquitectura distribuida que permite a los usuarios finales obtener acceso a la informacin en forma transparente an en entornos multiplataforma, en esta seccin se reproducen conceptos y definiciones de los libros Desarrollo de Aplicaciones Web [18] y Client/Server Software Architectures [19]. En el modelo Cliente - Servidor, el cliente enva un mensaje solicitando un determinado servicio a un servidor (hace una peticin), y este enva uno o varios mensajes con la respuesta (provee el servicio). La Figura 1.1 ilustra un sistema bsico Cliente - Servidor.
6
Figura 1.1: Ilustra un sistema bsico Cliente Servidor [24] La idea es tratar a una computadora como un instrumento, que por s sola pueda realizar tareas, pero con la consideracin de que realice solo aquellas tareas para la cuales fue programada. Si esto se aplica tanto a clientes como a servidores, se entiende que la forma estndar de aplicacin y uso de sistemas Cliente Servidor es mediante la explotacin de las PCs y de las interfaces de usuario. Usualmente la mayora del trabajo pesado se hace en el proceso llamado servidor y el o los procesos cliente slo se ocupan de la interaccin con el usuario, aunque esto puede variar. En otras palabras, la arquitectura Cliente Servidor es una extensin de la programacin modular en la que la base fundamental es separar una gran pieza de software en mdulos con el fin de hacer ms fcil el desarrollo y mejorar su mantenimiento. 1.1.1 Caractersticas de la arquitectura Cliente Servidor Las caractersticas bsicas de una arquitectura Cliente Servidor son: Combinacin de un cliente que interacta con el usuario, y un servidor que interacta con los recursos compartidos. El proceso del cliente proporciona la interfaz entre el usuario y el resto del sistema. El proceso del servidor acta como un motor de software que maneja recursos compartidos tales como bases de datos, impresoras, mdems, etc.
7
La relacin establecida puede ser de uno a varios, en la que el servidor puede dar servicio a muchos clientes, regulando su acceso a recursos compartidos. Los clientes corresponden a procesos activos en cuanto a que son stos los que hacen peticiones de servicios a los servidores. Estos ltimos tiene un carcter pasivo, ya que esperan las peticiones de los clientes. No existe otra relacin entre clientes y servidores que no sea la que se establece a travs del intercambio de mensajes entre ambos. El mensaje es el mecanismo para la peticin y entrega de solicitudes de servicio. El ambiente es heterogneo. La plataforma de hardware y el sistema operativo del cliente y del servidor no son siempre iguales. Precisamente una de las principales ventajas de esta arquitectura es la posibilidad de conectar clientes y servidores independientemente de sus plataformas.
1.2 Cliente El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos al servidor, se le conoce con el trmino front-end. [19]. El cliente normalmente maneja todas las funciones relacionadas con la manipulacin y despliegue de datos, por lo que estn desarrollados sobre plataformas que permiten construir interfaces grficas de usuario, adems de acceder a los servicios distribuidos en cualquier parte de una red. Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes puntos: Administrar la interfaz de usuario. Interactuar con el usuario. Procesar la lgica de la aplicacin y hacer validaciones locales. Generar requerimientos de base de datos.
8
Recibir resultados del servidor.
1.3 Servidor Es el proceso encargado de atender a mltiples clientes que hacen peticiones de algn recurso administrado por l. Al proceso servidor se le conoce con el trmino de back-end. El servidor normalmente maneja todas las funciones relacionadas con la mayora de las reglas del negocio y los recursos de datos, [19]. Las funciones que lleva a cabo el proceso servidor se resume en los siguientes puntos: Aceptar requerimientos de bases de datos que hacen los clientes. Procesar requerimientos de base de datos. Formatear datos para transmitirlos a los clientes. Procesar la lgica de la aplicacin y realizar validaciones a nivel base de datos. 1.3.1 Tipos de Servidores En la actualidad existen diversos tipos de servidores para realizar tareas de acuerdo al funcionamiento de cada uno, a continuacin se describen algunos de ellos [24]. Servidores de Aplicaciones: Designados a veces como tipo middleware (software que conecta dos aplicaciones), los servidores de aplicaciones ocupan una gran parte del territorio entre los servidores de base de datos y el usuario, y a menudo los conectan. Servidores FTP: Uno de los servicios ms antiguos de Internet, File Transfer Protocol permite mover uno o ms archivos con seguridad entre distintos ordenadores proporcionando seguridad y organizacin de los archivos as como control de transferencia.
9
Servidores Proxy: Los servidores Proxy se sitan entre un programa del cliente (tpicamente un navegador) y un servidor externo (tpicamente otros servidores web) para filtrar peticiones, mejorar el funcionamiento y compartir conexiones. Servidores Web: Bsicamente, un servidor web sirve contenido esttico a un navegador, carga un archivo y lo sirve a travs de la red al navegador del usuario. Este intercambio es mediado por el navegador y el servidor que se comunican el uno con el otro mediante HTTP (HyperText Transfer Protocol, Protocolo de Transferencia de Hipertexto).
1.3.2 Servidor Web Un Servidor Web es un programa que sirve datos en forma de pginas Web, es decir hipertexto o pginas HTML (HyperText Markup Lenguage, Lenguaje de Marcado de Hipertexto), que son textos complejos con enlaces, figuras, formularios, botones y objetos incrustados como animaciones o reproductores de sonidos. La comunicacin de estos datos entre cliente y servidor se hace por medio de un protocolo, concretamente el protocolo HTTP. Con esto, un servidor Web se mantiene a la espera de peticiones HTTP dirigidas al servidor que tiene asociada dicha URL (Uniform Resource Locator, Localizador de Recursos Uniforme). Una URL es una secuencia de caracteres, de acuerdo a un formato modlico y estndar, que se usa para nombrar recursos en internet para su localizacin o identificacin, como por ejemplo documentos textuales, imgenes, videos, presentaciones digitales, etc. El servidor responde al cliente enviando el cdigo HTML de la pgina; posteriormente cuando el navegador recibe el cdigo, lo interpreta y lo muestra en pantalla. Dado que el servidor, es el cliente 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 se encarga
10
de transferir el cdigo de la pgina sin llevar a cabo ninguna interpretacin de la misma. [22]
1.3.3 Servidor IIS Internet Information Services, 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. Los servicios que ofrece son: FTP, SMTP, NNTP y HTTP/HTTPS. Este servicio convierte a una PC en un servidor web para Internet o Intranet, es decir que en las computadoras que tienen este servicio instalado se pueden publicar pginas web tanto local como remotamente. Se basa en varios mdulos que le dan la capacidad para procesar distintos tipos de pginas. Por ejemplo, Microsoft lo de Active Server Pages (ASP) y ASP.NET. Tambin pueden ser incluidos los de otros fabricantes, como PHP y Perl. [23]
1.4 Base de Datos Una base de datos es un sistema de archivos electrnicos que contienen una coleccin organizada de forma que un programa de una computadora pueda seleccionar rpidamente los fragmentos de datos que necesite. Para la definicin anterior y para la descripcin de lo que es una base de datos y los diferentes tipos de bases se hacen referencia al libro MySQL [20]. En la actualidad y a consecuencia del avance tecnolgico en cuestin informtica, electrnica y entre otras reas; se han generado la necesidad de crear respaldos de los diferentes tipos de datos especficos a necesidades de cada sector, es por
11
ello que las bases de datos han sido empleadas ampliamente para el registro y explotacin de informacin en gran cantidad, ya que en ellas se almacenan datos desde nombres, artculos, cantidades de dinero, entre otros, permitiendo poder llevar un control ms preciso dentro de una pequeas, medianas y grandes empresas, lo cual les ha ayudado a resolver distintas tareas por medio de las PCs y con la ayuda de los sistemas de base de datos. Existen programas los cuales son denominados sistemas gestores de base de datos, que permiten almacenar y posteriormente acceder a los datos de forma rpida y estructurada. Dentro de estos se pueden mencionar: Microsoft SQL Server PostgreSQL SQLite DB2 express-C Apache Derby DBase DB2 Microsoft Access MySQL
De los sistemas gestores de base de datos mencionados, se hablar de Microsoft SQL Server, ya que este sistema es el que mejor se adapta al proyecto a realizar. Microsoft SQL Server, se trata de un sistema para la gestin de base de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, PostgreSQL o MySQL. Algunas de las caractersticas de Microsoft SQL Server son:
12
Soporte de transacciones. Soporta procedimientos almacenados. Incluye un entorno grfico de administracin, que permite el uso de comandos DDL y DML grficamente. Permite trabajar en modo Cliente-Servidor, donde la informacin y datos se alojan en el servidor y los terminales o clientes de la red solo acceden a la informacin. Permite administrar informacin de otros servidores de datos.
1.5 Lenguaje de Programacin Web Como se mencion anteriormente en la seccin 4.3.2, los servidores Web se encargan de atender peticiones de contenidos HTML estticos y dinmicos. En el caso de los contenidos dinmicos, las pginas HTML usualmente incluyen cdigos que permiten la interaccin con el usuario. En la actualidad, existen diferentes tipos de lenguajes de programacin para desarrollar en la Web, estos han ido surgiendo debido a las tendencias y necesidades de las plataformas. Para explicar sobre los lenguajes de programacin y algunos conceptos se hace referencia al Manual PHP [21] Desde los inicios de internet y a medida que paso el tiempo, las tecnologas fueron desarrollndose y surgieron nuevos problemas a solucionar o necesidades que atender. Esto dio lugar al desarrollo de lenguajes de programacin para la Web, que permitieran la interaccin de los usuarios y el empleo de sistemas de base de datos. Algunos de estos lenguajes son: JAVASCRIPT ASP JSP PYTHON PHP Por lo tanto, para el proyecto realizado, se utiliz el lenguaje de programacin Active Server Pages (ASP), el cual es un lenguaje de programacin de servidores
13
para generar pginas Web dinmicamente. Se conocen cuatro versiones de este lenguaje las 1.0, 2.0, 3.0 y la ASP.NET mejor conocida como ASP Clsica. ASP, se crea en el ao de 1996, lo que ofreca de nuevo este lenguaje era que se poda crear una pgina Web en la que se pudiese programar para que nos ofreciera datos determinados. Esto era una gran ventaja ya que en esa poca, solo se poda dibujar una tabla e incluir unos pocos datos. Posteriormente se crea el lenguaje ASP.NET que es un lenguaje mucho ms complejo que el original ASP. Este lenguaje permite separar la parte de diseo que contiene una pgina Web, no interviniendo para nada el cdigo HTML. As el trabajo de los diseadores y programadores se torna ms sencillo.
1.6 Metodologas para Desarrollo de Software
Un proceso de software detallado y completo suele denominarse Metodologa. Las metodologas se basan en una combinacin de los modelos de proceso genricos (cascada, evolutivo, incremental, espiral entre otros). Adicionalmente una metodologa debera definir con precisin los artefactos, roles y actividades involucrados, junto con prcticas y tcnicas recomendadas, guas de adaptacin de la metodologa al proyecto, guas para uso de herramientas de apoyo, etc. Habitualmente se utiliza el trmino mtodo para referirse a tcnicas, notaciones y guas asociadas, que son aplicables a una (o algunas) actividades del proceso de desarrollo, por ejemplo, suele hablarse de mtodos de anlisis y/o diseo. La comparacin y/o clasificacin de metodologas no es una tarea sencilla debido a la diversidad de propuestas y diferencias en el grado de detalle, informacin disponible y alcance de cada una de ellas. A grandes rasgos, si se toman cmo criterio las notaciones utilizadas para especificar artefactos producidos en actividades de anlisis y diseo, se pueden clasificar las metodologas en dos grupos: Metodologas Estructuradas y Metodologas Orientadas a Objetos. Por
14
otra parte, considerando su filosofa de desarrollo, aquellas metodologas con mayor nfasis en la planificacin y control del proyecto, en especificacin precisa de requisitos y modelado, reciben el apelativo de Metodologas Tradicionales (o tambin denominadas Metodologas Pesadas, o Peso Pesado). Otras metodologas, denominadas Metodologas giles, estn ms orientadas a la generacin de cdigo con ciclos muy cortos de desarrollo, se dirigen a equipos de desarrollo pequeos, hacen especial hincapi en aspectos humanos asociados al trabajo en equipo e involucran activamente al cliente en el proceso.
1.6.1 Metodologas Estructuradas Los mtodos estructurados comenzaron a desarrollarse a finales de los 70s con la Programacin Estructurada, luego a mediados de los 70s aparecieron tcnicas para el Diseo (por ejemplo: el diagrama de Estructura) primero y posteriormente para el Anlisis (por ejemplo: Diagramas de Flujo de Datos). Estas metodologas son particularmente apropiadas en proyectos que utilizan para la implementacin lenguajes de 3ra y 4ta generacin. Ejemplos de metodologas estructuradas de mbito gubernamental: MERISE (Francia), MTRICA (Espaa), SSADM (Reino Unido). Ejemplos de propuestas de mtodos estructurados en el mbito acadmico: Gane & Sarson, Ward & Mellor, Yourdon & DeMarco e Information Engineering.
1.6.2 Metodologas Orientadas a Objetos Su historia va unida a la evolucin de los lenguajes de programacin orientada a objeto, los ms representativos: a fines de los 60s SIMULA, a fines de los 70s Smalltalk-80, la primera versin de C++ por Bjarne Stroustrup en 1981 y actualmente Java o C# de Microsoft. A fines de los 80s comenzaron a
15
consolidarse algunos mtodos Orientadas a Objeto. En 1995 Booch y Rumbaugh proponen el Mtodo Unificado con la ambiciosa idea de conseguir una unificacin de sus mtodos y notaciones, que posteriormente se reorienta a un objetivo ms modesto, para dar lugar al Unified Modeling Language (UML), la notacin Orientada a Objetos ms popular en la actualidad. Algunas metodologas orientadas a objetos que utilizan la notacin UML son: Rational Unified Process (RUP), OPEN, MTRICA (que tambin soporta la notacin estructurada).
1.6.3 Metodologas Tradicionales Las metodologas no giles son aquellas que estn guiadas por una fuerte planificacin durante todo el proceso de desarrollo; llamadas tambin metodologas tradicionales o clsicas, donde se realiza una intensa etapa de anlisis y diseo antes de la construccin del sistema. Todas las propuestas metodolgicas antes indicadas pueden considerarse como metodologas tradicionales. Aunque en el caso particular de RUP, por el especial nfasis que presenta en cuanto a su adaptacin a las condiciones del proyecto (mediante su configuracin previa a aplicarse), realizando una configuracin adecuada, podra considerarse gil.
1.6.4 Metodologas giles Un proceso es gil cuando el desarrollo de software es incremental (entregas pequeas de software, con ciclos rpidos), cooperativo (cliente y desarrolladores trabajan juntos constantemente con una cercana comunicacin), sencillo (el mtodo en s mismo es fcil de aprender y modificar, bien documentado), y
16
adaptable (permite realizar cambios de ltimo momento). Entre las metodologas giles identificadas son: Extreme Programming Scrum Familia de Metodologas Crystal Feature Driven Development Proceso Unificado Rational, una configuracin gil Dynamic Systems Development Method Adaptive Software Development Open Source Software Development
17
2 Desarrollo
18
3 Bibliografa [1] Carles Mateu i piol, Desarrollo de aplicaciones web, 2008. [2] Carnegie Mellon, Software Engeenering Institute. Cliente/Server Software Architectures, Overview, 2005. [3] Ian Gilfillan, MySQL, 2002. [4] Traduccion Manuel Martinez, Manual PHP, Grupo de documentacion PHP, 2002.