AD047

Anuncio
Utilización de Active Server Pages en el desarrollo de un sitio Web
Ing. María C. Robledo Gómez
Lic. Amiley Pose Barrera
Ing. Marietta Chávez Puga
CITMATEL
2001
Utilización de Active Server Pages en el desarrollo de un sitio Web.
Resumen
En este trabajo se expone cómo se utiliza la tecnología Active Server Page para el desarrollo de
aplicaciones Web específicamente en el proceso de automatización de la actividad de Recursos
Humanos, Colaboración Internacional y Economía en la Agencia de Información para el Desarrollo
(AID).
Por otra parte se muestran ejemplos de códigos utilizados en las aplicaciones desarrolladas
profundizando en la posibilidad de utilizar lenguajes script que permiten complementar la programación
en la parte cliente y los pasos que se deben seguir para lograr desde aplicaciones ASP el acceso a
datos.
Introducción
En la siguiente ponencia se exponen los aspectos teóricos fundamentales de la tecnología Active Server
Pages y la experiencia práctica obtenida en el desarrollo de un conjunto de aplicaciones para
automatizar el trabajo de diferentes departamentos de la Agencia de Información para el Desarrollo
(AID).
Active Server Pages (ASP) representa un significativo avance en la tecnología Web. Puede usarse ASP
para incluir secuencias de comandos ejecutables directamente en los archivos HTML. El desarrollo de
HTML y de las secuencias de comandos pasa a ser el mismo proceso, permitiendo centrarse en el
aspecto y comportamiento del sitio Web y entretejer los elementos dinámicos en las páginas como
resulte más adecuado.
Active Server Pages puede procesar las secuencias de comandos VBScript y cuenta con un entorno
para otros lenguajes de secuencias de comandos, como JScript, Perl y otros. Esta tecnología hace
posible que el programador de Web escriba procedimientos completos con distintos lenguajes de
secuencias de comandos, sin tener que preocuparse si el explorador los admite todos. De hecho, es
posible utilizar varios lenguajes de secuencias de comandos en un mismo archivo .asp.
Active Server Pages es una tecnología de avanzada que conjuntamente con el HTML dinámico y el XML
constituyen potentes herramientas para el desarrollo de sitios Web.
Se realizó un conjunto de aplicaciones para los diferentes departamentos de la Agencia de Información
para el Desarrollo, con el objetivo de automatizar la entrega y procesamiento de la información
necesaria para las diferentes esferas de trabajo como son: Relaciones Internacionales, Economía y
Recursos Humanos. Las aplicaciones se instalaron en el sitio Web del servidor de la Agencia al cual
tienen acceso todas las entidades que deben entregar la información.
Desarrollo.
ASP responden al nombre Active Server Pages, que significa Páginas de Servidor Activas y gracias a
esta tecnología creada por Microsoft, el usuario de Internet puede recibir páginas generadas
dinámicamente en el servidor.
Microsoft introdujo esta tecnología en diciembre de 1996, por lo que no es nada nueva. Es parte del
Internet Information Server (IIS) desde la versión 3.0 y es una tecnología de páginas activas que permite
el uso de diferentes scripts y componentes en conjunto con el tradicional HTML para mostrar páginas
generadas dinámicamente. Agrupadas en la categoría de lenguajes de script (guión), las páginas ASP
contienen además de las marcas de HTML habituales en las páginas Web, fragmentos de código que el
servidor resolverá antes de enviarlo al explorador.
El principio de la tecnología ASP es el VBScript, pero existe otra diversidad de lenguajes de
programación que pueden ser utilizados como lo es Perl, JScript, etc. El ASP es una tecnología dinámica
funcionando del lado del servidor, lo que significa que cuando el usuario solicita un documento ASP, las
instrucciones de programación dentro del script son ejecutadas para enviar al explorador únicamente el
código HTML resultante. La ventaja principal de las tecnologías dependientes del servidor radica en la
seguridad que tiene el programador sobre su código, ya que éste se encuentra únicamente en los
archivos del servidor que al ser solicitado a través del web, es ejecutado, por lo que los usuarios no
tienen acceso más que a la página resultante en su navegador. Podemos resumir que:
1.
2.
3.
4.
ASP es una tecnología para el desarrollo de aplicaciones Web dinámicas e interactivas.
Las aplicaciones ASP son exclusivamente ejecutadas sobre el lado del servidor
ASP soporta VBScript, Jscript, Perl, y otros lenguajes Scripts
ASP es una parte integral de la plataforma "active" de Microsoft.
La plataforma "active" de Microsoft es un conjunto de lenguajes comunes, estándares y servicios que
pueden ser usados para desarrollar aplicaciones ya sean en el lado del cliente o el servidor.
La facilidad para conectar con una Base de datos y extraer datos de la misma dinámicamente
visualizándolos en el navegador es la mayor utilidad de las páginas ASP.
Puede conectarse a gestores de Base de datos SQL, Access, Oracle, o cualquier otro motor que
disponga de driver ODBC. Comercio electrónico, portales, y todas aquellas aplicaciones en las que el
protagonista es la información dinámica.
ASP es una componente DLL instalada sobre el servidor Web. Este componente procesa ficheros que
terminan con extensión .asp y transmite el resultado hacia el cliente que solicitó el fichero ASP.
Una secuencia de comandos ASP empieza a ejecutarse cuando un explorador solicita un archivo .asp al
servidor Web. El servidor Web llama entonces a ASP, el cual lee el archivo solicitado de arriba a abajo,
ejecuta los comandos y envía una página HTML al explorador.
Figura 1- Funcionamiento de ASP.
Las aplicaciones ASP:



Están completamente integradas en los archivos HTML.
Son fáciles de crear, los programas no requieren compilación ni vinculación manual.
Están orientadas a objetos y pueden ampliarse con componentes ActiveX Server.
Esto se traduce en ventajas tangibles y permite a los proveedores de Web ofrecer aplicaciones de
negocios interactivas, en lugar de simplemente hacer público un contenido.
Las aplicaciones ASP son fáciles de desarrollar, y es posible utilizar cualquier lenguaje de secuencia de
comandos para el que se disponga del motor correspondiente. ASP cuenta con motores de secuencia de
comandos para Microsoft Visual Basic Scripting Edition (VBScript) y JScript. Puede incorporar
funcionalidad más sofisticada con los componentes ActiveX Server, anteriormente conocidos como
servidores de automatización, para procesar datos y generar información útil. El contenido generado por
ASP es compatible con los exploradores Web estándar.
Para procesar un formulario con ASP, se pueden introducir secuencias de comandos escritos en
VBScript o JScript directamente dentro de un archivo HTML. ASP lee la secuencia de comandos, los
ejecuta y devuelve los resultados al explorador. Como todos los formularios, éste envía los datos al
servidor Web como parejas de variables y valores. ASP almacena la información enviada bajo la forma
de un formulario HTML en la colección Forms del objeto Request. Para recoger la información del objeto
Request se invoca el método Form con el nombre del parámetro que se desea recuperar. Existe otro
método para enviar los datos de un formulario al servidor como una cadena en el URL: el método GET.
Un archivo .asp es un archivo de texto que puede contener cualquier combinación de los siguientes
elementos:




Texto
Etiquetas HTML
Código script.
Ficheros include, componentes Active X y objetos integrados que son opcionales
Beneficios del uso de ASP.









ASP complementa a los scripts del lado cliente. Se puede añadir nivel de interactividad a las páginas
web usando scripts del lado cliente, pero algunos navegadores web no soportan script del lado
cliente, por lo que existe la posibilidad de usar script del lado del servidor para alcanzar la
interactividad deseada.
Es fácil de aprender. Para comenzar a construir aplicaciones ASP lo primero que se necesita es
familiarizarse con un lenguaje script tales como JScript, JavaScript o VBScript
VBScript y JavaScript ofrecen la posibilidad de acceder y manipular los eventos, objetos y métodos
expuestos para aplicaciones ASP
ASP permite trabajar fácilmente con aplicaciones y herramientas que ya se estén usando, tales como
ODBC, OLE, Active X y COM.
El desarrollo de ASP está libre de compilación. Después de desarrollada una aplicación web, no es
necesario compilarla, simplemente se salva el fichero con extensión .asp y la DLL ASP procesa el
fichero cuando este es solicitado por el usuario
El ambiente ASP es extensible.
Se pueden usar componentes para permitir acceso a Bases de Datos.
ASP protege algoritmos e información.
El código ASP es ejecutado sobre el servidor. Solamente la salida es enviada al usuario en formato
HTML.
Utilización de componentes ActiveX Server
ActiveX, es una poderosa tecnología para Internet con un impresionante potencial. Los controles
ActiveX que vienen incluidos en Internet Explorer versión 3.0 o superior permiten mejorar las páginas
web con sofisticadas características de formato y animación.
Los componentes ActiveX, anteriormente conocidos como controles OLE o controles OCX, son
componentes (u objetos) que pueden ser insertados en una página Web u otra aplicación para reusar la
funcionalidad existente. Los componentes ActiveX son los controles OLE que han sido extendidos al
ambiente de Internet.
Es importante no confundir un componente ActiveX de servidor con un componente ActiveX del lado del
cliente. Este último es enviado a través de una red, junto con el HTML, y sólo puede ejecutarse en
Microsoft Internet Explorer. Son la competencia de Microsoft a los applets de Java.
Un componente ActiveX de servidor, en cambio, se ejecuta en el servidor web y envía HTML al cliente,
de forma que cualquier navegador es compatible.
Los componentes ActiveX pueden ser usados en otras aplicaciones escritas en muchos lenguajes de
programación, incluyendo todos los lenguajes de programación y bases de datos Microsoft.
Hay literalmente cientos de controles ActiveX disponibles hoy con una gran funcionalidad desde un
control de timer hasta hojas de cálculo y procesadores de palabras ricos en características.
Active Server Pages (ASP) incluye cinco componentes ActiveX Server:





Componente Acceso a bases de datos
Componente Ad Rotator
Componente Funciones del explorador
Componente Acceso a archivos
Componente Vínculo de contenidos
Los componentes ActiveX Server ofrecen medios reutilizables de tener acceso a la información,
aumentando así sus capacidades de creación de secuencias de comandos. Por ejemplo, el componente
Acceso a Bases de Datos habilita a las secuencias de comandos para que consulten a una base de
datos. De esta manera, cuando se quiera hacer una consulta a una base de datos desde una secuencia
de comandos, puede utilizar el componente Acceso a Bases de Datos y evita tener que escribir
complicadas secuencias de comandos para realizar esta tarea. Puede llamar a estos componentes
desde cualquier secuencia de comandos o lenguaje de programación que soporte automatización (los
componentes ActiveX Server son servidores de automatización). Los sitios Web de Internet suelen
proporcionar espacio publicitario.
El componente Acceso a bases de datos utiliza objetos de datos de ActiveX (ADO) para proporcionar un
fácil acceso a la información almacenada en una base de datos (o en otra estructura de datos en forma
de tabla) que cumpla con el estándar Open Database Connectivity (ODBC).
El primer paso en el diseño de una aplicación de base de datos Web es el diseño y creación de la base
de datos. Después de crear una base de datos, se necesita crear un nombre de fuente de datos de
fichero (DSN), usuario o de sistema, para que la aplicación ASP pueda interactuar con la base de datos.
El DSN usado por la aplicación ASP tiene que ser creado sobre el servidor Web que está corriendo la
aplicación ASP. Si se mueve la aplicación Web hacia un servidor Web diferente, se tiene que crear otra
vez el DSN de la aplicación ASP sobre el nuevo servidor Web.
Las aplicaciones ASP interactúan con la base de datos usando ActiveX Data Objects (ADO). Después de
crear un DSN para una base de datos, es muy fácil usar ADO para insertar y obtener records de la base
de datos.
Pasos básicos para usar ADO
1. Creación de una instancia del objeto Connection a través de la siguiente instrucción:
Set DatabaseConnection= Server.CreateObject (“ADODB.Connection”)
2. Abrir la conexión hacia la base de datos.
Después que el objeto Connection es instanciado, se necesita especificar con cual base de datos se
quiere trabajar. Esto se hace a través del método Open y especificando el DSN. La siguiente
instrucción abre el fichero DSN UserInformationDatabase”
DatabaseConnection.Open “FILEDSN=UserInformationDatebase.dsn”
3. Emisión comandos SQL hacia la base de datos.
Después del establecimiento de una conexión con una base de datos, el método Execute del objeto
Connection es usado para ejecutar comandos SQL (Structured Query Language). Las instrucciones
SQL pueden ser usadas para insertar, borrar y obtener información de la base de datos. La sintaxis
del método Execute es:
DatabaseConnection.Execute ”<instrucción SQL>”
4. Cierra la conexión de datos.
Después que se ha terminado de usar la base de datos, se debe cerrar la conexión de la misma.
Cerrando inmediatamente la conexión de la base de datos después de usar la misma hace eficiente
el uso de los recursos de la base de datos. La sintaxis es:
DatabaseConnection.Close
Set DatabaseConnection = Nothing.
Creación de procedimientos
Una característica muy atractiva de Active Server Pages es su capacidad de incorporar procedimientos
escritos en lenguajes diferentes en un mismo archivo .asp. Gracias a esta funcionalidad, es posible
utilizar los puntos fuertes de cada lenguaje de secuencia de comandos para realizar tareas específicas.
Un procedimiento es un grupo de comandos que realizan una tarea específica. Se pueden definir
procedimientos e invocarlos repetidamente en las secuencias de comandos. Las definiciones de los
procedimientos aparecen entre las etiquetas <SCRIPT> y </SCRIPT> y deben ajustarse a las reglas del
lenguaje de secuencia de comandos declarada. También se puede definir un procedimiento dentro de los
delimitadores de secuencia de comandos (<% y %>), siempre que esté escrito en el lenguaje de la
secuencia de comandos principal.
Se puede incluir las definiciones de procedimientos en el mismo archivo .asp que los llama, o bien se
puede reunir los procedimientos de uso común en un archivo compartido y utilizar una sentencia de
inclusión en el lado del servidor (es decir, <!--#INCLUDE FILE=) para incluirlo en otros archivos .asp que
llamen a los procedimientos. Como alternativa, se puede encapsular la funcionalidad en un componente
ActiveX Server.
Se expone un ejemplo de dos procedimientos en JScript contenidos en el fichero validaciones.inc y una
sentencia INCLUDE para poder tener acceso a esos procedimientos desde cualquier página .asp.
function Vacio(campo)
{
if (campo.value == "")
{
alert("Debe introducir el dato.");
campo.focus();
}
}
function Validar_Numero()
{
campo=String.fromCharCode(event.keyCode)
if ((isNaN(campo)) || (event.keyCode == 32)) //verdadero si no es un número.
event.returnValue=false;
}
<!--#include virtual="recursos/validaciones.inc"-->
Objetos integrados
Existe un conjunto de objetos integrados en ASP que se resumen en la siguiente tabla:
Objeto
Request
Response
Server
Session
Application
Tarea
Obtener información de un usuario.
Enviar información a un usuario.
Controlar el entorno de ejecución de ASP.
Almacenar información sobre una sesión de usuario.
Compartir información entre los usuarios de una aplicación.
Obtención de información de un usuario
El objeto Request permite tener acceso a cualquier información incluida con una petición HTTP. Esto
comprende los siguientes datos:





Un conjunto de datos estándar incluido en el juego de variables del servidor.
Un conjunto de parámetros enviados con el método POST.
Un conjunto de parámetros de consulta adjuntos al método GET.
Cookies enviados desde un explorador. Los cookies permiten asociar un conjunto de información
con un usuario.
Certificados de cliente.
El objeto Request tiene asociadas cinco colecciones:





QueryString
Form
Cookies
ServerVariables
ClientCertificate
Se puede utilizar la siguiente sintaxis general para tener acceso a la información del objeto Request :
Request.NombreColección(variable).
Envío de información a un usuario
Puede utilizar el objeto integrado Response de ASP para controlar la información enviada a un usuario,
sirviéndose de los métodos:





Response.Write para enviar información directamente a un explorador.
Response.Redirect para dirigir al usuario a una dirección URL distinta de la solicitada.
Response.ContentType para controlar el tipo del contenido enviado.
Response.Cookies para establecer valores de cookie.
Response.Buffer para almacenar la información en un búfer.
Objeto Server
El objeto Server permite el acceso a los métodos y propiedades del servidor. La mayoría de estos
métodos y propiedades sirven como funciones de utilidades.
Los métodos para este objeto son:




CreateObject( ): permite acceder a objetos externos.
HTML Endcode( ): se utiliza para formatear un string a visualizar en la página Web.
URLEndcode( ): para convertir texto que puede ser usado como parte de un URL.
MapPath( ): permite conocer la localización física de un fichero .asp.
Objetos Application y Session
Una aplicación basada en ASP puede hacer que los componentes ActiveX Server tengan como ámbito la
aplicación, la sesión o la página.



Un componente con ámbito de aplicación es una única instancia de un componente creada al
iniciarse la aplicación. Todas las peticiones de los clientes comparten esta instancia.
Una instancia de un componente con ámbito de sesión es la que se crea para cada nueva sesión
de una aplicación y se libera al terminar la sesión. Por lo tanto, hay una instancia por cada sesión
activa.
Una instancia de componente con ámbito de página es la que se crea para el procesamiento de
una página para un cliente, está disponible durante el procesamiento de esa página y se libera al
devolver la respuesta al cliente. De forma predeterminada, las instancias de los componentes
tienen ámbito de página.
Al usar aplicaciones basadas en ASP, es posible mantener un estado. El estado es la capacidad de
retener información. Puede utilizar ASP para mantener dos tipos de estado:


Estado de aplicación, en el que toda la información relativa a una aplicación está disponible para
todos los usuarios de la misma.
Estado de sesión, en el que la información sólo está disponible para un usuario o sesión
específicos.
Las herramientas de ASP que se emplean para administrar el estado son los objetos integrados Session
y Application.
Componentes COM. Encapsulamiento del código ASP.
COM es un estándar binario, independiente del lenguaje, que especifica una interfaz de programación,
para facilitar la comunicación entre programas. Se pueden hacer objetos COM en Visual Basic, Visual
C++ (ATL), Visual J++ e incluso Delphi. Cualquier lenguaje que soporte la interfaz COM puede ser
utilizado.
El encapsulamiento del código ASP en un objeto COM, no sólo aumenta la velocidad de una aplicación
ASP, sino también protege y centraliza el código en un único archivo. El encapsulamiento de código ASP
también se puede realizar utilizando los componentes de secuencia de comandos (scriptlets) que utilizan
XML , conocido como lenguaje universal.
En términos más prácticos, un objeto COM puede tomar la forma de un componente de servidor
(server-side component), que es un archivo .DLL que, registrado en el servidor web, proporciona uno o
varios objetos para ser utilizados desde las páginas ASP.
Un componente COM es un bloque reutilizable construido por programa que contiene código para
realizar una tarea o un conjunto de tareas. Los componentes pueden ser combinados con otros
componentes, aún a través de redes, para crear una aplicación Web. ASP usa componentes básicos
que pueden utilizarse inmediatamente como por ejemplo el ActiveX Data Object (ADO) para añadir
conectividad de bases de datos a las aplicaciones Web. Componentes adicionales pueden ser obtenidas
de los desarrolladores. Pueden crearse componentes en cualquier lenguaje de programación que
soporte el Modelo Objeto de Componentes (Component Object Model) tales como C, C++, Java, Visual
Basic y numerosos lenguajes de scripting. COM es extremadamente elegante porque en vez de tratar
de enlazar una funcionalidad de una componente en tiempo de diseño o suministrar una trayectoria
para la componente en el código fuente, COM utiliza la localización binaria CLSID local o remota. Los
usuarios de COM utilizan funcionalidades preconstruidas en objetos del servidor sin un conocimiento
profundo de las mismas. El uso de componentes COM permite desarrollar los productos de software en
un tiempo significativamente menor. Un ejemplo de componente es la clase menú utilizada en la
aplicación de Recursos Humanos para la programación del menú que posibilita la selección de
cualquiera de las opciones desarrolladas.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
<script>
oMenu.makeMain(0,'Estadística de Cuadros',0)
oMenu.makeSub(0,0,'Consolidación','Consol_RECTC.asp',target="_top",0,2)
oMenu.makeSub(0,1,'Ver por Centros',0,2)
</script>
<%
i=0
j=0
rem BUSCAR CENTROS
sql="SELECT * FROM Centros_RecursosHumanos WHERE Descripcion <> '"& centro &"'
ORDER BY Descripcion"
set Centros=DataConnection.Execute(sql)
If Not(Centros.EOF) Then
Centros.MoveFirst
Do While Not(Centros.EOF)
j=j+1
Centros.MoveNext
Loop
Centros.MoveFirst
Do While Not(Centros.EOF)
centro_id = Centros("Id_Centro")
centro_desc = Centros("Descripcion")
Response.Write "<script>"
Response.Write"oMenu.makeSubSub(0,1,"&i&",'"&centro_desc&
"','Consolid_RECT.asp?id_centro="& centro_id& "',"&j&")"
Response.Write "</script>"
i=i+1
Centros.MoveNext
Loop
End If
%>
<script>
oMenu.makeMain(4,'Borrar Historia','borrar_historia.asp',target="_top",1)
oMenu.makeMain(5,'Salir del Sistema','salir.asp',target="_top",1)
oMenu.construct()
</script>
A partir de la línea 1-5 corresponde al código Java para construir la dos primeras opciones del menú.
De la línea 7-21 corresponde al código ASP que se utiliza para tener acceso a la Base de Datos y extraer
la información que será visualizada en el submenú.
En las líneas 22-24 dentro del código ASP se escribe código Java para construir el submenú.
En las líneas 30-34 se construyen las restantes opciones del menú.
Aplicación de Recursos Humanos.
La aplicación de Recursos Humanos consta de un conjunto de opciones que pueden subdividirse en dos
grandes grupos: la entrada de datos por los diferentes homólogos de los centros y la consolidación para
la Agencia. Todas estas opciones pueden ser seleccionadas en un menú. La entrada de datos por los
diferentes homólogos de los centros necesita un proceso de autenticación. En la Figura 2 se muestra
una visualización del menú y en la Figura 3 una de las pantallas de captación de datos.
Figura 2- Menú Principal de la aplicación de Recursos Humanos.
Figura 3- Pantalla de Captación de datos.
Conclusiones
El trabajo en las esferas de Recursos Humanos, Colaboración Internacional y Economía de la Agencia
de Información para el Desarrollo que con anterioridad se realizaba manualmente, ha sido automatizado
utilizando la tecnología Active Server Pages, lo cual permite el desarrollo de aplicaciones Web dinámicas
e interactivas.
Este tipo de aplicaciones son exclusivamente ejecutadas sobre el lado del servidor, donde se procesan
ficheros que terminan con extensión .asp y se transmite el resultado hacia el cliente que solicitó el fichero
ASP en código HTML lo que puede ser interpretado por cualquier examinador, pero el código ASP
escrito queda enmascarado e imposible de leer por lo que brinda una mayor seguridad a las
aplicaciones.
Otra de las ventajas de ASP al desarrollar una aplicación es la posibilidad de soportar varios lenguajes
script como: VBScript, Jscript, Perl y otros, que ofrecen habilidades para tener acceso y manipular los
eventos, objetos y métodos.
ASP es una tecnología de punta fácil de aprender que permite trabajar con herramientas que ya se
utilizan como ODBC, OLE/DB, ActiveX y COM, es extensible, protege algoritmos e información.
Bibliografía
1) Sanjaya Hettihewa, Teach Yourself Active Server Pages 2.0 in 21 Days, SAMs, 201 West 103rd,
Indianapolis, Indiana, 46290 USA.
2) Scot Hillier and Daniel Mezick , Programming Active Server Pages, Scot Hillier and Daniel Mezick,
Microsoft Press.
Descargar