1
Indice
Common Gateway Interface (CGI)
* ¿Qué es?
* Ventajas
* Desventajas
* Documento Html vs Programa CGI
* Aplicaciones
La aplicacion (consultas sobre una base de datos)
Bibliografia
2
CGI: Common Gateway Interface
El protocolo CGI define la forma en que se realizan los intercambios de información entre los clientes y servidores HTTP, y entre estos y las aplicaciones CGI.
Como un programa CGI es un ejecutable, es equivalente a dejar al mundo ejecutar un programa en tu sistema .
3
Ventajas del CGI
su sencillez, ya que es muy fácil de entender, además de ser un lenguaje de programación independiente, ya que los escritos CGI pueden elaborarse en varios lenguajes.
es un estándar para usarse en todos los servidores Web, y funcionar bajo una arquitectura independiente, ya que ha sido creado para trabajar con cualquier arquitectura de servidor Web.
4
Desventajas
su eficiencia, debido a que el Servidor Web tiene que cargar el programa CGI y conectar y desconectar con la base de datos cada vez que se recibe una requisición
5
Documento HTML vs Programa CGI
Un documento en HTML que la Web se trae es estático, es decir, se mantiene constante: un fichero de texto que no cambia.
Un programa CGI, por otro lado es ejecutado en tiempo real, así que puede generar información dinámica.
6
Aplicaciones del CGI
Permiten recoger y procesar la información que proviene de los formularios HTML.
Pueden interpretar las pulsaciones de un usuario sobre un mapa activo.
Sirven para generar dinámicamente información, a partir de valores dependientes del entorno
Pueden realizar sofisticadas búsquedas sobre una base de datos.
7
La aplicacion
Programar un Cgi para realizar consultas sobre una base de datos para saber las notas de los alumnos
8
La aplicacion
Ofrecer un formulario para interrogar la base de datos
9
La aplicacion
Representar los resultados de la consulta en una tabla
10
Base de datos
2 ficheros que residen en el servidor:
Uno de los alumnos
Otro de las categorias de los alumnos
11
Base de datos
Fichero de alumnos
12
Base de datos
Fichero de las categorias de alumnos
13
Definiciones de tipos
Categoria de Alumnos
14
Definiciones de tipos
Alumnos
15
Lectura de ficheros
2 funciones:
– leerBDCat :: FilePath -> IO BDCat
para leer las categorias
– leerBDAlumno :: FilePath -> IO BDAlumno
para leer los alumnos
16
leerBDCat :: FilePath -> IO BDCat
17
leerBDAlumno :: FilePath -> IO BDAlumno
18
perteneceA :: String -> String -> Bool
19
tablaAlumno :: BDAlumno -> BDCat -> Orden -> Cgi ()
20
tabla :: Int -> [(String,String,Float)] -> Html ()
21
dibujar :: Int -> [(String,String,Float)] -> Html()
22
informacion::BDAlumno -> BDCat -> [(String,String,Float)]
23
Funciones de comparacion y ordenacion
24
Funciones de busqueda
buscarAlumno :: [String] -> BDAlumno -> Int -> Condicion -> BDAlumno
25
Fuciones de busqueda
buscarAlumno_cat :: [String] -> BDAlumno ->Int -> Condicion -> BDAlumno
26
Funciones de busqueda
buscarAlumno_todos :: [String] -> BDAlumno -> Condicion -> BDAlumno
27
Funciones de busqueda
incluidoEn :: [String] -> String -> Bool
incluido_parcial :: [String] -> String -> Bool
28
Funciones de busqueda
busqueda :: [String] -> Int -> Condicion -> Orden -> Cgi()
29
Fucniones de manejo de categorias
30
practica :: Cgi ()
31
Bibliografia
http://cdec.unican.es/libro/CGI.htm (CGI en detalles)
http://www.pangea.org/pacoc/manuales/manual5.htm (tutorial online de CGI)
http://www.lcc.uma.es/~pepeg/ap/cgis.html (practica propuesta)
module AP.Cgi.Lib.HTML (modulo implementado en nuestra facultad)