68

SERVIDORES WEB Y ARQ ORIENTADA A SERVICIOS

  • Upload
    jimmym

  • View
    7

  • Download
    3

Embed Size (px)

DESCRIPTION

SERVIDORES DE APLICACIÓN WEB Y ARQUITECTURA ORIENTADA A SERVICIOS

Citation preview

  • Arquitectura y Administracin de Servidores

    Unidad I: Conceptos de Servidores y Comandosbsicos de Linux (10 hrs.)

    Unidad II: Arquitectura de Hardware enPlataformas de Servidores (25 hrs.)

    Unidad III: Fundamentos de Arquitectura dePlataformas (25 hrs.)

    Unidad IV: Servidores de Aplicacin Web yArquitectura orientada a servicios (12 hrs.)

  • TEMARIO Introduccin Protocolo http Servicio httpd Arquitectura servidor web Capa servidor, Subsistemas Capa soporte Tipos de servidores web

    Basado en procesos Basado en hilos Basado en sockets Implementados en kernel

    Apache, IIS, Tomcat Estructura de directorios Archivo de configuracin, directivas globales y de funcionamiento

  • EVOLUCIN

    Pasado: Web de documentos Pginas estticas

    Web como un enorme repositorio de informacin

    Tecnologas: HTTP + HTML

    Presente: Web de aplicaciones Pginas dinmicamente generadas por aplicaciones web

    Aplicaciones exportan su interfaz a los usuarios a travsde la Web

    Entorno de transacciones comerciales (Business toconsumer, B2C)

    Tecnologas: CGI, ASP, PHP, JSP, servlets, ...

  • INTRODUCCION

    Conceptos bsicos del servidor web

    Un servidor Web es un programa que sirve para atender y responder alas diferentes peticiones de los navegadores, proporcionando losrecursos que soliciten usando el protocolo HTTP o el protocolo HTTPS(la versin cifrada y autenticada). Un servidor Web bsico cuenta conun esquema de funcionamiento muy simple, basado en ejecutarinfinitamente el siguiente bucle:

    1. Espera peticiones en el puerto TCP indicado (el estndar pordefecto para HTTP es el 80).

    2. Recibe una peticin.

    3. Busca el recurso.

    4. Enva el recurso utilizando la misma conexin por la que recibipeticin.

    5. Vuelve al segundo punto.

    A partir del anterior esquema se han diseado y desarrollado todos losservidores de HTTP que existen, variando slo el tipo de peticiones(pginas estticas, CGIs, Servlets, etc.) que pueden atender, enfuncin de que sean o no sean multi-proceso o multi-hilados, etc.

  • Protocolo HTTP

    Protocolo HTTP (Protocolo de transferencia dehipertexto) es el protocolo ms utilizado en Internet.La versin 0.9 slo tena la finalidad de transferir losdatos a travs de Internet (en particular pginas Webescritas en HTML). La versin 1.0 del protocolopermite la transferencia de mensajes conencabezados que describen el contenido de losmensajes mediante la codificacin MIME.

  • Protocolo HTTP

    El propsito del protocolo HTTP es permitir latransferencia de archivos (principalmente, enformato HTML). entre un navegador (el cliente) y unservidor web (denominado, entre otros, httpd enequipos UNIX) localizado mediante una cadena decaracteres denominada direccin URL.

  • Protocolo HTTPLa comunicacin entre el navegador y el servidor se lleva acabo en dos etapas:

    El navegador realiza una solicitud HTTP

    El servidor procesa la solicitud y despus enva unarespuesta HTTP

  • SERVICIO DE FICHEROS ESTTICOS

    Todos los servidores web deben incluir, al menos, la capacidad paraservir los ficheros estticos que se hallen en alguna parte del disco.Un requisito bsico es la capacidad de especificar qu parte del discose servir. No resulta recomendable que el programa servidorobligue a usar un directorio concreto, aunque s puede tener uno pordefecto.

    La mayora de servidores web permiten aadir otros directorios osubdirectorios para servir, especificando en qu punto del "sistemade ficheros" virtual del servidor se localizarn los recursos.

    Algunos servidores web permiten tambin especificar directivas deseguridad (quin puede acceder a los recursos), mientras que otroshacen posible la especificacin de los ficheros que se debenconsiderar como ndice del directorio.

  • Contenido dinmico

    Uno de los aspectos fundamentales del servidor web al momento deelegir, es el nivel de soporte que ofrece para servir contenido dinmico.Puesto que la mayor parte del contenido web que se sirve no viene depginas estticas, sino que se genera de forma dinmica, y esta tendenciase mueve claramente al alza, el soporte para contenido de tipo dinmicoque ofrece un servidor web es uno de los puntos crticos en la eleccin.

    La mayor parte de los servidores web ofrecen soporte para CGI (se deberecordar que los CGI son el mtodo ms antiguo y sencillo para generarcontenido dinmico). Otros muchos ofrecen soporte para algunoslenguajes de programacin (normalmente lenguajes interpretados) comoPHP, JSP, ASP, etc.

  • Contenido dinmico

    Es muy recomendable que el servidor web que vayamos a utilizarproporcione soporte para algunos de estos lenguajes, especialmentePHP, sin tener en cuenta JSP, que normalmente requerir un softwareexterno para funcionar (como un contenedor de Servlets).

    La oferta es muy amplia, pero antes de elegir un lenguaje deprogramacin de servidor se debe plantear si se desea un lenguaje muyestndar para que la aplicacin no dependa de un servidor web o unaarquitectura concreta o si, al contrario, la portabilidad no es prioritariay s lo es alguna otra prestacin concreta que pueda ofrecer algnlenguaje de programacin concreto.

  • Servidores virtuales

    Una prestacin que gana aceptacin y usuarios rpidamente, muyespecialmente entre los proveedores de servicios de Internet y las empresas dealojamiento de dominios, es la capacidad de algunos servidores Web de facilitarmltiples dominios con una nica direccin IP, discriminando entre losdiferentes dominios alojados en funcin del nombre de dominio enviado en lacabecera HTTP. Esta prestacin permite la administracin racional yahorradora de un bien escaso, las direcciones IP.

    Si se necesitan muchos nombres de servidor (porque proporcionamosalojamiento o por cualquier otro motivo) debemos asegurarnos de que elservidor web elegido ofrezca esta facilidad y que el soporte que ofrece paraservidores virtuales permita una configuracin distinta para cada servidor.Sera perfecto que cada servidor se comportara como si fuese un ordenadordiferente.

  • SEGURIDAD Y AUTENTICACIN

    La mayora de los servidores web actuales permitencontrolar desde el programa servidor los aspectosrelacionados con la seguridad y la autenticacin delos usuarios.

    Podemos, por ejemplo, tener la siguiente situacin:

    /informe-2006/home/estudiante/informe

    /docs/home/empresa/docs

    //usr/local/apache/html

    Directorio webDirectorio del disco

  • SEGURIDAD Y AUTENTICACIN

    En este caso, el servidor debera traducir las direcciones web de esta manera:

    El modo ms sencillo de control es el facilitado por el uso de ficheros .htaccess. Setrata de un sistema de seguridad que deriva de uno de los primeros servidores web("NCSA httpd"), que consiste en incluir un fichero de nombre .htaccess encualquier directorio del contenido web que se deba a servir, indicando en estefichero qu usuarios o mquinas, etc. tienen acceso a los ficheros y a los diferentessubdirectorios del directorio donde est instalado el .htaccess. Como el "NCSAhttpd" fue el servidor ms utilizado durante mucho tiempo, la mayora deservidores actuales permiten utilizar un fichero .htaccess respetando la sintaxisoriginal del servidor de NCSA.

    /home/estudiante/informe/index.html/informe-2006/index.html

    /usr/local/apache/html/empresa/quienes.htm

    l/empresa/quienes.html

    /home/empresa/docs/manuales/producto.pdf/docs/manuales/producto.pdf

    /usr/local/apache/html/index.html/index.html

    Fichero de discoURL

  • ARQUITECTURA DE TRES CAPAS PARA LA WEB.

    Los datos y servicios aparecen separados.

    Fcil de separar los datos de la lgica de negocio

    El cliente recibe los datos y la informacin de forma indirecta atravs servidor.

    Aplicaciones orientadas a la Web.- en la capa depresentacin esta el navegador que permite visualizar la pg.Web l mismo que se comunica con el servidor Web y a su vezcon el servidor de aplicaciones conformando la lgica denegocios y posteriormente se accede a la Base de datos.

    Aplicaciones no orientadas a la Web.- la interfaz grfica espresentada en formularios, luego la capa de negocio esimplementada en el servidor de aplicaciones y en la capa dedatos est la base de datos.

  • ARQUITECTURA DE APLICACIONES WEB.

    Los Servidores de Aplicaciones actan como enlace entre losservidores Web y los Servidores de Bases de datos.

    Se fomenta la escalabilidad del sistema, la seguridad y lareutilizacin de cdigo.

  • Ejemplo para la WebCapa 1

    Capa 2En la capa de negocios del sitio www.blogger.com.

    Capa 3Esta capa contiene la Base de datos de los diferentes blogs que secrean en el sitio la misma que se comunica con la capa denegocio.

  • TIPOS DE SERVIDORES WEB

    Basado en procesos

    Basado en hilos

    Basado en sockets

    Implementados en kernel

  • BASADO EN PROCESOS

    Este diseo es el predecesor de todos los dems. Se basa en la obtencin deparalelismo mediante la duplicacin del proceso de ejecucin. Existenvarios diseos basados en procesos. El ms simple es en el que el procesoprincipal espera la llegada de una nueva conexin y en ese momento, seduplica creando una copia exacta que atender esta conexin. Sobre estaopcin de diseo caben optimizaciones importantes, como las que incluyApache con la tcnica de Pre-fork.

    Tcnica pre-fork. Consiste en la creacin previa de un grupo de procesos ysu mantenimiento hasta que sea necesaria su utilizacin. Las principalesventajas de este diseo residen en su simplicidad de implementacin y suseguridad. La gran desventaja de este diseo es el bajo rendimiento. Lacreacin o eliminacin de un proceso son tareas pesadas para el sistemaoperativo y consumen una gran cantidad de tiempo.

  • BASADO EN HILOS

    Este tipo de diseo hoy en da es mucho ms comn que el basadoen procesos. Los conceptos bsicos respecto al funcionamiento de unservidor basado en procesos son aplicables tambin a este modelo.Las principales diferencias de los dos modelos residen en el propioconcepto de hilo. La ventaja es que la creacin de un hilo no es tancostosa como la de un proceso. Varios hilos de un mismo procesopueden compartir datos entre ellos, ya que comparten el mismoespacio de memoria.

    El modelo de servidor basado en hilos hereda muchas de lascaractersticas de los Servidores basados en procesos, entre ellas lade la simplicidad en su diseo e implementacin. Por otro lado, elcompartir el espacio de memoria implica un riesgo de seguridad queno tienen los servidores basado en procesos.

  • BASADO EN HILOSHilos y procesos.

    Proceso: Es una ocurrencia o instancia de un programa enejecucin. Adems, un proceso es propietario de una serie derecursos como: un espacio de direcciones en memoria, ficheros,hilos, etc.

    Hilo: Es un proceso totalmente aislado es un proceso inerte, esdecir, para que un proceso sea capaz de hacer algo, el procesodebe ser propietario de al menos un hilo (thread). El hilo es elresponsable de ejecutar el Cdigo contenido en el espacio dedirecciones del proceso. De hecho, un proceso puede contenervarios hilos y todos ellos ejecutando cdigo "simultneamente" enel espacio de direcciones del proceso y compartiendo recursoscomunes.

  • BASADO EN HILOS

    Hilos y procesos.

    Al compartir todos los hilos de un proceso la misma zona dememoria, si un hilo toca una variable, todos los dems hilosdel mismo proceso vern el nuevo valor de la variable. Si nohay hilos ejecutando cdigo en el espacio de direcciones delproceso no hay ninguna razn para que el proceso contineexistiendo y el sistema destruir automticamente elproceso y su espacio en memoria.

  • BASADO EN SOCKETS Estos servidores basan su funcionamiento en la utilizacin de

    lecturas y escrituras asncronas sobre Sockets. Normalmente,estos servidores utilizan una llamada al sistema que examineel estado de los sockets con los que trabaja. Cada sistemaoperativo implementa una o ms funciones de examen desockets. El objetivo de estas funciones es inspeccionar elestado de un grupo de sockets asociados a cada una de lasconexiones.

    La ventaja de este diseo es principalmente su velocidad.

    La desventaja es que la concurrencia es simulada; es decir, existeun slo proceso y un slo hilo, desde el cual se atienden todas lasconexiones.

  • BASADO EN SOCKETSSocket: No son ms que puntos o medios de comunicacin

    entre dos aplicaciones que permiten que un proceso hable(emita o reciba informacin) con otro proceso estando losdos en distintas mquinas.

    Si extrapolamos el concepto a la comunicacin entre personas, un

    socket es al sistema de comunicacin entre ordenadores lo que un

    telfono es al sistema de comunicacin entre personas: un punto

    de comunicacin entre dos agentes (procesos o personas

    respectivamente) por el cual se puede emitir o recibir informacin.

  • IMPLEMENTADOS EN KERNEL

    Este diseo es un poco especial. Se trata de unintento de acelerar la velocidad de un servidor Webmediante el movimiento de su cdigo de espaciode usuario a espacio de kernel. En teora estemodelo se muestra muy eficiente, pero de cara almundo real, los problemas e inconvenientes sonmuy grandes. Hay que tener en cuenta quecualquier problema que se produzca a nivel dekernel puede ocasionar la cada de todo el sistemacompleto.

  • APACHE Es un servidor HTTP de cdigo abierto y multiplataforma que surgi en 1995

    basndose en el cdigo de NCSA HTTPd Server.

    Apache tiene amplia aceptacin en la red: desde 1996, y es el servidor HTTP msusado. Alcanz su mxima cuota de mercado en 2005 siendo el servidorempleado en el 70% de los sitios web en el mundo.

    Entre sus ventajas est:

    Su popularidad: resulta fcil encontrar ayuda/manuales

    Su extensibilidad y construccin modular: Se pueden poner mdulospara ampliar su funcionalidad (Por ejemplo mod_php para ejecutarpginas en PHP), adems actualmente existen de todo tipo de mdulos.

    La nocin de sitio virtual: Posibilidad de colocar mltiples sitios web enuna misma maquina.

    Robusto y estable.

    Es altamente configurable en la creacin y gestin de logs.

    Sin embargo es criticado por la falta de una interfaz grfica que ayude en suconfiguracin.

  • APACHE TOMCAT

    Es un servidor web con soporte para Java servlets y JavaServer Pages.

    Sus componentes son:

    Jasper: compila JSPs convirtindolas en servlets.

    Catalina: El container de servlets

    Coyote: Componente web, para servir las pginas por HTTP

  • IIS (Internet Information Services)

    Es una serie de servicios para los ordenadores quefuncionan con Windows. Este servicio convierte a unordenador en un servidor de Internet con laposibilidad de ser servidor FTP (archivos), SMTP(email), NNTP (news, usenet) y/o HTTP/HTTPS(web)

    El soporte para los distintos lenguajes se introduce atravs de mdulos.

  • Qu es Apache?: Es un Servidor Web HTTP de

    cdigo libre utilizado para

    diferentes plataformas tales como:

    Microsoft Windows, Macintosh,

    Unix, entre otras.

    Uso del Apache:Es usado principalmente para enviar pginas

    web estticas y dinmicas en la World Wide

    Web. Tambin es usado para muchas otras

    tareas donde el contenido necesita ser puesto

    a disposicin en una forma segura y confiable.

    Caractersticas:Flexible, rpido y eficiente,

    continuamente actualizado y

    adaptado a los nuevos protocolos

    (HTTP 1.1).

    Qu es IIS?: Internet Information Services es un

    Servidor Web y un conjunto de

    servicios creado para Microsoft

    Windows.

    Uso del IIS:Convierte a una computadora en un

    servidor web para internet o

    una intranet, es decir que en las

    computadoras que tienen este servicio

    instalado se pueden publicar paginas

    web tanto local como remotamente.

    Caractersticas:Se Basa en varios mdulos que

    le dan la capacidad para

    procesar diferentes tipos de

    paginas. Su ultima versin mas

    actualizada es la 7.5

    Conceptos, Caractersticas y Usos

  • Ventajas: Cdigo abierto: permite producir

    binarios para plataformas en las

    que no hay un binario oficial o

    compilarlo para un mejor

    rendimiento.

    Variedad de Plataformas:Multiplataforma , es decir esta

    disponible de uso a la mayora de

    plataformas mientras que IIS se

    limita a Microsoft Windows.

    Servidor Popular: Es de fcilacceso y se consigue de forma

    rpida (ayuda y/o soporte).

    Extensible: Puede ser ampliadoincluso despus de la instalacin.

    Desventajas: Administracin: Como la mayora de los programas

    cdigo abierto, uno depende de configurar los

    archivos a mano o tener que instalarse herramientas

    adicionales para las tareas de administracin.

    Falta de integracin: Al ser un productomultiplataforma, el servidor no aprovecha al mximo

    las posibilidades que ofrece el sistema operativo.Ventajas y Desventajas

    Ventajas: Elaborado por Microsoft

    Es confiable, administrable y seguro en Internet. Proporciona capacidades de Servidor Web

    Integrado.

    Al momento de la instalacin permite elegir sobre que servidor se desea trabajar

    (Apache o IIS).

    Posee mayor integracin que otros servidores.

    Al adquirir la licencia puedes recibir soporte tcnico.

    Desventajas:

    No es multiplataforma ya quefunciona solo bajo el comando

    de Microsoft.

    No es gratuito, se requiere delicencia para su uso.

    Posee limitaciones en algunasversiones.

    Ocupa muchos mas megas en eldisco duro que otros servidores.

  • TECNOLOGAS DE LA LGICA DE LA APLICACIN EN EL SERVIDOR WEB

    CGI: Common Gateware Interface..- Son programas que se ejecutan enel servidor, pueden servir como pasarela con una aplicacin o base dedatos o para generar documentos html de forma automtica. Cadapeticin http ejecuta un proceso, el cual analiza la solicitud y genera unresultado. Son independientes del SO, y presentan la ventaja de que,dado un programa escrito en un lenguaje cualquiera, es fcil adaptarlo aun CGI. Entre los lenguajes que se usan para CGIs, el ms popular es elPerl.

    Servlets: Pequeos programas en Java que se ejecutan de formapersistente en el servidor, y que, por lo tanto, tienen una activacin muyrpida, y una forma ms simple de hacerlo. Estos programas procesanuna peticin y generan la pgina de respuesta.

  • TECNOLOGAS DE LA LGICA DE LA APLICACIN EN EL SERVIDOR WEB

    ASP (Active Server Pages): Una pgina ASP es un fichero de slo textoque contiene las secuencias de comandos, junto con el HTML necesario,y que se guarda con la extensin .asp.

    Al ser llamado por el navegador, el motor ASP del IIS (InternetInformation Server) se encarga automticamente de ejecutarlo como sesuele hacer con un programa cualquiera, pero cuya salida siempre ser atravs del navegador que le invoca. Es un entorno propietario deMicrosoft y el lenguaje de secuencia de comandos predeterminado delIIS es el VBScript, aunque puede cambiarse.

  • TECNOLOGAS DE LA LGICA DE LA APLICACIN EN EL SERVIDOR WEB

    JSP (Java Server Pages), que consisten en pequeos trozos de cdigo enJava que se insertan dentro de pginas web, de forma anloga a los ASPs.Ambas opciones, hoy en da, son muy populares en sitios de comercioelectrnico. Frente a los ASPs, la ventaja que presentan es que sonindependientes del sistema operativo y del procesador de la mquina.

    PHP es un lenguaje cuyos programas se insertan tambin dentro de laspginas web, al igual que los ASPs y JSPs; es mucho ms simple de usar, yel acceso a bases de datos desde l es muy simple. Es tremendamentepopular en sitios de comercio electrnico con poco trfico, por sufacilidad de desarrollo y rapidez de implantacin.

  • En Windows Server 2008, el proceso de instalacin consistenicamente en dos pasos:

    Paso1: Recopilacin de Informacin

    Seleccin del Sistema Operativo a instalar

    Tipo de Instalacin

    Seleccin de la particin de instalacin

    Paso2: Instalacin de Windows

    Tareas:

    Copia de los archivos a la unidad de instalacin

    Expansin de los archivos

    Instalacin de caractersticas

    Instalacin de actualizaciones

    Completar instalacin

    Proceso de Instalacin S.O

  • Nos muestra los

    requisitos

    mnimos que

    debe cumplir el

    equipo

    Pasos Previos a la Instalacin

  • Tareas de Configuracin Inicial

  • Instalacin

  • Administracin del Servidor

  • Administrador del Servidor

    Componentes

    Funciones DiagnsticoCaractersticas Configuracin

  • Servidor basado en Roles Windows Server 2008 proporciona mecanismos para

    realizar una configuracin rpida del servidor.

    La Herramienta Administrador del Servidor permiteconfigurar el servidor mediante funciones.

    El sistema operativo engloba las caractersticas y serviciosnecesarios para desempear una funcin basada en un rol.

    La instalacin de un rol es muy sencilla y rpidapermitiendo as que el servidor desempee lasfuncionalidades lo antes posible y de forma segura.

  • Administrador del Servidor

  • Roles de Servidor

    Los roles que puede asumir un servidor son lossiguientes (todos ellos asegurados por defecto): Active Directory Rights Management Services Hyper-V

    Servicios de Acceso y Directivas de Redes

    Servicios de Archivo

    Servicios de Certificate Server de Active Directory Servicios de Directorio Ligero de Active Directory

    Servicios de Dominio de Active Directory

    Servicios de Federacin de Active Directory

    Servicios de Implementacin de Windows (WDS)

  • Roles de Servidor

    Servicios de Impresin

    Servicios UDDI

    Servidor de Aplicaciones

    Servidor de Fax

    Servidor DHCP

    Servidor DNS

    Servidor Web (IIS 7.0)

    Terminal Services

  • Administrador

    del Servidor

  • Instalacion y configuracion del Directorio Activo

  • Caractersticas de los grupos de trabajo

    Usuarios y computadoras independientes.Cada usuario debe ser registrado en cada mquina dentro del grupo de trabajo.

    Los permisos y privilegios son independientes tambin.Los recursos de la red deben ser administrados de forma independiente.

  • Caractersticas de los dominios

    Provee una base de datos distribuida que almacena y administra informacin sobre recursos de la red y datos de

    aplicaciones.

    Nos permite organizar elementos de la red en forma jerrquica; por ejemplo:

    oUsuarios.

    oComputadoras.

    oOtros dispositivos.

  • Preparacion del AD

  • Preparacion del AD

  • Mejoras y buenas practicas

  • Internet Information Services

  • Introduccin a IIS 7.0

    IIS 7.0 supone un cambio radical en la filosofa deservidor de aplicaciones

    Es uno de los desarrollos ms completo ydestacados de Windows Server 2008

    Incluye nuevas caractersticas tanto paraprogramadores como administradores

  • Introduccin a IIS 7.0

    Basado en:

    La potencia y seguridad de IIS 6.0 Seguridad

    Confiabilidad

    Rendimiento

    ASP .NET 2.0 Productividad del desarrollador

    Extensibilidad total de la plataforma

    Poder del desarrollo en .NET

  • Introduccin a IIS 7.0

  • Introduccin a IIS 7.0

  • Consola Administracin IIS 7

  • FIN