Title: Tecnolog
1Tecnologías de desarrollo software para la WWW
2Tecnologías de servidor
- CGIs, FastCGI
- Scripts de servidor (PHP, ASP, JSP, Coldfusion)
- Servlets
- Conectores de Bases de Datos
3CGIs (I)
- El servidor ejecuta externamente un programa
binario, a través del S.O. - El programa binario debe seguir unas reglas
específicas (Common Gateway Interface) para
comunicarse con el servidor web - Recibir la petición
- Devolver la respuesta
- Los resultados del programa son devueltos por el
servidor web mediante http - Ejemplo de sintaxis varsh.cgi
4CGIs (II)
http
Internet
http
Servidor web
navegador
Cabecera Respuesta MIME
Variables entorno Datos del form
Petición HTML (Form, enlace)
Respuesta MIME
CGI
BD
5CGIs (III)
- Por ser una interfaz no existe dependencia con el
lenguaje de programación empleado. - Lenguajes usuales C, Visual Basic, Perl, Tcl
- Un cgi puede devolver cualquier tipo de
información texto ASCII, imagen GIF, código
HTML, etc - La cabecera más importante es la que especifica
el contenido MIME - Content-type tipo/subtipo
- Entre las cabeceras y el contenido hay que dejar
una línea en blanco
6CGIs (IV)
- Inconvenientes CGIs
- Dependen de la máquina
- Cada petición la ejecuta un programa cgi
diferente - difícil de mantener - Cada llamada supone un proceso de S.O.
- Al no ejecutar el proceso el servidor sino el
sistema operativo crea un problema de seguridad - Los FastCGIs dan mayor rendimiento
7Scripts de servidor
- Se incluyen los scripts encapsulados en unas
etiquetas especiales, incrustadas en el código
html, cuyo contenido será ejecutado en el
servidor antes de enviar la página al cliente - Tecnologías más usadas
- PHP
- ASP (Active Server Pages)
- JSP (Java Server Pages)
- Coldfusion
8Scripts de servidor. PHP
- Código abierto
- Puede ejecutarse en plataforma Windows y Linux
- Ligada al servidor Apache
- lt? php .... ?gt
- Ejemplos consulta directorio rondallas
9Scripts de servidor. ASP (I)
- Tecnología de Microsoft
- Ligada al servidor IIS y a la plataforma Windows
- Utiliza VBScript (subconjunto de Visual Basic)
como lenguajes por defecto. También puede
utilizar Javascript - lt ... gt
10Scripts de servidor. ASP (II)
- Pueden hacer uso de objetos COM (Component Object
Model) que son objetos en algún otro lenguaje
(ej. ejecutables en C o Java) - Para conectarse a una base de datos, normalmente
se utiliza ADO que es un adaptador universal a
bases de datos que se especializa posteriormente
para hablar con una base de datos concreta.
11Scripts de servidor. JSP
- Desarrollado por Sun
- Utiliza Java
- El código JSP se puede poner dentro de las
páginas HTML, - lt ... gt
- o se puede precompilar en Servlets
12Scripts de servidor. Coldfusion
- Desarrollado por Allaire Corporation (fusionada a
Macromedia) - Puede ejecutarse en plataforma Windows, Linux,
Solaris - Se basa en el servidor de aplicaciones J2EE de
Macromedia JRun - Utiliza el lenguaje CFML, basado en etiquetas
- Puede ser extendido extendido con nuevos
componentes creados con Java Servlets, clases
Java, o C/C - Incluye un motor de creación de gráficos a partir
de datos de aplicaciones - Está incorporado en Dreamweaver MX
- Viene con un motor para indexar sitios web
13Un mismo ejemplo con ColdFusion, ASP y JSP
ColdFusion ASP JSP
ltcfquery datasource"yourDB"gt select VendorID, Vendor from tblVendor order by Vendor lt/cfquerygt ltcfoutput query"Company"gt Vendor, VendorIDltbrgt lt/cfoutputgt lt Option Explicit Response.Expires 0 Dim objConn, objRS, strQ Dim strConnection 14 Set objConn Server.CreateObject("ADODB.Connection") strConnection "Data Sourcesomedatasource" objConn.Open strConnection Set objRS Server.CreateObject("ADODB.Recordset") Set objRS.ActiveConnection objConn strQ "select VendorID, Vendor " strQ strQ "from Vendor " strQ strQ "order by Vendor" objRS.Open strQ gt lt While Not objRS.EOF Response.Write objRS("Vendor") ", Response.Write objRS("VendorID") "ltbrgt objRS.MoveNext Wend objRS.close objConn.close Set objRS Nothing Set objConn Nothing gt lt_at_ page import"java.sql." gt lt try Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ) catch (java.lang.ClassNotFoundException e) e.printStackTrace() Connection myConnection null Statement myStatement null ResultSet myResultSet null try myConnection DriverManager.getConnection ("jdbcodbcjsp", "", "") myStatement myConnection.createStatement() myResultSet myStatement.executeQuery("select VendorID, Vendor from main order by lastname") while(myResultSet.next()) out.println(myResultSet.getString("Vendor")", ") out.println(myResultSet.getString("VendorID")"ltbrgt") myResultSet.close() myStatement.close() myConnection.close() catch (SQLException e) e.printStackTrace() gt
14Servlets (I)
- Componentes del servidor escritos en Java que se
pueden ejecutar en cualquier plataforma y en
cualquier servidor - Los servlets son a los servidores web como los
applets a los navegadores - Su rendimiento es tan alto como los programas con
FastCGI (reutilizan los procesos) - Para poder escribir Servlets es necesario
- JDK Para poder compilar las clases y ejecutar el
servidor. - Un servidor web con contenedores web integrados o
un servidor de aplicaciones como el Tomcat
(opensource)
15Servlets (II)
Servidor web
http
Internet
http
navegador
JVM
Petición HTML (Form, enlace)
Respuesta Html
Servlet API
Servlet Java
16Conectores de Bases de Datos
- ODBC (Open Database Connectivity)
- API que permite acceder a datos almacenados en
SGBDs, usando el lenguaje SQL de una manera
estandarizada - Permite a una aplicación interoperar con
diferentes SGBDs - La independencia del SGBD en el desarrollo de la
aplicación se logra a través de drivers
específicos para cada SGBD - JDBC
- Es la definición completa de cómo implementar las
comunicaciones de una BD utilizando Java