Download internet3

Document related concepts
no text concepts found
Transcript
Tecnologías de desarrollo
software para la WWW
Tecnologías de servidor
Tecnologías de servidor
• CGIs, FastCGI
• Scripts de servidor (PHP, ASP, JSP,
Coldfusion)
• Servlets
• Conectores de Bases de Datos
CGIs (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
CGIs (II)
http
navegador
Petición HTML
(Form, enlace)
Respuesta
MIME
Internet
http
Servidor
web
Cabecera +
Respuesta
MIME
Variables entorno
[+ Datos del form]
CGI
BD
CGIs (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
CGIs (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
Scripts 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
Scripts de servidor. PHP
– Código abierto
– Puede ejecutarse en plataforma Windows y Linux
– Ligada al servidor Apache
<? php
....
?>
Ejemplos: consulta directorio rondallas
Scripts 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
<% ... %>
Scripts 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.
Scripts de servidor. JSP
• Desarrollado por Sun
• Utiliza Java
• El código JSP se puede poner dentro
de las páginas HTML,
<% ... %>
• o se puede precompilar en Servlets
Scripts 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
Un mismo ejemplo con ColdFusion, ASP y JSP
ColdFusion
<cfquery
datasource="yourDB">
select VendorID, Vendor from
tblVendor order by Vendor
</cfquery>
<cfoutput query="Company">
#Vendor#, #VendorID#<br>
</cfoutput>
ASP
<%
Option Explicit
Response.Expires = 0
Dim objConn, objRS, strQ
Dim strConnection 14:
Set objConn =
Server.CreateObject("ADODB.Connection")
strConnection = "Data Source=somedatasource;"
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
%>
<% While Not objRS.EOF
Response.Write objRS("Vendor") & ", “
Response.Write objRS("VendorID") & "<br>“
objRS.MoveNext
Wend
objRS.close
objConn.close
Set objRS = Nothing
Set objConn = Nothing
%>
JSP
<%@ page import="java.sql.*" %>
<%
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 ("jdbc:odbc:jsp",
"", "");
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")+"<br>");
}
myResultSet.close();
myStatement.close();
myConnection.close();
}
catch (SQLException e) {
e.printStackTrace();
}
%>
Servlets (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)
Servlets (II)
http
navegador
Internet
http
Servidor
web
JVM
Petición HTML
(Form, enlace)
Respuesta
Html
Servlet API
Servlet
Java
Conectores 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