MXPA04010559A - Arquitectura para un sistema de colaboracion extensible en tiempo real. - Google Patents

Arquitectura para un sistema de colaboracion extensible en tiempo real.

Info

Publication number
MXPA04010559A
MXPA04010559A MXPA04010559A MXPA04010559A MXPA04010559A MX PA04010559 A MXPA04010559 A MX PA04010559A MX PA04010559 A MXPA04010559 A MX PA04010559A MX PA04010559 A MXPA04010559 A MX PA04010559A MX PA04010559 A MXPA04010559 A MX PA04010559A
Authority
MX
Mexico
Prior art keywords
objects
real
collaboration
terminal point
time
Prior art date
Application number
MXPA04010559A
Other languages
English (en)
Inventor
Nikhil P Bobde
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 MXPA04010559A publication Critical patent/MXPA04010559A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

Se proporciona una arquitectura para un sistema de colaboracion extensible en tiempo real. La arquitectura presenta una interfase de programa de aplicacion unificada para escribir programas de aplicacion que utilizan protocolos de comunicaciones. La arquitectura tiene objetos de actividad, objetos de punto Terminal, y pilas de medios multiples. Estos objetos pueden utilizar varios protocolos de comunicaciones, tales como el Protocolo de Iniciacion de Sesion o Protocolo de transporte en Tiempo Real para enviar y recibir mensajes. Los objetos de actividad, los objetos de punto terminal y las pilas de medios multiples cada uno puede tener una o mas APIs que un programador de aplicacion puede utilizar para tener acceso o proporcionar funcionalidad con relacion a la colaboracion. Estos objetos trazan la API para la implementacion subyacente provista por otros objetos. El uso de los objetos de actividad permite que un programador proporcione menos logica de aplicacion que la que podria ser necesaria de otra manera para proporcionar servicios de colaboracion.

Description

ARQUITECTURA PARA UN SISTEMA EXTENSIBLE DE COLABORACIÓN EN TIEMPO REAL REFERENCIA CRUZADA CON SOLICITUDES RELACIONADAS Esta solicitud reclama el beneficio de la Solicitud Provisional de Estados Unidos, Nos, 60/513,790, titulada , presentada el 23 de octubre de 2003, y , titulada "sistemas de colaboración en tiempo real", presentada el 6 de agosto de 2004, e identificada con el número de referencia del abogado 41826-8067US00, ambas incorporadas aquí como referencia en su totalidad.
CAMPO DE LA INVENCIÓN La tecnología descrita se relaciona en general con comunicaciones de datos y más en particular a una arquitectura para un sistema extensible de colaboración en tiempo real.
ANTECEDENTES DE LA INVENCIÓN Algunas aplicaciones y protocolos de comunicaciones permiten las comunicaciones entre los programas o usuarios de software. Como ejemplos, las aplicaciones de comunicaciones en tiempo real como el MICROSOFT WINDOWS MESSENGER, y Voz sobre el Protocolo Internet ("VolP") permiten las comunicaciones entre los usuarios que envían datos de video, texto o voz. Estas aplicaciones pueden utilizar varios protocolos, como el Protocolo de Inicio de Sesión ("SIP"), el Protocolo de Transporte en Tiempo Real ("RTP"), y el Protocolo de Control en Tiempo Real. ("RTCP), para establecer sesiones y enviar información relacionada con las comunicaciones. El SIP es un protocolo de control de estrato de aplicación que los dispositivos pueden utilizar para descubrir otro y establecer, modificar y terminar las sesiones entre dispositivos. El RTP es un protocolo para entregar audio y video sobre la Internet, y con frecuencia se utiliza para los sistemas de medios en corriente y sistemas de videoconferencia junto con otros protocolos como el RTCP y H.323. El RTCP es un protocolo que permite a un aplicación del cliente monitorear y controlar los datos enviados o recibidos con el uso de RTP, y se usa con RTP. SIP y RTP/RTCP son normas propuestas por Internet. Sus especificaciones, "RFC-3261" y "RFC 3550" están disponibles en la Internet en www.ietf.org en rfc/rfc3621.txt. y www.faqs.or en /rfcs/rfc3550.html, respectivamente, y se incorporan aquí como referencia en su totalidad. Las aplicaciones pueden utilizar otros protocolos. Las aplicaciones pueden utilizar versiones mejoradas de los protocolos indicados antes o protocolos diferentes que están diseñados para llevar datos especializados. Como ejemplo, cuando un nuevo protocolo o protocolo mejorado para llevar información de vídeoconferencia queda disponible, un programador de aplicación que crea o modifica una aplicación puede desear utilizar un nuevo. protocolo o mejorado, por ejemplo, para mejorar el desempeño u ofrecer características adicionales. Para utilizar el nuevo protocolo o mejorado, el programador de aplicación necesita modificar porciones de la aplicación para interactuar con los protocolos de comunicación ya que una mejora de un protocolo o un protocolo nuevo puede tener una interfaz diferente que el protocolo ya usado. Como ejemplo, el protocolo puede tener una interfaz de NuevaSesión para crear una nueva versión, una versión mejorada puede tener un método de IniciarSesión que crea e inicia una sesión y acepta parámetros adicionales. Debido que IniciarSesión acepta parámetros adicionales, su interfaz es diferente de NuevaSesión, y por esto una aplicación que utiliza NuevaSesión necesita ser modificada para utilizar IniciarSesión. Cuando un protocolo tiene una ¡nterfaz diferente, los programadores de aplicación necesitan aprender diferentes interfaces y modificar sus aplicaciones para usar esta interfaz para utilizar el protocolo. Los programadores de aplicación necesitarán familiarizarse con detalles de cada uno de los muchos protocolos de comunicación que utilizan las aplicaciones que desarrollan. Como ejemplo, cuando un programador de aplicación utiliza SIP y RTP/RTCP, el programador de aplicación necesita estar familiarizado con los tres protocolos para proporcionar un lógica de programa relacionados con los protocolos. Un programador de aplicación no familiarizado con los tres protocolos necesita un entrenamiento adicional y tiempo para familiarizarse con estos protocolos. Además, cuando se modifica una aplicación para funcionar con protocolos adicionales o mejorados, el programador de la aplicación necesita revisar o agregar un lógica de programación para que la aplicación pueda funcionar con estos protocolos. Esto puede llevar a gastos y dificultades de desarrollo adicionales. Además, los diferentes protocolos presentan varias complejidades. Por ejemplo, para proporcionar una característica de videoconferencia en una aplicación, el programador de la aplicación tendrá que estar familiarizado con un número de protocolos y proporcionar lógicas para coordinar los protocolos para agregar las capacidades de videoconferencia. El agregar estas capacidades de colaboración en una aplicación, como los mensajes de texto, mensajes de voz, etc., presenta más complejidades. De esta manera, una arquitectura para un sistema extensible de colaboración en tiempo real que facilite la adición de características de colaboración en una aplicación sin una inversión importante en capacitación del programador tendrá una gran utilidad.
BREVE DESCRIPCIÓN DE LA INVENCIÓN Se proporciona una arquitectura para un sistema extensible de colaboración en tiempo real. La arquitectura presenta una interfaz de programa de aplicación unificada ("API") para escribir programas de aplicación que utilizan los protocolos de comunicaciones. La arquitectura tiene objetos de actividad, objetos de punto terminal, y múltiples pilas de medios. Estos objetos pueden utilizar varios protocolos de comunicación, como un protocolo de inicio de sesión o protocolo de transporte en tiempo real para enviar y recibir mensajes que contienen la información. Los objetos de actividad, los objetos de punto terminal, y las múltiples pilas de medios cada una puede tener una o más API, que el programador de la aplicación puede utilizar para tener acceso o proporcionar la funcionalidad relacionada con la colaboración. Estos objetos trazan la API con la implementación subyacente provista por otros objetos. El uso de objetos de actividad permite que un programador proporcione menos lógica de aplicación que la que podría ser necesaria de otra manera para proporcionar servicios de colaboración.
BREVE DESCRIPCIÓN DE LOS DIBUJOS La Figura 1 es un diagrama en bloque que ilustra los componentes de una arquitectura para un sistema extensible de colaboración en tiempo real en una modalidad. La Figura 2 es un diagrama en bloque que ilustra los componentes de un objeto de punto terminal de un sistema extensible de colaboración en tiempo real en una modalidad. La Figura 3 es un diagrama en bloque que ilustra los objetos de actividad de un sistema extensible de colaboración en tiempo real en una modalidad. La Figura 4 es un diagrama de flujo que ilustra una rutina de crear_servidor_punto terminal en una modalidad.
La Figura 5 es un diagrama de la arquitectura que ilustra la arquitectura para un sistema extensible de colaboración en tiempo real en una modalidad.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN En una modalidad, se proporciona una arquitectura para un sistema extensible de colaboración en tiempo real. La arquitectura proporciona una interfaz de programa de aplicación (API) de alto nivel para escribir programas de aplicación que utilizan los protocolos de comunicaciones para proporcionar los servicios de colaboración. Un programador de aplicación puede agregar servicios de colaboración a una aplicación con el uso de una API sin necesitar aprender los problemas asociados con varios protocolos subyacentes que implementan los servicios de colaboración. La arquitectura comprende objetos de actividad, objetos de punto terminal y múltiples pilas de medios. Estos objetos pueden utiliza varios protocolos de comunicaciones, como SIP o RTP/RTCP, para enviar y recibir mensajes. Los objetos de actividad, los objetos de punto terminal y las múltiples pila de medios cada uno tiene una o más API que un programador de aplicación puede utilizar para tener acceso o proporcionar la funcionalidad provista por los objetos. El programador de aplicación puede seleccionar para proporcionar la lógica de aplicación que utilizan la API provista por los objetos de punto terminal y las pila de medios, o puede seleccionar proporcionar lógica de aplicación que utiliza la API provista por el objeto de actividad. Al utilizar las API provistas por los objetos de punto terminal y las pila de medios, el programador de aplicación puede tener la capacidad de ejercitar un alto grado de flexibilidad, pero puede tener que proporcionar mucha más lógica de por lo menos que si solamente se utilizara la API de los objetos de actividad. Un programador de aplicación puede seleccionar utilizar la API de los objetos de actividad por varias razones. La API de los objetos de actividad proporciona una interfaz de más alto nivel que las API de los objetos de punto terminal y las pilas de medios. Además, los objetos de actividad coordinan el objeto de punto terminal y la pila de medios y así la lógica de aplicación puede no necesitar ser provista para llevar a cabo la coordinación. Los objetos de actividad proporcionan servicios a aplicaciones y otros objetos. Los objetos de actividad son objetos que permiten a una aplicación participar en una variedad de actividades específicas y puede incluir, como ejemplo, la mensajería instantánea, la teleconferencia, videoconferencia, aplicación compartida y otras actividades. Los objetos de actividad pueden ser considerados como objetos "envolventes" que proporcionan ia funcionalidad de los objetos subyacentes, incluyendo los objetos de punto terminal y las pilas de medios. En particular, los objetos de actividad coordinan los objetos de punto terminal y las pilas de medios para proporcionar una sesión integrada y continua con otros objetos que utilizan los objetos de actividad, como aplicaciones.
Un ejemplo del beneficio de utilizar un objeto de actividad es provisto en el siguiente ejemplo. Un programador de aplicación puede desear proporcionar las capacidades de videoconferencia en una aplicación. Para hacer esto, el programador de aplicación tendrá primero que familiarizarse con el protocolo de señalización, como el SIP y el protocolo de medios como el RTP/RTCP. Después, el programador de aplicación tendrá que proporcionar una lógica de aplicación para crear una sesión, determinar si el contacto con el que se desea una videoconferencia está en línea, enviar una invitación para unirse a la videoconferencia, negociar varios parámetros relacionados con la videoconferencia, capturar el audio y video del hardware de capturación de audio y video, y por último intercambiar los datos de audio/video con el uso de RTP/RTCP. Por el contrario, al usar un objeto de actividad de videoconferencia de la arquitectura, muchos de estos pasos se eliminan debido a que el objeto de actividad de videoconferencia está diseñado especialmente para consolidar la lógica del programa de aplicación en varias interfaces de alto nivel. La arquitectura tiene objetos de actividad similares para una variedad de otras actividades de colaboración. Además, la arquitectura proporciona el soporte para los objetos de actividad adicionales para ser agregados en un futuro. Un objeto de punto de terminal proporciona los servicios de administración, como la señalización. Un objeto de punto de terminal comprende los componentes de perfil, la publicidad/suscripción, la señalización y de pila del protocolo. El componente del perfil puede proporcionar una abstracción para el usuario a través de una API. El componente de publicidad/suscripción proporciona las ¡nterfaces para rastrear la presencia y la información de disponibilidad relacionada con los usuarios. El componente de señalización se puede utilizar para proporcionar o recibir mensajes de transacción, poco frecuentes relacionados con establecer o controlar sesiones. El componente de señalización puede también usarse para negociar, por ejemplo, parámetros de medios como el límite del ancho de banda. El componente de pila del protocolo se utiliza por el perfil, publicidad/suscripción, y componentes de señalización para enviar o recibir datos, y da soporte a varios protocolos, incluyendo SIP. Como se mencionó antes, el objeto de actividad proporciona una capacidad para los programadores de aplicación para agregar servicios de colaboración a las aplicaciones fácilmente. Como ejemplo, un programador de aplicación que desea agregar videoconferencia en una aplicación puede proporcionar la lógica para crear (o instar) un objeto de actividad de videoconferencia. El objeto de actividad de videoconferencia puede entonces iniciar un objeto de punto de terminal para la señalización (como un objeto de punto de terminal SIP) y una pila de medios de mensajería para llevar datos de audio/video. Durante las actividades posteriores de videoconferencia (por ejemplo, cuando se envía o recibe una corriente de audio/video), el objeto de actividad puede coordinar los objetos que crea. En una modalidad, la aplicación puede crear los objetos y en forma opcional, puede proporcionar una indicación de los objetos al objeto de actividad. En tal caso, el objeto de actividad puede no necesitar crear estos objetos. Los objetos de pila de medios proporcionan los servicios de comunicación de contenido, como el manejo de corrientes de datos de audio/video. Como ejemplo el objeto de pila de medios puede utilizar RTP/RTCP para enviar o recibir información audiovisual relacionado con la videoconferencia. Con referencia ahora a las Figuras, la Figura 1 es un diagrama en bloque que ilustra los componentes de la arquitectura para un sistema extensible de colaboración en tiempo real, en una modalidad. La arquitectura para un sistema extensible de colaboración en tiempo real comprende un objeto 102 de servicio de colaboración, múltiples objetos de punto de terminal 104, objetos de actividad 106 y múltiples pilas de medios 108. Una o más aplicaciones 110 pueden utilizar la arquitectura al tener característica a varios métodos, propiedades y eventos relacionados con la arquitectura. Un programador de aplicación que escribe una aplicación puede utilizar la arquitectura con el uso de una API unificada en lugar de tener que aprender e implementar una API diferente para cada una de las pilas de medios, protocolos u otros componentes que la aplicación o arquitectura puede utilizar. El objeto 102 de servicio de colaboración proporciona la característica para las aplicaciones para compartir múltiples objetos de punto de terminal y puede proporcionar una API consistente a través de un número de objetos de punto de terminal. Como ejemplo, cuando un objeto 1 de punto de terminal proporciona una interfaz relacionada con recibir (o enviar) información, el objeto de punto de terminal 2 de manera similar proporciona una interfaz relacionada con recibir (o enviar) información, pero las dos ¡nterfaces utilizan diferentes nombres aunque lleva a cabo funciones similares, el objeto de servicio de colaboración puede proporcionar un nombre común para ambas interfaces. Cuando un programador de aplicación utiliza el nombre común en una aplicación, el programador de aplicación puede no necesitar revisar la aplicación cuando se utiliza un nuevo objeto u objeto modificado que proporciona la interfaz con un diferente nombre con el objeto de servicio de colaboración. Los objetos de punto de terminal 104 proporcionan una característica para la señalización de otros objetos. La señalización se puede utilizar entre dos objetos de punto de terminal que tienen una sesión por ejemplo, para que el objeto de punto de terminal pueda invitar o solicitar al otro objeto de punto de terminal conducir una actividad o intercambiar información relacionada con la sesión. Como ejemplo, el objeto de punto de terminal puede invitar a otro objeto de punto de terminal de la sesión a conversación de mensajería instantánea y posteriormente enviar mensajes de texto relacionados con la conversación. Los objetos de punto de terminal también se describen más adelante en forma detallada con relación a la Figura 2.
Los objetos de actividad son componentes que permiten a una aplicación participar en una variedad de actividades relacionadas con la colaboración. Estos componentes proporcionan una API que el programador de aplicación puede utilizar para coordinar los objetos de punto de terminal y las pilas de medios. Los objetos de actividad 106 también se describen con detalle con relación a la Figura 3. Un objeto 108 de pila de medios proporciona los servicios de comunicaciones de contenido, como el manejo de corrientes de datos, y proporciona una API para otros objetos para enviar o recibir los datos. La arquitectura tiene la capacidad de soportar virtualmente un número infinito de pilas de medios en virtud del hecho de que la arquitectura no necesita distinguir entre los datos y los tipos de medios. Como resultado, se pueden agregar pilas de medios o las pilas de medios se pueden modificar conforme cambien los requerimientos. Un ejemplo de pila de medios es RTP/RTCP. La pila de medios se puede utilizar para enviar información audiovisual.
La Figura 2 es un diagrama en bloque que ¡lustra los componentes de un objeto de punto de terminal de un sistema extensible de colaboración en tiempo real en una modalidad. Los objetos de punto de terminal proporcionan los servicios de administración, como una característica para la señalización de otros objetos. La señalización se puede utilizar entre dos objetos de punto de terminal que tienen una sesión, por ejemplo, para que el objeto de punto de terminal pueda invitar o solicitar al otro objeto de punto de terminal para conducir una actividad o intercambiar información relacionada con la sesión. Como ejemplo, un objeto de punto de terminal puede invitar al otro objeto de punto de terminal de la sesión a una conversación de mensajería instantánea y posteriormente enviar mensajes de texto asociados con la conversación. La arquitectura puede dar soporte a varios objetos de punto de terminal, y cada variedad de objeto de punto de terminal se puede iniciar múltiples veces. Como ejemplo, puede haber un objeto de punto de terminal relacionado con la cuenta del proveedor de servicio Internet personal del usuario (por ejemplo, MSN:COM) y otro objeto de punto de terminal relacionado con la cuenta de Internet corporativa del usuario (por ejemplo, MICROSOFT. COM). El usuario puede estar registrado con los proveedores de servicio con el uso de una cuenta personal en múltiples dispositivos (por ejemplo, un dispositivo de computación portátil, y un dispositivo de computadora de escritorio) y también puede estar registrado con el uso de una cuenta corporativa en algunos dispositivos (por ejemplo, la computadora de escritorio). De este modo, puede haber dos casos relacionados con la URI asociada con la cuenta personal. Los casos individuales de los objeto de punto de terminal pueden identificarse en forma única por una combinación de localizadores de recursos uniformes (URI) y un identificador de punto terminal (EID). Como ejemplo, un objeto de punto de terminal puede identificarse por la URI usuario@MSN.COM y por la EID "1234". Como se mencionó antes, la EID se puede utilizar para distinguir en forma particular un caso de un objeto de punto de terminal de otro caso de objeto de punto de terminal que está asociado con la misma URI. Un objeto de punto de terminal puede proporcionar la interfaz de "datos" y una interfaz de "señalización". La interfaz de datos puede incluir métodos, eventos y propiedades relacionadas con los datos que se publican o suscriben por el objeto de punto de terminal. Al publicar o suscribir datos, una aplicación puede proporcionar los datos o ser notificada de cambios en los datos. La interfaz de señalización puede proporcionar métodos, eventos y propiedades relacionados con el control de la señalización del objeto de punto de terminal. Como ejemplo, las características de señalización pueden incluir crear o unir sesiones, entrar o abandonar conversaciones, aceptar o rechazar invitaciones, y otras señales. El objeto de punto de terminal 200 ¡lustrado comprende un componente 201 de perfil, un componente 202 de publicación/suscripción, el componente 204 de señalización y un componente 206 de pila de medios. El componente de perfil puede proporcionar la abstracción para el usuario a través de una API. Mantiene la información relacionada con el servicio para el usuario, como la dirección electrónica (por ejemplo, URI), las credenciales utilizadas por el proveedor de servicio, el status del proveedor de servicio, la capacidad y las políticas. Los usuarios pueden tener múltiples perfiles con relación a diferentes proveedores de servicio. El usuario puede tener más de un perfil por proveedor de servicio. El componente de perfil puede utilizarse cuando se crean sesiones con otros usuarios, por ejemplo, para proporcionar la URI del usuario. El componente de perfil puede proporcionar métodos para el registro o no registro de un usuario con relación al proveedor de servicio. El componente de publicación/suscripción proporciona las interfaces para rastrear la información de presencia y disponibilidad relacionada con los usuarios. La información de presencia se relaciona con la presencia del usuario en un dispositivo de computación en particular. La información de disponibilidad se relaciona con el usuario presente disponible para recibir un mensaje o deseoso de recibirlo. Como ejemplo, un usuario de un teléfono celular puede estar presente cuando el teléfono está encendido, pero puede no estar disponible para una sesión de mensajes cuando el usuario está participando en la llamada celular. De manera similar, un usuario que tiene una indicación de "ocupado" en el MICROSOFT WINDOWS MESSENGER puede estar presente, pero no disponible para los mensajes. Como otro ejemplo, el objeto de presencia puede proporcionar la información relacionada con el usuario que está presente y disponible para participar en una conversación de MICROSOFT WINDOWS MESSENGER con el uso de un dispositivo de computación y también está disponible para participar en una teleconferencia con el uso de un teléfono celular. Cuando el usuario no está registrado en MICROSOFT WINDOWS MESSENGER, el objeto de presencia puede actualizar esta información para que la aplicación que utiliza el objeto de presencia tenga la capacidad de determinar que el usuario ya no está presente o disponible para participar en la conversación de MICROSOFT WINDOWS MESSENGER. De esta manera, la información de presencia indica si están presentes los usuarios u otros objetos. Los diferentes proveedores de servicio o protocolos pueden utilizar diferentes mecanismos para producir o proporcionar la información de presencia. Por esto, el programador de aplicación no necesitará conocer las múltiples formas para producir o proporcionar la información de presencia, un programador de aplicación puede utilizar el objeto de punto de terminal para producir o utilizar la información de presencia. El componente de publicación/suscripción proporciona una interfaz de suscripción para crear una suscripción para otra publicación del objeto, una interfaz de publicación para proporcionar suscripciones a otros objetos, y una interfaz de notificación para recibir notificaciones relacionadas con los servicios a los cuales se han suscrito las publicaciones. Estas interfaces permiten a una aplicación utilizar un componente para proporcionar, recibir o rastrear la información de presencia. Como ejemplo, cuando un usuario participa en una conversación MICROSOFT WINDOWS MESSENGER con el uso de una computadora personal y participa en una teleconferencia con el uso de un teléfono celular, el componente de publicación/suscripción puede detectar y reportar la presencia del usuario en ambas ubicaciones. La URI y la EID pueden juntas distinguir en forma única los casos de los objetos de punto de terminal. Debido a que el usuario puede estar presente en múltiples ubicaciones al mismo tiempo, la URI del usuario puede ser indicada como presente en esas múltiples ubicaciones. La adición de una EID con relación a una URI determinada proporciona un mecanismo para identificar en forma única un caso particular de presencia. Las notificaciones se pueden proporcionar relacionadas con diferente información. Como ejemplo, las notificaciones puede ser provistas relacionadas con el usuario que está en línea, ocupado, disponible, fuera para el almuerzo etc. También, se pueden proporcionar notificaciones con respecto a la ubicación geográfica del usuario (por ejemplo, provista como un sistema de posicionamiento global, GPS), información de contacto, información de calendario, mensajes de fuera de oficina, capacidades de audio/video. El componente de señalización puede utilizarse para proporcionar o recibir mensajes de transacción, poco frecuentes, relacionados con establecer o controlar sesiones. Este componente también se puede utilizar para negociar, por ejemplo, parámetros de medios como cuadros por segundo. El objeto de pila de protocolo es responsable de enviar y recibir información con el uso de un protocolo. Como ejemplo, el SIP se puede utilizar para enviar o recibir información de señalización. En varias modalidades, otros protocolos se pueden utilizar de igual forma. En una modalidad, un objeto de punto de terminal puede ser compatible con múltiples protocolos. En tal caso, el objeto de punto de terminal puede tener la capacidad de utilizar por ejemplo, múltiples protocolos , según sea necesario para enviar y recibir información. De manera alternativa, la arquitectura puede dar soporte a múltiples combinaciones de protocolo-objeto de punto de terminal como objetos de punto de terminal separados. En tal caso, un objeto de punto de terminal se puede utilizar para SIP y otro para algún otro protocolo. La Figura 3 es un diagrama en bloque que ilustra los objetos de actividad de un sistema extensible de colaboración en tiempo real en una modalidad. Los objetos de actividad proporcionan servicios para las aplicaciones y otros objetos. Los objetos de actividad son objetos que permiten que una aplicación participe en una variedad de actividades específicas, y puede incluir, como ejemplos, mensajería instantánea, teleconferencia, videoconferencia, compartir aplicaciones y otras actividades. Los objetos de actividad pueden ser considerados como objetos "envolventes" que proporcionan la funcionalidad de objetos subyacentes, incluyendo objetos de punto de terminal y pila de medios. En particular, los objetos de actividad coordinan los objetos de punto de terminal y las pilas de medios para proporcionar una sesión integrada y continua con objetos que utilizan los objetos de actividad, como las aplicaciones. Cada objeto de actividad proporciona la funcionalidad que permite a una aplicación utiliza el objeto para participar el una variedad de actividades. Como ejemplo, un objeto de actividad puede encapsular la información de señalización y de medios. Al hacer esto, el objeto de actividad puede servir como un puente entre la señalización y los medios, de modo que la aplicación que utiliza el objeto de actividad es provisto con una vista integrada. Por ejemplo, un programador de aplicación solamente solicita una videoconferencia mejor que tener que ajustar un SIP separado y las conexiones y sesiones RTP/RTCP. Los ejemplos ilustrados de actividades se describen abajo. Un objeto de actividad 304 de sesión de colaboración permite a una aplicación proporcionar los servicios de colaboración a los usuarios de la aplicación. Como ejemplo, el objeto de actividad de sesión de colaboración puede permitir a dos usuarios el uso de dos diferentes computadoras para colaborar en autorizar un documento compartido. Un objeto de actividad 310 de compartir aplicación permite a una aplicación el uso de un objeto de actividad de compartir aplicación para proporcionar la funcionalidad que se relaciona con el compartir las aplicaciones entre usuarios con el uso de diferentes dispositivos de computación. Como ejemplo, dos usuarios pueden compartir una aplicación de "encerado", por ejemplo, con el uso de cuál usuario puede proporcionar la información visual que el otro usuario pueda ver y manipular. Un objeto de actividad 306 de mensajería proporciona a las aplicaciones la capacidad de proporcionar capacidades de mensajes con los usuarios de las aplicaciones. Como ejemplo, un programador de aplicación puede desear habilitar la mensajería dentro de una aplicación que el programador está creando. Como ejemplo específico, cuando dos usuarios están colaborando en un documento al editarlo en forma simultánea, los usuarios pueden desear ser capaces de enviar mensajes a otros o participar en una videoconferencia durante la colaboración. En tal caso, un programador de aplicación puede utilizar un objeto de actividad de sesión de colaboración así como la mensajería o los objeto de actividad de videoconferencia para permitir a los usuarios colaborar e intercambiar mensajes entre sí durante la colaboración. Un objeto de actividad 308 de videoconferencia proporciona la característica de videoconferencia a una aplicación. La videoconferencia puede involucrar enviar y recibir información audiovisual. Los objeto de actividad adicionales también están contemplados, y se representan como objeto de actividad 312. Un programador de aplicación utiliza objetos de la arquitectura descritos antes (y los no enlistados o descritos) al utilizar las API provistas por los objetos. Estos objetos pueden proporcionar una API fácil de usar para que el programador de la aplicación no necesite hacer referencia a las API provistas en los componentes subyacentes que proporcionan los servicios asociados con los objeto de actividad. Como ejemplo, un proveedor de servicio de mensajería puede proporcionar una API que el programador pueda utilizar. Para hacer eso, el programador necesita invertir tiempo para aprender la API, lo cual puede ser complicado. En su lugar, el programador deseará utilizar una API más sencilla provista por un objeto de la arquitectura. Además, el objeto puede encapsular los pasos que se requieren para utilizar múltiples objetos. Como ejemplo, un programador de aplicación desea intercambiar mensajes entre dos computadoras, por lo que necesitará utilizar una API provista por el SIP así como una API expuesta por otro objeto de menor nivel que proporcione los servicios de mensajería. Por el contrario, el programador de aplicación necesitará solamente utilizar el objeto de actividad de mensajería, y por lo tanto tener la capacidad de agregar la funcionalidad de mensajería en la aplicación más fácilmente. Además, la estructura puede operar para coordinar múltiples objetos, lo que requiere menos lógica de programación del programador de la aplicación. En una modalidad, la sesión de colaboración contiene y utiliza los objeto de actividad. La Figura 4 es un diagrama de flujo que ilustra una rutina de crear_servidor_punto de terminal en una modalidad. La rutina es llamada por una aplicación para crear un objeto de punto de terminal que se conecta con un servidor. Cuando el punto terminal se crea y se conecta con un servidor, la información que publica puede estar disponible para los objetos suscriptores aun después de que el punto de terminal creado ya no opere. De este modo, un punto terminal conectado con un servidor puede proporcionar información "por UEI" lo que significa que la información permanece disponible después de la vida útil del objeto. La rutina empieza en el bloque 402. En el bloque 404, la rutina crea un nuevo objeto de punto de terminal, e indica que el punto de terminal está relacionado con la aplicación. La aplicación propuesta puede estar provista como un parámetro para crear funciones que operen para crear un punto de terminal. Cuando se crea un punto de terminal, un nombre "amigable"" puede ser provisto para que el punto de terminal pueda ser llamado por el nombre amigable. De manera alternativa, el punto de terminal recién creado puede ser llamado por un identificador único asociado con el punto de terminal. Este identificador único se puede generar por el sistema cuando se crea el objeto. En el bloque 406, luego de crear un punto de terminal, la aplicación registra el objeto de punto de terminal recién creado en el servidor, para permitir que el servidor enrute los mensajes a este punto de terminal. Luego de recibir una solicitud de registro desde el objeto de punto de terminal, el servidor puede emitir un reto al punto de terminal. El reto puede contener un "realm" utilizado por el servidor. Un realm puede indicar un nombre de dominio asociado con el servidor. Como ejemplo, el servidor puede emitir un reto con el realm "MICROSOFT.com". En el bloque 408, la rutina responde al reto al proporcionar las credenciales (por ejemplo, ID del usuario y contraseña) asociadas con la aplicación. Estas credenciales se pueden suministrar por el usuario o de manera automática. El servicio valida las credenciales que la rutina le presenta. Las credenciales pueden estar asociadas con el realm. Por ejemplo, cuando la aplicación proporciona las credenciales que no están asociadas con el realm del servicio (MICROSOFT.com), el servicio no autenticará la aplicación. Cuando el registro tiene éxito, el punto de terminal puede estar listo para recibir mensajes desde otros objetos. De otra forma, el punto de terminal no tiene la capacidad de recibir mensajes. La rutina regresa a su llamador en el bloque 412. En una modalidad, el servidor tiene la capacidad de que el punto de terminal no está registrado correctamente para enviar mensajes pero si puede recibir mensajes. De manera alternativa, en un modelo se seguridad más débil, el servidor puede permitir a cualquier punto de terminal enviar o recibir mensajes. En una modalidad, el servidor puede retar al punto de terminal cuando el punto de terminal intente enviar un mensaje, pero no cuando recibe mensajes. Una rutina alternativa (no mostrada) puede crear un punto de terminal adjunto a adjunto. Un punto de terminal adjunto a adjunto es uno que no está asociado con un servidor. Cuando un punto de terminal no está asociado con el servidor, la información que el punto de terminal publica puede no estar disponible una vez que el punto de terminal termine de operar. La Figura 5 es un diagrama de la arquitectura que ilustra la arquitectura para un sistema extensible de colaboración en tiempo real en una modalidad. La arquitectura comprende un objeto de actividad 502, un punto de terminal 504, y múltiples objetos de pila de medios 506. Estos objetos ya han sido descritos. El diagrama de la arquitectura indica la relación entre el objeto de actividad, el objeto de punto de terminal y los objetos de pila de medios en una modalidad. Específicamente, el diagrama de la arquitectura indica la funcionalidad provista por un objeto de actividad que incluye la funcionalidad provista por el punto de terminal y por los objetos de pila de medios. En una modalidad, los múltiples objetos de actividad se pueden utilizar con los objetos de pila de medios. Las aplicaciones pueden solicitar los métodos de objetos de la arquitectura o pueden solicitar directamente métodos de objetos subyacentes que implementan la funcionalidad. Al solicitar los métodos de los objetos de la arquitectura, los programadores de la aplicación no necesitarán proporcionar mayor lógica y no necesitarán revisar la lógica de la aplicación cuando cambien los componentes subyacentes. A continuación se presentan algunas API provistas por la arquitectura. Una aplicación puede crear un objeto de punto de terminal al crear un "Colaboración Punto de terminal". La aplicación puede proporcionar los siguientes parámetros: una URI relacionada con el objeto de punto de terminal, un servidor asociado con el objeto de punto de terminal y una indicación de las credenciales de la red.
Un método de RedCredencial proporciona una indicación de las credenciales de la red. Este método acepta como parámetros una indicación de la cuenta del usuario, la contraseña y el dominio con el cual está asociado la cuenta. Un método Introducir registra el punto de terminal, y proporciona una indicación de falla o de éxito. El método no requiere parámetros. Un método Publicar publica la información de presencia. Como ejemplo, una aplicación puede indicar que el usuario está en línea, fuera de línea, ocupado, en el teléfono, etc. La arquitectura es lo suficientemente flexible para proporcionar virtualmente un número ilimitado de indicaciones de presencia. Por ejemplo, una indicación puede seleccionar publicar la ubicación GPS del usuario. En forma contraria, el método Suscribir suscribe a una publicación del objeto de punto de terminal. Un método Invitar invita al usuario a una sesión de colaboración. El método recibe una indicación de una URI que debe invitar. Un método Aceptar acepta una invitación. En forma contraria, el método Rechazar, rechaza la invitación. Un objeto de actividad de mensajería puede ser creado de una clase de ActividadMensajeríalnstantánea. Este objeto de actividad da soporte a varios métodos incluyendo por ejemplo, un método para enviar un mensaje, EnviarMensaje.
El método EnviarMensaje envía un mensaje. Recibe una ristra de mensajes como un parámetro. Los métodos se pueden proporcionar por varios objetos de la arquitectura. La arquitectura también puede proporcionar método, propiedades y eventos adicionales relacionados con recuperar las propiedades del usuario, agregar un usuario a una lista de contactos, agregar o remover participantes de una conversación y demás. El dispositivo de computación en donde la arquitectura se implementa puede incluir una unidad de procesamiento central, una memoria, dispositivos de entrada (por ejemplo, teclado y dispositivos de impresión), dispositivos de salida (por ejemplo, dispositivos de despliegue) y dispositivos de almacenamiento (por ejemplo, unidades de disco). La memoria y los dispositivos de almacenamiento son medios legibles por computadora que pueden contener instrucciones que implementan el sistema. Además, las estructuras de datos y las estructuras de mensajes se pueden almacenar o transmitirse a través de enlaces de comunicaciones de datos, como una señal en un enlace de comunicaciones. Se pueden utilizar diferentes enlaces de comunicaciones, como la Internet, una red de área local, una red de área amplia o una conexión de marcación de punto a punto. La arquitectura se puede implementar en una variedad de ambientes operativos, incluyendo dispositivos de computación que corren con el sistema operativo MICROSOFT WINDOWS. Este ambiente operativo es solamente un ejemplo de un ambiente operativo apropiado y no tiene la intención de sugerir el alcance del uso o la funcionalidad del sistema. Otros sistemas de computación bien conocidos, ambientes y configuraciones que pueden ser apropiados para usarse incluyen computadoras personales, computadoras de servicio, dispositivos manuales o portátiles, incluyendo los teléfonos celulares "Inteligentes", sistemas multiprocesadores, sistemas con base en multiprocesadores, electrónicos consumibles programables, PC en red, minicomputadoras, computadoras principales, ambientes de computación distribuida que incluyen cualquiera de los sistemas o dispositivos anteriores y sus semejantes. La arquitectura se puede describir en el contexto general de instrucciones ejecutables por computadora, como módulos de programa, ejecutados por una o más computadoras u otros dispositivos. En general, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que llevan a cabo tareas particulares, o implementan tipos particulares de datos abstractos. Típicamente, la funcionalidad de los módulos de programa se puede combinar o distribuir según sea deseado en varias modalidades. A partir de lo anterior, se debe apreciar que ciertas modalidades de la invención han sido descritas con un propósito ilustrativo, y se pueden llevar a cabo varias modificaciones sin apartarse del espíritu y alcance de la invención. De conformidad con esto, la invención no está limitada excepto por las reivindicaciones anexas.

Claims (24)

REIVINDICACIONES
1. Un método llevado a cabo por un sistema de computación para proporcionar servicios de colaboración en tiempo real, caracterizado porque comprende: iniciar un objeto de actividad, el objeto de actividad tiene una interfaz de programa de aplicación para proporcionar el servicio de colaboración; y solicitar métodos de la interfaz del programa de aplicación, los métodos solicitados proporcionan los servicios de administración y servicios de comunicación de contenido entre las aplicaciones que están comunicando información del servicio de colaboración.
2. El método de conformidad con la reivindicación 1, caracterizado porque el objeto de punto de terminal proporciona los servicios de administración.
3. El método de conformidad con la reivindicación 2, caracterizado porque el objeto de punto de terminal utiliza un Protocolo de Inicio de Sesión.
4. El método de conformidad con la reivindicación 1, caracterizado porque el objeto de pila de medios proporciona el servicio de comunicaciones de contenido.
5. El método de conformidad con la reivindicación 4, caracterizado porque el objeto de pila de medios utiliza un protocolo de transporte en tiempo real.
6. El método de conformidad con la reivindicación 4, caracterizado porque el objeto de pila de medios utiliza un protocolo de control de tiempo real.
7. El método de conformidad con la reivindicación 1, caracterizado porque caracterizado porque los servicios de administración incluyen proporcionar la información de presencia.
8. El método de conformidad con la reivindicación 1, caracterizado porque los servicios de comunicaciones de contenido incluyen proporcionar medios.
9. Un sistema extensible de colaboración en tiempo real, caracterizado porque comprende: múltiples objetos de pilas de medios; un objeto de punto de terminal, el objeto de punto de terminal para proporcionar o recibir la Información de señalización; y múltiples objetos de actividad, en donde los objetos de actividad proporcionan una interfaz de programa de aplicación para las aplicaciones y utiliza los múltiples objetos de pila de medios y el objeto de punto de terminal para proporcionar los servicios de colaboración, además la aplicación utiliza la interfaz del programa de aplicación y no necesita proporcionar lógica para coordinar los objetos de pila de medios y el objeto de punto de terminal.
10. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 9, caracterizado porque la interfaz del programa de aplicación proporciona un nombre de interfaz consistente aun cuando dos objetos subyacentes proporcionan la misma funcionalidad asociada que utiliza nombres de interfaz diferentes.
11. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 9, caracterizado porque uno de los servicios de colaboración es la mensajería.
12. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 9, caracterizado porque uno de los servicios de colaboración es videoconferencia.
13. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 9, caracterizado porque uno de los servicios de colaboración es compartir una aplicación.
14. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 9, caracterizado porque agrega objetos de pila de medios.
15. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 9, caracterizado porque el objeto de punto de terminal comprende un componente de perfil, un componente de publicación/suscripción, un componente de señalización y un componente de pila de protocolo.
16. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 15, caracterizado porque el componente de pila de protocolo utiliza un protocolo de inicio de sesión.
17. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 15, caracterizado porque el componente de pila de protocolo utiliza un protocolo de señalización.
18. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 9, caracterizado porque uno de los múltiples de pila de medios utiliza un protocolo de transporte en tiempo real.
19. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 18, caracterizado porque el componente de pila de protocolo utiliza un protocolo de inicio de sesión.
20. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 18, caracterizado porque el componente de pila de protocolo utiliza un protocolo de señalización.
21. El sistema extensible de colaboración en tiempo real de conformidad la reivindicación 18, caracterizado porque el objeto de actividad coordina uno de los múltiples objetos de medios y el objeto de punto de terminal bajo la dirección de una aplicación.
22. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para proporcionar un sistema extensible de colaboración en tiempo real, caracterizado porque comprende: proporcionar una interfaz de programa de aplicación relacionada con el componente de colaboración en tiempo real que tiene una implementacíón; recibir otro componente de colaboración en tiempo real q ue tiene otra implementación; y proporcionar la interfaz del programa de aplicación relacionado con otro componente de colaboración en tiempo real aunque la implementación del componente de colaboración en tiempo real no sea idéntico a la implementación de otro componente de colaboración en tiempo real.
23. El med io legible por computadora de conformidad con la reivindicación 22, caracterizado porque un componente subyacente al componente de colaboración en tiempo real tiene un nom bre de interfaz de programa de aplicación diferente que el com ponente de colaboración en tiempo real.
24. El med io legible por computadora de conformidad con la reivindicación 22, caracterizado porque incluye ambos componentes de colaboración en tiempo real luego de una indicación de una solicitud de colaboración desde una aplicación. RESU MEN Se proporciona una arquitectura para un sistema extensible de colaboración en tiem po real. La arquitectura presenta una interfaz de programa de aplicación unificada ("API") para escribir programas de aplicación que utilizan los protocolos de comunicaciones. La arquitectura tiene objeto de actividad, objeto de punto terminal, y múltiples pilas de medios. Estos objetos pueden utilizar varios protocolos de comunicación, como un protocolo de inicio de sesión y protocolo de transporte en tiempo real para enviar y recibir mensajes que contienen la información . Los objetos de actividad , los objetos de punto terminal, y las múltiples pilas de medios cada una puede tener una o más API , que el programador de la aplicación puede utilizar para tener acceso o proporcionar la funcionalidad relacionada con la colaboración. Estos objetos trazan la API con la implementación subyacente provista por otros objetos. El uso de objetos de actividad permite que un programador proporcione menos lóg icas de aplicación que los que podrían ser necesarios de otra manera para proporcionar servicios de colaboración.
MXPA04010559A 2003-10-23 2004-10-22 Arquitectura para un sistema de colaboracion extensible en tiempo real. MXPA04010559A (es)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US51379003P 2003-10-23 2003-10-23
US59980704P 2004-08-06 2004-08-06
US91833304A 2004-08-13 2004-08-13
US10/918,855 US8321506B2 (en) 2003-10-23 2004-08-14 Architecture for an extensible real-time collaboration system

Publications (1)

Publication Number Publication Date
MXPA04010559A true MXPA04010559A (es) 2006-09-04

Family

ID=34397195

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA04010559A MXPA04010559A (es) 2003-10-23 2004-10-22 Arquitectura para un sistema de colaboracion extensible en tiempo real.

Country Status (11)

Country Link
US (1) US8321506B2 (es)
EP (1) EP1526695B1 (es)
JP (1) JP2005202926A (es)
KR (1) KR101137099B1 (es)
CN (1) CN100566335C (es)
AT (1) ATE369002T1 (es)
AU (1) AU2004222762B2 (es)
BR (1) BRPI0404468A (es)
CA (1) CA2485763C (es)
DE (1) DE602004007864T2 (es)
MX (1) MXPA04010559A (es)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658091B1 (en) 2002-02-01 2003-12-02 @Security Broadband Corp. LIfestyle multimedia security system
US20050089023A1 (en) * 2003-10-23 2005-04-28 Microsoft Corporation Architecture for an extensible real-time collaboration system
US8321506B2 (en) 2003-10-23 2012-11-27 Microsoft Corporation Architecture for an extensible real-time collaboration system
US7571245B2 (en) * 2003-12-19 2009-08-04 International Business Machines Corporation System and method for delivering the streaming of audio-video using external resources
US11677577B2 (en) 2004-03-16 2023-06-13 Icontrol Networks, Inc. Premises system management using status signal
US11582065B2 (en) 2007-06-12 2023-02-14 Icontrol Networks, Inc. Systems and methods for device communication
US10444964B2 (en) 2007-06-12 2019-10-15 Icontrol Networks, Inc. Control system user interface
US9729342B2 (en) 2010-12-20 2017-08-08 Icontrol Networks, Inc. Defining and implementing sensor triggered response rules
US11113950B2 (en) 2005-03-16 2021-09-07 Icontrol Networks, Inc. Gateway integrated with premises security system
US12063220B2 (en) 2004-03-16 2024-08-13 Icontrol Networks, Inc. Communication protocols in integrated systems
US20170118037A1 (en) 2008-08-11 2017-04-27 Icontrol Networks, Inc. Integrated cloud system for premises automation
US8988221B2 (en) 2005-03-16 2015-03-24 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US10142392B2 (en) 2007-01-24 2018-11-27 Icontrol Networks, Inc. Methods and systems for improved system performance
US9191228B2 (en) 2005-03-16 2015-11-17 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11916870B2 (en) 2004-03-16 2024-02-27 Icontrol Networks, Inc. Gateway registry methods and systems
US10522026B2 (en) 2008-08-11 2019-12-31 Icontrol Networks, Inc. Automation system user interface with three-dimensional display
US20090077623A1 (en) 2005-03-16 2009-03-19 Marc Baum Security Network Integrating Security System and Network Devices
US10382452B1 (en) * 2007-06-12 2019-08-13 Icontrol Networks, Inc. Communication protocols in integrated systems
US9141276B2 (en) 2005-03-16 2015-09-22 Icontrol Networks, Inc. Integrated interface for mobile device
US11489812B2 (en) 2004-03-16 2022-11-01 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US11343380B2 (en) 2004-03-16 2022-05-24 Icontrol Networks, Inc. Premises system automation
US11244545B2 (en) 2004-03-16 2022-02-08 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US10200504B2 (en) 2007-06-12 2019-02-05 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US10339791B2 (en) 2007-06-12 2019-07-02 Icontrol Networks, Inc. Security network integrated with premise security system
US10721087B2 (en) 2005-03-16 2020-07-21 Icontrol Networks, Inc. Method for networked touchscreen with integrated interfaces
US10156959B2 (en) 2005-03-16 2018-12-18 Icontrol Networks, Inc. Cross-client sensor user interface in an integrated security network
US11368429B2 (en) 2004-03-16 2022-06-21 Icontrol Networks, Inc. Premises management configuration and control
US9531593B2 (en) 2007-06-12 2016-12-27 Icontrol Networks, Inc. Takeover processes in security network integrated with premise security system
US10237237B2 (en) 2007-06-12 2019-03-19 Icontrol Networks, Inc. Communication protocols in integrated systems
US7711796B2 (en) 2006-06-12 2010-05-04 Icontrol Networks, Inc. Gateway registry methods and systems
US11811845B2 (en) 2004-03-16 2023-11-07 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US10313303B2 (en) 2007-06-12 2019-06-04 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US11201755B2 (en) 2004-03-16 2021-12-14 Icontrol Networks, Inc. Premises system management using status signal
US9609003B1 (en) 2007-06-12 2017-03-28 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US10375253B2 (en) 2008-08-25 2019-08-06 Icontrol Networks, Inc. Security system with networked touchscreen and gateway
US8963713B2 (en) 2005-03-16 2015-02-24 Icontrol Networks, Inc. Integrated security network with security alarm signaling system
US20160065414A1 (en) 2013-06-27 2016-03-03 Ken Sundermeyer Control system user interface
US11159484B2 (en) 2004-03-16 2021-10-26 Icontrol Networks, Inc. Forming a security network including integrated security system components and network devices
US8635350B2 (en) 2006-06-12 2014-01-21 Icontrol Networks, Inc. IP device discovery systems and methods
US11277465B2 (en) 2004-03-16 2022-03-15 Icontrol Networks, Inc. Generating risk profile using data of home monitoring and security system
US11316958B2 (en) 2008-08-11 2022-04-26 Icontrol Networks, Inc. Virtual device systems and methods
GB2428821B (en) 2004-03-16 2008-06-04 Icontrol Networks Inc Premises management system
US7580867B2 (en) * 2004-05-04 2009-08-25 Paul Nykamp Methods for interactively displaying product information and for collaborative product design
US20060161620A1 (en) * 2004-12-30 2006-07-20 Microsoft Corporation Extensible activities within collaboration sessions
US10999254B2 (en) 2005-03-16 2021-05-04 Icontrol Networks, Inc. System for data routing in networks
US11615697B2 (en) 2005-03-16 2023-03-28 Icontrol Networks, Inc. Premise management systems and methods
US11496568B2 (en) 2005-03-16 2022-11-08 Icontrol Networks, Inc. Security system with networked touchscreen
US20120324566A1 (en) 2005-03-16 2012-12-20 Marc Baum Takeover Processes In Security Network Integrated With Premise Security System
US11700142B2 (en) 2005-03-16 2023-07-11 Icontrol Networks, Inc. Security network integrating security system and network devices
US20110128378A1 (en) 2005-03-16 2011-06-02 Reza Raji Modular Electronic Display Platform
US20170180198A1 (en) 2008-08-11 2017-06-22 Marc Baum Forming a security network including integrated security system components
US9306809B2 (en) 2007-06-12 2016-04-05 Icontrol Networks, Inc. Security system with networked touchscreen
US7925701B2 (en) * 2005-07-25 2011-04-12 Sony Ericsson Mobile Communications Ab Mobile communication terminal supporting information sharing
JP4643430B2 (ja) * 2005-12-14 2011-03-02 富士通株式会社 通信プログラム、通信方法および通信装置
US7614060B2 (en) * 2006-04-28 2009-11-03 Microsoft Corporation Unified concept of presence
US12063221B2 (en) 2006-06-12 2024-08-13 Icontrol Networks, Inc. Activation of gateway device
US10079839B1 (en) 2007-06-12 2018-09-18 Icontrol Networks, Inc. Activation of gateway device
GB0616613D0 (en) * 2006-08-22 2006-10-04 Ibm Data processing system using matching engine and routing switch
US8817668B2 (en) * 2006-09-15 2014-08-26 Microsoft Corporation Distributable, scalable, pluggable conferencing architecture
US8150798B2 (en) 2006-10-10 2012-04-03 Wells Fargo Bank, N.A. Method and system for automated coordination and organization of electronic communications in enterprises
US11706279B2 (en) 2007-01-24 2023-07-18 Icontrol Networks, Inc. Methods and systems for data communication
US20080183645A1 (en) * 2007-01-31 2008-07-31 Microsoft Corporation Media continuity service between devices
US7633385B2 (en) 2007-02-28 2009-12-15 Ucontrol, Inc. Method and system for communicating with and controlling an alarm system from a remote server
US8010093B2 (en) 2007-03-08 2011-08-30 Infineon Technologies Ag Communication network unit and method for exchanging capability information
US8451986B2 (en) 2007-04-23 2013-05-28 Icontrol Networks, Inc. Method and system for automatically providing alternate network access for telecommunications
US12003387B2 (en) 2012-06-27 2024-06-04 Comcast Cable Communications, Llc Control system user interface
US10498830B2 (en) 2007-06-12 2019-12-03 Icontrol Networks, Inc. Wi-Fi-to-serial encapsulation in systems
US10051078B2 (en) 2007-06-12 2018-08-14 Icontrol Networks, Inc. WiFi-to-serial encapsulation in systems
US11423756B2 (en) 2007-06-12 2022-08-23 Icontrol Networks, Inc. Communication protocols in integrated systems
US11212192B2 (en) 2007-06-12 2021-12-28 Icontrol Networks, Inc. Communication protocols in integrated systems
US11601810B2 (en) 2007-06-12 2023-03-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US11237714B2 (en) 2007-06-12 2022-02-01 Control Networks, Inc. Control system user interface
US10423309B2 (en) 2007-06-12 2019-09-24 Icontrol Networks, Inc. Device integration framework
US10616075B2 (en) 2007-06-12 2020-04-07 Icontrol Networks, Inc. Communication protocols in integrated systems
US11218878B2 (en) 2007-06-12 2022-01-04 Icontrol Networks, Inc. Communication protocols in integrated systems
US10523689B2 (en) 2007-06-12 2019-12-31 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US11089122B2 (en) 2007-06-12 2021-08-10 Icontrol Networks, Inc. Controlling data routing among networks
US10389736B2 (en) 2007-06-12 2019-08-20 Icontrol Networks, Inc. Communication protocols in integrated systems
US11316753B2 (en) 2007-06-12 2022-04-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US11646907B2 (en) 2007-06-12 2023-05-09 Icontrol Networks, Inc. Communication protocols in integrated systems
US10666523B2 (en) 2007-06-12 2020-05-26 Icontrol Networks, Inc. Communication protocols in integrated systems
US10223903B2 (en) 2010-09-28 2019-03-05 Icontrol Networks, Inc. Integrated security system with parallel processing architecture
US8583733B2 (en) * 2007-08-17 2013-11-12 Microsoft Corporation Real time collaboration file format for unified communication
US11831462B2 (en) 2007-08-24 2023-11-28 Icontrol Networks, Inc. Controlling data routing in premises management systems
US11916928B2 (en) 2008-01-24 2024-02-27 Icontrol Networks, Inc. Communication protocols over internet protocol (IP) networks
US20170185278A1 (en) 2008-08-11 2017-06-29 Icontrol Networks, Inc. Automation system user interface
US11758026B2 (en) 2008-08-11 2023-09-12 Icontrol Networks, Inc. Virtual device systems and methods
US10530839B2 (en) 2008-08-11 2020-01-07 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US11258625B2 (en) 2008-08-11 2022-02-22 Icontrol Networks, Inc. Mobile premises automation platform
US11792036B2 (en) 2008-08-11 2023-10-17 Icontrol Networks, Inc. Mobile premises automation platform
US11729255B2 (en) 2008-08-11 2023-08-15 Icontrol Networks, Inc. Integrated cloud system with lightweight gateway for premises automation
US8638211B2 (en) 2009-04-30 2014-01-28 Icontrol Networks, Inc. Configurable controller and interface for home SMA, phone and multimedia
US20110154222A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Extensible mechanism for conveying feature capabilities in conversation systems
AU2011250886A1 (en) 2010-05-10 2013-01-10 Icontrol Networks, Inc Control system user interface
US9799004B2 (en) 2010-07-30 2017-10-24 Avaya Inc. System and method for multi-model, context-aware visualization, notification, aggregation and formation
US8836467B1 (en) 2010-09-28 2014-09-16 Icontrol Networks, Inc. Method, system and apparatus for automated reporting of account and sensor zone information to a central station
US11750414B2 (en) 2010-12-16 2023-09-05 Icontrol Networks, Inc. Bidirectional security sensor communication for a premises security system
US9147337B2 (en) 2010-12-17 2015-09-29 Icontrol Networks, Inc. Method and system for logging security event data
US20140115069A1 (en) * 2012-10-22 2014-04-24 International Business Machines Corporation Generating a user unavailability alert in a collaborative environment
US9395955B2 (en) 2013-03-18 2016-07-19 Jayarama Marks Programming system and method
US11405463B2 (en) 2014-03-03 2022-08-02 Icontrol Networks, Inc. Media content management
US11146637B2 (en) 2014-03-03 2021-10-12 Icontrol Networks, Inc. Media content management
US10491641B2 (en) * 2015-02-20 2019-11-26 T-Mobile Usa, Inc. Inter-IMS service support in telecommunication systems
JP2022170173A (ja) * 2021-04-28 2022-11-10 オムロン株式会社 情報処理装置、方法およびプログラム

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5097533A (en) 1988-11-29 1992-03-17 International Business Machines Corporation System and method for interfacing computer application programs written in different languages to a software system
JPH03158947A (ja) * 1989-11-17 1991-07-08 Nec Corp 通信制御方式
JP2763663B2 (ja) * 1990-07-24 1998-06-11 株式会社ケンウッド 光ディスク記録再生装置のレーザ駆動回路
US5327558A (en) 1992-04-30 1994-07-05 Motorola, Inc. Method for asynchronous application communication
GB2272311A (en) 1992-11-10 1994-05-11 Ibm Call management in a collaborative working network.
US5872923A (en) * 1993-03-19 1999-02-16 Ncr Corporation Collaborative video conferencing system
US5576629A (en) * 1994-10-24 1996-11-19 Fourth State Technology, Inc. Plasma monitoring and control method and system
US5724508A (en) 1995-03-09 1998-03-03 Insoft, Inc. Apparatus for collaborative computing
JPH1040080A (ja) 1996-07-26 1998-02-13 Nec Corp オープンビジネス共通基盤装置
KR100227151B1 (ko) 1997-01-09 1999-10-15 진교문 다중점 통신을 지원하는 응용프로그램 공유 방법
US6167395A (en) 1998-09-11 2000-12-26 Genesys Telecommunications Laboratories, Inc Method and apparatus for creating specialized multimedia threads in a multimedia communication center
US7073172B2 (en) 1998-09-21 2006-07-04 Microsoft Corporation On demand patching of applications via software implementation installer mechanism
JP2000250756A (ja) 1999-03-02 2000-09-14 Mitsubishi Electric Corp 監視データ処理ソフトウェア開発用フレームワーク
US6748420B1 (en) 1999-11-23 2004-06-08 Cisco Technology, Inc. Methods and apparatus for providing shared access to an application
JP2001282952A (ja) 2000-03-30 2001-10-12 Namco Ltd クライアント・コンピュータ、サーバ・コンピュータ、ネットワーク・ランキング・システム、ネットワーク・ランキング方法、課題処理方法および記録媒体
EP1158740B1 (en) * 2000-05-24 2009-09-16 Sony Deutschland GmbH Quality of Service negotiation
WO2001098936A2 (en) 2000-06-22 2001-12-27 Microsoft Corporation Distributed computing services platform
US20020032730A1 (en) 2000-09-11 2002-03-14 Rami Amit System and method for correlating data sessions
US20020069263A1 (en) 2000-10-13 2002-06-06 Mark Sears Wireless java technology
US20040249811A1 (en) 2000-12-14 2004-12-09 Shostack Ronald N. Web based dating service with filter for filtering potential friends/mates using physical and/or personality attractiveness criteria
US20030018719A1 (en) 2000-12-27 2003-01-23 Ruths Derek Augustus Samuel Data-centric collaborative computing platform
US20030009603A1 (en) 2000-12-27 2003-01-09 Ruths Derek Augustus Samuel System and method for managing collaborative data representations
US7155681B2 (en) 2001-02-14 2006-12-26 Sproqit Technologies, Inc. Platform-independent distributed user interface server architecture
AUPR459901A0 (en) * 2001-04-27 2001-05-24 Sharinga Networks Inc. Instant messaging
US7353252B1 (en) 2001-05-16 2008-04-01 Sigma Design System for electronic file collaboration among multiple users using peer-to-peer network topology
US20030014488A1 (en) * 2001-06-13 2003-01-16 Siddhartha Dalal System and method for enabling multimedia conferencing services on a real-time communications platform
JP4233775B2 (ja) 2001-07-06 2009-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーション データ通信方法、データ通信システムおよびプログラム
US20030041108A1 (en) 2001-08-22 2003-02-27 Henrick Robert F. Enhancement of communications by peer-to-peer collaborative web browsing
US7054648B2 (en) 2001-10-22 2006-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Location privacy proxy server and method in a telecommunication network
US7124080B2 (en) 2001-11-13 2006-10-17 Microsoft Corporation Method and apparatus for adapting a class entity dictionary used with language models
US7535915B2 (en) 2001-12-31 2009-05-19 Samsung Electronics Co., Ltd. System and method for scalable and redundant SIP message routing in an IP multimedia subsystem
US20030144892A1 (en) 2002-01-29 2003-07-31 International Business Machines Corporation Method, system, and storage medium for providing knowledge management services
AU2003226128A1 (en) * 2002-03-27 2003-10-13 First Virtual Communications System and method for traversing firewalls with protocol communications
US7340745B2 (en) 2002-06-25 2008-03-04 Sun Microsystems, Inc. Systems and methods for mapping API calls
US7926066B2 (en) 2002-07-09 2011-04-12 Openpages, Inc. Adaptive content platform and application integration with the platform
US20040093595A1 (en) 2002-08-08 2004-05-13 Eric Bilange Software application framework for network-connected devices
CA2505936A1 (en) 2002-11-11 2004-05-27 Supracomm, Inc. Multicast videoconferencing
US20040107256A1 (en) 2002-12-02 2004-06-03 Thomas Odenwald Collaboration integration
WO2004062227A2 (en) 2003-01-06 2004-07-22 Koninklijke Philips Electronics N.V. Multi-factor application selection
US7765551B2 (en) 2003-02-10 2010-07-27 Novell, Inc. System for dynamically loading application resources from the first server to the second server based on the modified application resources from the first server
US7360164B2 (en) 2003-03-03 2008-04-15 Sap Ag Collaboration launchpad
US7444425B2 (en) * 2003-03-10 2008-10-28 Meetrix, Inc. Applying multicast protocols and VPN tunneling techniques to achieve high quality of service for real time media transport across IP networks
US8375082B2 (en) 2003-04-17 2013-02-12 Hewlett-Packard Development Company, L.P. Communications systems and methods
US7366163B1 (en) 2003-04-25 2008-04-29 At&T Corp. Method for providing local and toll services with LNP, and toll-free services to a calling party which originates the call from an IP location connected to a sip-enabled IP network
US20040236639A1 (en) 2003-05-20 2004-11-25 Arun Candadai Dynamic data collaboration
US20050089023A1 (en) 2003-10-23 2005-04-28 Microsoft Corporation Architecture for an extensible real-time collaboration system
US8321506B2 (en) 2003-10-23 2012-11-27 Microsoft Corporation Architecture for an extensible real-time collaboration system

Also Published As

Publication number Publication date
AU2004222762B2 (en) 2010-03-04
EP1526695B1 (en) 2007-08-01
CA2485763C (en) 2012-06-26
KR101137099B1 (ko) 2012-04-19
BRPI0404468A (pt) 2005-06-21
KR20050039596A (ko) 2005-04-29
CN1668038A (zh) 2005-09-14
US20050091435A1 (en) 2005-04-28
CA2485763A1 (en) 2005-04-23
EP1526695A1 (en) 2005-04-27
DE602004007864D1 (de) 2007-09-13
ATE369002T1 (de) 2007-08-15
CN100566335C (zh) 2009-12-02
AU2004222762A1 (en) 2005-05-12
US8321506B2 (en) 2012-11-27
JP2005202926A (ja) 2005-07-28
DE602004007864T2 (de) 2008-04-17

Similar Documents

Publication Publication Date Title
US8321506B2 (en) Architecture for an extensible real-time collaboration system
US20050089023A1 (en) Architecture for an extensible real-time collaboration system
US8589547B2 (en) Side channel for membership management within conference control
US9369673B2 (en) Methods and systems for using a mobile device to join a video conference endpoint into a video conference
US9402054B2 (en) Provision of video conference services
US8250141B2 (en) Real-time event notification for collaborative computing sessions
US8621090B2 (en) System and method for providing sequenced anonymous communication sessions over a network
US8514842B1 (en) Systems and methods for enabling communication between users of common virtual spaces
US8248446B2 (en) Rich media communication client device, method and computer program product
US20090319916A1 (en) Techniques to auto-attend multimedia conference events
US7769809B2 (en) Associating real-time conversations with a logical conversation
US20020071540A1 (en) Application service provider configuration and method for a conferencing environment
JP2011512772A (ja) マルチメディア会議イベントの参加者を自動的に識別する技術
WO2007134305A2 (en) Apparatus, system, method and computer program product for collaboration via one or more networks
US20130246636A1 (en) Providing additional information with session requests
US20060161620A1 (en) Extensible activities within collaboration sessions
US7469293B1 (en) Using additional information provided in session requests
RU2377640C2 (ru) Архитектура для расширяемой системы совместной работы в реальном времени
Taha Architecture for a SIP-based conferencing server
Mortada et al. Internet telephony signaling
WO2002044916A1 (en) Executive briefing network

Legal Events

Date Code Title Description
FC Refusal