Componentes de servidor ASP

  • Por
Descripión de los componentes de servidor ASP, ejemplos, modo de utilización, cómo instalarlos, etc.
Vamos a intentar dar unas nociones muy básicas sobre lo que son los componentes de servidor de ASP, en el marco de el Taller de ASP y pensando en futuros artículos en los que explicaremos el funcionamiento de algún que otro componente interesante para los servidores IIS (en los que se ejecutan las páginas ASP de Microsoft)

Qué son los componentes de servidor

Para hablar de manera sencilla, los componentes del servidor son programas que sirven para realizar acciones más o menos complejas en el nuestras páginas ASP. Éstas acciones pueden ser por ejemplo, el envío de correo electrónico, realizar upload de ficheros al servidor, conectar con una base de datos, etc. Los que conozcan ASP sabrán que el lenguaje con el que se escribe (VBScript o Jscript) nos permite unas funcionalidades que no van más allá de las básicas de cualquier lenguaje: trabajo con variables, tipos, estructuras de control y un juego de funciones (que en el caso de VBScript es bastante limitado).

Así que, si en una página ASP estamos pensando en hacer algo un poco complejo, lo más seguro es que lo tengamos que realizar a través de algún componente del servidor. Como decíamos, incluso las conexiones y accesos a bases de datos que muchos de vosotros realizaréis habitualmente se hacen a través de un componente del servidor.

Active X

Para hablar sobre los componentes de servidor es necesario hablar también de la tecnología ActiveX de Microsoft. Ésta se trata de un conjunto de tecnologías independientes del lenguaje de programación orientadas a posibilitar que trabajen entre si los distintos componentes en entornos de red.

Los componentes ActiveX no son otra cosa que los componentes de servidor que estamos comentando. Por otra parte, están los controles ActiveX (controles esta vez, no componentes) que son pequeños programas que se insertan en las páginas web a través de las etiquetas <OBJECT> y <PARAM>. Los controles se ponen en marcha en el cliente, cuando se ejecutan lo hacen dentro de la página web. Un ejemplo típico es la invocación de una animación de Flash o Shockwave. El motor de Flash o Shockwave, es un control ActiveX. Por otra parte y como decíamos, los componentes ActiveX se ponen en marcha en el servidor.

Los componentes ActiveX, por tanto, son los que nos interesan a nosotros en este artículo, pues son los que se invocan desde ASP y se ejecutan en el servidor al mismo tiempo que la página, antes de enviarla al cliente. Además, nos vamos a centrar en el uso de componentes y no en su programación, que es un tema demasiado amplio.

A título de comentario, se puede indicar que para crear componentes de servidor se puede utilizar cualquier lenguaje de programación. Aunque muy habitualmente se hacen en Visual Basic, se pueden hacer también en Delphi, Visual C++ o el propio C++ por ejemplo. Para su programación es necesario que se sigan unas normas y estructuras.

Cómo se trabaja con los componentes

Los componentes son objetos que, como objetos que son, tienen propiedades y métodos. Las propiedades son las características del objeto y los métodos son sus funcionalidades. Para trabajar con un componente primero debemos instanciarlo (crearlo e inicializarlo). Una vez creado, habitualmente, lo configuraremos accediendo a sus propiedades y actualizando sus valores. Finalmente llamaremos a sus métodos para poner en marcha sus funcionalidades.

La instanciación de un componente de servidor se hace a través del objeto server de ASP. Es el server.createobject que muchos de vosotros habréis visto en más de una ocasión en códigos ASP.

Set mi_componente = Server.CreateObject(IDENTIFICADOR)

El identificador que le pasamos es una cadena de caracteres que contiene el código del componente que se quiere crear. En el caso de una conexión con una base de datos, el identificador es "ADODB.Connection". Cada componente de servidor tiene su propio identificador, definido por el programador del componente.

En el manual de ASP I se encuentra una explicación detallada del componente de acceso a datos (ADO), utilizado para acceder a las bases de datos.

En cualquier caso, para aprender a manejar un componente tendréis unas instrucciones precisas en la documentación que acompaña a cada componente. Es necesario leer la documentación porque cada componente tiene sus propias propiedades y métodos.

Componentes de interés

Ya hemos señalado algunos ejemplos de componentes útiles, como el envío de correo electrónico por el servidor o subir archivos al servidor, pero podemos ver muchos más:

  • Acceso al sistema de archivos del servidor
  • Creación de imágenes en el servidor
  • DNS lookup
  • Ejecución de programas o comandos en el servidor
Muchos de ellos son comerciales y habrá que adquirirlos a cambio de una cantidad de dinero. Es uno de los problemas de ASP, que todo cuesta bastante dinero, cuando en otros lenguajes como PHP lo puedes encontrar "de casa" y/o gratis.

Ejemplos típicos de lugar donde se pueden adquirir componentes variados es Serverobjects.com o Persits.com, páginas de empresas que se dedica a programarlos y venderlos. También podemos encontrar un directorio de componentes y controles ActiveX en ActiveX.com.

Instalar componentes en nuestro servidor

Algunos de los componentes que necesitamos en la programación de páginas ASP están ya instalados por defecto en los servidores web, es el caso de el componente de conexión con la base de datos o el de conexión con el sistema de archivos del servidor (File System Object). Sin embargo, otros componentes si que necesitaremos instalarlos en la máquina que vaya a utilizarlos.

Un componente suele ser un archivo .dll, -librería de Windows- y para instalarla en nuestro sistema deberemos seguir sus instrucciones de instalación. Tanto las instrucciones de instalación como las de manejo del componente deberían acompañar a la dll entre los archivos de descarga del componente.

Es habitual que la instalación de esa dll se realice manualmente. Para ello copiaremos el archivo .dll en nuestro directorio system (\winnt\system32 en NT o \windows\system en Win95) y luego registraremos la dll en nuestro sistema con el comando
regsvr32 mi_componente.dll, que debemos ejecutar desde línea de comandos (C:\>).

En algunos casos, el componente se instala en Windows igual que cualquier otra aplicación. Como decíamos, cada componente puede instalarse de manera diferente.

Si tenemos alojada la página en un servidor que no es nuestro, en un servidor de hosting, es importante que preguntemos al soporte técnico de ese proveedor la manera de instalar los componentes, pues generalmente habrá un procedimiento definido para instalarlos o bien ni siquiera estará permitido. Es importante que preguntéis antes de contratar un servidor de alojamiento sobre este punto, no sea que una vez pagado os digan que no permiten componentes propios y vosotros necesitéis uno para construir la página.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Miguel Angel

07/5/2002
Hace poco me han consultado para ver si podía explicar porqué sale un error en una página ASP, cuando intentamos declarar un componente para el envio automático de un correo electrónico. El error es el siguiente:

Objeto Server error 'ASP 0177 : 800401f3'
Error en Server.CreateObject
/reservasonline/enviar.asp, line 3
Cadena clase no válida

A mi me parece que tu servidor no conoce el objeto que estás intentando crear. Puede ser por dos cosas:

1) Que tu servidor no tenga instalado dicho objeto. Deberías consultar con tu proveedor de hosting si está o no disponible. Si administras tu el servidor, deberás instalar bien el componente.

2) Que te hayas equivocado al escribir el identificador del objeto que quieres utilizar (lo que está entre comillas en el server.createObject)

Se me ocurre una tercera, que pueda haber un problema temporal al crear el recurso, por ejemplo en la conexión con los posibles servidores de mail. Pero, a la vista del mensaje, parece más bien uno de los errores anteriores.

Holograma

25/5/2006
Al respecto de todo los mensajes de createibject es porque no se estan declarando bien las instruccion de crear un componente en el servidor o bien puede ser que algunos componentes como cdonts no funcione con iis 6 en el caso de 5 si,pero como windows xp lo trae integrado es mejor ocupar cdosys

Arturo

09/3/2007
A mi me salía el mismo error y lo arregle colocando en el administrador de Servicios de Componentes en las propiedades de Identidad el mismo usuario del IIS (el usuario de acceso anónimo)

Saludos,

Arturo

ROX

09/8/2007
MI CUMPUTADORA NO ABRE ALGUNAS PAGINAS DE INTERNET, ME MUESTRA UN MENSAJE QUE DICE QUE NO SE PUEDEN ABRIR DEBIDO A LOS CONTROLES ACTIVE X, COMO ES QUE PUEDO HACERLE PARA QUE MI COMPUTADORA PUEDA ABRIR ESAS PAGINAS QUE NECESITOA PARA TRABAJAR?

Ulises

21/11/2007
Pues a mi me ha servido de mucho debido a que estaba perdido en el tema, aunque me gustaria saber mas a cerca de los daños que provocan los controles activex a mi pc o si son malos o buenos, si es que se pudiera simplificar.

Ricardo

18/3/2008
Caso practico: Una aplicacion ASP/IIS , descarga ActiveX actualizados, en la medida que el cliente navega en la aplicación y sus diferentes modulos. Estos aparecen como instalados en el directorio C:WINDOWSDownloaded Program Files , alguna idea de como hacer para que los carge manualmente, y en el mismo directorio ?? Saludos.

joge

19/2/2009

no esta registrada tu dll

no importa en que directorio este

en la linea de comandos pon la siguient instruccion

regsvr32 archivo.dll

Jorge

26/6/2009
ASPEmail
A pesar de que es son bien antiguos los comentarios del artículo, me pasa un problema idéntico a Miguel Angel, con la diferencia que ya instalé el componente y sigue el mismo error.. hay algo mas que hacer... el componente se instala en forma correcta...

Raul

07/9/2009
Componentes en ASP
Como puedo usar un componente desarrollado en VB2005 en un asp, no ASP Net.

hugo

08/11/2010
como se que active x no se ejucuta
cuando corro un programa en un servidor me dice que active x no se puede ejecutar como se cual es