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