Oraperl

[Contenido] [Anterior] [Siguiente]


Introducción

Perl es el lenguaje de programación más usado para la elaboración de escritos CGI, ya que ofrece una serie de ventajas al construir una interfaz entre el Web y otras aplicaciones. Existen una gran cantidad de bibliotecas para Perl, que facilitan el proceso de interacción con otro tipo de software, en particular con bases de datos. Es así como se puede hablar de Oraperl, el cual es una versión de Perl que ha sido extendida para permitir el acceso a bases de datos Oracle.

Oracle provee una biblioteca de funciones C conocida como Interfaz de Llamadas Oracle(OCI), la cual permite que programas C se comuniquen con la base de datos. Pero el uso de OCI requiere que el programador manipule detalles sumamente complejos en el uso de estas funciones, aún y cuando se pretendan desarrollar aplicaciones bastante simples.

Oraperl tiene como objetivo servir de nexo entre OCI y Perl, ya que con el primero se obtiene la posibilidad de comunicarse con Oracle y con el segundo la ventaja de trabajar con una interfaz más amigable , que puede extenderse hasta convertirse en CGI.

 Características y Funciones

Oraperl ha sido diseñado para trabajar sobre sistemas Unix. Permite establecer comunicación con una base de datos Oracle a través de librerías OCI, pero evitando la complejidad que implica usarlas. A cambio Oraperl ofrece una serie de funciones fáciles de emplear, que permiten incrustar sentencias SQL en un escrito Perl, las cuales son enviadas a la base de datos.

Para hacer uso de Oraperl no es necesario entender las referencias a OCI, ya que son totalmente ocultas para el programador. Las principales funciones que Oraperl ofrece son:

Un escrito Perl que haga uso de Oraperl y a la vez actúe como CGI, debe seguir el siguiente algoritmo:

  1. Invocar intérprete de Oraperl.
  2. Descodificar los datos ingresados en el formulario.
  3. Imprimir tipo de contenido a desplegar en el browser.
  4. Establecer conexión con Oracle.
  5. Construir sentencia SQL, en base a los datos ingresados por usuario.
  6. Enviar sentencia SQL a la base de datos.
  7. Si la sentencia SQL es un SELECT, se deben manipular los datos provenientes de la base de datos.
  8. Desconectarse de Oracle.

Acceso a archivos de Oraperl

Los archivos Oraperl deben poseer extensión .pl, al igual que un escrito Perl; y se invocan como cualquier escrito CGI:

http://<servidor_web>/<dir-cgi>/<aplicacion>.pl

<servidor_web>: Es la dirección IP o alias del servidor Web.

<dir-cgi>: Ruta del directorio de escritos CGI del servidor Web.

<aplicacion>.pl: Escrito Perl que hace uso de Oraperl.

A continuación se presenta un formulario que captura información del usuario, para luego insertarla en una base de datos Oracle, haciendo uso de Oraperl:

<HTML>

<BODY>

<H1>Ingrese Alumno</H1>

<FORM METHOD=GET ACTION="/cgi-bin/oraejemplo.pl">

<P>Nombre:<INPUT NAME="nombre" SIZE="30">

<P>Edad:<INPUT NAME="edad" SIZE="30">

<INPUT TYPE="SUBMIT" VALUE="AGREGAR">

</FORM>

</BODY>

</HTML>

El escrito que hace uso de Oraperl, oraejemplo.pl, es:

  • #! /usr/bin/oraperl

    use CGI_Lite;

    print "Content-type : text/html \n \n";

    print "<HTML><BODY><PRE>";

    $cgi= new CGI_Lite(); #descodificación de entrada

    %forma = $cgi->parse_form_data();

    $Base_Oracle = "ORACLE";

    $user = "cgiweb";

    $password = "cgiweb";

    $lda = &ora_login( $Base_Oracle, $user , $password) || die ora_errstr;

    $csr = &ora_open( $lda , "INSERT INTO alumnos VALUES ( :1 , :2 )") || die ora_errstr;

    &orabind($csr, ‘$forma{‘nombre’}’ , ‘$forma{‘edad’}’ );

    print "<H1> Alumno Agregado</H1>";

    &ora_close($csr);

    &ora_logoff($lda);

    print "</PRE></BODY></HTML>";

  • Nótese que para descodificar los datos ingresados en el formulario se hace uso de biblioteca CGI_Lite.

    En el anterior escrito únicamente se utilizan cinco funciones de Oraperl:

    Arquitectura

    Como ya se dijo Oraperl es una versión de Perl que ha sido extendida para manipular bases de datos Oracle. Oraperl se comunica a una base de datos Oracle a través de OCI y con el servidor Web mediante la elaboración de un escrito CGI en Perl. Desde el punto de vista de la base de datos , Oraperl se comporta como un programa cliente normal de Oracle; y desde la perspectiva del servidor Web, actúa como una "caja negra" que envía texto o HTML a la salida estándar.

    Oraperl actúa como intérprete, por lo cual no es necesario compilar cada escrito. El procedimiento que Oraperl realiza para integrar una base de datos Oracle con el Web se detalla en la Fig 17.

    Figura 17. Arquitectura de Oraperl en el acceso a una Base de Datos Oracle a través del Web.

     

    Requerimientos del Sistema

    Compatibilidad

    Sistemas Operativos

    Una amplia variedad de Unix: Amdhal UTS, Convex, Encore MultiMax, NeXT, Prime EXL MBX Sys V.3.1, Pyramid (ATT Universe), MIPS(SysVr4), Sparcstation, Sperrv/500/80 Sys V.3.1, Sun 4/280, SunOs 4.1.1, Ultrix, etc.

    DBMS

    Oracle ver 6.x ó 7.x.

     Servidor Web

    Todo Servidor Web que soporte CGI: Apache, NCSA, CERN, etc.

    Disponibilidad

    Oraperl se ofrece gratuitamente en:

    ftp://src.doc.ic.ac.uk/packages/perl/db/perl4/oraperl/oraperl-v2.4.tar.gz

    Posee un tamaño aproximado de 71.4 Kb. Fue desarrollado por Kevin Stock.

    Información amplia sobre Oraperl se encuentra en:

    http://rsgi01.rhic.bnl.gov/html/local/oracle/oraperl.html

    El paquete de distribución incluye:

    Contactos

    Sumario de la Interfaz

    Nombre

    Oraperl ver 2.4

    DBMS

    ORACLE ver 6.x ó 7.x.

    Sistema Operativo

    Amplia variedad de Unix

    Disponibilidad

    Gratuita en Internet, se ofrece en diversos sitios Web, entre ellos: ftp://src.doc.ic.ac.uk/pakages/perl/db/perl4/oraperl/

    Arquitectura

    Programa CGI que se ejecuta en base a interpretación.

    Características

    • Amplía ventajas de Perl para actuar como CGI.
    • Evita manejo de detalles en programación OCI
    • Actúa como programa cliente para Oracle.

    El programador construye CGI entre el Web y la base de datos.

    Fuente de Información:  http://rsgi01.rhic.bnl.gov/html/local/oracle/oraperl.html


    [Contenido] [Anterior] [Arriba] [Siguiente]