MXPA04010032A - Sistema y metodo de proyeccion de uno a muchos datos. - Google Patents

Sistema y metodo de proyeccion de uno a muchos datos.

Info

Publication number
MXPA04010032A
MXPA04010032A MXPA04010032A MXPA04010032A MXPA04010032A MX PA04010032 A MXPA04010032 A MX PA04010032A MX PA04010032 A MXPA04010032 A MX PA04010032A MX PA04010032 A MXPA04010032 A MX PA04010032A MX PA04010032 A MXPA04010032 A MX PA04010032A
Authority
MX
Mexico
Prior art keywords
call
projector
presentation
application program
receiving
Prior art date
Application number
MXPA04010032A
Other languages
English (en)
Inventor
R Manion Todd
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA04010032A publication Critical patent/MXPA04010032A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Abstract

El sistema y metodo de informacion o proyeccion de presentacion permiten a un usuario presentar informacion a una pantalla individual o multiples pantallas sin la necesidad de cables adicionales. Se utiliza el Conectar y Operar Universal (UPnP) para publicar, encontrar y controlar los dispositivos de exhibicion. Una sesion de Servicio de Terminal inversa (TS) se utiliza para conectar la pantalla de la maquina del usuario. La asistencia a y la recepcion de la presentacion se conduce de ambos lados, de lado del presentador y del lado de los asistentes a traves de un modelo de suscripcion es facilitado y la seguridad de la presentacion es conducida a traves del uso de invitaciones a reuniones. Estas invenciones son generadas a traves del presentador, y pueden ser solicitadas por los asistentes.

Description

SISTEMA Y METODO DE PROYECCION DE UNO A MUCHOS DATOS CAMPO DE LA INVENCION La presente invención se refiere en general a presentaciones de información, y más particularmente a un sistema y método para proyección de información de un presentador a muchos asistentes y dispositivos de proyección.
ANTECEDENTES DE LA INVENCION A pesar de los avances tecnológicos realizados en años recientes, muchas actividades de negocios tradicionales aún tienen un lugar prominente en los lugares de trabajo actuales. Una de dichas actividades es la reunión o conferencia. Por lo general, dicho esfuerzo colaborador involucrará una presentación de material a través de un participante a un número de otros participantes. Los medios tradicionales para presentar la información incluyen proyección sobre una pantalla, exhibición en un monitor u otro dispositivo ópticamente activo, o presentación en una forma de copia dura, tal como sobre un pizarrón blanco, pizarra o atril. Mientras que cada uno de estos métodos tiene beneficios e inconvenientes en términos de costo, complejidad, y efectividad, la proyección y exhibición son típicamente más adecuados para rápidamente cambiar datos de tal manera que pueden ser presentados a través de diapositivas o video. Adicionalmente, la proyección y exhibición también son ideales para compartir información desde las pantallas de una computadora a otro dispositivo de computación, tal como durante una presentación de diapositivas de PowerPoint de la marca Microsoft. Desafortunadamente para los usuarios y participantes de la tecnología de proyección y, los mecanismos tradicionales para proyección y exhibición de información a partir de un dispositivo de computación, mientras son altamente eficientes mientras se inicia, por lo general ha sido complejos para establecer, requiriendo de conexión de cables, tales como cables VGA, y la configuración de varios parámetros. Esta complejidad puede conducir a complicaciones antes y durante una presentación, y por lo general conduce a un retraso en la iniciación de una presentación. Adicionalmente, dichos mecanismos no permiten la transferencia simple y rápida de control de la presentación de un orador a otro. De esta forma, por ejemplo, si un primer orador está utilizando una PC para presentar una exhibición de diapositivas POWER POINT y desea ceder el piso a un segundo orador, el segundo orador típicamente debe físicamente dejar su silla y caminar a una ubicación cerca de la PC del primer orador, tiempo durante el cual habrá discontinuidad, retraso y distracción para los otros participantes. Otro problema se refiere a la seguridad de la información presentada durante dicha reunión. Específicamente, una vez que un asistente está físicamente en el cuarto, o es capaz de ver dentro del cuarto en el cual se da la presentación, no existe ninguna forma de restringir la habilidad de esa persona de ver la información presentada. Mientras los métodos físicos pueden ser empleados para prevenir el acceso inicial a la ubicación física de una presentación, dichos métodos no cuentan para la seguridad cuando se dan múltiples presentaciones en el mismo lugar como se discutió anteriormente. Es decir, una vez que uno está en un lugar de la presentación, es capaz de observar todas las presentaciones dadas en ese lugar. Para dirigir esta preocupación, muchos lugares de seminarios utilizan un número de diferentes lugares o habitaciones de presentación más pequeños. En esta forma, los individuos admitidos a cada presentación pueden ser más cuidadosamente clasificados. Sin embargo, mientras esto dirige las preocupaciones de seguridad de los presentadores, por lo general hace que la asistencia a estas presentaciones sea difícil para los asistentes. Estos asistentes ahora pueden físicamente moverse de un lugar a otro para ver las presentaciones deseadas, teniendo que empacar y desempacar sus materiales en cada sitio. Además, los asistentes con impedimentos físicos pueden perderse el inicio de una presentación o tener que dejar una presentación anterior con el fin de hacer el cambio de lugar físico. El material adicional puede perderse ya que los asistentes pueden entrar en la habitación errónea o ser incapaces de encontrar el lugar de una presentación particular. Ahí existe, por consiguiente, una necesidad en la técnica de un sistema y método de una a más proyecciones de información (1:M) que dirija tanto los requerimientos y deseos del presentador como de los asistentes, que provea seguridad para las presentaciones, y que permita el control de la información compartida durante la presentación.
COMPENDIO DE LA INVENCION La presente invención proporciona un nuevo y mejorado sistema y método para la exhibición de información a muchos asistentes. Más particularmente, la presente invención proporciona un nuevo y mejorado sistema y método para la distribución de una presentación a muchos asistentes. Preferiblemente, la presentación puede ser exhibida en un proyector, y/o en un dispositivo de exhibición de muchos asistentes. La presentación puede ser abierta, o puede requerir de la autentificacion de seguridad que será llevada a cabo antes de "admitir" que un asistente vea la presentación. En una modalidad preferida de la presente invención, tanto la presentación como los asistentes se conforman al estándar de Conectar y Operar Universal por lo serán hallados en la red. Las conexiones son hechas a través de una sesión de servicios terminal. A partir del punto de vista del presentador, el hallazgo de proyectores y asistentes permite el control sobre quien y qué es admitido a la presentación. Esto se puede lograr requiriendo una invitación, generada por el presentador, que se va a utilizar para ganar concesión para la presentación. La seguridad también puede ser agregada requiriendo una contraseña también. El presentador también puede designar una presentación como estando abierta, y puede automáticamente generar invitaciones para cualquier asistente que solicite admisión a la presentación. Desde el punto de vista de los asistentes, pueden encontrar presentaciones disponibles realizando una búsqueda en el dispositivo de presentación en la red. Entonces pueden seleccionar que presentación(es) desean ver, y pueden solicitar la admisión a la misma. Cuando un presentador desea detener la presentación, solamente informará al administrador de la presentación que detenga la presentación. El administrador de la presentación entonces desconectará todas las conexiones y limpiará cualquier estado. En una modalidad de la presente invención, se proporcionan interfases de programación de aplicación (APIs). Estas APIs incluyen métodos para visualizar una presentación y métodos para dar una presentación. Las APIs de visualización incluyen métodos para registrar y quitar del registro a un dispositivo de exhibición, y un método para atender una presentación. Las APIs para atender una presentación incluyen métodos para iniciar y detener una presentación, invitar y desconectar a un asistente, filtrar la clasificación del presentador, recuperar una lista de o usuarios y proyectores individuales, recuperar las capacidades del proyector, estado y lista de conexión, y recuperar y configurar las configuraciones y modo del despliegue del proyector.
BREVE DESCRIPCION DE LOS DIBUJOS Los dibujos acompañantes incorporados y que forman parte de la especificación ¡lustran varios aspectos de la presente invención, y junto con la descripción sirven para explicar los principios de la invención. En los dibujos: La Figura 1 es un diagrama de bloque que generalmente ilustra un sistema de computadora ejemplar sobre el cual la presente invención reside; La Figura 2 es un diagrama de bloque simplificado que ilustra una interfase de programación entre dos segmentos de código; La Figura 3 es un diagrama de bloque simplificado que ilustra una modalidad alternativa de una interfase de programación entre dos segmentos de código; La Figura 4 es un diagrama de bloque simplificado que ilustra una interfase de programación entre dos segmentos de código que tiene comunicaciones que están divididas en múltiples comunicaciones discretas, ilustrando el concepto de factorización; La Figura 5 es un diagrama de bloque simplificado que ilustra una modalidad alternativa de una interfase de programación entre dos segmentos de código que tienen comunicaciones que están divididas en múltiples comunicaciones discretas, ilustrando el concepto de factorización; La Figura 6 es un diagrama de bloque simplificado que ilustra una interfase de programación entre dos segmentos de código que tienen ciertos aspectos ignorados, agregados o redefinidos, ilustrando el concepto de redefinición; La Figura 7 es un diagrama de bloque simplificado que ilustra una modalidad alternativa de una interfase de programación entre dos segmentos de código que tienen ciertos aspectos ignorados, agregados o redefinidos, ilustrando el concepto de redefinición; La Figura 8 es un diagrama de bloque simplificado que ilustra una interfase de programación entre dos segmentos de código que tienen algo de la funcionalidad de los dos módulos de código fusionados de tal manera que la interfase entre ellos cambia de forma, ilustrando el concepto de codificación en línea; La Figura 9 es un diagrama de bloque simplificado que ilustra una modalidad alternativa de una interfase de programación entre dos segmentos de código que tienen algo de la funcionalidad de los dos módulos de código fusionados de tal manera que la interfase entre ellos cambia de forma, ilustrando el concepto de codificación en línea; La Figura 10 es un diagrama de bloque simplificado que ilustra una interfase de comunicación entre dos módulos de código en donde la comunicación se logra indirectamente a través de la división de la comunicación en múltiples comunicaciones discretas, ilustrando el concepto de divorcio; La Figura 11 es un diagrama de bloque simplificado que ilustra una modalidad alternativa de la interfase de programación entre dos módulos de código en donde la comunicación es lograda indirectamente dividiendo la comunicación en múltiples comunicaciones discretas, ilustrando el concepto de divorcio; La Figura 12 es un diagrama de bloque simplificado que ilustra el código dinámicamente reescrito para reemplazar una interfase de programación con algo diferente que logra el mismo resultado, ilustrando el concepto de reescritura; La Figura 13 es un diagrama de bloque simplificado de una modalidad alternativa del código dinámicamente reescrito para reemplazar una interfase de programación con algo diferente que logra el mismo resultado, ilustrando el concepto de reescritura; Las Figuras 14A y 14B son diagramas esquemáticos que muestran arquitecturas alternativas de un sistema en red dentro del cual una modalidad de la invención puede ser implementada, incluyendo múltiples computadoras que comprenden una computadora de proyección y múltiples computadoras objetivo de proyección, así como una pantalla o proyector de la habitación de conferencia electrónica; y La Figura 15 es un diagrama esquemático que muestra en mayor detalle la colocación e interconectividad de los componentes del programa de aplicación de proyección y componentes relacionados en una modalidad de la invención. Ya que la invención será descrita en conexión con ciertas modalidades preferidas, no se pretende limitara a esas modalidades. Por el contrario, se pretende cubrir todas las alternativas, modificaciones y equivalentes que se incluyen dentro del espíritu y alcance de la invención como se define en las reivindicaciones anexas.
DESCRIPCION DETALLADA DE LA INVENCION Cambiando ahora a los dibujos, los números de referencia similares se refieren a elementos similares, la invención se ilustra como siendo implementada en un ambiente de computación adecuado. Aunque no se requiere la invención será descrita en el contexto general de instrucciones ejecutables por computadora, tales como módulos de programa, siendo ejecutados por una computadora personal. Generalmente, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructura de datos, etc., que llevan a cabo tareas particulares o implementan tipos de datos abstractos particulares. Además, aquellos con experiencia en la técnica apreciarán que la invención puede ser practicada con otras configuraciones de sistemas de computadoras, incluyendo dispositivos portátiles, sistemas de multi-procesador, computadoras principales, y similares. La invención también puede ser practicada en ambientes de computación distribuidos, en donde las tareas de llevan a cabo a través de dispositivos de procesamiento remotos que están enlazados a través de una red de comunicaciones. En un ambiente de computación distribuido, los módulos de programa pueden estar localizados en ambos dispositivos de almacenamiento, local y remoto.
La Figura 1 ilustra un ejemplo de un ambiente del sistema de computación adecuado 100 en el cual la invención puede ser implementada. El ambiente del sistema de computación 100 es solamente un ejemplo de un ambiente de computación adecuado y no pretende sugerir ninguna limitación al alcance del uso o funcionalidad de la invención. Tampoco el ambiente de computación 100 deberá ser interpretado como teniendo ninguna dependencia o requerimiento relacionado con cualquiera o una combinación de componentes ilustrados en el ambiente de operativo ilustrativo 100. La invención es operacional con otros numerosos ambientes o configuraciones de sistema de computación de propósito general o especial. Ejemplos de sistemas de computación, ambientes y/o configuraciones bien conocidos que pueden ser adecuados para uso con la invención incluyen, pero no se limitan a, computadoras personales, computadoras servidor, dispositivos portátiles, sistemas multi-procesador, sistemas basado en microprocesador, cajas encima del televisor, electrónicos de consumidor programables, PCs en red, minicomputadoras, computadoras principales, ambientes de computación distribuidos que incluyen cualquiera de los sistemas o dispositivos anteriores, y similares. La invención puede ser descrita en el contexto general de instrucciones ejecutables por computadora, tales como módulos de programa, siendo ejecutados por una computadora, Generalmente, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructura de datos, etc. que realizan tareas particulares o implementan tipos de datos abstractos particulares. La invención también puede ser practicada en ambientes de computación distribuidos en donde las tareas se llevan a cabo a través de dispositivos de procesamiento remotos que están enlazados a través de una red de comunicaciones. En un ambiente de computación distribuido, los módulos de programa pueden estar localizados tanto en medios de almacenamiento locales como remotos incluyendo dispositivos de almacenamiento de memoria. Con referencia a la Figura 1, un sistema ilustrativo para implementar la invención incluye un dispositivo de computación de propósito general en la forma de una computadora 110. Los componentes de la computadora 110 pueden incluir, pero no se limitan a, una unidad de procesamiento 120, una memoria del sistema 130, y un conductor común de sistema 121 que acopla varios componentes del sistema incluyendo la memoria del sistema a la unidad de procesamiento 120. El conductor común de sistema 121 puede ser cualquiera de varios tipos de estructuras incluyendo un conductor común de memoria o controlador de memoria, un conductor común periférico, y un conductor común local, utilizando cualquiera de una variedad de arquitecturas de conductores comunes. A manera de ejemplo, y no limitación, dichas arquitecturas incluyen el conductor común de la Arquitectura Estándar de la Industria (ISA), el conductor común de la Arquitectura del Micro Canal (MCA), el conductor común de ISA Mejorada (EISA), un conductor común local de la Asociación de Estándares Electrónicos de Video (VESA), y un conductor común de Interconexión del Componente Periférico (PCI) también conocido como conductor común Mezanine. La computadora 110 típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora pueden ser cualquier medio disponible que puede ser accedido a través de la computadora 110 e incluye tanto medios volátiles como no volátiles, medios removibles y no removibles. A manera de ejemplo, y no limitación, los medios legibles por computadora pueden comprender medios de almacenamiento por computadora y medios de comunicación. Los medios de almacenamiento por computadora incluyen tanto medios volátiles como no volátiles, medios removibles y no removibles implementados en cualquier método o tecnología para almacenar la información tal como instrucciones legibles por computadora, estructura de datos, módulos de programa, u otros datos. Los medios de almacenamiento por computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria no volátil, u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD), u otro almacenamiento en disco óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético, u otros dispositivos de almacenamiento magnéticos, o cualquier otro medio que puede ser utilizado para almacenar la información deseada y que pueden ser accedida a través de la computadora 110. Los medios de comunicación típicamente modalizan instrucciones legibles por computadora, estructura de datos, módulos de programa u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte e incluyen cualquier medio de distribución de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecidas o cambiadas en tal forma que codifica la información en la señal. A manera de ejemplo, y no limitación, los medios de comunicación incluyen medios cableados tal como una red cableada, o conexión cableada directa, y medios inalámbricos tal como los medios inalámbricos acústicos, RF, infrarrojos y otros medios inalámbricos. Las combinaciones de cualquiera de los anteriores también deberán ser incluidas dentro del alcance de los medios legibles por computadora. La memoria del sistema 130 incluye medios de almacenamiento pro computadora en la forma de memoria volátil y/o no volátil tal como memoria de sólo lectura (ROM) 131 y memoria de acceso aleatorio (RAM) 132. Un sistema de entrada/salida básico 133 (BIOS), que contiene rutinas básicas que ayudan a transferir la información entre elementos dentro de la computadora 110, tal como durante el arranque, está típicamente almacenado en ROM 131. RAM 132 típicamente consiste de datos y/o módulos de programa que son inmediatamente accesibles para y/o actualmente siendo operados en la unidad de procesamiento 120. A manera de ejemplo, y no limitación, la Figura 1 ilustra el sistema operativo 134, programas de aplicación 135, otros módulos de programa 136 y datos de programa La computadora 110 también puede incluir otros medios de almacenamiento removibles/no removibles, volátiles/no volátiles. A manera de ejemplo solamente, la Figura 1 ilustra una unidad de disco duro 141 que lee de o escribe en un medio magnético no removible, no volátil, una unidad de disco magnético 151 que lee de o escribe en un disco magnético removible, no volátil 152, una unidad de disco óptico 155 que lee de o escribe en un disco óptico removible, no volátil 156 tal como un CD ROM u otro medio óptico. Otros medios de almacenamiento por computadora removibles/no removibles, volátiles/no volátiles que pueden ser utilizados en el ambiente operativo ilustrativo incluyen, pero no se limitan a, casetes de cinta magnética, tarjetas de memoria no volátil, discos versátiles digitales, cinta de video digital, RAM de estado sólido, ROM de estado sólido, y similares. La unidad de disco duro 141 está típicamente conectada al conductor común de sistema 121 a través de una interfase de memoria no removible tal como la interfase 140, y la unidad de disco magnético 151 y la unidad de disco óptico 155 están típicamente conectadas al conductor común de sistema 121 a través de una interfase de memoria removible, tal como la interfase 150. Las unidades y sus medios de almacenamiento por computadora asociados discutidos anteriormente e ilustrados en la Figura 1, proporcionan el almacenamiento de instrucciones legibles por computadora, estructura de datos, módulos de programa y otos datos para la computadora 110. En la Figura 1, por ejemplo, la unidad de disco duro 141 se ilustra como almacenando el sistema operativo 144, programas de aplicación 145, otros módulos de programa 146 y datos de programa 147. Observar que esto componentes pueden ser ya sea iguales o diferentes del sistema operativo 134, programa de aplicación 135, otros módulos de programa 136 y datos de programa 137. Al sistema operativo 144, programa de aplicación 145, otros módulos de programa 146 y datos de programa 147 se les han dado números diferentes en la presente para ilustrar que, a un mínimo, son copias diferentes. Un usuario puede capturar comandos e información en la computadora 110 a través de dispositivos de entrada tales como un teclado 162 y un dispositivo de apuntamiento 161, comúnmente referido como un ratón, seguiblola o una almohadilla sensible al tacto. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, palanca de mandos, almohadilla para juegos, antena parabólica, escáner, o similares. Estos y otros dispositivos de entrada por lo general están conectados a la unidad de procesamiento 120 a través de una inferíase de entrada de usuario 160 que está acoplada al conductor común del sistema, pero puede estar conectada a través de otras interfases y estructuras de conductores comunes, tales como un puerto paralelo, un puerto para juegos, o un conductor común serial universal (USB). Un monitor 191 u otro tipo de dispositivo de despliegue también está conectado al conductor común de sistema 121 a través de una interfase, tal como una interfase de video 190. Además del monitor, las computadoras también pueden incluir otros dispositivos de salida periféricos tales como bocinas 197 y la impresora 196, los cuales pueden estar conectados a través de una interfase periférica de salida 195. La computadora 110 puede operar en un ambiente conectado en red utilizando conexiones lógicas a una o más computadoras remotas, tal como una computadora remota 180. La computadora remota 180 puede ser una computadora personal, un servidor, un direccionador, una PC en red, un dispositivo par, u otro nodo de red común, y típicamente incluye muchos o todos los elementos descritos anteriormente con relación a la computadora personal 110, aunque solamente un dispositivo de almacenamiento de memoria 181 ha sido ilustrado en la Figura 1. Las conexiones lógicas descritas en la Figura 1 incluyen una red de área local (LAN) 171, y una red de área amplia (WAN) 173, pero también pueden incluir otras redes. Dichos ambientes conectados en red son lugares comunes en oficinas, redes de computadora amplias de empresa, intranets y el Internet. Cuando se utiliza en un ambiente conectado en LAN, la computadora personal 110 está conectada a la LAN 171 a través de una interfase de red o adaptador 170. Cuando se utiliza en un ambiente conectado en WAN, la computadora personal 110 típicamente incluye un módem 172 u otros medios para establecer comunicaciones a través de WAN 173, tal como el Internet. El módem 172, el cual puede ser interno o externo, puede estar conectado al conductor común de sistema 121 a través de una interfase de entrada de usuario 160, u otro mecanismo apropiado. En un ambiente conectado en red, los módulos de programa descritos con relación a la computadora personal 110, o porciones de los mismos, pueden estar almacenados en el dispositivo de almacenamiento por computadora. A manera de ejemplo, y no limitación, la Figura 1 ilustra programas de aplicación remotos 185 como residentes en el dispositivo de memoria 181. Se apreciará que las conexiones en red mostradas son ilustrativas y otros medios para establecer un enlace de comunicación entre las computadoras pueden ser utilizados. En la descripción que sigue, la invención será descrita con referencia a acciones y representaciones simbólicas de operaciones que son realizadas a través de una o más computadoras, a menos que se indique otra cosa. Es decir, se entenderá que dichas acciones y operaciones, las cuales a veces son referidas como siendo ejecutadas por computadora, incluyen la manipulación a través de la unidad de procesamiento de la computadora de señales eléctricas representando datos en una forma estructurada. Esta manipulación transforma los datos o los mantiene en ubicaciones en el sistema de memoria de la computadora, la cual reconfigura u en otras palabras altera la operación de la computadora en una forma bien entendida por aquellos con experiencia en la técnica. Las estructura de datos en donde los datos son mantenidos como ubicaciones físicas de la memoria que tienen propiedades particulares definidas por el formato de los datos. Sin embargo, ya que la invención está siendo descrita en el contexto anteriormente mencionado, no pretende ser una limitante ya que aquellos con experiencia en la técnica apreciarán que varias de las acciones y la operación descrita de aquí en adelante también pueden ser implementadas en hardware. Ciertamente, una interfase de programación (o más simplemente, interfase) puede ser visualizada como cualquier mecanismo, proceso, protoco9lo para habilitar uno o más segmentos de código para comunicarse con o acceder la funcionalidad provista por uno o más de otros segmentos de código. Alternativamente, una interfase de programación puede ser visualizada como uno o más mecanismos, método(s), llamada(s) de función, módulo(s), objeto(s), etc. de un componente de un sistema capaz de comunicativamente acoplarse a uno o más de otros mecanismos, método(s), llamada(s) de función, módulo(s), etc. de otro componente(s). El término "segmento de código" en la frase precedente, pretende incluir una o más instrucciones o líneas de código, e incluye, por ejemplo, módulos, objetos, sub-rutinas, funciones, etc. de código, con respecto a la terminología aplicada o si los segmentos de código están separadamente compilados, o si los segmentos de código son provistos como fuentes, intermediarios, u códigos de objeto, si los segmentos de código son utilizados en un sistema o proceso de tiempo de operación, o si están localizados en la misma o diferente máquina o distribuidos a lo largo de múltiples máquinas, o si la funcionalidad representada por los segmentos de código están implementados totalmente en software, totalmente en hardware, o una combinación de hardware y software. Idealmente, una interfase de programación puede ser visualizada genéricamente, como se muestra en la Figura 2 o la Figura 3. La Figura 2 ilustra una interfase la Interfase 1 como un conducto a través del cual el primero y el segundo segmento del código de comunican. La Figura 3 ilustra una interfase como comprendiendo objetos de interfase 11 e 12 (los cuales pueden o no pueden ser parte del primero y segundo segmento del código), lo cual habilita al primero y segundo segmentos del código de un sistema para comunicarse a través de un medio M. En la vista de la Figura 3, se pueden considerar objetos de interfase 11 e 12 como interfases separadas del mismo sistema y también se puede considerar que los objetos 11 e 12 más medio M comprenden la interfase. Aunque las Figuras 2 y 3 muestran flujo bidireccional e interfases en cada lado del flujo, ciertas implementaciones solamente pueden tener flujo de información en una dirección (o no flujo de información como se describe más adelante) o solamente pueden tener un objeto de interfase en un lado. A manera de ejemplo, y no limitación, los términos tales como interfase de programación de aplicación (API), punto de entrada, método, función, subrutina, llamada de procedimiento remoto, e interfase del modelo del objeto componente (COM), se abarcan dentro de la definición de interfase de programación. Los aspectos de dicha interfase de comunicación pueden incluir el método a través del cual el primer código de segmento transmite información (en donde "información" se utiliza en su sentido más amplio e incluye datos, comandos, solicitudes, etc.) a un segundo segmento del código; el método por el cual el segundo segmento de código recibe la información; y la estructura, secuencia, sintaxis, organización, esquema, cronometraje y contenido de la información. A este respecto, el medio de transporte subyacente por sí mismo puede ser no importante a la operación de la interfase, si el medio es cableado o inalámbrico, o una combinación de ambos, mientras la información sea transportada en la forma definida por la interfase. En ciertas situaciones, la información no puede ser pasada en una o ambas direcciones en el sentido convencional, ya que la transferencia de la información puede ser ya sea a través de otro mecanismo (por ejemplo, colocada en una memoria temporal, archivo, etc. separada del flujo de información entre los segmentos de código) o no existente, como cuando un segmento de código simplemente accede la funcionalidad realizada por el segundo segmento de código. Cualquiera o todos estos aspectos pueden ser importantes en una situación dada, por ejemplo, dependiendo de si los segmentos de código son parte de un sistema en una configuración relajadamente acoplada o fuertemente acoplada, y por lo tanto esta lista deberá ser considerada ilustrativa y no limitante. Esta noción de una interfase de programación es conocida por aquellos con experiencia en la técnica y es clara a partir de la descripción detallada anteriormente mencionada de la invención. Sin embargo existen otras formas de implementar una interfase de programación, y, a menos que se excluya expresamente, estas también pretenden ser abarcadas por las reivindicaciones establecidas al final de esta especificación. Dichas otras formas pueden parecer ser más sofisticadas o complejas que la vista simple de las Figuras 2 y 3, pero no obstante realizan una función similar para lograr el mismo resultado global. Ahora se describirán brevemente algunas implementaciones alternativas de una interfase de programación.
A. FACTORIZACION Una comunicación de un segmento de código a otro puede ser lograda indirectamente dividiendo la comunicación en múltiples comunicaciones discretas. Esto se describe esquemáticamente en las Figuras 4 y 5. Como se muestra, algunas interfases pueden ser descritas en términos de grupos divisibles de funcionalidad. De esta forma, la funcionalidad de la interfase de las Figuras 2 y 3 puede ser factorizada para lograr el mismo resultado, justo como se puede matemáticamente proporcionar 24, o 2 veces 2 veces 3 veces. Por consiguiente, como se ¡lustra en la Figura 4, la función provista por la interfase Interfasel puede ser subdividida para convertir las comunicaciones de la interfase en múltiples interfases Interfase 1A, Interfase 1B, Internase 1C, etc., mientras se logra el mismo resultado. Como se ilustra en la Figura 5, la función provista por la interfase 11 puede ser subdividida en múltiples interfases 11a, 11b, 11c, etc., mientras se logra el mismo resultado. Similarmente, la interfase 12 del segundo segmento del código el cual recibe información del primer segmento del código puede ser factorizada en múltiples interfases 12a, 12b, 12c, etc. Cuando se factoriza, el número de interfases incluidas con el primer segmento del código no necesitan coincidir con el número de interfases incluidas con el segundo segmento del código. En cualquiera de los casos de las Figuras 4 y 5, el espíritu funcional de la interfases Interfasel e 11 permanecen iguales como con las Figuras 2 y 3, respectivamente. Por ejemplo, el ordenar las operaciones puede ser no importante, y consecuentemente, una función llevada a cabo por una interfase puede ser llevada a cabo bien por adelantado para alcanzar la interfase, por otra pieza del código o interfase, o llevada a cabo a través de un componente separado del sistema. Además, uno con experiencia en la técnica de la programación puede apreciar que existe una variedad de formas para hacer diferentes llamadas de funciones que logren el mismo resultado.
B. REDEFI NICION En algunos casos, puede ser posible ignorar, agregar o redefinir ciertos aspectos (por ejemplo, parámetros) de una interfase de programación mientras aún se logra el resultado pretendido. Esto se ilustra en las Figuras 6 y 7. Por ejemplo, asumir que la interfase Interfasel de la Figura 2 incluye una llamada de función Cuadrado(entrada, precisión, salida), una llamada que incluye tres parámetros, entrada, precisión y salida, y la cual se emite del 1er. Segmento de Código al 2o. Segmento de Código. Si el parámetro intermedio precisión no es de importancia en un escenario dado, como se muestra en la Figura 6, puede ser simplemente ignorado o aún reemplazado con un parámetro insignificante (en esta situación). También se puede agregar un parámetro adicional sin importancia. En cualquier evento, la funcionalidad del cuadrado puede ser lograda, mientras la salida sea devuelta después de que la entrada es cuadrada por el segundo segmento de código. Precisión puede ser muy bien un parámetro significativo para alguna porción en corriente descendiente u otra porción del sistema de computadora; sin embargo, una vez que se reconoce que precisión no es necesaria para el estrecho propósito de calcular el cuadrado, puede ser reemplazada o ignorada. Por ejemplo, en lugar de pasar un valor de precisión válido, un valor insignificante tal como una fecha de nacimiento podría ser pasado sin adversamente afectar el resultado. Similarmente, como se muestra en la Figura 7, la interfase 11 es reemplazada por la inferíase 11', redefinida para ignorar o agregar parámetros a la interfase. La interfase 12 puede similarmente ser redefinida como la interfase 12', redefinida para ignorar parámetros innecesarios, o parámetros que pueden ser procesados en algún otro lugar. El punto aquí es que en algunos casos una interfase de programación puede incluir aspectos, tales como parámetros, que no son necesarios para algún propósito, y por lo tanto deben ser ignorados o redefinidos, o procesados en algún otro lugar para otro propósito.
C. CODIFICACION EN LINEA También puede ser factible fusionar algo o toda la funcionalidad de dos módulos de código separados de tal manera que la "interfase" entre ellos cambie forma. Por ejemplo, la funcionalidad de las Figuras 2 y 3 puede ser convertida a la funcionalidad de las Figuras 8 y 9, respectivamente. En la Figura 8, los Segmentos de Código 1o. y 2o. previos de la Figura 2 son fusionados en un módulo que contiene ambos. En este caso, los segmentos de código aún se estarán comunicando uno con el otro pero la interfase puede ser adaptada a una forma la cual es más adecuada al módulo individual. De esta forma, por ejemplo, las declaraciones de la Llamada y Devolución formal pueden ya no ser necesarias, pero un procesamiento o respuesta(s) consecuente con la interfase, Interfasel aún puede estar en efecto. Similarmente, como se muestra en la Figura 9, parte (o toda) la interfase 12 de la Figura 3 puede ser escrita en línea en la interfase 11 para formar la interfase 11". Como se ilustra, la interfase 12 está dividida en 121 e I2b, y la porción de la interfase I2a ha sido codificada en línea con la interfase 11 para formar la interfase 11". Para un ejemplo concreto, considerar que la interfase 11 de la Figura 3 realiza un cuadrado de llamada de función (entrada, salida), el cual es recibido por la interfase 12, la cual después del procesamiento el valor pasa con la entrada (para cuadrarla) a través del segundo segmento del código, pasa de regreso al resultado cuadrado con salida. En dicho caso, el procesamiento llevado a cabo por el segundo segmento de código (entrada cuadrada) puede ser realizado a través del primer segmento del código sin una llamada a la interfase.
D. DIVORCIO Una comunicación desde un segmento de código a otro puede ser lograda indirectamente dividiendo la comunicación en múltiples comunicaciones discretas. Esto se describe esquemáticamente en las Figuras 10 y 11. Como se muestra en la Figura 10, una o más piezas del software intermedio (Interfase(s) Divorcio, ya que la funcionalidad de divorcio y/o la interfase funciona a partir de la interfase original) son provistas para convertir las comunicaciones del la primera interfase, Interfasel, para conformarlas en una interfase diferente, en este caso las interfases lnterfase2A, lnterfase2B e lnterfase2C. Esto debería ser hecho, por ejemplo, en donde existe una base instalada de aplicaciones designadas para comunicarse con, digamos, un sistema operativo de acuerdo con un protocolo de la Interfasel, pero entonces el sistema operativo cambia para utilizar una interfase diferente, en este caso las interfases lnterfase2A, lnterfase2B e lnterfase2C. El punto es que la interfase original utilizada por el 2o. Segmento del Código cambia de tal forma que ya no es compatible con la interfase utilizada por el 1er. Segmento del Código, y por lo tanto se utiliza un intermediario para hacer la antiguas y nueva interfases compatibles. Similarmente, como se muestra en la Figura 11, puede ser introducido un 3er. Segmento del código con la interfase de divorcio DI1 para recibir las comunicaciones de la interfase 11 y con la interfase de divorcio DI2 para transmitir la funcionalidad de la interfase a, por ejemplo, las interfases I2a e 12 b , rediseñadas para trabajar con DI2, pero para proporcionar el mismo resultado funcional. Similarmente, DI1 y DI2 pueden trabajar juntas para traducir la funcionalidad de las interfases 11 e 12 de la Figura 3 a un nuevo sistema operativo, mientras proporcionan el mismo o similar ** resultado funcional.
E. REESCRITURA Aún otra posible variante es dinámicamente reescribir el código para reemplazar la funcionalidad de la interfase con otra cosa, pero que logre el mismo resultado global. Por ejemplo, puede existir un sistema en el cual un segmento de código presentado en un lenguaje intermediario (por ejemplo, IL Microsoft, JavaByteCode, etc.) es provisto a un compilador o intérprete Justo-a-Tiempo ( J IT) en un ambiente de ejecución (tal como aquel provisto por el marco de trabajo .Net, el ambiente de tiempo de operación Java, u otros ambientes de tipo tiempo de operación similares). El compilador JIT puede ser escrito para así convertir dinámicamente las comunicaciones del 1er. Segmento del Código al 2o. Segmento del Código, es decir, para conformarlos a una interfase diferente según pueda ser requerida por el 2o. Segmento del Código (ya sea el 2o. Segmento del Código original o uno diferente). Esto se describe en las Figuras 12 y 13. Como se puede ver en la Figura 12, este método es similar al escenario del Divorcio descrito anteriormente. Esto puede ser hecho, por ejemplo, en donde una base instalada de aplicaciones está diseñada para comunicarse con un sistema operativo de acuerdo con un protocolo de la Interfasel, pero entonces el sistema operativo cambia para utilizar una interfase diferente. El Compilador JIT podría ser utilizado para conformar las comunicaciones al vuelo de las aplicaciones de la base instaladas a una nueva interfase del sistema operativo. Como se describe en la Figura 13, este método de reescribir dinámicamente la interfase(s) puede ser aplicado para factorizar dinámicamente, o por el contrario alterar la interfase(s) también. También se observa que los escenarios anteriormente descritos para lograr el mismo o un resultado similar como una interfase a través de modalidades alternativas también puede ser combinado en varias formas, serialmente y/o en paralelo, o con otro código interviniendo. De esta forma, las modalidades alternativas presentadas anteriormente no son mutuamente exclusivas y pueden ser mezcladas, comparadas y combinadas para producir el mismo o escenarios equivalentes a los escenarios genéricos presentados en las Figuras 2 y 3. También se observar que, con la mayoría de las construcciones de programación, existen otros caminos similares para lograr la misma o una funcionalidad similar de una interfase la cual no se describirá aquí, pero no obstante está representada por el espíritu y alcance de la invención, es decir, se observa que es por lo menos parcialmente la funcionalidad representada por, y los resultados ventajosos habilitados a través de, una interfase que subyace el valor de una interfase. Con esto en mente, ahora se dirige la atención a la Figura 14A. Esta figura ilustra esquemáticamente un ambiente conectado en red dentro del cual la presente invención puede ser implementada. En particular, el ambiente en red mostrado en las figuras incluye un dispositivo de proyección o presentador 201, el cual puede ser cualquier dispositivo de computación tal como, por ejemplo, aquellos descritos anteriormente con referencia a la Figura 1, para proyectar la información a uno o más dispositivos objetivo de proyección o asistentes, 203, 205, 207 y 209. Los dispositivos objetivo de proyección o asistentes 203-207 también son conocidos como usuarios y están ilustrados como dispositivos de computación no dedicados similares al presentador 201. En este caso, por ejemplo, los asistentes (usuarios) 201-207 pueden ser o utilizar, a manera de ejemplo y no limitación, computadoras portátiles, computadoras de escritorio, dispositivos de computación portátiles, cualquier otro dispositivo de computación multi-propósito, o cualquier combinación de estos tipos de dispositivos. Un usuario no necesita utilizar o ser un dispositivo de computación tradicional, y puede ser por ejemplo un sistema de televisión. La red 211 es utilizable para transferir información entre los asistentes 203-207 y el presentador 201. Similarmente, los asistentes pueden adicionalmente o alternativamente incluir un dispositivo de proyección alternativo tal como un proyector de sala de conferencia electrónico o dispositivo de despliegue 209 y puede ser referido como un proyector. Como con los otros asistentes (usuarios) 203.207, el asistente (proyector) 209 preferiblemente se comunica con el presentador 201 (el cual también es un usuario) a través de la red 211. La red 211 puede ser cualquier tipo de red, pero típicamente comprenderá interfases inalámbricas entre el presentador 201 y la red 211, y entre la red 211 y los asistentes (usuarios) 203-207. Además, la interfase entre la red 211 y el asistente (proyector) 209 puede deseablemente ser ya sea cableado o inalámbrico. Por ejemplo, ya que el proyector 209 puede permanecer en un lugar particular, tal como una sala de conferencias, durante un período largo de tiempo, no existe un decremento significativo en la utilidad del dispositivo teniendo una interfase cableada de un proyector 209 a la red 211. La red 211 por sí misma generalmente será, aunque no necesariamente, una infraestructura cableada tal como una LAN corporativa, una WAN, u otra red cableada total o parcialmente, tradicional. Un ambiente en red alternativo se muestra esquemáticamente en la Figura 14B. En particular, el presentador 201 y los asistentes 203-209 están interconectados a través de una red inalámbrica ad hoc que consiste de enlaces inalámbricos 213-225. Observar que no todas las conexiones 213-225 son necesarias ya que una red ad hoc no requiere de conexión directa de cada nodo a cada otro nodo. Por ejemplo, un nodo puede estar conectado a todos los nodos de la red ad hoc indirectamente a través de una conexión individual a otro nodo. De esta manera, las topologías ad hoc incluyen anillos, líneas, redes, concentradores de puertos y radios, y/u otras topologías, según sea necesario. Por lo general, la distancia física de un dispositivo particular de otros dispositivos determinará a cual dispositivo o dispositivos, si hay alguno, de la red ad hoc el dispositivo particular se conecta directamente. Los escenarios de uso e interacción de los componentes anteriormente mencionados serán descritos brevemente de aquí en adelante prosiguiendo a una descripción detallada de las mecánicas de interacción. El presentador 201 está en posesión de un individuo que hace la presentación que desea proyectar material de interés a individuos receptores, típicamente en una sala de conferencias o sala de juntas, aunque el sistema de la invención también es utilizable en configuraciones no de negocios, tales como una ambiente de casa, también. El material de interés puede ser gráfico, tal como imágenes o video, o textual tal como en un documento, gráfica, etc., y también puede incluir elementos de audio. En una modalidad de la invención, el material de interés es enteramente información de audio. Aunque el material de interés no necesita ser generado por computadora, es preferiblemente accesible al presentador 201 localmente o remotamente en un formato legible por computadora. Los asistentes (usuarios) 203-207 pueden ser las computadoras portátiles de los individuos receptores, mientras que el asistente (proyector) 209 puede ser un sistema de proyección dedicado, tal como un proyector de la sala de conferencias o una pantalla grande de monitor u otra pantalla no típicamente asociada con cualquier usuario, diferente de una computadora portátil o dispositivo portátil. La conectividad de la red entre los asistentes 203-209 típicamente comienza según cada dispositivo llega al rango de la comunicación del presentador 201 asociado con el usuario presentador. De esta forma, por ejemplo, asumir que el proyector 209 reside permanentemente en una sala de conferencias. Cuando el usuario presentador entra a la sala de conferencias con el presentador 201, una conexión inalámbrica, ya sea ad hoc o a traes de una infraestructura de red, se forma entre el proyector 209 y el presentador 201. El usuario presentador entonces es capaz de proyectar material de su dispositivo 201 sobre la pantalla del proyector 209 para que los individuos receptores observen. En esta forma, el usuario presentador ha efectuado una presentación sin conectar físicamente ningún cable o cordón, y puede similarmente terminar la presentación, o transferir su control a otro individuo presentador utilizando otro dispositivo de proyección, sin desconectar ningún cable o cordón. En gran parte en la misma forma, el usuario presentador puede presentar material de interés a un número de dispositivos objetivo tales como asistentes (usuarios) 203-207. Por ejemplo, en una modalidad de la presente invención la conexión en red entre el presentador 201 y los usuarios 203-207 puede ser automáticamente ejecutada después del hallazgo automatizado sin requerir que el usuario localice y manipule conexiones físicas. En este caso, la presentación del material ocurre a partir del presentador 201 a las pantallas de los asistentes, las cuales pueden ser computadoras portátiles que pertenecen a los individuos receptores. Las mecánicas particulares de esto serán discutidas más completamente más adelante, como lo serán los varios aspectos de seguridad asociados con las mismas. La Figura 15 ilustra los diferentes componentes y binarios presentes en el sistema y métodos de la presente invención. El dispositivo de presentación 500 es creado y registrado en la máquina del presentador. El dispositivo es registrado con UPnP, y una vez registrado puede ser hallado a través de SSDP. Preferiblemente, el dispositivo es identificado a través de su nombre de dispositivo único (UDN) que es creado a través de UPnP durante el proceso de registro. El dispositivo contiene un Servicio UPnP conocido como serviciopresentación. El dispositivo de exhibición del usuario 502 es creado y registrado en la máquina del asistente. Este dispositivo también es registrado con UPnP, y una vez registrado puede ser hallado utilizando SSDP. Este dispositivo también es identificado a través de su UDN, y contiene un servicio UPnP conocido como serviciodespliegueusuario. Los tres binarios presentes en esta Figura 15 incluyen el archivo presentación.dll CRP 504, asistente.dll CRP 506, y Microsoft.CRP.dll 508. El archivo presentación.dll CRP incluye el dispositivopresentación el cual es el dispositivopresentación UPnP. Adicionalmente, este binario proporciona funcionalidad para el registro y desregistro del dispositivopresentación. Estos métodos se utilizan para registrar y desregistrar los dispositivospresentación. También se incluye la funcionalidad del control del proyector. Estos métodos se utilizan para controlar el proyector, por ejemplo, obteniendo las capacidades del proyector, modo de despliegue, etc. Finalmente, presentacion.dll CRP incluye la funcionalidad de control del asistente. Estos métodos se utilizan para enviar invitaciones a los asistentes. El archivo asistente.dll CRP binario proporciona funcionalidad para el dispositivo de despliegue del usuario, el cual es el dispositivo UPnP para la pantalla del usuario. La funcionalidad para el registro y desregistro del dispositivo de despliegue del usuario también se proporciona. Estos métodos se utilizan para registrar y desregistrar el dispositivo de despliegue del usuario. Finalmente, el binario asistente.dll CRP incluye la funcionalidad para el control de la presentación. Estos métodos se utilizan para solicitar una invitación del presentador. El binario Microsoft.CRP.dll es una envoltura provista sobre el CRP.asistente.dll y los binarios presentación.dll CRP. Esto expone las interfases manejadas de manera amigable del usuario a la aplicación. Este Microsoft.CRP.dll también implementa la funcionalidad para controlar y crear sesiones de servicio terminal 510. El sistema y métodos del proyector de la sala de conferencias (CRP) de la presente invención son dependientes de tres piezas. La primera es la interfase de usuario provista a la aplicación. La segunda son los servicios de terminal (TS). Para proyectar una presentación a otra máquina (proyector o asistente) se utilizan las APIs de colaboración de los servicios de terminal. Los servicios de terminal permiten a uno o más clientes del servicio de terminal conectarse a un servidor de servicios de terminal y ver la sesión que se está presentando en pantalla a través del servidor TS (típicamente la computadora de escritorio). El presentador actúa como un servidor de servicios de terminal, y los asistentes y proyectores actúan como los clientes del servicio de terminal. Tercero, CRP es dependiente de UPnP. UPnP tiene un concepto de un dispositivo, el cual expone un grupo de acciones que pueden ser invocadas a través de cualquier aplicación en la máquina local o remota. UPnP también proporciona SSDP para hallar los dispositivos UPnP. En una configuración típica, la presentación, asistentes y proyector, todos son dispositivos UPnP. Al utilizar SSDP un usuario puede encontrar los dispositivos de presentación, dispositivos de asistente, y dispositivos de proyector presentes en la red local. Para que un cliente TS se conecte a un servidor TS, el cliente TS necesita una invitación generada por el servidor TS. Para transferir la invitación del servidor al cliente, se utilizan las acciones provistas por el dispositivo UPnP. Existen acciones que pueden ser invocadas en los dispositivos UPNP, por ejemplo, el dispositivo de presentación tendrá una acción para solicitar una invitación, mientras que los dispositivos de asistentes tendrán una acción que puede ser utilizada para invitar a un asistente. Cuando un presentador quiere dar una presentación, creará una sesión de servicios de terminal 510. Si hay asistentes y proyectores presentes que desea invitar, creará un boleto de servicios de terminal y enviará \é invitación a los asistentes y a los proyectores. Para invitar a un asistente, una acción de invitar en el dispositivo de asistente es invocada. Para conectarse a un proyector, una acción de conectar en el dispositivo UPnP del proyector es invocada. Una vez que el proyector y el asistente tienen una invitación proporcionarán la invitación al cliente de los servicios de terminal. Este cliente de los servicios de terminal entonces contactará ia sesión de servicios de terminal. Como es bien conocido en la técnica, un servidor TS es un componente COM. Este se utiliza para la creación de la sesión. Como con cualquier otro componente COM, debe ser registrado para ser utilizado. También como es bien conocido en la técnica, el cliente TS es un control X activo. El control X activo tiene algunas propiedades asociadas con él tales como anchura, altura del control, invitación y la contraseña requerida para utilizar la invitación. El control X activo puede ser registrado para ser utilizado. Es mecanismo hallado típicamente será SSDP para hallar los dispositivos en el sistema CRP. Los UDNs de estos dispositivos entonces serán provistos como una entrada. Las variables de estado para estos dispositivos en una modalidad ilustrativa de la presente invención incluyen A_Cadena, la cual es una cadena genérica utilizada para representar un valor específico o lista de valores, y A_Nombre, la cual es la cadena de Nombre o identificación del dispositivo de despliegue. Habiendo introducido ambos, los Estados, las Acciones ahora serán brevemente discutidas. Estas acciones incluyen un método invitar, un método de nombre amigable del presentador, y un método del nombre amigable de la presentación. El método ObtenerNombre devuelve la cadena de identificación del asistente. Si el valor especificado es inválido, este método devuelve una descripción de error Valorlnválido. En una modalidad de la presente invención, un usuario puede llevar a cabo dos operaciones, para saber que el usuario va a dar una presentación o ver una presentación. Cuando se da una presentación un presentador podría querer desplegar la presentación en un proyector y/o en otro dispositivo de despliegue del usuario. Cuando se desea dar una presentación, un presentador llevará a cabo los siguientes pasos. Primero, el presentador iniciará la sesión de presentación. Esto creará un dispositivo de presentación que será posible hallar a través de otros usuarios. También creará una sesión de servicios de terminal. El presentador también querrá hallar proyectores cercanos y conectarse a esos proyectores. Para hacer esto el presentador realiza una búsqueda SSDP para los proyectores. La búsqueda SSDP devolverá una lista de proyectores. El presentador entonces seleccionará uno o más proyectores de la lista. El UDN del proyector y la contraseña si es requerida, entonces es provista para establecer ía conexión. Una invitación es creada para el proyector en base a la contraseña que utiliza el administrador de la invitación de la sesión TS. La invitación entonces será enviada al proyector invocando una acción de conectarse al dispositivo de despliegue del proyector. Un usuario también puede querer invitar oros usuarios para ver la presentación. Para hacer eso, el presentador puede hacer una búsqueda de otros usuarios. La búsqueda proveerá los UDN de los dispositivos de despliegue de los usuarios. Una vez que el UDN es hallado, el administrador de invitaciones de servicios de terminal creará una invitación para el invitado (por servicios de invitación solamente, por el contrario se usa invitación genérica). La invitación entonces será enviada al invitado invocando la acción de invitar en el dispositivo de despliegue del usuario. Un presentador también puede desear ser notificado cuando otro usuario quiere asistir a la presentación. La acción Solicitarlnvitación en el dispositivo de presentación discutido anteriormente será invocada por el usuario para unirse a la presentación. En ese caso, se da una comunicación de vuelta al presentador con la información acerca del usuario. El presentador entonces puede utilizar esta información para invitar al usuario justo como cualquier otro usuario. Alternativamente, un presentador puede no querer ser molestado con invitaciones, y puede simplemente querer permitir a cualquiera unirse a la presentación, sin ninguna autentificación o contraseña. En ambos casos, siempre que la acción Solicitarlnvitacion es invocada en el dispositivo de presentación del presentador, la invitación será enviada inmediatamente al usuario. Si la presentación es segura, entonces la invitación será protegida con una contraseña. Cuando un presentador quiere detener la presentación, solo desregistrará el dispositivo de presentación y cerrar la sesión TS. La otra operación realizada por usuario es visualizar una presentación. En este caso, el asistente puede querer primero hallar las presentaciones disponibles. Se puede hacer esto utilizando SSDP como es bien entendido en la técnica. El asistente recibirá el UDN de la presentación, y entonces invocará la acción Solicitarlnvitación con información relevante en el dispositivo de presentación. Esto es válido solamente en el caso de que la presentación permita el acceso a través de dichas solicitudes. Si el presentador permite al asistente ver la presentación, el asistente invocará la acción Invitar en el dispositivo de despliegue con la invitación. La invitación entonces será dada al cliente TS para establecer una conexión. El cliente TS entonces se conectará a la sesión TS en el presentador. En el caso en que el presentador quiera invitar al asistente sin solicitársele una invitación, el presentador directamente invocará la acción Invitar en el dispositivo de despliegue como se discutió anteriormente. Una vez que las conexiones están establecidas, la presentación puede ser provista a los asistentes, ambos usuarios y proyectores, de acuerdo con los métodos descritos en la Solicitud co-pendiente No. 10/179,431, intitulada IMPROVED DATA PROJECTION SYSTEM AND METHOD, presentada el 25 de junio del 2002, y asignada al apoderado de la solicitud presente, las enseñanzas y la descripción de la cual se incorpora aquí por referencia en su totalidad a través de la referencia a la misma. Como se describe en esta solicitud co-pendiente, la red a través de la cual la presentación puede ser provista comprende un enlace inalámbrico que sigue una norma 802.11, operado ya sea en el modo de infraestructura o como parte de una red ad hoc. Por supuesto, aquellos con experiencia en la técnica reconocerán que otras redes inalámbricas, así como redes cableadas, pueden ser utilizadas también. También como se describe en esta solicitud co-pendiente, el anuncio y ubicación de los usuarios pueden ser llevados a cabo ya sea a través del mecanismo de conecte y opere universal estándar a través del cual el componente de Conectar y Operar Universal de los asistentes anuncia su presencia y capacidades al componente de Conectar y Operar Universal del presentador. Alternativamente, el componente Conectar y Operar Universal del presentador puede afirmativamente buscar y localizar el componente de Conectar y Operar Universal de los asistentes. Aún además, este proceso puede ser revertido de tal forma que el presentador anuncia su presencia y su presentación por lo que los asistentes pueden encontrar la presentación y solicitar admisión a la misma como se discutió anteriormente. Como se introdujo anteriormente, el binario Microsoft.CRP.dll expone interfases administradas. Las clases principales en este sistema CRP incluyen la clase de presentación, la clase de dispositivo de los asistentes, la clase de proyector, y la clase de asistente. La clase de presentación es la clase principal que utiliza un presentador. Para iniciar una presentación, un presentador tendrá que demostrar esta clase. La clase de dispositivo de asistente se utiliza para ver una presentación. Es decir, para ver una presentación esta clase puede ser demostrada. La clase de proyector representa un proyector. Esta se comunica con el dispositivo del proyector para obtener información acerca del proyector. Finalmente, la clase de asistente representa un asistente. Esta provee métodos y propiedades para dar control, o para desconectar a un asistente. Una discusión más detallada de cada una de estas clases ahora será provista. Una vista general de la clase Microsoft. CRP. Presentación se ilustra a continuación en el Cuadro 1.
CUADRO 1 Microsoft. CRP. Presentación Constructores Presentación pública (Cadena NombreAmigablepresentación , Cadena NombreAmigablePresentador) Presentación pública (Cadena NombreAmigablepresentación, Cadena NombreAmigablePresentador, Cadena contraseña) Propiedades Booleano público Solamentelnvitación { obtener; establecer; } Métodos público nulo Cerrar () público nulo Disponer () público nulo ConectarProyector (Proyector proyector) público nulo ConectarProyector (Proyector proyector, Cadena contraseña) público nulo DesconectarProyector (Proyector proyector) público nulo Invitar (Cadena Udnasistente) público nulo Invitar (Cadena Udnasistente, Cadena contraseña) público nulo Filtrar Eventos público ListaAsistenteCambió (Objeto remitente, ArgsEventoListaAsistenteCambió) público InvitaciónSolicitada (Objeto remitente, ArgsEventoInvitaciónSolicitada) público ListaProyectorCambió (Objeto remitente, ArgsEventoListaProyectorCambió) Como se puede ver a partir de este Cuadro 1, la clase de presentación incluye dos constructores. El primero, el constructor de la presentación, crea una nueva presentación. Internamente, primero demuestra una sesión de servicios de terminal. Esta sesión de servicios de terminal es el tipo de sesión RDP. Segundo, abre la sesión. Tercero, esta clase recupera al administrador de la invitación del objeto de sesión TS. El administrador de la invitación proporciona funcionalidad para crear la invitación. Cuarto, este constructor crea una invitación genérica. Después la engancha a los eventos para el asistente se conecte y desconecte. Finalmente, este método registra un dispositivo de presentación invocando el método de registro en el binario CRP presentación.dll. El método de registro devolverá un manipulador para la presentación. Un segundo constructor de presentación trabaja exactamente igual que el primer constructor con la única diferencia siendo, que durante la generación de la invitación genérica, se proporciona una contraseña como entrada. Las propiedades de esta clase de presentación incluyen la única propiedad de la invitación, la cual controla si la presentación es solamente una invitación a la presentación o no lo es. Si la presentación es través de invitación solamente, entonces cualquier solicitud para una invitación será negada. Si la presentación no es a través de invitación solamente, entonces, si no se provee un delegado para la solicitud de el evento de invitación, el llamador de la solicitud de invitación es provista con la construcción creada de la invitación genérica, o si un delegado es provisto para el evento de solicitud de invitación, se da una llamada de vuelta a la aplicación. Los métodos expuestos a través de esta clase de presentación incluyen un método invitar utilizado para invitar a un asistente identificado a través del UDN del dispositivo del asistente. Este método simplemente invoca la API del asistente invitar provista por el binario CRP presentacion.dll. Se utilizan las invitaciones genéricas creadas durante la construcción del objeto de la presentación. Un segundo método invitar también es proporcionado para invitar a un asistente identificado por el UDN del dispositivo del asistente. La invitación provista al asistente a través de este método está protegida con una contraseña. Los pasos invocados en este método son la creación de una invitación que utiliza el administrador de invitaciones TS. La invitación tiene las propiedades que solamente puede utilizar una vez, y que la invitación es identificada a través del UDN del asistente. Debido a que dos invitaciones no pueden tener el mismo nombre, una vez que una invitación es creada para este UDN del asistente, una nueva invitación no puede ser creada para el mismo asistente. El segundo paso en este método es una llamada a la API del asistente invitar provista por el binario CRP presentación.dll con la invitación creada en el primer paso. Esta clase de presentación también puede incluir un método de conectar proyector que conecta la presentación a un proyector. Los pasos involucrados incluyen la creación de una invitación para el proyector. Esto se hace debido a que TS no distingue entre un asistente y un proyector, y da surgimiento solamente a un evento no conectado con un objeto de asistente TS. El objeto de asistente TS tiene tres propiedades, el ID, el nombre y la invitación. El ID es generado a través de la sesión TS y es localmente único. El nombre es solamente un nombre amigable, y la invitación es la invitación que fue originalmente enviada a un asistente. La única cosa que enlaza al usuario invitado de usuario conectado es la invitación. Por consiguiente, para separar los proyectores de los asistentes, este método genera una invitación separada para cada proyector. Cuando un evento conectado es suspendido, es verificado si la invitación del asistente TS que apenas se conectó fue provista a un proyector. Si ese es el caso, entonces el proyector conectado aún es suspendido, por el contrario el evento del asistente conectado es suspendido. El segundo paso en este método crea una invitación que tiene propiedades de que solo puede ser utilizada una vez, y el nombre de la invitación es el UDN del proyector. Al hacer esto, solamente se puede crear una invitación para un proyector para una sesión dada. El tercer paso, una vez que la invitación es creada, la API ConectarProyector expuesta por el binario CRP presentación.dll es llamada. Esta API devuelve la ficha de la sesión para el proyector. Cuarto, la ficha de la sesión y la invitación para el proyector entonces son asociadas con el objeto del proyector. Finalmente, el objeto del proyector entonces es agregado a la lista de proyectores. La lista de proyectores es una lista de arreglos que contiene todos los proyectores que han sido invitados. Si el proyector se desconecta, entonces es removido de la lista. Debido a que el sistema puede operar sobre listas de proyectores a partir de sus llamadas de vuelta, está protegido por candados. Un segundo método de conectar proyector también es provisto, y la única diferencia entre este método y el método de conectar proyector previo es que el boleto se genera con la contraseña provista como entrada. Esta clase de presentación también incluye un método de desconectar proyector para desconectar un proyector. Los pasos involucrados en la desconexión de un proyector incluyen la búsqueda del proyector y la lista del proyector, una llamada a la API de desconectar proyector provista por el binario CRP presentaci6n.dll para desconectar el proyector y una llamada al método desconectar en el objeto del asistente TS asociado con el proyector. Esta clase también incluye un método de cerrar/disponer utilizado para disponer el objeto de la presentación. Los pasos involucrados en la colocación del objeto de presentación incluye desregistrar el dispositivo de presentación PNP llamando el método desregistrar expuesto a través del binario CRP presentación.dll. Finalmente, la sesión TS se cierra. La clase de presentación también proporciona varios eventos. Primero, el evento de lista de asistente cambiada es señalado cuando la lista del asistente cambia. La lista del asistente puede ser cambiada cuando un asistente se conecta o desconecta, y este evento es enlazado con el evento conectado y desconectado generado por la sesión TS. Los argumentos del evento contienen dos cosas, para saber el objeto del asistente, y el tipo de cambio que ha sucedido (conectado/desconectado). El evento es generado cuando, durante la construcción del objeto de la presentación, la aplicación registra eventos conectados y desconectados de la sesión TS. La sesión TS entonces genera estos eventos cuando cualquier usuario (asistente o proyector) establece una conexión. El evento de sesión TS generado tiene un objeto de asistente TS como un parámetro (el asistente TS tiene tres propiedades, a saber el ID, nombre, invitación como se discutió anteriormente). Debido a que existe la necesidad de diferenciar entre un proyector y un asistente, se crean invitaciones separadas para los proyectores como se discutió anteriormente. Para averiguar si el evento TS es generado debido a un proyector, la lista del proyector es investigada en base a la invitación utilizada por el usuario que se ha conectado. Si el proyector está presente en la lista, un evento de lista de proyector cambiada es generado, por el contrario un evento de lista de asistente cambiada es generado. Este evento de lista de proyector cambiada es señalado cuando un proyector se ha conectado o desconectado. Como se discutió anteriormente, el evento está basado en el evento conectado/desconectado de TS. Si el usuario se conecta como un proyector, el objeto del asistente TS se asocia con el objeto del proyector presente en la lista del proyector. Los argumentos del evento de la lista de proyector cambiada del argumento del evento tiene dos propiedades, a saber el objeto del proyector (el objeto presente en la lista del proyector es utilizado), y el tipo de cambio que ha ocurrido (conectado/desconectado).
La clase de presentación también tiene un evento de solicitud de invitación que es señalado cuando un asistente ha solicitado una invitación. Este evento no será señalado si la presentación es solamente por invitación. La invitación se basa en la llamada de vuelta que es provista por el binario CRP presentación.dll. La llamada de vuelta es generada cuando un asistente se pone en contacto con el dispositivo de la presentación para solicitar una invitación. Los argumentos de los eventos de invitación solicitada tienen las siguientes propiedades. Primero, el nombre amigable para el asistente que solicita la invitación, y segundo, el UDN del dispositivo del asistente. Si una aplicación que está escuchando este evento, y decide proveer una invitación al asistente que solicita la invitación, deberá llamar a presentación. invitar con la UDN provista en los argumentos del evento de invitación solicitada. Es importante entender que implicaciones de seguridad aquí. El UDN del asistente no es confiable. Es decir, no es deseable invocar la acción en el dispositivo del asistente identificado a través de UDN a menos que sea explícitamente autorizado por el usuario. Por consiguiente, si nadie está escuchando este evento, la invitación genérica es devuelta inmediatamente en lugar de invocar la acción invitar en el dispositivo del asistente identificado por este UDN. Si, sin embargo, una aplicación está escuchando este evento, el evento es planteado y una invitación vacía es devuelta. Una visión global de la clase Microsoft. CRP. proyector se ilustra en el Cuadro 2 a continuación.
CUADRO 2 Microsoft. CRP. Proyector Constructores Proyector público (Cadena Udnproyector) ; Propiedades público Cadena Capacidades { obtener; } público Cadena DesplegarConf iguraciones { obtener; configurar público Estado int { obtener; } Métodos público nulo Cerrar (); público nulo Colocar (); público cadena ACadena (); Como se puede ver a partir del Cuadro 2 precedente, esta clase de proyector incluye un constructor individual. Este constructor del proyector crea un objeto de proyector con solamente UDN establecido. Las propiedades de esta clase incluyen las capacidades, configuraciones de despliegue y estado. El método de capacidades recupera las capacidades del proyector. Este método es básicamente una envoltura alrededor de la API ObtenerCapacidades expuesta por el binario CRP presentación.dll. El método DesplegarConfiguraciones obtiene o establecer las ConfiguracionesDespliegue del proyector. El obtener y establecer son básicamente envolturas alrededor de los métodos configuraciones ObtenerDespliegue y configuraciones EstablecerDespliegue expuestos por el binario CRP presentación.dll. Las configuraciones de despliegue pueden ser obtener/establecer solamente si la presentación está conectada al proyector. El método estado obtiene el estado del proyector. Este método es básicamente una envoltura alrededor de la API ObtenerEstado expuesta por el binario CRP presentacion.dll. Los métodos expuesto por esta clase son el método cerrar/colocar, y el método ACadena. Los métodos cerrar/colocar se utilizan para colocar el objeto del proyector. La única operación principal realizada por este objeto es llamar desconectar en el objeto del asistente TS para asegura que el proyector está desconectado. El método ACadena devuelve un nombre amigable del proyector. La clase de dispositivo Microsoft. CRP. asistente se ilustra en el Cuadro 3 a continuación.
CUADRO 3 Microsoft. CRP. Dispositivo Asistente Constructores público DispositivoAsistente (Cadena Udn asistente) ; Métodos público nulo Cerrar (); público nulo Cerrar (); público nulo Colocar (); público cadena Solicitarlnvitación (Cadena Udnpresentación); Eventos público InvitaciónDisponible (Objeto remitente, Invitación Dispon ¡ble Args Evento args); Como se puede ver a partir de este Cuadro 3, esta clase incluye un constructor individual. El constructor del dispositivo del asistente crea un objeto del dispositivo del asistente. Para ver una presentación este objeto debe ser creado. El constructor hace una llamada a la API de registro provista por el binario CRP asistente.dll. La API de registro registra un dispositivo UPnP para un asistente. Los métodos expuestos por esta clase incluyen el método cerrar/colocar, y el método Solicitarlnvitación. Los métodos cerrar/colocara se utilizan para colocar el objeto del asistente. La única operación principal realizada por este objeto es la llamada del método desregistrar expuesto por el binario CRP asistente.dll para desregistrar el dispositivo UPnP. El método Solicitarlnvitación se utiliza para solicitar una invitación de un presentador provisto por el UDN de la presentación. Este método básicamente llama a la API Solicitarlnvitación expuesta por el binario CRP asistente.dll. El presentador puede proveer la invitación inmediatamente, o puede llamar a la API invitar en el dispositivo del asistente. Si el presentador proporciona la invitación inmediatamente, entonces este método devuelve la invitación, de lo contrario este método devuelve cadena. vacío. El evento individual provisto para esta clase es el evento disponible invitación. Este evento es señalado cuando un presentador invita al asistente. La información disponible en los argumentos del evento disponible de invitación incluyen la invitación misma, el nombre amigable de la invitación, y el nombre amigable del presentador. Si el asistente desea utilizar la invitación, deberá proveer la invitación al control X activo de TS y llamar conectar en el control. El control entonces establecerá una sesión TS con el servidor. Una vista global de la clase Microsoft. CRP. Asistente se ¡lustra en el Cuadro 4 a continuación.
CUADRO 4 Microsoft. CRP. Dispositivo Asistente Propiedades público Cadena Nombre { obtener; } público NivelControl NivelControl { obtener; establecer; } Métodos público nulo Desconectar (); público nulo Cadena ACadena (); Las propiedades de esta clase incluyen nombre y nivel control. El método nombre devuelve el nombre amigable del asistente. El método nivel control obtiene/establece el nivel de control del asistente. Los niveles de control que un asistente puede tener incluyen interactivo (es decir, el asistente puede controlar el apuntador del ratón del presentador), y ver (el asistente puede solamente ver la presentación). Esta clase también expone un método Desconectar y ACadena. El método Desconectar desconecta a un asistente, mientras el método ACadena devuelve el nombre amigable del asistente. En una modalidad ilustrativa de la presente invención, las interfases de programación de aplicación (APls) se utilizan para habilitar los escenarios de visualizar una presentación y dar la presentación. Estas APls están típicamente disponibles para el usuario y no están típicamente disponibles para el proyector. La implementación en el extremo del proyector es usualmente problema del fabricante, aunque esto no es una limitación al alcance de la invención. Las modalidades ilustrativas de dichas APls que son construidas de acuerdo con la presente invención se discuten más adelante. En una modalidad preferida, estas API comprenden un código administrado. Aunque se deberá entender que estas APls están siendo presentadas como modalidades ilustrativas, y no limitaciones al alcance de la invención. Una modalidad ilustrativa de la primera API que se va a discutir, a saber la API de registro, se proporciona en el Cuadro 5 a continuación.
CUADRO 5 HRESULTADO Registrar ( ENTRAR PCWSTR pwzNombreAmigable ENTRAR PFN INVITAR pfnlnvitar, SALIR MANIPULADOR * phAsistente); Esta API registra un DispositivoDespliegueUsuario. Una vez que el dispositivo es registrado, puede ser hallado por los presentadores. Estos presentadores pueden entonces enviar una invitación al usuario para atender la presentación. Los parámetros para esta API son el nombre amigable del dispositivo de pantalla, y la función de llamada de vuelta invocada cuando un presentador invita a un asistente. Un parámetro de salida es el manipulador que deberá ser utilizado después para el desregistro. Los valores devueltos para esta API son S_OK si es exitosa, o E_SINMEMORIA si no hay suficiente memoria para completar esta operación. Una modalidad ilustrativa de la API Desregistrar se presenta a continuación en el Cuadro 6.
CUADRO 6 NULO Desregistrar (ENTRAR MANIPULADOR asistente); Esta API remueve el registro de dispositivo de exhibición. Una vez que esta API ha sido operada, todas las sesiones activas serán terminadas y el usuario no será hallado por otros asistentes o presentadores. Se requiere que el manipulador devuelto del Registro funcione como un parámetro, y no proporcione ningunos valores de retorno en esta modalidad. Una modalidad ilustrativa de la API Solicitarlnvitación se presenta a continuación en el Cuadro 7.
CUADRO 7 HRESULTADO Solicitarlnvitación ( ENTRAR MANIPULADOR phAsistente ENTRAR BSTR bstrPresentaciónUdn; SALIR BSTR * pbstrlnvitación) ; Como se discutió anteriormente, en una modalidad de la presente invención, la presentación es un dispositivo UPnP. Cuando la API Solicitarlnvitación es invocada, el UDN del dispositivo es provisto como una entrada. En base a este UDN, se obtiene el dispositivo de presentación. En el dispositivo de presentación, una acción Solicitarlnvitación entonces es invocada con la información acerca del usuario. Si el presentador decide permitir al usuario atender la presentación, el presentador enviará de regreso una invitación. Los parámetros para esta API son el manipulador devuelto por el método Registrar, el UDN para la presentación, y, manera de una salida, la invitación. El presentador puede decidir proporcionar la invitación inmediatamente. Si el presentador no proporciona una invitación, ésta contendrá una cadena vacía. Esta API proporciona una indicación de éxito, o falla si hay memoria insuficiente o un argumento inválido. Una modalidad ilustrativa del método de llamada de vuelta provisto por el método Registrar discutido anteriormente, es decir, la llamada de vuelta Invitar se presenta a continuación en el Cuadro 8.
CUADRO 8 HRESULTADO Invitar ( ENTRAR BSTR pbstrl nvitación ENTRAR BSTR bstrnNombrePresentación, ENTRAR BSTR bstrnNombrePresentador) ; Este método es llamado cuando algún presentador ha invitado a un usuario a ver la presentación. La invitación provista en la llamada de vuelta puede entonces ser utilizada con la API de los servicios de terminal para finalmente establecer la conexión necesaria para actualmente ver la presentación. Los parámetros para este método de llamada de vuelta incluyen la invitación provista por el presentador. Esta invitación puede ser utilizada para unirse a la presentación. Otros parámetros incluyen el nombre amigable de la presentación y el nombre amigable del presentador. Este método de llamada de vuelta proporciona una indicación de éxito. El siguiente grupo de APIs que será discutido son aquellas que se utilizan cuando un usuario quiere dar una presentación. En una modalidad de la presente invención, estas APIs incluyen la API de Registro, la API de Desregistro, la API de InvitarAsistente, la API de DesconectarProyector, la API de ObtenerEstado, la API de ObtenerCapacidades, la API de ObtenerConfiguracionesPantalla, y la API de EstablecerConfiguracionesPantalla. Cambiando ahora a una discusión de la API de presentación, una modalidad ilustrativa de la API de Registro se presenta en el Cuadro 9 a continuación.
CUADRO 9 HRESULTADO Registrar ( ENTRAR BSTR pbstrNombreAmigablePresentación ENTRAR BSTR bstrnNombreAmigabiePresentador, ENTRAR PFN_SOLICITAR_INVITACION pfnSolicitarlnvitación, SALIR presentación) ; Este método es llamado cuando un presentador quiere iniciar una presentación. Cuando se crea dicha sesión utilizando este método, se llevan a cabo los siguientes pasos. El dispositivo de presentación es creado y registrado con UPnP. Como se discutió anteriormente, esto permite a cualquiera a hallar la presentación. Los parámetros para uso con este método incluyen el nombre amigable de la presentación, el nombre amigable del presentador, y la función de llamada de vuelta que está involucrada si un usuario solicita ver la presentación. La API además proporciona un manipulador para la sesión de la presentación que es creada. La API devuelve una indicación de éxito o falla, ya sea debido a memoria insuficiente o si un parámetro es inválido. Una modalidad ilustrativa de la API desregistrar se presenta a continuación en el Cuadro 10.
CUADRO 10 NULO Desregistrar ( ENTRAR MANIPULADOR presentación); Esta API es llamada cuando un presentador quiere desregistrar una presentación. Cuando una presentación es desregistrada, el dispositivo es desregistrado en UPnP. El único parámetro para esta API en esta modalidad es la presentación que va a ser detenida. Una modalidad ilustrativa de la API InvitarAsistente se presenta en el Cuadro 11, a continuación.
CUADRO 11 HRESULTADO InvitarAsistente ( ENTRAR MANIPUALDOR hpresentación , ENTRAR BSTR bstrnUdn, ENTRAR BSTR bstrlnvitación) ; Esta API es llamada cuando un presentador quiere invitar a un asistente para recibir la presentación. Cuando este método es llamado, el presentador recupera el dispositivo utilizando el UDN. Enseguida, una llamada al método Invitar en el dispositivo de pantalla para la UDN dada con esta invitación es hecha. Los parámetros para este método incluyen el manipulador de esta presentación, el UDN del dispositivo de pantalla de asistente, y la invitación que será provista al asistente. La API devuelve una indicación de éxito o falla. Las fallas pueden ser debidas a insuficiente memoria para completar la operación, un argumento inválido, o si el manipulador es inválido. Una modalidad ilustrativa de la API ConectarProyector se proporciona en el Cuadro 12, a continuación.
CUADRO 12 H RESULTADO ConectarProyector ( ENTRAR ANIPUALDOR hpresentación, ENTRAR BSTR bstrn Udn , ENTRAR BSTR bstrl n vitación , SALIR BSTR * pbstFichaSesión) ; Cuando esta API es llamada el UDN de la proyección es recuperado. El método Invitar entonces es llamado en el dispositivo de proyección para el UDN dado con esta invitación. Si la función es exitosamente completada, la ficha de la sesión es recuperada. Sus parámetros son el manipulador de la presentación, la invitación que será provista al proyector, y a manera de salida, la ficha de la sesión. La API devuelve una indicación de éxito o falla. Las fallas pueden ser debidas a insuficiente memoria para completar la operación, un argumento inválido, o si el manipulador es inválido. Una modalidad ilustrativa de la API DesconectarProyector es provista en el Cuadro 13, a continuación.
CUADRO 13 HRESULTADO DesconectarProyector ( ENTRAR MANIPUALDOR hpresentación, ENTRAR BSTR bstrnUdn, ENTRAR BSTR bstrFichaSesión) ; Esta API es llamada para terminar la conexión con el dispositivo especificado. Los parámetros para esta API incluyen el manipulador de la presentación. El UDN del proyector que se va a desconectar y la sesión que se va a desconectar. La API devuelve una indicación de éxito o falla. Las fallas pueden ser debidas a insuficiente memoria para completar la operación, un argumento inválido, o si el manipulador es inválido. Una modalidad ilustrativa de la API ObtenerCapacidadesProyector es provista en el Cuadro 14, a continuación.
CUADRO 14 HRESULTADO ObtenerCapacidadesProyector ( ENTRAR BSTR bstrnUdn, SALIR BSTR * pbstrCapacidades) ; Este método es llamado cuando el presentador quiere obtener las capacidades de un proyector. Las capacidades de la proyección se obtienen invocando el método ObtenerCapacidades en el dispositivo de proyección. El presentador captura el UDN del proyector, y el método da salida a las capacidades asociadas con el proyector. La API devuelve una indicación de éxito o falla. Las fallas pueden ser debidas a insuficiente memoria para completar la operación, un argumento inválido, o si el manipulador es inválido. Una modalidad ilustrativa de la API ObtenerEstadoProyector es provista en el Cuadro 15, a continuación.
CUADRO 15 HRESULTADO ObtenerEstadoProyector ( ENTRAR BSTR bstrnUdn , SALIR ULONG * pEstado) ; Este método es llamado cuando el presentador quiere recuperar el estado de un proyector. Este estado del proyector es obtenido invocando el método ObtenerEstado en el dispositivo de proyección. El presentador captura el UDN del proyector, y el método da salida al estado del proyector. La API devuelve una indicación de éxito o falla. Las fallas pueden ser debidas a insuficiente memoria para completar la operación, un argumento inválido, o si el manipulador es inválido. Una modalidad ilustrativa de la API ObtenerConfiguraciíonDespliegueProyector es presentada en el Cuadro 16, a continuación.
CUADRO 16 HRESULTADO ObtenerConfiguraciónDespliegueProyector ( ENTRAR BSTR bstrnUdn, ETNRAR BSTR bstrFichaSesión , SALIR PBSTR * pbstrConfiguación Despliegue) ; Este método es llamado cuando el presentador quiere recuperar la configuración del despliegue para un proyector. Esta configuración de despliegue del proyector es obtenido invocando el método ObtenerConfiguraciónProyección en el proyector. El presentador captura el UDN del proyector, la ficha de sesión obtenida cuando ConectarProyector fue exitoso y el método da salida a la configuración del despliegue para el proyector. La API devuelve una indicación de éxito o falla. Las fallas pueden ser debidas a insuficiente memoria para completar la operación, un argumento inválido, o si el manipulador es inválido. Una modalidad ilustrativa de la API EstablecerConfiguraciónDespliegueProyector es presentada en el Cuadro 17, a continuación.
CUADRO 17 HRESULTADO EstablecerConf ig uraciónDespliegueProyector ( ENTRAR BSTR bstrnUdn, ETNRAR BSTR bstrFichaSesión , ENTRAR BSTR pbstrConfiguaciónDespliegue) ; Este método es llamado cuando el presentador quiere establecer la configuración del despliegue para un proyector. Esta configuración de despliegue del proyector se establece haciendo el EstablecerConfiguraciónDespliegue en el proyector. El presentador captura el UDN del proyector, la ficha de sesión obtenida cuando ConectarProyector fue exitoso y la configuración del despliegue que se va a establecer para el proyector. La API devuelve una indicación de éxito o falla. Las fallas pueden ser debidas a insuficiente memoria para completar la operación, un argumento inválido, o si el manipulador es inválido. Como se introdujo anteriormente, la API IniciarPresentación incluye una función de llamada de vuelta. Una modalidad de la función de la llamada de vuelta PFN_SOLICITAR_INVITACION se presenta a continuación en el Cuadro 18.
CUADRO 18 HRESULTADO Solicitarinvitación ( ENTRAR BSTR bstrNombre, ETNRAR BSTR bstrUdn, SALIR BSTR * pbstrlnvitación) ; Esta función de llamada de vuelta es invocada cuando un usuario ha invocado el método Solicitarinvitación en el dispositivo de presentación. La llamada de vuelta devuelve la invitación misma como un parámetro de salida, o solamente devuelve una cadena vacía. Los parámetros para este método son el nombre amigable de los asistentes que solicitan la invitación, el UDN de los asistentes que solicitan la invitación y a manera de salida, la invitación que será provista al asistente. Este método devuelve una indicación de éxito. Todas las referencias citadas aquí, incluyendo patente, solicitudes de patente y publicaciones, se incorporan aquí por referencia en su totalidad. Es decir, cada una y cada parte de cada una de dichas referencias se considera como siendo parte de esta descripción, y por consiguiente ninguna parte de dicha referencia es excluida de esta declaración o por ninguna otra declaración en esta descripción de ser parte de esta descripción. La descripción anteriormente mencionada de varias modalidades de la invención ha sido presentada para propósitos de ilustración y descripción. No se pretende ser exhaustiva o limitar la invención a las modalidades precisas descritas. Numerosas modificaciones o variaciones son posibles en luz de las enseñazas anteriores. Las modalidades discutidas se seleccionaron y discutieron para proporcionar la mejor ilustración de los principios de la invención en varias modalidades y con varias modificaciones según son adecuadas al uso particular contemplado. Todas dichas modificaciones y variaciones están dentro del alcance de la invención según determinado por las reivindicaciones anexas cuando se interpretan de acuerdo con la cobertura a la cual son fielmente, legalmente y equitativamente intituladas.

Claims (42)

REIVINDICACIONES
1. Un método para dar una presentación a un número de asistentes, que comprende los pasos de: iniciar una sesión de presentación; crear un dispositivo de presentación que se puede hallar a través del número de asistentes; y crear una sesión de servicios de terminal para permitir al número de asistentes ver la presentación.
2. El método de acuerdo con la reivindicación 1, en donde el paso de iniciar una sesión de presentación comprende el paso de especificar el tipo de sesión de presentación.
3. El método de acuerdo con la reivindicación 1, que además comprende los pasos de: hallar por lo menos un proyector; seleccionar por lo menos uno de por lo menos un proyector; establecer una conexión con el proyector seleccionado; crear una invitación para el proyector seleccionado; y enviar la invitación al proyector seleccionado.
4. El método de acuerdo con la reivindicación 3, en donde el paso de hallar por lo menos un proyector comprende el paso de llevar a cabo una búsqueda SSDP para el por lo menos un proyector.
5. El método de acuerdo con la reivindicación 3, que comprende además el paso de iniciar un método para conectar en el proyector seleccionado a través del cual un cliente de servicios de terminal del mismo establece una conexión con la sesión de servicios de terminal.
6. El método de acuerdo con la reivindicación 1, que comprende además los pasos de: hallar un número de usuarios; seleccionar por lo menos uno del número de usuarios; establecer una conexión con el número de usuarios seleccionados; crear una invitación para cada uno del número de usuarios seleccionados; y enviar la invitación a cada uno de los usuarios seleccionados.
7. El método de acuerdo con la reivindicación 6, en donde el paso de hallar el número de usuarios comprende el paso de llevar a cabo una búsqueda SSDP para el número de usuarios.
8. El método de acuerdo con la reivindicación 6, que comprende además el paso de iniciar un método para conectar en el número de usuarios seleccionados directamente por medio del cual un cliente de servicios de terminal del mismo establezca una conexión con la sesión de servicios de terminal.
9. El método de acuerdo con la reivindicación 1, que comprende además el paso de detener la presentación.
10. El método de acuerdo con la reivindicación 9, en donde el paso de detener la presentación comprende los pasos de desconectar cualesquiera conexiones y limpiar cualquier estado.
11. El método de acuerdo con la reivindicación 1, que además comprende los pasos de: recibir una solicitud de admisión de un asistente; generar una invitación a la presentación; proporcionar la invitación al asistente.
12. El método de acuerdo con la reivindicación 11, que comprende además el paso de verificar una contraseña proporcionada por el asistente antes de los pasos de generar y proporcionar la invitación.
13. Un método para unirse a una presentación, que comprende los pasos de: hallar por lo menos un dispositivo de presentación en una red; enviar una solicitud de admisión a por lo menos un dispositivo de presentación; recibir una invitación a por lo menos una presentación del dispositivo de presentación; y iniciar un método de conectar para establecer una conexión con una sesión de servicios de terminal del dispositivo de presentación.
14. El método de acuerdo con la reivindicación 13, en donde el paso de hallar por lo menos un dispositivo de presentación comprende el paso de llevar a cabo una búsqueda SSDP para el por lo menos un dispositivo de presentación.
15. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para ver una presentación, que comprende: recibir de un programa de aplicación una llamada de registro que tiene una pluralidad de parámetros de llamada; analizar la llamada de registro para recuperar los parámetros; y regresar al programa de aplicación un valor indicativo del éxito/falla de la llamada de registro.
16. El medio legible por computadora de acuerdo con la reivindicación 15, en donde el paso de recibir del programa de aplicación una llamada de registro que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de registro que tiene una pluralidad de parámetros de llamada que comprende un nombre amigable del asistente, una función de llamada de vuelta invocada cuando un presentador invita a un asistente, y a manera de salida un manipulador.
17. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para ver una presentación, que comprende: recibir de un programa de aplicación una llamada de desregistrar que tiene por lo menos un parámetro; analizar la llamada de desregistrar para recuperar el por lo menos un parámetro; y desregistrar un dispositivo de exhibición.
18. El medio legible por computadora de acuerdo con la reivindicación 17, en donde el paso de recibir una llamada de desregistro que tiene por lo menos un parámetro comprende el paso de recibir una llamada de desregistro en por lo menos un parámetro que comprende un manipulador para que el dispositivo de exhibición sea desregistrado.
19. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para ver una presentación, que comprende: recibir de un programa de aplicación la llamada de solicitud de invitación que tiene una pluralidad de parámetros de llamada; analizar la llamada de solicitud de invitación para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada de solicitud de invitación.
20. El medio legible por computadora de acuerdo con la reivindicación 19, en donde el paso de recibir del programa de aplicación una llamada de solicitud de invitación tiene una pluralidad de parámetros de llamada que comprende el paso de recibir del programa de aplicación una llamada de solicitud de invitación que tiene una pluralidad de parámetros de llamada que comprende un manipulador para la presentación, un UDN para la presentación y a manera de salida una invitación a la presentación.
21. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para ver una presentación, que comprende: recibir de un programa de aplicación la llamada de vuelta de invitar que tiene una pluralidad de parámetros de llamada de vuelta; analizar la llamada de vuelta invitar para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada de vuelta de invitar.
22. El medio legible por computadora de acuerdo con la reivindicación 21, en donde el paso de recibir del programa de aplicación una llamada de vuelta invitar que tiene una pluralidad de parámetros de llamada de vuelta comprende el paso de recibir del programa de aplicación una llamada de vuelta que tiene una pluralidad de parámetros de llamada de vuelta que comprende una invitación provista por un presentador de la presentación, un nombre amigable de una presentación, y un nombre amigable del presentador.
23. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de registro que tiene una pluralidad de parámetros de llamada; analizar la llamada de registro para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada de registro.
24. El medio legible por computadora de acuerdo con la reivindicación 23, en donde el paso de recibir del programa de aplicación una llamada de registro que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de registro que tiene una pluralidad de parámetros de llamada que comprende un nombre amigable para una presentación, un nombre amigable para un presentador, una función de llamada de vuelta que es invocada si un usuario solicita ver la presentación, y a manera de salida un manipulador para la presentación.
25. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de desregistro que tiene una pluralidad de parámetros de llamada; analizar la llamada de desregistro para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada de desregistro.
26. El medio legible por computadora de acuerdo con la reivindicación 25, en donde el paso de recibir del programa de aplicación una llamada de desregistro que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de desregistro que tiene una pluralidad de parámetros de llamada que comprende un manipulador para que la presentación sea detenida.
27. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de invitar asistente que tiene una pluralidad de parámetros de llamada; analizar la llamada de invitar asistente para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada de invitar asistente.
28. El medio legible por computadora de acuerdo con la reivindicación 27, en donde el paso de recibir del programa de aplicación una llamada de invitar asistente que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de invitar asistente que tiene una pluralidad de parámetros de llamada que comprende un manipulador para la presentación, un UDN del dispositivo de exhibición del asistente, y una invitación que será provista al asistente.
29. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de conectar proyector que tiene una pluralidad de parámetros de llamada; analizar la llamada de conectar proyector para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada conectar proyector.
30. El medio legible por computadora de acuerdo con la reivindicación 29, en donde el paso de recibir del programa de aplicación una llamada de conectar proyector que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa, de aplicación una llamada de conectar proyector que tiene una pluralidad de parámetros de llamada que comprende un manipulador para la presentación, un UDN del dispositivo de exhibición del asistente, una invitación que será provista al proyector y a manera de salida una ficha de sesión.
31. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de desconectar proyector que tiene una pluralidad de parámetros de llamada; analizar la llamada de desconectar proyector para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada desconectar proyector.
32. El medio legible por computadora de acuerdo con la reivindicación 31, en donde el paso de recibir del programa de aplicación una llamada de desconectar proyector que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de desconectar proyector que tiene una pluralidad de parámetros de llamada que comprende un manipulador para la presentación, un UDN del proyector que va a ser desconectado y una ficha de sesión.
33. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de obtener capacidades del proyector que tiene una pluralidad de parámetros de llamada; analizar la llamada de obtener capacidades del proyector para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada obtener capacidades del proyector.
34. El medio legible por computadora de acuerdo con la reivindicación 33, en donde el paso de recibir del programa de aplicación una llamada de obtener capacidades del proyector que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de obtener capacidades del proyector que tiene una pluralidad de parámetros de llamada que comprende un UDN del proyector, y a manera de salida las capacidades asociadas con el proyector.
35. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de obtener estado del proyector que tiene una pluralidad de parámetros de llamada; analizar la llamada de obtener estado del proyector para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada obtener estado del proyector.
36. El medio legible por computadora de acuerdo con la reivindicación 35, en donde el paso de recibir del programa de aplicación una llamada de obtener estado del proyector que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de obtener estado del proyector que tiene una pluralidad de parámetros de llamada que comprende un UDN del proyector, y a manera de salida el estado del proyector.
37. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de obtener configuración de despliegue del proyector que tiene una pluralidad de parámetros de llamada; analizar la llamada de obtener configuración de despliegue del proyector para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada obtener configuración de despliegue del proyector.
38. El medio legible por computadora de acuerdo con la reivindicación 37, en donde el paso de recibir del programa de aplicación una llamada de obtener configuración de despliegue del proyector que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de obtener configuración de despliegue del proyector que tiene una pluralidad de parámetros de llamada que comprende un UDN del proyector, una ficha de sesión que se va a utilizar para obtener la configuración de despliegue y a manera de salida la configuración de despliegue del proyector.
39. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de establecer configuración de despliegue del proyector que tiene una pluralidad de parámetros de llamada; analizar la llamada de establecer la configuración de despliegue del proyector para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada establecer la configuración de despliegue del proyector.
40. El medio legible por computadora de acuerdo con la reivindicación 39, en donde el paso de recibir del programa de aplicación una llamada de establecer la configuración de despliegue del proyector que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de establecer la configuración de despliegue del proyector que tiene una pluralidad de parámetros de llamada que comprende un UDN del proyector, una ficha de sesión y la configuración de despliegue del proyector.
41. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para llevar a cabo los pasos para dar una presentación, que comprende: recibir de un programa de aplicación la llamada de vuelta de solicitar invitación que tiene una pluralidad de parámetros de llamada; analizar la llamada de vuelta de solicitar invitación para recuperar los parámetros; y devolver al programa de aplicación un valor indicativo del éxito/falla de la llamada vuelta de solicitar invitación.
42. El medio legible por computadora de acuerdo con la reivindicación 41, en donde el paso de recibir del programa de aplicación una llamada de solicitar invitación que tiene una pluralidad de parámetros de llamada comprende el paso de recibir del programa de aplicación una llamada de vuelta de solicitar invitación que tiene una pluralidad de parámetros de llamada que comprende un nombre amigable de un asistente que solicita la invitación, un UDN del asistente que solicita la invitación y a manera de salida la invitación que será proporcionada al asistente.
MXPA04010032A 2003-10-23 2004-10-12 Sistema y metodo de proyeccion de uno a muchos datos. MXPA04010032A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/692,384 US8260857B2 (en) 2003-10-23 2003-10-23 One to many data projection system and method

Publications (1)

Publication Number Publication Date
MXPA04010032A true MXPA04010032A (es) 2005-04-28

Family

ID=34423320

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04010032A MXPA04010032A (es) 2003-10-23 2004-10-12 Sistema y metodo de proyeccion de uno a muchos datos.

Country Status (10)

Country Link
US (1) US8260857B2 (es)
EP (1) EP1528505B1 (es)
JP (1) JP5060018B2 (es)
KR (1) KR101099194B1 (es)
CN (2) CN103929343B (es)
AU (1) AU2004214576B2 (es)
BR (1) BRPI0404405A (es)
CA (1) CA2482220C (es)
MX (1) MXPA04010032A (es)
RU (1) RU2412478C2 (es)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3707407B2 (ja) * 2001-08-28 2005-10-19 セイコーエプソン株式会社 パスワードを投写するプロジェクタ
US7293071B2 (en) * 2002-05-27 2007-11-06 Seiko Epson Corporation Image data transmission system, process and program, image data output device and image display device
US7613812B2 (en) * 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
JP2004287160A (ja) 2003-03-24 2004-10-14 Seiko Epson Corp 画像表示システム、プロジェクタ、画像表示方法、プロジェクタ制御方法、画像表示プログラムおよびプロジェクタ制御プログラム
US8261062B2 (en) * 2003-03-27 2012-09-04 Microsoft Corporation Non-cryptographic addressing
US7949996B2 (en) 2003-10-23 2011-05-24 Microsoft Corporation Peer-to-peer identity management managed interfaces and methods
US8260857B2 (en) 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US7496648B2 (en) * 2003-10-23 2009-02-24 Microsoft Corporation Managed peer name resolution protocol (PNRP) interfaces for peer to peer networking
US7716273B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Systems and methods for projecting content from computing devices
US20050091595A1 (en) * 2003-10-24 2005-04-28 Microsoft Corporation Group shared spaces
KR100554101B1 (ko) * 2004-01-15 2006-02-22 김석우 다중 화면 전송을 위한 빔프로젝터 서버단말기 및 그전송방법
JP2005208823A (ja) * 2004-01-21 2005-08-04 Seiko Epson Corp プロジェクタのネットワークシステム
US8688803B2 (en) 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
US7929689B2 (en) * 2004-06-30 2011-04-19 Microsoft Corporation Call signs
US7620902B2 (en) * 2005-04-20 2009-11-17 Microsoft Corporation Collaboration spaces
US7571228B2 (en) * 2005-04-22 2009-08-04 Microsoft Corporation Contact management in a serverless peer-to-peer system
US20060242236A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation System and method for extensible computer assisted collaboration
US8036140B2 (en) 2005-04-22 2011-10-11 Microsoft Corporation Application programming interface for inviting participants in a serverless peer to peer network
US7752253B2 (en) * 2005-04-25 2010-07-06 Microsoft Corporation Collaborative invitation system and method
US7617281B2 (en) * 2005-04-25 2009-11-10 Microsoft Corporation System and method for collaboration with serverless presence
US7660851B2 (en) * 2005-07-06 2010-02-09 Microsoft Corporation Meetings near me
US20070011232A1 (en) * 2005-07-06 2007-01-11 Microsoft Corporation User interface for starting presentations in a meeting
CN100581226C (zh) * 2005-08-05 2010-01-13 三星电子株式会社 用于提供多屏幕的设备以及动态配置多屏幕的方法
US20070035560A1 (en) 2005-08-05 2007-02-15 Samsung Electronics Co., Ltd. Apparatus for providing multiple screens and method of dynamically configuring multiple screens
US20070200920A1 (en) * 2006-02-14 2007-08-30 Walker Mark R Digital communications adaptor
JP5040341B2 (ja) 2006-04-04 2012-10-03 セイコーエプソン株式会社 プロジェクタシステム
US7439937B2 (en) * 2006-04-14 2008-10-21 Microsoft Corporation Appropriately rendering terminal server graphical data at multiple client side monitors
US8086842B2 (en) * 2006-04-21 2011-12-27 Microsoft Corporation Peer-to-peer contact exchange
US8069208B2 (en) * 2006-04-21 2011-11-29 Microsoft Corporation Peer-to-peer buddy request and response
JP2007323732A (ja) * 2006-05-31 2007-12-13 Toshiba Corp 再生制御装置、再生制御方法、及び再生装置
US20080221377A1 (en) * 2006-06-16 2008-09-11 Lockwood Samuel F Methods for synthesis of carotenoids, including analogs, derivatives, and synthetic and biological intermediates
JP4692529B2 (ja) * 2007-08-07 2011-06-01 セイコーエプソン株式会社 グラフィカルユーザインタフェース装置
US8200520B2 (en) 2007-10-03 2012-06-12 International Business Machines Corporation Methods, systems, and apparatuses for automated confirmations of meetings
US8819132B2 (en) * 2009-05-27 2014-08-26 Microsoft Corporation Real-time directory groups
US20100318916A1 (en) * 2009-06-11 2010-12-16 David Wilkins System and method for generating multimedia presentations
CN102148842B (zh) * 2010-02-08 2014-06-04 联想(北京)有限公司 一种远程桌面体系的音频处理方法和设备
JP5402775B2 (ja) * 2010-03-26 2014-01-29 セイコーエプソン株式会社 プロジェクター装置および接続確立方法
US8914735B2 (en) 2011-05-06 2014-12-16 David H. Sitrick Systems and methodologies providing collaboration and display among a plurality of users
US8806352B2 (en) * 2011-05-06 2014-08-12 David H. Sitrick System for collaboration of a specific image and utilizing selected annotations while viewing and relative to providing a display presentation
US8918721B2 (en) 2011-05-06 2014-12-23 David H. Sitrick Systems and methodologies providing for collaboration by respective users of a plurality of computing appliances working concurrently on a common project having an associated display
US8924859B2 (en) 2011-05-06 2014-12-30 David H. Sitrick Systems and methodologies supporting collaboration of users as members of a team, among a plurality of computing appliances
US8918723B2 (en) 2011-05-06 2014-12-23 David H. Sitrick Systems and methodologies comprising a plurality of computing appliances having input apparatus and display apparatus and logically structured as a main team
US8990677B2 (en) 2011-05-06 2015-03-24 David H. Sitrick System and methodology for collaboration utilizing combined display with evolving common shared underlying image
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US8918724B2 (en) 2011-05-06 2014-12-23 David H. Sitrick Systems and methodologies providing controlled voice and data communication among a plurality of computing appliances associated as team members of at least one respective team or of a plurality of teams and sub-teams within the teams
US8826147B2 (en) 2011-05-06 2014-09-02 David H. Sitrick System and methodology for collaboration, with selective display of user input annotations among member computing appliances of a group/team
US9330366B2 (en) 2011-05-06 2016-05-03 David H. Sitrick System and method for collaboration via team and role designation and control and management of annotations
US8875011B2 (en) 2011-05-06 2014-10-28 David H. Sitrick Systems and methodologies providing for collaboration among a plurality of users at a plurality of computing appliances
US8918722B2 (en) 2011-05-06 2014-12-23 David H. Sitrick System and methodology for collaboration in groups with split screen displays
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US9224129B2 (en) 2011-05-06 2015-12-29 David H. Sitrick System and methodology for multiple users concurrently working and viewing on a common project
JP6236938B2 (ja) * 2012-07-10 2017-11-29 株式会社リコー 出力システム、操作端末及びプログラム
MX359030B (es) 2012-08-01 2018-09-12 Chromatic Tech Inc Revestimiento interactivo para impresion de acabado.
US9047244B1 (en) 2012-09-11 2015-06-02 Google Inc. Multi-screen computing device applications
US20140173442A1 (en) * 2012-12-18 2014-06-19 Microsoft Corporation Presenter view in presentation application
US20140214504A1 (en) * 2013-01-31 2014-07-31 Sony Corporation Virtual meeting lobby for waiting for online event
CN106060492B (zh) * 2016-06-28 2018-11-13 联想(北京)有限公司 一种投影方法及装置
CN112312060B (zh) * 2020-08-28 2023-07-25 北京字节跳动网络技术有限公司 屏幕共享方法、装置和电子设备
CN112837561B (zh) * 2020-12-29 2022-08-23 河南库课数字科技有限公司 一种提高专注力的幼儿学前教育系统及使用方法

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5509048A (en) 1993-07-26 1996-04-16 Meidan; Reuven Radio transceiver with interface apparatus which visually displays information and method therefor
US5944794A (en) * 1994-09-30 1999-08-31 Kabushiki Kaisha Toshiba User identification data management scheme for networking computer systems using wide area network
US5835715A (en) 1995-10-06 1998-11-10 Dawber & Company, Inc. Interactive theater and feature presentation system
US5790785A (en) * 1995-12-11 1998-08-04 Customer Communications Group, Inc. World Wide Web registration information processing system
US6148323A (en) * 1995-12-29 2000-11-14 Hewlett-Packard Company System and method for managing the execution of system management
CA2221702A1 (en) * 1996-03-29 1997-10-09 Northern Telecom Limited Multimedia document conferencing system
US6088451A (en) 1996-06-28 2000-07-11 Mci Communications Corporation Security system and method for network element access
US6052717A (en) * 1996-10-23 2000-04-18 Family Systems, Ltd. Interactive web book system
WO1998044733A1 (en) * 1997-03-31 1998-10-08 Broadband Associates Method and system for providing a presentation on a network
US5995102A (en) 1997-06-25 1999-11-30 Comet Systems, Inc. Server system and method for modifying a cursor image
JPH1131059A (ja) 1997-07-11 1999-02-02 Canon Inc 印刷制御装置および印刷制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
EP1032886B1 (en) 1997-11-14 2009-03-18 Microsoft Corporation Server operating system for supporting multiple client-server sessions and dynamic reconnection of users to previous sessions
US6094189A (en) 1998-04-17 2000-07-25 Quillen; Wendell A. Visual echo remote laser pointer
AU1323600A (en) 1998-10-27 2000-05-15 Joel R. Petersen Portable interactive presentation device
US6560637B1 (en) * 1998-12-02 2003-05-06 Polycom, Inc. Web-enabled presentation device and methods of use thereof
JP2000222163A (ja) 1999-01-29 2000-08-11 Seiko Epson Corp データ表示システムおよびデータ表示システムにおけるデータ表示制御方法
AU4016500A (en) 1999-03-23 2000-10-09 Frankel & Company Control of server-originated dynamic digital signage at client site using automated data acquisition
US6910068B2 (en) 1999-06-11 2005-06-21 Microsoft Corporation XML-based template language for devices and services
US6636888B1 (en) * 1999-06-15 2003-10-21 Microsoft Corporation Scheduling presentation broadcasts in an integrated network environment
JP4329174B2 (ja) 1999-07-23 2009-09-09 ソニー株式会社 プレゼンテーションシステム
AU6375700A (en) 1999-07-27 2001-02-13 Bulabay Corporation Interactive network presentation session management
JP3489498B2 (ja) 1999-07-30 2004-01-19 株式会社日立製作所 プラント制御システム、及び補助運転操作卓における通信先切替方法
US20030191816A1 (en) * 2000-01-11 2003-10-09 Spoovy, Llc System and method for creating and delivering customized multimedia communications
US6249281B1 (en) * 2000-02-28 2001-06-19 Presenter.Com On-demand presentation graphical user interface
JP4568957B2 (ja) * 2000-05-16 2010-10-27 ソニー株式会社 カード型ネットワークインタフェース,ネットワーク会議用端末装置及びネットワーク会議システム
CN1196009C (zh) 2000-05-31 2005-04-06 精工爱普生株式会社 投影机、图像显示系统、数据保存及显示方法
JP2002064418A (ja) 2000-08-23 2002-02-28 Casio Comput Co Ltd プレゼンテーション装置、プレゼンテーション方法及び情報記録媒体
JP2002094531A (ja) 2000-09-20 2002-03-29 Casio Comput Co Ltd ネットワーク上のデバイス情報取得方法、ネットワーク上のデバイス情報取得装置及び記録媒体
JP2002099403A (ja) 2000-09-25 2002-04-05 Toshiba Corp コンピュータシステムおよび表示装置切り替え方法
US6943752B2 (en) 2000-09-28 2005-09-13 Matsushita Electric Industrial Co., Ltd. Presentation system, a display device, and a program
CN100334577C (zh) 2000-11-01 2007-08-29 福来西奥德技术公司 用于设备到设备的普适数字输出的控制器及管理器
US6904451B1 (en) 2000-11-27 2005-06-07 Eastman Kodak Company Wireless networked presentation system
US7171475B2 (en) * 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
US6675261B2 (en) * 2000-12-22 2004-01-06 Oblix, Inc. Request based caching of data store data
US7275102B2 (en) * 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
AU2002234258A1 (en) * 2001-01-22 2002-07-30 Sun Microsystems, Inc. Peer-to-peer network computing platform
KR100708467B1 (ko) * 2001-02-03 2007-04-18 삼성전자주식회사 홈네트워크내의 기기에 서비스를 제공하는 시스템 및 그방법
US20040205243A1 (en) * 2001-03-09 2004-10-14 Hans Hurvig System and a method for managing digital identities
US6725219B2 (en) * 2001-03-13 2004-04-20 Seiko Epson Corporation Internet presentation system
US6999912B2 (en) 2001-03-13 2006-02-14 Microsoft Corporation Provisioning computing services via an on-line networked computing environment
US6981043B2 (en) * 2001-03-27 2005-12-27 International Business Machines Corporation Apparatus and method for managing multiple user identities on a networked computer system
US7065587B2 (en) * 2001-04-02 2006-06-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7180475B2 (en) 2001-06-07 2007-02-20 Infocus Corporation Method and apparatus for wireless image transmission to a projector
US20030013438A1 (en) 2001-07-12 2003-01-16 Darby George Eugene Pocket concierge system and method
US20030023681A1 (en) 2001-07-26 2003-01-30 International Business Machines Corporation Sharing messaging device information among network users
US20030028637A1 (en) 2001-07-31 2003-02-06 Gross Curtis T. Method and apparatus for providing network access to a shared image projection device
US7047308B2 (en) 2001-08-31 2006-05-16 Sharp Laboratories Of America, Inc. System and method for simultaneous media playout
US7068789B2 (en) * 2001-09-19 2006-06-27 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) group security infrastructure and method
US7493363B2 (en) * 2001-09-19 2009-02-17 Microsoft Corporation Peer-to-peer group management and method for maintaining peer-to-peer graphs
US7299351B2 (en) * 2001-09-19 2007-11-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
KR100952860B1 (ko) 2001-09-28 2010-04-14 세이코 엡슨 가부시키가이샤 네트워크 프로젝터 인터페이스 시스템
US6708176B2 (en) 2001-10-19 2004-03-16 Bank Of America Corporation System and method for interactive advertising
GB0126649D0 (en) * 2001-11-06 2002-01-02 Mitel Knowledge Corp System and method for facilitating the selection of electronic services using infrared and a network address identification
US7006055B2 (en) 2001-11-29 2006-02-28 Hewlett-Packard Development Company, L.P. Wireless multi-user multi-projector presentation system
US8417827B2 (en) * 2001-12-12 2013-04-09 Nokia Corporation Synchronous media playback and messaging system
JP3707433B2 (ja) 2001-12-25 2005-10-19 セイコーエプソン株式会社 プロジェクタの制御システム及び制御方法
JP2003198870A (ja) 2001-12-25 2003-07-11 Seiko Epson Corp プロジェクタのワイヤレス制御システム及びワイヤレス制御方法
US6830340B2 (en) 2001-12-26 2004-12-14 Infocus Corporation Image-rendering device
US7044605B2 (en) 2001-12-26 2006-05-16 Infocus Corporation Image-rendering device
US20030140344A1 (en) 2002-01-21 2003-07-24 Ghulam Bhatti Wireless control for universal plug and play networks and devices
JP2003218877A (ja) 2002-01-22 2003-07-31 Sony Corp ネットワークシステム、端末及び通信制御方法
US7197562B2 (en) 2002-04-05 2007-03-27 Infocus Corporation Projector device management system
US6912622B2 (en) * 2002-04-15 2005-06-28 Microsoft Corporation Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol
US20030225621A1 (en) 2002-04-17 2003-12-04 Hadi Nurcahya System, apparatus and method for advertising through product or service previews
WO2003096669A2 (en) 2002-05-10 2003-11-20 Reisman Richard R Method and apparatus for browsing using multiple coordinated device
US20030236889A1 (en) * 2002-06-25 2003-12-25 Microsoft Corporation Data projection system and method
US7206934B2 (en) * 2002-09-26 2007-04-17 Sun Microsystems, Inc. Distributed indexing of identity information in a peer-to-peer network
US7027035B2 (en) 2002-10-07 2006-04-11 Hewlett-Packard Development Company, L.P. Image copy to a second display
US8037202B2 (en) * 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
CH696355A5 (de) 2002-11-14 2007-05-15 Clariant Speciality Fine Chemi Katalytisches Verfahren zur Herstellung von Carbonyl-Verbindungen.
US7613812B2 (en) * 2002-12-04 2009-11-03 Microsoft Corporation Peer-to-peer identity management interfaces and methods
US7430747B2 (en) * 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US20040128344A1 (en) * 2002-12-30 2004-07-01 Nokia Corporation Content and service registration, query and subscription, and notification in networks
US7596625B2 (en) * 2003-01-27 2009-09-29 Microsoft Corporation Peer-to-peer grouping interfaces and methods
US7437440B2 (en) * 2003-01-27 2008-10-14 Microsoft Corporation Peer-to-peer networking framework application programming interfaces
US7965837B2 (en) 2003-04-30 2011-06-21 Sony Corporation Method and system for wireless digital video presentation
US7434166B2 (en) 2003-06-03 2008-10-07 Harman International Industries Incorporated Wireless presentation system
US8260857B2 (en) 2003-10-23 2012-09-04 Microsoft Corporation One to many data projection system and method
US20050091359A1 (en) 2003-10-24 2005-04-28 Microsoft Corporation Systems and methods for projecting content from computing devices
US20060147791A1 (en) 2004-12-30 2006-07-06 Debe Mark K Platinum recovery from fuel cell stacks

Also Published As

Publication number Publication date
AU2004214576B2 (en) 2010-07-08
KR101099194B1 (ko) 2011-12-27
RU2004131035A (ru) 2006-04-10
AU2004214576A1 (en) 2005-05-12
CN103929343B (zh) 2019-02-05
JP2005129029A (ja) 2005-05-19
US8260857B2 (en) 2012-09-04
CA2482220C (en) 2014-03-18
CA2482220A1 (en) 2005-04-23
CN1610308A (zh) 2005-04-27
US20050102356A1 (en) 2005-05-12
JP5060018B2 (ja) 2012-10-31
EP1528505B1 (en) 2013-02-27
RU2412478C2 (ru) 2011-02-20
CN103929343A (zh) 2014-07-16
KR20050039531A (ko) 2005-04-29
EP1528505A1 (en) 2005-05-04
BRPI0404405A (pt) 2005-06-21

Similar Documents

Publication Publication Date Title
MXPA04010032A (es) Sistema y metodo de proyeccion de uno a muchos datos.
US11785056B2 (en) Web browser interface for spatial communication environments
US10795832B2 (en) Electronic tool for communicating over a communication network
RU2611041C9 (ru) Способы и системы для совместной конференцсвязи и совместного использования программного приложения
Soldatos et al. Agent based middleware infrastructure for autonomous context-aware ubiquitous computing services
EP2756667B1 (en) Electronic tool and methods for meetings
Rudolph Project oxygen: Pervasive, human-centric computing–an initial experience
EP2529316A2 (en) Web browser interface for spatial communication environments
MXPA04010402A (es) Sistemas y metodos para proyectar contenido desde dispositivos de computo.
KR20130010910A (ko) 실시간 커널
CN111164949A (zh) 用于通过网络流传输数据的方法和系统
Roman et al. A middleware-based application framework for active space applications
Ådahl Shared resource for collaborative editing over a wireless network
Liu et al. Eucalyptus: a web service-enabled e-infrastructure
Izadi et al. The FUSE platform: supporting ubiquitous collaboration within diverse mobile environments
US10511644B2 (en) Joining executable component to online conference
Phillips Livespaces technical overview
Han et al. A service composition oriented framework for configuring SMeet multiparty collaboration environments
Cheverst Development of a group service to support collaborative mobile groupware
US20230339816A1 (en) Visual Communications
Cheung et al. A model-based authorware for the construction of distributed multimedia systems
Pozzer et al. CSVTool-A tool for video-based collaboration
Liu et al. Eucalyptus: Provisioning Resources on e-Infrastructure
Parwatikar Customization of collaborative sessions
Ahmady Simab A CORBA-based system for testing distributed systems.

Legal Events

Date Code Title Description
FG Grant or registration