Get Firefox

Firefox 4.0

stopsoftwarepatents.eu petition banner Manifiesto por la liberación de la cultura 
No a la traza privada
Últimos cambios
Últimos Cambios
Vote for Public Maps - Reject INSPIRE! Geocaching
Mi estado actual en Jabber/XMPP: - jabberES - jabber.org

Desarrollo de una Herramienta Software para el Acceso a Redes TCP/IP a través de la Red Telefónica Conmutada

Última Actualización: 30 de Junio de 1.996 - Domingo

Capítulo 15:
El Módulo Principal

El módulo principal es el encargado de inicializar todo el sistema y lanzar los procesos de aplicación. Se hace cargo también de la gestión inicial del MODEM (secuencia de marcación y navegación automática a través de los menús) y de la configuración de todos los procesos. Finalmente hace de puerta de entrada a las aplicaciones DNS, TELNET, FTP, SMTP y POP3.


Interfaz

La interfaz de programación de este módulo consta de una única rutina:


int main(int argc,char *argv[]);

Esta rutina ejecuta todo el resto del programa. Retorna cuando el software termina su ejecución, devolviendo siempre el valor cero. Acepta un único argumento a través de la línea de comandos, que será el "path" de acceso al fichero de configuración que queremos utilizar.

Dicho fichero contiene órdenes para la gestión del MODEM y la configuración del sistema. La sintaxis del fichero es como sigue:


  fichero = dial login init EOF
  dial = [(comentario | asignación | línea_dial)...] "end_dial\n"
  login = [(comentario | asignación | línea_login)...] "end_login\n"
  init = [(comentario | asignación | línea_init)...] "end_init"

  comentario = "#" [carácter_imprimible...] "\n"
  carácter_imprimible = ("\32".."\126") | ("\128".."\255")
  asignación = variable "=" valor
  valor = variable | cadena | palabra | número
  variable = "$" palabra
  palabra = alfa [alfanum...]
  alfa = ("a".."z") | ("A".."Z") | "_"
  alfanum = alfa | ("0".."9")
  cadena = "\"" [carácter_imprimible] "\""
  número = ("0".."9")...
  línea_dial = (("serial_port" palabra) | ("wait" número) |
                ("hangup" cadena) | ("prefix" palabra) |
                ("init" palabra) | ("connect_wait" número) |
                ("redial_wait" número) | ("phone_number" número) |
                ("success" palabra | cadena) |
                ("failure" (palabra | cadena)...)
               ) "\n"

  línea_login = (("cwait" número cadena...) | ("send" cadena) |
                 ("wait" número) | ("get" variable)
                ) "\n"

  línea_init = (("aloc_mem" nvalor) | ("set_ip" nvalor) |
                ("mss" nvalor) | ("mtu" nvalor) | ("mru" nvalor) |
                ("dns_server" cvalor) | ("gateway" cvalor) |
                ("user" cvalor) | ("password" cvalor) |
                ("protocol" cvalor)
               ) "\n"

  nvalor = variable | número
  cvalor = variable | cadena | palabra

Una vez que la herramienta software ha accedido al sistema se dispondrá de nueve canales independientes, accesibles a través de las teclas de función. Cada uno de los canales puede gestionar una conexión TELNET, FTP, SMTP o POP3, según lo que seleccione el usuario.


Implementación

La implementación actual del módulo principal consiste, básicamente, en dos partes: un marcador ("dialer") y el sistema de gestión de protocolos de aplicación.

El marcador es el responsable de acceder al sistema remoto, de autentificarnos ante él y de configurar todo el sistema. El sistema de gestión de protocolos de aplicación, como su nombre indica, permite al usuario la interación con las diferentes aplicaciones. Escribiendo "pop3 jucar.ait.uvigo.es", por ejemplo, la herramienta intenta la conexión al subsistema POP3 del Area de Ingeniería Telemática de la Universidad de Vigo. Los comandos existentes en la actualidad son: "telnet", "ftp", "smtp", "pop3", "close" y "exit". Si no se indica ningún puerto, cada protocolo se conectará a su puerto por defecto.

Para cambiar entre canales el usuario pulsa las teclas de función asociadas. Si desea cerrar una conexión de forma imperativa debe pulsar "F10" y escribir "close <canal>", donde "<canal>" se corresponde al canal asociado a la conexión que deseamos clausurar.

Todas las interacciones y errores consideradas de interés son almacenadas en un fichero "LOG".

Este módulo es, con diferencia, el más independiente de la herramienta en sí y, al mismo tiempo, constituye la interfaz que ve el usuario. Por ello se recomienda que los usuarios con unos conocimientos de programación mínimos se decidan a realizar sus propios módulos principales.

El objetivo de este Proyecto Fin de Carrera consiste en el desarrollo de una librería TCP/IP para su utilización por terceras partes. En ese sentido este módulo resulta completamente prescindible. Su utilidad se pone de manifiesto si se considera que no existen aún aplicaciones externas que utilicen las facilidades de la herramienta, pero es previsible que pronto se dispongan de aplicaciones diversas que hagan innecesario este módulo.


Bibliografía


[KA9Q-CFG]  Formato de los ficheros de configuración del paquete
            de software KA9Q-NOS
            Phil Karn, KA9Q

[LABCD]     Laboratorio de Comunicación de Datos
            Curso 94-95. Vigo, 16 de Marzo de 1.995
            Alvaro Manuel Gómez Vieites
            Carlos Gabieiro Martínez
            Jose Cadavid Jáuregui
            Jesús Cea Avión

[POWERNET]  Proyecto PowerNet
            Jesús Cea Avión
            Implementación de multitarea cooperativa en lenguaje C
            11 de Abril de 1.990

[STIK-CFG]  Formato de los ficheros de configuración del software
            STiK
            Steve Adam.
            27 de Septiembre de 1.995



Firefox 4.0 Python Zope ©1996 jcea@jcea.es