Computación en el Servidor
Jose Emilio Labra Gayo
Depto. Informática
Universidad de Oviedo
Computación en Servidor
Contenido es generado dinámicamente
1. Llega la petición al servidor
2. El servidor analiza parámetros de petición
Verbo (GET, PUT, POST, ...), Ruta (URI), Cabeceras, Entorno
3. Servidor "computa" y envía una respuesta
Usuario Navegador
Cliente
Servidor
URI
Representación
WWW
HTTP
Petición
Respuesta
Método
URI
Headers
Environment
Múltiples alternativas
CGIs
Lenguajes específicos para Web: PHP
Lenguajes dinámicos: Perl, Python, Ruby,...
Javascript en servidor: Nodejs
Lenguajes generales compilados
JVM: Java (JSP, Servlets,...), Scala, Groovy
CLR: C# (ASP.Net), F#, ...
Otros: Frameworks, CMS, etc.
CGI
CGI (Common Gateway Interface), 1.1 (2004)
Método estándar para transmitir parámetros entre
servidor y programas ejecutables
Nombres de variables
SERVER_NAME, SERVER_SOFTWARE, GATEWAT_INTERFACE
SERVER_PROTOCOL, REQUEST_METHOD, QUERY_STRING,
...
Los programas CGIs son ejecutados por el servidor
Devuelve la respuesta de la ejecución
Otras variantes:
FastCGI (optimiza creación de procesos)
PHP
Lenguaje interpretado por el servidor
El código se incrusta en HTML mediante marcas
especiales
Cuando el servidor reconoce código PHP:
Llama al intérprete
Ejecuta el código
Devuelve el resultado
Según w3techs, el 81.1% de los sitios Web utiliza
PHP
Lenguajes dinámicos
Python, Ruby
Lenguajes interpretados de propósito general
Buenos frameworks y librerías para Web
Ruby: Ruby on Rails
Python: Django
...
Javascript lado servidor
Librería Node.js
Incluye V8, el motor Javascript de Google
Permite utilizar Javascript en el servidor
Entrada/Salida basada en eventos
Creciendo en popularidad
Lenguajes generales compilados
2 ecosistemas
Java (JVM) .Net (CLR)
JVM
Máquina virtual de Java
Empotrado: JSP
Servlets y Contenedores de aplicaciones
TOMCAT
Otros lenguajes sobre JVM
Scala, Groovy, ...
Programación políglota!
ASP.Net
Basado en CLR
Máquina virtual de C#
ASP Permite empotrar lenguaje en HTML
Extensión aspx <% .... código %>
Diversos frameworks: ASP.Net MVX
Otras lenguajes:
VB.Net, F#,...
Web Frameworks
Micro-frameworks
Basados en protocol HTTP
Enrutan verbos HTTP (GET, PUT, POST, DELETE) con
acciones
MVC based
Abstracción del modelo de la Web
Separación: Modelo, Vista, Controlador
Pueden utilizar ORMs
Micro-frameworks
PHP: Slim, Silex
Ruby: Sinatra
Python: Flask
Java: Spark,
Scala: Scalatra
Frameworks Web
Numerosos frameworks
PHP: CakePHP, Zend, Symfony
Ruby: Ruby on Rails
Python: Django, Zope
Java: Spring MVC, Play
Scala: Play, Lift
Groovy: Grails
Haskell: Yesod
Más información:
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

17 computacion servidor

  • 1.
    Computación en elServidor Jose Emilio Labra Gayo Depto. Informática Universidad de Oviedo
  • 2.
    Computación en Servidor Contenidoes generado dinámicamente 1. Llega la petición al servidor 2. El servidor analiza parámetros de petición Verbo (GET, PUT, POST, ...), Ruta (URI), Cabeceras, Entorno 3. Servidor "computa" y envía una respuesta Usuario Navegador Cliente Servidor URI Representación WWW HTTP Petición Respuesta Método URI Headers Environment
  • 3.
    Múltiples alternativas CGIs Lenguajes específicospara Web: PHP Lenguajes dinámicos: Perl, Python, Ruby,... Javascript en servidor: Nodejs Lenguajes generales compilados JVM: Java (JSP, Servlets,...), Scala, Groovy CLR: C# (ASP.Net), F#, ... Otros: Frameworks, CMS, etc.
  • 4.
    CGI CGI (Common GatewayInterface), 1.1 (2004) Método estándar para transmitir parámetros entre servidor y programas ejecutables Nombres de variables SERVER_NAME, SERVER_SOFTWARE, GATEWAT_INTERFACE SERVER_PROTOCOL, REQUEST_METHOD, QUERY_STRING, ... Los programas CGIs son ejecutados por el servidor Devuelve la respuesta de la ejecución Otras variantes: FastCGI (optimiza creación de procesos)
  • 5.
    PHP Lenguaje interpretado porel servidor El código se incrusta en HTML mediante marcas especiales Cuando el servidor reconoce código PHP: Llama al intérprete Ejecuta el código Devuelve el resultado Según w3techs, el 81.1% de los sitios Web utiliza PHP
  • 6.
    Lenguajes dinámicos Python, Ruby Lenguajesinterpretados de propósito general Buenos frameworks y librerías para Web Ruby: Ruby on Rails Python: Django ...
  • 7.
    Javascript lado servidor LibreríaNode.js Incluye V8, el motor Javascript de Google Permite utilizar Javascript en el servidor Entrada/Salida basada en eventos Creciendo en popularidad
  • 8.
    Lenguajes generales compilados 2ecosistemas Java (JVM) .Net (CLR)
  • 9.
    JVM Máquina virtual deJava Empotrado: JSP Servlets y Contenedores de aplicaciones TOMCAT Otros lenguajes sobre JVM Scala, Groovy, ... Programación políglota!
  • 10.
    ASP.Net Basado en CLR Máquinavirtual de C# ASP Permite empotrar lenguaje en HTML Extensión aspx <% .... código %> Diversos frameworks: ASP.Net MVX Otras lenguajes: VB.Net, F#,...
  • 11.
    Web Frameworks Micro-frameworks Basados enprotocol HTTP Enrutan verbos HTTP (GET, PUT, POST, DELETE) con acciones MVC based Abstracción del modelo de la Web Separación: Modelo, Vista, Controlador Pueden utilizar ORMs
  • 12.
    Micro-frameworks PHP: Slim, Silex Ruby:Sinatra Python: Flask Java: Spark, Scala: Scalatra
  • 13.
    Frameworks Web Numerosos frameworks PHP:CakePHP, Zend, Symfony Ruby: Ruby on Rails Python: Django, Zope Java: Spring MVC, Play Scala: Play, Lift Groovy: Grails Haskell: Yesod Más información: http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks