220 likes | 365 Views
ADAPTACIÓN DEL SISTEMA TELEFÓNICO MULTILÍNEA AL ESTÁNDAR TAPI Y ACCESO A BASE DE DATOS REMOTA MEDIANTE LLAMADAS RPC. ÍNDICE GENERAL. Objetivos y pasos a seguir. La tarjeta telefónica y las funciones para su control. Clases y su integración en el sistema telefónico.
E N D
ADAPTACIÓN DEL SISTEMA TELEFÓNICO MULTILÍNEA AL ESTÁNDAR TAPI Y ACCESO A BASE DE DATOS REMOTA MEDIANTE LLAMADAS RPC
ÍNDICE GENERAL • Objetivos y pasos a seguir. • La tarjeta telefónica y las funciones para su control. • Clases y su integración en el sistema telefónico. • Primera versión de IDAS. • Aplicación de acceso a base de datos remota del rectorado.
OBJETIVOS • OBJETIVO FUNDAMENTAL: Aumentar las posibilidades del sistema telefónico multilínea: • Independizar el sistema de la tarjeta telefónica: TAPI. • Facilitar el mantenimiento del sistema: CLASES. • Añadir nuevas funciones: • IDAS. • Acceso a notas del rectorado.
PASOS A SEGUIR • Desarrollar sistema de clases. • Elaborar programa de control de la tarjeta telefónica. • Integrar clases en el sistema telefónico. • Incorporar al programa de control capacidad de compilar y ejecutar aplicaciones. • Añadir clases y funciones para IDAS y acceso a notas del rectorado.
LA TARJETA TELEFÓNICA Y LAS FUNCIONES PARA SU CONTROL • Dispositivo de LINEA: • desarrolla las funciones propias de un terminal telefónico. • TAPI. • Dispositivo WAVE: • para grabar y reproducir ficheros. • funciones WAVE o servicios MCI (Media Control Interface).
FUNCIONES TAPI Y WAVE • Funciones SÍNCRONAS: • Fin función=Fin acción. • Funciones ASÍNCRONAS: • Fin función<>Fin acción. • La acción termina cuando la aplicación recibe mensaje indicativo.
CLASES: ventajas • Distinguen elementos. • Distinguen relaciones. • Facilitan la programación de nueva funcionalidad (herencia). • Reutilizables.
CRITERIOS DE PROGRAMACIÓN DE LAS CLASES • Clases telefónicas y de audio: • TTapiApp. • TLinea. • TLlamada. • TWave. • Elementos del programa de control: • TTapi_owlApp. • Clases de las que derivan otras por medio de la herencia: • TadePRO. • Facilitar programación a través de la herencia: • TTapi.
RELACIONES ENTRE LAS CLASES • INCLUSIÓN: si una clase incluye otra, de ella pueden depender varios objetos de la clase incluida. • HERENCIA: La clase que hereda es un tipo de la heredada. TLlamada TTapiApp TLinea TWave TTapi TTadePRO
OPERACIONES NECESARIAS PARA EJECUTAR UNA FUNCIÓN • Inicializar la tarjeta telefónica. • Abrir el dispositivo de línea. • Ejecutar la función de control que corresponda. • Si la función es asíncrona esperar el mensaje con el resultado de la ejecución.
CONDICIONES DE EJECUCIÓN DE UNA FUNCIÓN • Comprobar que existe el objeto del que se va a ejecutar el procedimiento siguiente. • No se ejecutan dos funciones simultáneamente. • El estado de la llamada es el adecuado. • El mensaje está dirigido al objeto adecuado.
INTEGRACIÓN DEL SISTEMA DE CLASES EN EL SISTEMA TELEFÓNICO MULTILÍNEA • Pasos a seguir para ejecutar una aplicación telefónica: • Inicializar la tarjeta por medio del programa de control. • Crear nuevo thread distinto del que depende la ventana principal. • Ejecutar las instrucciones del sistema telefónico multilínea en ese segundo thread. • Los procedimientos iniciales ejecutan métodos de TLinea. • Los idle comprueban el momento en que termina la operación.
FUNCIONES DEL SISTEMA TELEFÓNICO PARA EL CONTROL DE LOS DISPOSITIVOS DE LÍNEA Y WAVE • Funciones para el control de los dispositivos de línea: • Función ESPERAR_LLAMADA. • Función DESCOLGAR_LENTO. • Función RECONOCER_PALABRA. • Función PITAR. • Función COLGAR. • Funciones para el control de los dispositivos wave: • Función GRABAR. • Función REPRODUCIR.
PRIMERA VERSIÓN DE LA APLICACIÓN TELEFÓNICA IDAS • Servicio que permite a un usuario acceder a un número de teléfono de una empresa o persona. • La aplicación necesita que el usuario le proporcione información. • La aplicación dispone de mecanismos de RECONOCIMIENTO de voz. • PROBLEMA: No siempre se reconoce correctamente lo que dice el usuario. • SOLUCIÓN: Crear un cuadro de diálogo en el que un operador pueda: • Oír la respuesta del usuario. • Introducir respuesta reconocida.
CARACTERÍSTICAS DEL CUADRO DE OPERADORA • No debe interrumpir más de lo necesario la ejecución de la aplicación. • SOLUCIÓN: el cuadro de operadora depende de un thread distinto al que ejecuta las instrucciones del sistema telefónico (thread de la ventana principal). • La comunicación entre los threads se logra a través de variables compartidas: • Variable valor reconocido. • Variable flag. • PROBLEMA: necesario un mecanismo por el que ambos threads no puedan acceder a la variable al mismo tiempo. • SOLUCIÓN: secciones críticas.
CLASES Y FUNCIONES RELACIONADAS CON EL CUADRO DE OPERADORA • CLASES: TOperadora TMciWA • FUNCIONES: • Función OPERADORA_1_DATO: crea el cuadro de operadora. • Función ESPERAR_OPERADORA_1_DATO: espera a que el operador introduzca la variable reconocida y cierre el cuadro.
APLICACIÓN TELEFÓNICA DE ACCESO A BASE DE DATOS DE NOTAS DEL RECTORADO • Permite obtener las calificaciones de la última convocatoria de un alumno perteneciente a los centros de la UPM. • Acceso a la información a través de un SERVIDOR REMOTO. • El terminal CLIENTE realiza llamadas RPC al SERVIDOR.
EL MODELO CLIENTE/SERVIDOR • Sistema telefónico multilínea • Presenta interfaz con el usuario. • Ejecuta funciones del fichero de extensión .pro. • Escribe peticiones de consulta de la base de datos remota en fichero. Fichero petición y validación Ficheros de respuesta y validación de respuesta • Programa intermedio • Recibe peticiones del sistema telefónico y las transmite al servidor mediante llamadas RPC. • Recibe los resultados de la consulta y los escribe en un fichero de respuesta para el sistema telefónico. RPC • Programa del servidor • Recibe peticiones. • Consulta la base de datos. • Devuelve el resultado de la consulta. HOST IBM EMULAC 3270 TERMINAL CLIENTE TERMINAL SERVIDOR
PROGRAMACIÓN DEL CLIENTE Y DEL SERVIDOR (I): ASPECTOS RELEVANTES • La librería ORPC para Windows NT proporciona los programas y rutinas necesarias para la programación del CLIENTE y del SERVIDOR. • LOCALIZACIÓN DEL PROCEDIMIENTO A EJECUTAR EN EL SERVIDOR. • ADECUACIÓN DE LOS DATOS PARA SU TRANSMISIÓN A TRAVÉS DE LA RED: formato XDR (External Data Representation). • Ficheros necesarios:cou.x, cou.h, cou_clnt.c, cou_svc.c, cou_xdr.c, do_cou.c, count.c.
COMUNICACIÓN PROGRAMA INTERMEDIO/ SERVIDOR • El rectorado proporciona el fichero de especificación. • Un procedimiento en el servidor: CG_ENVIAR_PETICIÓN. • Un único dato: MENSAJE. • Operación en servidor depende del contenido del mensaje. • Los cuatro primeros bytes identifican el mensaje.
FUNCIONES INCORPORADAS AL SISTEMA TELEFÓNICO MULTILÍNEA • Función IBMTCPIP_COMPRUEBA_ALUMNO: permite, a partir del dni y la clave, obtener el nombre y apellidos del alumno. • Función IBMTCPIP_BUSCA_ELEMENTO: guarda en una estructura las notas del alumno a partir de su dni, clave, año académico, convocatoria y código del centro en que está matriculado. • Función IBMTCPIP_LEE_CAMPOS: devuelve las notas del alumno a partir de la estructura que se llena con la función anterior.
CONCLUSIONES • Se ha conseguido independizar parte de la funcionalidad del sistema telefónico de la tarjeta telefónica empleada gracias al estándar TAPI. • El sistema telefónico dispone de un conjunto de clases que facilitan la programación de nuevas funciones y los cambios en las mismas. • Se ha dotado al sistema de un método que permite a un operador cambiar el valor de una variable del programa mientras se ejecuta la aplicación telefónica gracias a las propiedades de los threads y las secciones críticas. • Se ha añadido al sistema un método que permite ejecutar procedimientos de un terminal remoto y utilizar los resultados de los mismos empleando las características del modelo cliente/servidor y las llamadas RPC.