MX2014012325A - Habilidad de clientes web para proporcionar servicios web. - Google Patents

Habilidad de clientes web para proporcionar servicios web.

Info

Publication number
MX2014012325A
MX2014012325A MX2014012325A MX2014012325A MX2014012325A MX 2014012325 A MX2014012325 A MX 2014012325A MX 2014012325 A MX2014012325 A MX 2014012325A MX 2014012325 A MX2014012325 A MX 2014012325A MX 2014012325 A MX2014012325 A MX 2014012325A
Authority
MX
Mexico
Prior art keywords
web
client
service
http
browser
Prior art date
Application number
MX2014012325A
Other languages
English (en)
Inventor
Matthew T Kaufman
Jacek A Korycki
Raviprakash Ramanujam
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 MX2014012325A publication Critical patent/MX2014012325A/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • 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
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • 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
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Abstract

Varias modalidades permiten a clientes proporcionar servicios web. En una o más modalidades, los clientes web están configurados para actuar como servidores y pueden utilizarse para, entre otros propósitos, llamadas desde y hacia de servicios web soportados por el cliente web. Tales usos pueden incluir, a manera de ejemplo y no de limitación, impulsar mensajes hacia y desde el cliente web. Las varias técnicas pueden utilizar protocolos y bibliotecas estándares sin la necesidad de ningún código personalizado o programas auxiliares personalizados.

Description

HABILIDAD DE CUENTES WEB PARA PROPORCIONAR SERVICIOS WEB ANTECEDENTES Cuando los servidores web conducen transacciones entre sí, un patrón de programación muy común es utilizar un HTTP como el transporte. Por ejemplo, un primer servidor puede emitir una solicitud de OBTEN ER HTTP para la solicitud de una representación de un recurso particular desde un segundo servidor. El segundo servidor puede, a su vez, responder con la representación de recurso. Tambien pueden llevarse a cabo transacciones entre servidores en una forma más asincrónica. Por ejemplo, el primer servidor puede emitir una solicitud de OBTENER HTTP y proporcionar un URL de retorno para que el segundo servidor los utilice para responder. En algún tiempo posterior, el segundo servidor puede regresar asincrónicamente al primer servidor utilizando el U RL proporcionado por el primer servidor. Este proceso también puede operar fácilmente a la inversa entre los servidores.
Utilizando este mismo modelo, las transacciones entre aplicaciones de lado de cliente, tales como navegador web, y servidores pueden operar con la aplicación de lado de cliente emitiendo una solicitud de OBTENER HTTP y recibir una respuesta desde el servidor. Sin embargo, lo mismo no puede decirse del proceso inverso. Específicamente, los servidores típicamente no pueden emitir solicitudes de OBTENER o PU BLICAR HTTP a aplicaciones de lado de cliente o navegadores web debido a que, entre otras razones, los navegadores web típicamente no ejecutan un servidor web. I ncluso si lo hicieran, m uros contra incendios u otros mecanismos tal como dispositivo de Traducción de Dirección de Red (NAT) harían particularmente imposible que se llevará a cabo transacciones.
BREVE DESCRIPCION DE LA INVENCION Esta Breve Descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe a continuación en la Descripción Detallada. Esta Breve Descripción no pretende identificar características clave o características esenciales del tema reclamado.
Varias modalidades habilitan a clientes web para proporcionar servicios web. En una o más modalidades, los clientes web están configurados para actuar como servidores y pueden utilizarse para, entre otros propósitos, hacia y desde llamada de servicios web soportados por el cliente web. Tales usos pueden incluir, a manera de ejemplo y no de limitación, impulsar mensajes hacia y desde el cliente web. Las varias teenicas pueden utilizar protocolos y bibliotecas estándares y sin la necesidad de ningún código personalizado o programas auxiliares personalizados.
En una o más modalidades, un servidor intermedio funciona como un intermediario con el cual se establece una conexión persistente con un cliente web. El servidor intermediario, a su vez, puede publicar al cliente web al m undo utilizando, por ejemplo, la presencia o dirección del cliente web, tal como URL de servicio web. Otros clientes web (por ejemplo, un cliente basado en navegador) que buscan enviar un mensaje al primer cliente web pueden utilizar el URL de servicio web publicado para llamar a un servicio web predefinido. El cliente web que llama tambien puede registrarse con el mismo servidor intermediario o un servidor intermediario diferente y publicar su U RL de servicio web. El primer cliente web entonces puede utilizar este URL para impulsar mensajes al segundo cliente web.
BREVE DESCRIPCION DE LOS DIBUJOS La descripción detallada se describe con referencia a las figuras anexas. En las figuras, el dígito(s) a la izquierda de un número de referencia identifica la figura en la cual aparece por primera vez el número de referencia. El uso de los mismos números de referencia en diferentes casos en la descripción y las figuras puede indicar artículos similares o idénticos. Entidades representadas en las figuras pueden ser indicativas de una o más entidades y de esa forma puede hacerse referencia de manera intercambiable a formas individuales o plurales de las entidades en la discusión.
La Figura 1 es una ilustración de un ambiente en una implementación ilustrativa de acuerdo con una o más modalidades.
La Figura 2 es una ilustración de otro ambiente en una implementación ilustrativa de acuerdo con una o más modalidades.
La Figura 3 es una ilustración de un flujo de com unicación entre dos clientes web de acuerdo con una o más modalidades.
La Fig ura 4 es una ilustración de un flujo de secuencia ilustrativo entre una persona que llama, un servicio de túnel, y un cliente web de acuerdo con una o más modalidades.
La Figura 5 es un diagrama de flujo que ilustra un procedimiento en una implementación ilustrativa de acuerdo con una o más modalidades.
La Figura 6 ilustra un sistema ilustrativo incluyendo varios componentes de un dispositivo ilustrativo que pueden implementarse como cualquier tipo de dispositivo de cómputo como se describe con referencia a las Figuras 1 y 2 para implementar modalidades de las téenicas aquí descritas.
DESCRIPCION DETALLADA Vista general Varias modalidades habilitan a clientes web para proporcionar servicios web. Un servicio web es un programa que puede ser invocado al enviarle una solicitud de HTTP, dirigida a un URL específico, y transportando los parámetros de entrada dentro de varios campos de la solicitud de HTTP, incluyendo el URL, los encabezados y el cuerpo. A su vez, los parámetros de salida que son el resultado del cálculo del programa, son regresados dentro de varios cam pos de la respuesta de HTTP, incluyendo el código de estado, los encabezados y el cuerpo. En una o más modalidades, los clientes web están configurados para actuar como servidores y pueden utilizarse para, entre otros propósitos, hacia y desde llamada de servicios web soportados por el cliente web, tales usos pueden incluir, a manera de ejemplo y no de lim itación, impulsar mensajes hacia y desde el cliente web. Las varias teenicas pueden utilizar protocolos y bibliotecas estándares y sin la necesidad de ningún código personalizado o programas auxiliares personalizados. Las varias técnicas pueden utilizarse, por ejemplo para implementar clientes de charla o Chat basados en navegador utilizando protocolos y bibliotecas estándares y sin requerir ningún código personalizado o instalación de programa auxiliar de navegadores. Al menos en algunas modalidades, pueden utilizarse técnicas de HTTP estándares sin la necesidad de modificar la estructura de la com unicación de HTTP que se lleva a cabo.
En una o más modalidades, un servidor intermedio funciona como un intermediario con el cual se establece una conexión persistente con un cliente web. La conexión persistente puede establecerse utilizando cualquiera de las tecnologías o técnicas adecuadas. A manera de ejemplo y no de limitación, tales tecnologías o técnicas pueden incl uir COM ET, WebSockets y similares. El servidor intermediario a su vez, puede publicar el cliente web al mundo utilizando, por ejemplo, la presencia o dirección del cliente web, tal como un U RL de servicio web. Otros clientes web (por ejemplo, un cliente basado en navegador) que busca enviar un mensaje al primer cliente web puede utilizar el URL de servicio web publicado para llamar a un servicio web predefinido. El cliente web que llama tambien puede registrarse con el mismo servidor intermediario o un servidor intermediario diferente y publicar su URL de servicio web. El primer cliente web entonces puede utilizar este URL para impulsar mensajes al segundo cliente web.
Las téenicas aquí descritas pueden ser empleadas para una multitud de usos prácticos. Por ejemplo, las varias modalidades pueden permitir la implementación de clientes basados en navegador utilizando tecnología de servicios web estándares. Ya que los navegadores son capaces de llamar servicios web sin ninguna instalación de programa auxiliar, el cliente de navegador puede estar diseñado para ser muy ligero y puede trabajar en cualquier dispositivo que tenga un navegador web. Por lo tanto, puede proporcionarse una variedad de escenarios de uso flexible. Además, las técnicas descritas en este documento pueden ser muy aplicables a escenarios que no son basados en navegador. Por ejemplo, las técnicas pueden utilizarse por cualquier dispositivo adecuadamente configurado incluyendo, a manera de ejemplo y no de limitación, dispositivos incorporados. Por ejemplo, tales dispositivos incorporados pueden tomar la forma de aquellos que pueden ventilarse en una variedad de escenarios tales como escenarios de “inicio inteligente” o “de oficina inteligente”, por ejemplo, un dispositivo tal como un interruptor de luz puede configurarse como un dispositivo incorporado para ofrecer y personalizar servicios web como se describe en este documento.
En la siguiente discusión, primero se describe un ambiente ilustrativo y emplea las teenicas aquí descritas. Entonces se describen procedimientos ilustrativos y pueden realizarse en el ambiente ilustrativo así como otros ambientes. Consecuentemente, el desempeño de los procedimientos ilustrativos no está limitado al ambiente ilustrativo y el ambiente ilustrativo no está lim itado al desempeño de los procedimientos ilustrativos.
Ambiente ilustrativo La Figura 1 es una ilustración de un ambiente 100 ilustrativo de acuerdo con una o más modalidades. El am biente 100 incluye una persona que llama 102, un cliente 104, y un servidor intermediario 106.
La persona que llama 102 puede comprender cualquier persona que llama adecuadamente configurada tal como, a manera de ejemplo y no de limitación, un dispositivo de cómputo de cliente, un servidor, o cualquier otra entidad que está configurada para llamar al servidor intermediario 106. En una o más modalidades, la persona que llama y el cliente pueden comprender cualquiera de los agentes de software adecuados que corren en cualquier dispositivo de cóm puto adecuado, cuyos ejemplos se proporcionan a continuación. Los agentes están configurados para utilizar los métodos descritos en este documento para comunicar, por ejemplo, métodos de HTTP, así como una variedad de tipos de conexión persistentes para el cliente. En la modalidad ilustrada y descrita, el cliente 104 incluye una conexión persistente con el servidor intermediario 106. Puede utilizarse cualquier teenología adecuada para permitir que se establezca la conexión persistente. El servidor intermediario 106 implementa un servicio de túnel que es identificado por un punto final de túnel. Como se observó anteriormente, el cliente 104 puede comprender cualquier tipo adecuado de cliente. En los varios ejem plos utilizados en este documento, el cliente 104 comprende un cliente web que puede, pero no necesariamente residir como un navegador web o un agente que nivela las técnicas basadas en navegador para comunicación. El cliente 104, sin embargo, nivela las técnicas basadas en navegador para comunicarse. Por ejemplo, el cliente 104 puede residir en la forma de un cliente móvil o dispositivo incorporado que utiliza una biblioteca nativa para canalización con servidor intermediario 106, como se apreciará por el experto en la técnica. El cliente web 104 se registra con el servidor intermediario 106 utilizando un I D de túnel.
En operación, la persona que llama 102 utiliza protocolos web estándares, tales como HTTP o HTTPS , para llamar al servidor intermediario 106 utilizando verbos estándares. Esto puede hacerse sin ninguna modificación a las técnicas de HTTP estándares que se q utilizan para comunicarse. La llamada emitida por la persona que llama 102 incluye un punto final de túnel asociado con servidor intermediario 106, el I D de túnel asociado con cliente web 104 y una carga útil que identifica un servicio web implementado por el cliente web 104 y datos de información que se van a procesar por el servicio web implementado por el cliente web. El servidor intermediario 106 entonces procesa la llamada al convertirla en una estructura web estándar que puede procesarse por el cliente web. Por ejemplo, el servidor intermediario 106 puede serializar la llamada y encapsularla en una estructura web estándar. La estructura encapsulada entonces es comunicada por el servidor intermediario 106, a traves de la conexión persistente, al cliente web 104 para procesamiento. Cuando el cliente web 104 recibe la estructura encapsulada, puede utilizar una biblioteca para activar un evento incluyendo los datos o información recibidos en la estructura encapsulada hacia el servicio web para procesamiento. Una vez que los datos o información se procesan por el servicio web, el cliente web 104 formula una respuesta que incluye una estructura encapsulada que tiene una carga útil. La respuesta formulada es enviada al servidor intermediario 106. La respuesta formulada puede ser enviada al servicio intermediario utilizando una conexión estándar tal como una conexión TCP. El servidor intermediario 106, a su vez, produce la respuesta y formula una respuesta de HTTP que entonces es comunicada de nuevo a la persona que llama 102.
Al utilizar ese aspecto, los servicios web soportados por el cliente web 104 que residen por detrás de un muro contra incendios (firewall) pueden utilizarse y aparecer como puntos finales de HTTP completamente funcionales. Además, al utilizar protocolos estándares, la persona que llama 102 y cliente web 104 pueden com unicarse a traves de NAT u otros dispositivos que de otra forma harían imposible tal comunicación. Además, debido a que el aspecto descrito utiliza protocolos estándares, no se utilizan programas auxiliares o teenología especial adicionales para ejecutar comunicación, como se apreciará por el experto en la técnica.
Generalmente, cualquiera de las funciones aquí descritas pueden implementarse utilizando software, firmware, hardware (por ejemplo, conjunto de circuitos de lógica fija), o una combinación de estas implementaciones. El término “módulo”, “funcionalidad”, y “lógica” como se utiliza aquí generalmente representa software, firmware, hardware, o una combinación de los mismos. En el caso de que una implementación de software, el módulo, funcionalidad, o lógica representa código de programa que realiza tareas especificadas cuando se ejecuta en un procesador (por ejemplo, CPU o CPUs) . El código de programa puede ser almacenado en uno o más dispositivos de memoria legible por computadora. Las características de las técnicas descritas a continuación son independientes de plataforma, lo que significa que las técnicas pueden ser implementadas en una variedad de plataformas de cómputo comerciales que tienen una variedad de procesadores.
Por ejemplo, la persona que llama 102 y el cliente web 104 también pueden incluir una entidad (por ejemplo, software) que causa que el hardware de la persona que llama o cliente web 104 realice operaciones, por ejemplo, procesadores, bloques funcionales, y así sucesivamente. Por ejemplo, la persona que llama 102 y cliente web 104 pueden incluir un medio legible por computadora que puede ser configurado para mantener instrucciones que causan que el dispositivo de cómputo asociado, y más particularmente hardware del dispositivo de cómputo realicen operaciones. De esa forma, las instrucciones funcionan para configurar el hardware para realizar las operaciones y de esta forma resultarán en transformación del hardware para realizar funciones. Las instrucciones pueden proporcionarse por el medio legible por computadora con el dispositivo de cómputo a través de una variedad de diferentes configuraciones.
Una de tales configuraciones de un medio legible por computadora es un medio portador de señal y de esa forma está configurado para transmitir las instrucciones (por ejemplo, como una onda portadora) al hardware del dispositivo de cómputo, tal como a través de una red. El medio legible por computadora también puede estar configurado como un medio de almacenam iento legible por com putadora y de esa forma no es un medio portador de señal. Ejemplos de un medio de almacenamiento legible por computadora incluyen una memoria de acceso aleatorio (RAM), memoria de sólo lectura (ROM), un disco óptico, memoria flash, memoria de disco duro, y otros dispositivos de memoria que pueden utilizar téenicas magnéticas, ópticas, y otras para almacenar instrucciones y otros datos.
Los procesadores no están limitados por los materiales de los cuales son formados o los mecanismos de procesamiento ahí empleados. Por ejem plo, los procesadores pueden estar compuestos de semiconductor(es) y/o transistores (por ejem plo, circuitos integrados electrónicos (IC). En tal contexto, las instrucciones ejecutables por procesador pueden ser instrucciones electrónicamente ejecutables. Alternativamente, los mecanismos de o para procesadores y de esa forma de o para un dispositivo de cómputo, pueden incluir, pero no están limitados a, cómputo quantum , cómputo óptico, cómputo mecánico (por ejemplo, utilizando nanoteenología), y así sucesivamente.
Habiendo considerado un ambiente operativo ilustrativo, considerar ahora un ejemplo específico en el cual la persona que llama al cliente web reside en la forma de dispositivos de cómputo que emplean navegadores web para comunicarse.
La Figura 2 es una ilustración de un ambiente 200 en una implementación ilustrativa que es operable para emplear técnicas aquí descritas. El ambiente ilustrado 200 incluye dispositivos de cómputo 202, 220, servidores intermediario 230, 240, y una red 250, tal como I nternet, que enlaza comunicativamente servidores intermediarios 230, 240. Los dispositivos de cómputo 202, 220 están configurados para implementar servicios web como se describe a continuación .
El dispositivo de cómputo 202 incluye medios de almacenam iento legibles por computadora 204 que, a su vez, incluye un sistema operativo 206, una o más aplicaciones 208, y un navegador web 210. El dispositivo de cómputo 220 incluye medios de almacenamiento legibles por computadora 222 que, a su vez, incluyen un sistema operativo 224, una o más aplicaciones 226, y un navegador web 228. Varios recursos de los dispositivos de cómputo, por ejemplo, el sistema operativo, recursos de sistema operativo, aplicaciones y/o navegadores web, pueden representarse por un U RL web, como se hará evidente a continuación. De esta forma, pueden exponerse servicios web en una variedad de niveles de granularidad, cuyos ejemplos se proporcionan a continuación.
Los sistemas operativos 206, 224 están configurados para funcionalidad subyacente abstracta de su dispositivo de cómputo respectivo para aplicaciones o navegadores web respectivos que son ejecutables en el dispositivo de cómputo. Por ejemplo, los sistemas operativos 206, 224 pueden abstraer procesam iento, memoria, red, y/o funcionalidad de presentación de su dispositivo de cómputo respectivo de manera que las aplicaciones puedan escribirse sin saber “cómo” se implementa esta funcionalidad subyacente. Las aplicaciones, por ejemplo, pueden proporcionar datos al sistema operativo que se va a presentar y mostrar por un dispositivo de presentación asociado con el dispositivo de cómputo sin entender cómo se realizará esta presentación.
Los sistemas operativos tambien pueden representar una variedad de otra funcionalidad, tal como aquella que se utiliza para manejar un sistema de archivo e interfase de usuario que se puede navegar por un usuario del dispositivo de cómputo.
El servidor intermediario 230 incluye, entre otros componentes, un servicio de túnel 232. De forma similar, el servidor intermediario 240 incluye un servicio de túnel 242. Cualquier número adecuado de dispositivos de cómputo y/o servidores intermediarios puede utilizarse. En la modalidad ilustrada y descrita, los dispositivos de cómputo 202, 220 representan dispositivos de cómputo de cliente cuyos ejemplos se proporcionan a continuación.
Los dispositivos de cómputo 202, 220 pueden configurarse como una computadora que es capaz de comunicarse a través de la red 250, tal como una computadora de escritorio, una estación móvil , un aparato de entretenimiento, una caja de tv por cable acoplada comunicativamente a un dispositivo de presentación, un teléfono inalámbrico, una consola de juegos, y así sucesivamente. De esa forma, los dispositivos de cómputo 202, 220 pueden variar de dispositivos de recurso completos con memoria sustancial y recursos de procesador (por ejemplo, computadoras personales, consolas de juegos) para un dispositivo de recurso bajo con memoria limitada y/o recursos de procesamiento (por ejemplo, cajas de tv por cable tradicionales, consolas de juego portátiles).
Aunque la red 250 se describe como Internet, la red puede asumir una gran variedad de configuraciones. Por ejemplo, la red 250 puede incluir o de forma similar hacer uso de una red de área ancha (WAN) , una red de área local (LAN), una red inalámbrica, una red de telefono público, una intranet, y así sucesivamente. Además, aunque se muestra una red individual 250, la red 250 puede estar configurada para incluir múltiples redes.
En operación, como se describe a continuación con más detalle, varias modalidades permiten que clientes web, tales como clientes basados en navegador como navegadores 210, 228 (así como otros clientes que no están basados en navegador) proporcionen servicios web. Los navegadores 210, 228 están configurados para actuar como servidores y pueden utilizarse para, entre otros propósitos, hacia y desde llamada de servicios web soportados por el cliente basado en navegador. Tales usos pueden incluir, a manera de ejemplo y no de limitación, impulsar mensajes desde un navegador a otro. Las varias téenicas pueden utilizarse, por ejemplo, para implementar clientes de charla o chat basados en navegador utilizando protocolos y bibliotecas estándares y sin requerir de ningún código personalizado o instalación de programa auxiliar de navegadores como se observó anteriormente.
Los servidores intermediarios 230, 240 funcionan como intermediarios y se configuran para permitir que clientes basados en navegador establezcan conexiones persistentes, aquí representados en 260, 262 respectivamente, con un servidor intermediario respectivo. La conexión persistente, como se observó anteriormente, puede establecerse utilizando cualquiera de las tecnologías o técnicas adecuadas. A manera de ejemplo y no de limitación, tales teenologías o tecnicas pueden incluir CQMET, WebSockets y similares. El servidor intermediario, a su vez, puede publicar el cliente basado en navegador al mundo utilizando, por ejemplo, la presencia de dirección de navegador, tal como un URL de servicio web. Otros clientes de servicio web (por ejem plo, otro cliente basado en navegador) que busca enviar un mensaje al primer cliente basado en navegador pueden utilizar el URL de servicio web publicado para llamar a un servicio web predefinido. El cliente basado en navegador que llama también puede registrarse con el mismo servidor intermediario o un servidor intermedia diferente y publicar su URL de servicio web. El primer cliente basado en navegador entonces puede utilizar este U RL para impulsar mensajes al segundo cliente basado en navegador.
En operación, se utilizan conexiones persistentes 620, 662 con el fin de crear un túnel, utilizando servicios de túnel 232, 242 respectivos, desde un cliente web tal como navegador web 210, 228 a un servidor intermediario respectivo. Las condiciones persistentes pueden utilizarse para recibir solicitudes de varias entidades. Por ejemplo, las conexiones persistentes pueden utilizarse para habilitar a clientes basados en navegador, así como clientes no basados en navegador, a recibir solicitudes de servicio web de otras personas que llaman, incluyendo otro navegador y clientes no basados en navegador. El servidor intermediario actúa como un punto final de HTTP externa y continuamente disponible. Entonces permite la emulación de lo que sucedería si el navegador pudiera abrir un enchufe e iniciar un servidor web localmente para recibir solicitudes sincrónicas desde servidores, o procesar las respuestas para solicitudes asincrónicas.
Como un ejemplo, considerar lo siguiente. El dispositivo de cómputo 202 puede establecer una conexión persistente 260 con un servidor intermediario 230. El navegador web 210 puede registrarse con el servidor intermediario 230 a traves de la conexión persistente 260. De forma similar, el dispositivo de cómputo 220 puede establecer una conexión persistente 262 con servidor intermediario 240. El navegador web 228 de forma similar puede registrarse con el servidor intermediario 240 a través de la conexión persistente 262. Cuando el navegador web 210 desea comunicarse con el navegador web 228, el navegador web 210 obtiene un U RL de servicio web asociado con navegador web 228. Esto puede hacerse a través de, por ejemplo, un registro mantenido por el servidor intermediario 240. El navegador 210 entonces puede utilizar el U RL de servicio web para llamar a un servicio web que está publicado por el navegador 228 para suministrar datos u otra información al navegador web 228. Junto con los datos suministrados, el navegador web 210 también puede proporcionar su U RL de servicio web al navegador web 228. El navegador web 228 entonces puede utilizar el URL de servicio web de navegador web 210 para sum inistrar datos u otra información al navegador web 210. En una o más modalidades, los U RL de servicio web son direcciones asociadas con servidores intermediarios 230, 240 respectivamente. Los URL de servicio web están configurados para incluir identificación de un navegador asociado para permitir al servidor intermediario a través de su servicio de túnel respectivo 232, 242 evaluar en donde suministrar los datos que son el tema de una llamada de servicio web. Las solicitudes hechas al servicio de túnel pueden hacerse utilizando una conexión de TCP estándar con el servidor intermediario. El servidor intermediario, a su vez, puede utilizar una conexión persistente con un receptor deseado para suministrar la solicitud al receptor. Las respuestas desde el receptor deseado pueden enviarse de regreso al servicio intermediario utilizando una conexión de TCP estándar.
La Figura 3 es una ilustración de un ambiente ilustrativo 300 de acuerdo con una o más modalidades. El ambiente 300 incluye un navegador web 302 que tiene una biblioteca 304, un navegador web 306 que tiene una biblioteca 308, y un servidor intermediario 310 que implementa un servicio de túnel 312. En este ejemplo, cada uno de dos navegadores web (es decir, clientes web) implementa uno o más servicios web y desea comunicarse con el otro.
En la modalidad ilustrada y descrita, los navegadores web 302, 306 cada uno incluye una conexión persistente con el servidor intermediario 310 indicada por las flechas. La conexión persistente puede utilizarse para recibir solicitudes de servicio web de una persona que llama a manera del servidor intermediario. Cualquier teenología adecuada puede utilizarse para permitir que se establezca la conexión persistente. Además, cada uno de los navegadores web es registrado con un servidor intermediario 310 utilizando un ID de túnel respectivo.
En operación, el navegador web 302 (y navegador 306) utiliza protocolos web estándares para emitir una llamada en la forma de una solicitud de HTTP. En este ejemplo específico, la solicitud de HTTP toma la siguiente forma: http://túnel-puntofinal/<I D-túnel>/servicio/mensaje La llamada emitida por el navegador web 302 incluye el punto final de túnel (“punto final de túnel”) asociado con y que identifica al servidor intermediario 310, I D de túnel (“I D de túnel”) asociado con navegador web 306 y una carga útil que identifica un servicio web implementado por navegador web 306 y datos o información que se van a procesar por el servicio web implementado por el navegador web (“servicio/mensaje”).
El servidor intermediario 310 y su servicio de túnel 312 entonces procesan la llamada al convertirla en una estructura web estándar que puede ser procesada por el navegador web. Por ejemplo, la solicitud de HTTP incluye un método, un URL, un cuerpo y encabezados. Estos se utilizan para construir una estructura de JavaScript que es esencialmente un diccionario que tiene claves y contenidos correspondientes al método, URL, cuerpo, y encabezados. La estructura de JavaScript entonces se pone en serie y se encapsula utilizando la Anotación de Objeto JavaScript (JSON) para proporcionar una estructura de solicitud encapsulada. La estructura de solicitud encapsulada entonces se comunica por el servidor intermediario 310 al navegador web 306 para procesamiento utilizando la conexión persistente. Cuando el navegador web 306 recibe la estructura de solicitud encapsulada, puede utilizar la biblioteca 308 para activar un evento incluyendo los datos o información recibidos en la estructura de solicitud encapsulada (es decir “/servicio/mensaje”) al servicio web para procesamiento. Una vez que se procesan los datos de información por el servicio web, el navegador web 306 formula una respuesta que incluye una estructura de respuesta encapsulada que tiene una carga útil, por ejemplo, una estructura de respuesta encapsulada utilizando JSON . La estructura de respuesta encapsulada entonces se envía al servidor intermediario 310. La estructura de respuesta encapsulada puede enviarse al servidor intermediario utilizando una conexión de TCP estándar. El servidor intermediario 310, a su vez, procesa la estructura de respuesta encapsulada y formula una respuesta de HTTP que entonces se comunica de regreso al navegador web 302. La respuesta de HTTP puede ser procesada en la forma usual por el navegador web 302.
Además, los dos navegadores web 302, 306 pueden comunicarse directamente entre sí al hacer solicitudes de HTTP de otro utilizando el siguiente formato: http : //p untof i na l-lt ú n el/< I D-tún el- respectivo > Además, al menos en algunas modalidades, si se implementa un servicio web utilizando Nodo.JS, que es un lenguaje de programación de JavaScript de lado de servidor y ambiente de ejecución, el mismo código puede ser movido del servidor a cualquier cliente de navegador simplemente al sustituir la biblioteca de punto final de túnel para la biblioteca de inicio de servidor, como se apreciará por el experto. Por consiguiente, en lugar de registrarse para recibir solicitudes web entrantes, el registro puede llevarse a cabo con la implementación de JavaScript del lado de cliente del software de canalización que produce eventos idénticos como se habrían producido haciendo que el software se ejecutará en el ambiente de Nodo.JS.
La Figura 4 ilustra un diagrama de secuencia ilustrativo, generalmente en 400, que muestra cómo se encapsula una solicitud de HTTP externa en JSON y luego se envía a través de una conexión persistente a un cliente, por ejemplo, navegador web. En este ejem plo, se realiza la autentificación pero no se ilustra. Específicamente, la autentificación puede realizarse ya sea en el servicio de túnel al restringir personas que llaman autorizadas a enviar mensajes a los clientes o en el cliente (por ejemplo, un navegador) por sí mismo o ambos.
En el ejemplo, se ilustra un número de acciones como realizándose por entidades incluyendo una persona que llama, un servicio de túnel, y un cliente. Cada una de las acciones es enumerada con un número circulado, el cual después es calificado a continuación. Como se observó anteriormente, la persona que llama puede comprender cualquier entidad adecuada incluyendo, a manera de ejemplo y no de limitación, un dispositivo de cómputo de usuario final , un servidor, una aplicación adecuadamente configurada que se ejecuta en cualquier dispositivo o servidor de cómputo, un navegador web, y similares. Inicialmente, la persona que llama hace una solicitud de HTTP como en “1”. Tal puede llevarse a cabo pero no necesita hacerlo a través de una conexión persistente. Por ejemplo, la solicitud de HTTP puede hacerse a través de una conexión de TCP q ue permite comunicación con el servicio de túnel. En este ejemplo, la solicitud de HTTP es una de PU BLICAR y tiene la forma mostrada justo debajo de la ilustración. El “connI D” corresponde al ID de túnel con el cual se registró el cliente. El “miURL” corresponde al “servicio/mensaje” que es parte de la carga útil.
El servicio de túnel recibe la solicitud de HTTP y, en “2” selecciona una conexión que comcide con “connI D”. El servicio de túnel hace en serie la solicitud de HTTP y la encapsula en JSON en “3”. La estructura de solicitud encapsulada en serie se muestra justo bajo la ilustración . El cliente recibe la estructura de solicitud encapsulada a través de una conexión persistente y, utilizando una biblioteca adecuadamente configurada, procesa la estructura de solicitud encapsulada y activa un evento apropiado que contiene información y datos para permitir al servicio web soportado por cliente procesar la información y datos. El cliente entonces prepara una estructura de respuesta encapsulada que es encapsulada en JSON y regresa la estructura de respuesta encapsulada en “4” al servicio de túnel. La estructura de la estructura de respuesta encapsulada se muestra justo debajo de la ilustración. Esta respuesta puede ser enviada al servicio de túnel utilizando la conexión de TCP estándar.
El servicio de túnel entonces procesa la estructura de respuesta encapsulada y prepara una respuesta de HTTP que se envía en “5” a la persona que llama. La estructura de la respuesta de HTTP se muestra justo debajo de la ilustración. La respuesta incluye un código de estado de HTTP 200 que indica que se cumplió la solicitud, junto con una carga útil que incluye información y datos que resultan del procesamiento del servicio web de la solicitud de la persona que llama. La respuesta ahora puede ser procesada por la persona que llama como una respuesta de HTTP típica.
Además de la discusión anterior, pueden tomarse en cuenta consideraciones adicionales. Como un ejemplo, considerar lo siguiente: Otras Consideraciones Con respecto a consideraciones de seguridad , considerar lo siguiente. En una o más modalidades, para facilitar la confidencialidad, comunicación entre personas que llaman y el servidor intermediario, y el servidor y cliente intermediarios, pueden llevarse a cabo a traves de un transporte seguro, tal como, a manera de ejemplo y no de limitación , utilizando la Seguridad de Capa de Transporte (TLS) o capa de Enchufes Segura (SSL). En el caso de comunicación de HTTP, pueden utilizarse HTTPS. Además, para asegurar que las solicitudes de servicio están limitadas a sistemas autorizados, puede utilizarse una cuenta de servicio. Las cuentas de servicio pueden utilizar claves de cuenta. De esta forma, la persona que llama de un servicio puede firmar su solicitud de HTTP con su clave, facilitando de esa forma la prueba de que necesita poseer la clave y cuenta asociadas. Esta firma puede ser implementada utilizando cualquier método criptográfico adecuado, por ejemplo HMAC (Código de Autentificación de Mensaje basado en Verificación). Tal firma puede ser fijada a la solicitud de HTTP en un encabezado de autorización adicional . Esta firma puede ser verificada por el servicio con la recepción de la solicitud, y si la verificación es exitosa, puede cumplirse la solicitud de servicio.
Además, si la persona que llama del servicio es un cliente en lugar de un servidor, puede utilizarse una provisión adicional con el fin de asegurar seguridad de la clave de cuenta. En el cliente, típicamente la clave no puede asumirse como seguramente almacenada, ya que puede utilizarse cuando se almacena en el servidor. Hasta este punto, pueden utilizarse claves de cuenta temporales acopladas a un procedimiento para obtener éstas en intercambio de otras credenciales de seguridad. Tal clave puede tener validez limitada, por ejemplo, al expirar después de un día, o dentro de un periodo de tipo predefinido. Además, a un cliente que se conecta al servicio también se le puede pedir que se autorice asimismo, utilizando la misma téenica de claves temporales como se mencionó anteriormente.
Además, desde un punto de vista de seguridad, puede utilizarse un mecanismo por un servicio de túnel para asegurar que sistemas autorizados pueden tener sus solicitudes de servicio web confiadas a cualquier cliente dado. Esto se logra utilizando ID de colección criptográficamente aleatoria que se asignan a la conexión de cliente, y se incorporan en el U RL de servicio de unidad del cliente. El cliente da el URL únicamente a los sistemas que al que desea enviar solicitudes. Cualquier otro sistema no será capaz de hacer solicitudes por el simple hecho que no conoce cómo o no puede elim inar, el I D de U RL/conexión asignado al cliente.
Desde el punto de vista de extensibilidad, considerar lo siguiente. Como se observó anteriormente, las personas que llaman pueden comprender cualquier tipo adecuado de entidad. Por ejemplo, en la discusión anterior, se utilizó un navegador web para indicar llamadas a un servicio web particular u otro navegador web. Considerar la situación en la cual un mismo sistema operativo puede mantener una conexión persistente con un servidor intermediario adecuadamente configurado. En este caso, el sistema operativo puede exponer sus recursos individuales como URL que pueden accederse utilizando las teenicas descritas anteriormente. Por ejemplo, los mosaicos individuales que pueden aparecer en una de presentación pueden asociarse con U RL individuales. El contenido asociado con los mosaicos individuales puede actualizarse por un servicio utilizando un modelo para Impulsar. Por ejemplo, en lugar de hacer que el sistema operativo busque o de otra forma adquiera actualizaciones de manera proactiva, pueden impulsarse actualizaciones a recursos de sistema operativo en sus U RL asociados. Así, por ejem plo, si se va a actualizar un mosaico, un servicio web puede utilizar el URL asociado del mosaico y hacer una solicitud de publicar HTTP que se canaliza al mosaico particular. Por ejemplo, el sistema de cómputo puede tener un mosaico asociado con actualizaciones climáticas. En lugar de tener que recuperar las actualizaciones climáticas, tales actualizaciones pueden impulsarse al mosaico utilizando las téenicas descritas anteriormente.
Como otro ejemplo, considerar servicios de llamada. Al utilizar los servicios de llamada, los clientes pueden llamar a otro utilizando, por ejem plo, el Protocolo de Voz a través de Internet (Vol P). En estos escenarios, si un cliente tiene una llamada entrante, en lugar de utilizar servidores de llamada especializados, las técnicas descritas anteriormente pueden utilizarse en conexión con servidores de llamada basados en HTTP para ser capaces de enviar una solicitud de HTTP asociada con una llamada entrante directamente a un cliente, resultando en una notificación de llamada de Impulso.
Con respecto a escenarios de navegador web, considerar lo siguiente. La web de RTC (Colaboración en tiempo real en la Gran Red M undial) es un esfuerzo para lograr una infraestructura estandarizada en navegadores web en los cuales puede lograrse comunicación interactiva en tiempo real entre usuarios del navegador web. Al utilizar web de RTC, pueden establecerse sesiones de medios de audio y medios par a par entre navegadores web. Al utilizar canales de datos establecidos entre navegadores a través de web de RTC, los servicios web que son soportados por los navegadores web pueden utilizar las téenicas descritas anteriormente para evitar al servidor intermediario comunicarse entre sí. De esta forma, las funciones de biblioteca que se implementan por los navegadores web pueden hacer llamadas de HTTP entre sí para acceder y utilizar a servicios web soportados por los navegadores web.
Además, las técnicas descritas anteriormente facilitan ampliamente la escalabílidad. Por ejem plo, a medida que los clientes o personas que llaman crecen, los servidores intermediarios que exponen un servicio de túnel pueden agregarse fácilmente para incorporar tal crecimiento. Al utilizar este tipo escalabílidad, los gastos generales de procesamiento asociados con balanceadores de carga pueden reducirse ampliamente. Específicamente, se utilizan típicamente balanceadores de carga en grandes sistemas para evaluar a donde dirigir llamadas. Una vez que un balanceador de carga determina una conexión a un servidor intermediario en respuesta a una llamada, el balance de carga no necesita utilizarse para esa persona que llama en el futuro. Es decir, una vez que se evalúa la conexión, pueden hacerse llamadas subsecuentes directamente al servidor intermediario sin necesariamente utilizar el balanceador de carga.
Con respecto a escalabílidad , considerar lo siguiente. La escalabílidad puede ser soportada e incorporada en la forma que se construyen los URL de túnel. Por ejemplo, un URL de túnel puede tener la forma mostrada a continuación: htt p: //ten rutad o rX. ten rutad o r. n et/l D con exion en donde tenrutadorX.tenrutador. net es un nom bre de dominio de un caso especifico del servidor que aloja la conexión persistente. Esto permite a todos los servidores operar independientemente sin la necesidad de encontrar a otro y delegar las solicitudes de servicio web a otro. El trabajo de encontrar el servidor de hecho se deja a Internet, por ejemplo, el DNS. En esta modalidad, el sistema no tiene estado compartido entre los casos de servidor. Esta es una prescripción para escalabilidad ilimitada, como se apreciará por el experto la teenica.
Esto es en contraste, por ejemplo, con un aspecto alternativo en donde URL puede tomar la forma: http://serviciodealternativa. net/I Dasignadoaapp En este aspecto, la solicitud se dirige inicialmente a un servidor aleatorio que típicamente no tiene la conexión. Por lo tanto, el servidor aleatorio debe encontrar al propietario de conexión y delegarlo. La situación es exacerbada por el I D de túnel de conexión seleccionado por la aplicación, previniendo de esa forma que el servicio incorpore la información de enrutamiento en el URL. Esto lleva a una necesidad de un almacenamiento persistente para mantener la información de enrutamiento, encriptado por el “I D asignado a app”, como se apreciará por el experto en la técnica.
Habiendo considerado un diagrama de secuencia ilustrativo y otras consideraciones de acuerdo con una o más modalidades, considerar ahora una discusión de un procedimiento ilustrativo que puede implementarse de acuerdo con una o más modalidades.
Procedim ientos Hustrativos La Figura 5 describe un flujo de comunicación que se lleva a cabo entre una persona que llama, un servicio de túnel, y un cliente en una forma que permite al cliente proporcionar un servicio web. El flujo de comunicación puede ser implementado utilizando los sistemas y dispositivos previamente descritos. Aspectos de cada uno de los procedimientos pueden implementarse en hardware, firmware, o software, o una combinación de los mismos. Los procedimientos se m uestran como un grupo de bloques que especifican operaciones realizadas por uno o más dispositivos y no necesariamente están limitados a las órdenes mostradas para realizar las operaciones por los bloques respectivos.
En el bloque 502, una persona que llama genera una solicitud de HTTP solicitada con un servicio web proporcionado por un cliente web adecuadamente configurado. Ejem plos de solicitudes de HTTP se proporcionan anteriormente. El bloque 504 envía la solicitud de HTTP a un servicio de túnel. Esta solicitud puede enviarse a traves de una conexión de TCP estándar.
El bloque 506 recibe la solicitud de HTTP y el bloque 508 procesa la solicitud de HTTP para identificar al cliente. Esto puede realizarse en cualquier forma adecuada, cuyos ejemplos se proporcionan anteriormente. El bloque 510 pone en serie la solicitud de HTTP y el bloque 502 encapsula la solicitud de HTTP en serie en una estructura de solicitud . Esto puede realizarse en cualquier forma adecuada. Al menos en algunas modalidades, la solicitud de HTTP en serie es encapsulada en JSON como se describió anteriormente. El bloque 514 envía la estructura de solicitud encapsulada al cliente. En una o más modalidades, la estructura de solicitud encapsulada se envía a través de una conexión persistente mantenida entre el servicio de túnel y el cliente.
El bloque 516 recibe, en el cliente, la estructura de solicitud encapsulada. El bloque 518 procesa la estructura de solicitud encapsulada utilizando, al menos en parte, un servicio web. El bloque 520 prepara una estructura de respuesta encapsulada que incluye al menos datos e información asociados con ejecución del servicio web. El bloque 522 envía la estructura de respuesta encapsulada al servicio de túnel . En una o más modalidades, la estructura de respuesta encapsulada puede enviarse a través de una conexión de TCP estándar.
El bloque 524 recibe, en el servicio de túnel, la estructura de respuesta encapsulada. El bloque 526 procesa la estructura de respuesta encapsulada y envía una respuesta de HTTP a la persona que llama. Ejemplos de cómo se realiza esto se proporcionaron anteriormente.
El bloque 528 recibe, en la persona que llama, la respuesta de HTTP y el bloque 530 procesa la respuesta de HTTP. Esto puede incluir procesar los datos de información que se incluyen en la respuesta de HTTP como un resultado del cliente que ejecuta el servicio web.
Habiendo descrito procedimientos ilustrativos de acuerdo con una o más modalidades, considerar ahora un sistema de dispositivo ilustrativo que puede utilizarse para implementar las modalidades descritas anteriormente.
Sistema v Dispositivo Hustrativos La Figura 6 muestra un sistema ilustrativo generalmente en 600 que incluye un dispositivo de cóm puto ilustrativo 602 que es representativo de uno o más sistemas y/o dispositivos de cómputo que pueden implementar las varias teenicas aquí descritas. El dispositivo de cómputo 602 puede ser, por ejemplo, un servidor de un proveedor de servicio, un dispositivo asociado con un cliente (por ejemplo, un dispositivo de cliente), un sistema en chip, y/u otro dispositivo de cómputo adecuado o sistema de cómputo.
El dispositivo de cómputo ilustrativo 602 como se ilustra incluye un sistema de procesamiento 604, uno o más medios legibles por computadora 602, y una o más interfases l/O 608 que están comunicativamente acopladas, entre sí. Aunque no se muestra, el dispositivo de cómputo 602 además puede incluir un conductor común de sistema u otros datos y sistema de transferencia de comando que acopla los varios componentes, entre sí. Un conductor común de sistema puede incluir cualquiera o combinación de diferentes estructuras de conductor común, tales como un conductor común de memoria o controlador de memoria, un conductor com ún periferico, un conductor común en serie universal, y/o un procesador o conductor común local que utiliza cualquiera de una variedad de arquitecturas de conductor común. Una variedad de otros ejemplos también se contempla, tales como líneas de control y de datos.
El sistema de procesamiento 604 es representativo de la funcionalidad para realizar una o más operaciones utilizando hardware. Por consiguiente, el sistema de procesamiento 604 es ilustrado como incluyendo elementos de hardware 610 que pueden configurarse como procesadores, bloques funcionales, y así sucesivamente. Estos pueden incluir ¡mplementación en hardware como un circuito integrado específico de aplicación u otro dispositivo lógico formado utilizando uno o más semiconductores. Los elementos de hardware 610 no están limitados por los materiales de los cuales se forman o los mecanismos de procesamiento empleados ahí. Por ejemplo, los procesadores pueden estar compuestos de sem iconductor(es) y/o transistores (por ejemplo, circuitos integrados electrónicos ( I C)) . En tal contexto, las instrucciones ejecutables por procesador pueden ser instrucciones electrónicamente ejecutables.
Los medios de almacenamiento legibles por computadora 606 se ilustran como incluyendo memoria/almacenamiento 612. La memoria/almacenamiento 612 representa la capacidad de memoria/almacenamiento asociada con uno o más medios legibles por computadora. El componente de memoria/almacenamiento 612 puede incluir medios volátiles (tales como memoria de acceso aleatorio (RAM)) y/o medios no volátiles (tales como memoria de sólo lectura (ROM), memoria flash, discos ópticos, discos magnéticos, y así sucesivamente). El componente de memoria/almacenamiento 612 puede incluir medios fijos (por ejemplo, RAM , ROM , una unidad dura fija, y así sucesivamente) así como medios removibles (por ejemplo, memoria flash, una unidad dura removible, un disco óptico, y así sucesivamente). Los medios legibles por computadora 606 pueden configurarse en una variedad de otras formas como se describe además a continuación.
Interfase(s) de entrada/salida 608 son representativas de la funcionalidad para perm itir a un usuario ingresar comandos e información al dispositivo de cómputo 602, y también permitir que la información se presente al usuario y/u otros componentes o dispositivos utilizando varios dispositivos de entrada/salida. Ejemplos de dispositivos de entrada incluyen un teclado, un dispositivo de control de cursor (por ejemplo, un ratón), un micrófono, un escáner, funcionalidad táctil (por ejem plo, capacitiva u otros sensores están configurados para detectar tacto físico), una cámara (por ejemplo, que puede emplear longitudes de onda visibles o no visibles tales como frecuencias infrarrojas para reconocer movimientos como gestos que no involucran tacto), y así sucesivamente. Ejemplos de dispositivos de salida incluyen un dispositivo de presentación (por ejemplo, un monitor o proyector) , bocinas, una impresora, una tarjeta de red, un dispositivo de respuesta táctil, y así sucesivamente. De esa forma, el dispositivo de cómputo 602 puede ser configurado en una variedad de formas como además se describe a continuación para soportar la interacción de usuario.
El dispositivo de cómputo 602 tambien incluye uno o más servicios web 613 que pueden ofrecer y que pueden utilizarse por varias personas que llaman utilizando las téenicas descritas anteriormente.
Varias técnicas pueden describirse aquí en el contexto general de software, elementos de hardware, o módulos de programa. Generalmente, tales módulos incluyen rutinas, programas, objetos, elementos, componentes, estructuras de datos, y así sucesivamente que realizan tareas particulares o implementan tipos de datos abstractos particulares. Los términos “módulo”, “funcionalidad”, y “componente” como se utilizan aquí generalmente representan software, firmware, hardware, o una combinación de los mismos. Las características de las técnicas aquí descritas son independientes de plataforma, lo que significa que las técnicas pueden implementarse en una variedad de plataformas de cómputo comerciales que tienen una variedad de procesadores.
Una implementación de los módulos y técnicas descritos puede almacenarse en o transmitirse a través de alguna forma de medios legibles por computadora. Los medios legibles por computadora pueden incluir una variedad de medios que pueden ser accedidos por el dispositivo de cómputo 602. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden incluir “medios de almacenamiento legibles por computadora” y “medios de señal legibles por computadora”.
Los “medios de almacenamiento legibles por computadora” pueden referirse a medios y/o dispositivos que permiten un almacenamiento persistente y/o no transitorio de información en contraste con la simple de transmisión de señal , ondas portadoras, o señales per se. De esa forma, los medios de almacenamiento legibles por computadora se refieren a medios que no portan señal. Los medios de almacenamiento legibles por computadora incluyen hardware tales como medios volátiles y no volátiles, removibles y no removibles y/o dispositivos de almacenamiento implementados en un metodo o teenología adecuada para el almacenam iento de información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa, elementos/circuitos lógicos, u otros datos. Ejemplos de medios de almacenamiento legibles por computadora pueden incluir, pero no están limitados a, RAM , ROM , EEPROM , memoria flash u otra tecnología de memoria, CD-ROM , discos versátiles digitales (DVD) u otro almacenamiento óptico, discos duros, casetes magnéticos, cinta magnética, almacenamiento de disco magnético u otro dispositivos de almacenamiento magnético, u otros dispositivos de almacenamiento, medios tangibles, o artículo de fabricación adecuado para almacenar la información deseada y que puede ser accedido por una computadora.
Los “medios de señal legibles por computadora” pueden hacer referencia a un medio portador de señal que está configurado para transmitir instrucciones de hardware del dispositivo de cómputo 602, tal como a traves de una red. Los medios de señal típicamente pueden representar instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos en una señal de datos modulada, tal como ondas portadoras, señales de datos, u otro mecanismo de transporte. Los medios de señal también incluyen cualquier medio de entrega 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 de tal forma para codificar información en la señal . A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios por cable tales como red por cable o conexión por cable directa, y medios inalámbricos tales como medios acústicos, RF, infrarrojos, y otros medios inalámbricos.
Como se describió previamente, elementos de hardware 610 y medios legibles por computadora 606 son representativos de módulos, lógica de dispositivo programable y/o lógica de dispositivo fija implementada en una forma de hardware que puede emplearse en algunas modalidades para implementar al menos algunos aspectos de las téenicas aquí descritas, tal como realizar una o más instrucciones. El hardware puede incluir componentes de un circuito integrado o sistema en chip, un circuito integrado específico de aplicación (ASIC), una disposición de acceso programable de campo (FPGA), un dispositivo lógico programable com plejo (CPLD), y otras implementaciones en sílice u otro hardware. En este contexto, el hardware puede operar como un dispositivo de procesamiento que realiza tareas de programa definidas por instrucciones y/o lógica representada por el hardware así como hardware utilizado para almacenar instrucciones para ejecución, por ejemplo, los medios de almacenamiento legibles por computadora descritos previamente.
Pueden emplearse combinaciones de los anteriores para implementar varias teenicas aquí descritas. Por consiguiente, el software, hardware, o módulos ejecutables pueden implementarse como una o más instrucciones y/o lógica representada en alguna forma de medios de almacenamiento legibles por computadora y/o por uno o más elementos de hardware 610. El dispositivo de cómputo 602 puede configurarse para implementar instrucciones y/o funciones particulares correspondientes a los módulos de software y/o hardware. Por consiguiente, la implementación de un módulo que es ejecutable por el dispositivo de cómputo 602 como software puede lograrse parcialmente en al menos hardware, por ejemplo, a través de uso de medios de almacenamiento legibles por computadora y/o elementos de hardware 610 del sistema de procesamiento 604. Las instrucciones y/o funciones pueden ejecutarse/ser operables por uno o más artículos de fabricación (por ejemplo, uno o más dispositivos de cómputo 602 y/o sistemas de procesamiento 604) para implementar las técnicas, módulos, y ejemplos aquí descritos.
Como además se ilustra en la Figura 6, el sistema ilustrativo 600 permite ambientes omnipresentes para una experiencia de usuario uniforme cuando se ejecutan aplicaciones en una computadora personal (PC) , un dispositivo de televisión, y/o un dispositivo móvil . Los servicios y aplicaciones se ejecutan substancialmente similares en los tres ambientes para una experiencia de usuario común cambia de un dispositivo al dispositivo siguiente mientras utiliza una aplicación, juega un videojuego, observa un video, y así sucesivamente.
En el sistema ilustrativo 600, m últiples dispositivos están interconectados a través de un dispositivo de cómputo central. El dispositivo de cómputo central puede ser local para los múltiples dispositivos o puede localizarse remotamente de los múltiples dispositivos. En una modalidad, el dispositivo de cómputo central puede ser una nube de una o más computadoras de servidor que están conectadas a los múltiples dispositivos a través de una red, Internet, u otro enlace de comunicación de datos.
En una modalidad , esta arquitectura de interconexión permite que se suministre funcionalidad a través de múltiples dispositivos para proporcionar una experiencia común y uniforme a un usuario de los múltiples dispositivos. Cada uno de los múltiples dispositivos puede tener diferentes requisitos y capacidades físicas, y el dispositivo de cómputo central utiliza una plataforma para permitir el suministro de una experiencia al dispositivo que es tanto adaptada al dispositivo pero com ún para todos los dispositivos. En una modalidad , una clase de los dispositivos objetivo se crea y se adaptan experiencias a la clase genérica de dispositivos. Una clase de dispositivos puede ser definida por características físicas, tipos de uso, u otras características comunes de los dispositivos.
En varias implementaciones, el dispositivo de cómputo 602 puede asumir una variedad de diferentes configuraciones, tales como para usos de computadora 614, móvil 616, televisión 618, y dispositivo incorporado 619. Cada una de estas configuraciones incluye dispositivos que pueden tener construcciones y capacidades generalmente diferentes, y de esa forma el dispositivo de cómputo 602 puede configurarse de acuerdo con una o más de las diferentes clases de dispositivo. Por ejemplo, el dispositivo de cómputo 602 puede implementarse como la clase de com putadora 614 en un dispositivo que incluye una computada personal, computadora de escritorio, computadora de pantalla múltiple, computadora laptop, netbook, y así sucesivamente.
El dispositivo de cómputo 602 tambien puede implementarse como la clase de dispositivo móvil 616 que incluye dispositivos móviles, tales como un teléfono móvil, reproductor de m úsica portátil , dispositivo de juegos portátil , una computadora de tableta, una computadora de pantalla múltiple, y así sucesivamente. El dispositivo de cómputo 602 también puede implementarse como la clase de dispositivo de televisión 618 que incluye dispositivos que tienen o están conectados a pantallas generalmente más grandes en ambientes de observación casuales. Estos dispositivos incluyen televisiones, cajas de tv por cable, consolas de juegos, y así sucesivamente.
El dispositivo de cómputo 602 también puede implementarse como un sistema incorporado o clase incorporada del dispositivo 619. Los dispositivos incorporados típicamente están diseñados para funciones de control específicas. Como tal, los dispositivos incorporados típicamente pueden ser dedicados para manejar una tarea particular. Los dispositivos incorporados pueden variar ampliamente de cosas tales como relojes digitales, reproductores de medios, interruptores de luz, semáforos, controladores de fábrica, interruptores de telefono, varios otros tipos de electrónica de consumidor, receptores de GPS , impresoras, electrodomésticos tal como hornos de microondas, lavadoras, lavaplatos, sistemas HVAC incluyendo termostatos en red, dispositivos de automatización de casa que utilizan red por cable o inalámbrica para controlar tales cosas como luces, clima, seguridad , audio/visual, vigilancia, y similares. Otros dispositivos incorporados pueden utilizarse en sistemas de transportación, varios tipos de motores, equipo médico para cosas tales como la verificación de signos vitales, imagenología médica, y similares.
Las téenicas aquí descritas pueden ser soportadas por estas varias configuraciones del dispositivo de cómputo 602 y no están limitadas a los ejemplos específicos de las técnicas aquí descritas. Esta funcionalidad también puede implementarse toda o en parte a través del uso de un sistema distribuido, tal como sobre una “nube” 620 a través de una plataforma 622 como se describe a continuación .
La nube 620 incluye y/o es representativa de una plataforma 622 para los recursos 624. La plataforma 622 abstrae funcionalidad subyacente de hardware (por ejemplo servidores) y recursos de software de la nube 620. Los recursos 624 pueden incluir aplicaciones y/o datos que pueden utilizarse mientras se ejecuta el procesamiento de computadora en servidores que están lejos del dispositivo de cómputo 602. Los recursos 624 también pueden incluir servicios, tales como servicios web, proporcionados a través de I nternet y/o a través de una red de suscriptor, tal como un celular o red Wi-Fi.
En la plataforma 622 puede abstraer recursos y funciones para conectar el dispositivo de cómputo 602 con otros dispositivos de cómputo. La plataforma 622 también puede servir para abstraer el escalamiento de recursos para proporcionar un nivel correspondiente de escala a la demanda encontrada por los recursos 624 que se implementan a través de la plataforma 622. Por consiguiente, en una modalidad de dispositivo interconectado, la implementación de funcionalidad aquí descrita puede distribuirse a través del sistema 600. Por ejemplo, la funcionalidad puede ser implementada en parte en el dispositivo de cómputo 602 así como a través de la plataforma 622 que abstrae la funcionalidad de la nube 620.
Conclusión Varias modalidades permiten a clientes web proporcionar servicios web. En una o más modalidades, los clientes web están configurados para actuar como servidores y pueden utilizarse para, entre otros propósitos, hacia y desde llamada de servicios web soportados por el cliente web. Tales usos pueden incluir, a manera de ejemplo y no de limitación, impulsar mensajes hacia y desde el cliente web. Las varias téenicas pueden utilizar protocolos y bibliotecas estándares y sin la necesidad de ningún código personalizado o programa auxiliar personalizado.
En una o más modalidades, un servidor intermedio funciona como un intermediario con el cual se establece una conexión persistente con un cliente web. El servidor intermediario, a su vez, puede publicar el cliente web al mundo utilizando, por ejemplo, la presencia o dirección del cliente web, tal como un U RL de servicio web. Otros clientes web (por ejemplo, un cliente basado en navegador) que busca enviar un mensaje al primer cliente web puede utilizar el U RL de servicio web publicado para llamar a un servicio web predefinido. El cliente web que llama también se registra con cualquiera del mismo servidor intermediario o un servidor intermediario diferente y publica su U RL de servicio web. El primer cliente web entonces puede utilizar este URL para impulsar mensajes al segundo cliente web.
Aunque se han descrito las varias modalidades en lenguaje específico a características estructurales y/o actos metodológicos, se entenderá que las modalidades definidas en las reivindicaciones anexas no necesariamente están limitadas a las características o actos específicos descritos. Más bien, las características y actos específicos se describen como formas ilustrativas para implementar las varias modalidades reclamadas.

Claims (10)

REIVINDICACIONES
1 .- Un metodo que comprende: generar una solicitud de HTTP asociada con un servicio web proporcionado por un cliente web; enviar la solicitud de HTTP a un servidor intermediario que implementa un servicio de túnel; recibir, desde el servicio de túnel, una respuesta de HTTP asociada con la solicitud de HTTP; y procesar la respuesta de HTTP, la respuesta de HTTP incluyendo datos e información asociada con un resultado de ejecución del servicio web por el cliente web.
2.- El método de acuerdo con la reivindicación 1 , en donde la solicitud de HTTP incluye un punto final de túnel asociado con el servidor intermediario, un I D de túnel asociado con el cliente web, y una carga útil que identifica el servicio web e incluye datos e información que se va a procesar por el servicio web.
3.- El método de acuerdo con la reivindicación 1 , en donde dicha generación, envío, recepción y procesamiento se realizan por una persona que llama, que comprende un dispositivo de cómputo de cliente.
4.- El método de acuerdo con la reivindicación 1 , en donde dicha generación, envío, recepción, y procesamiento además se realizan por una persona que llama, que comprende un navegador.
5.- El método de acuerdo con la reivindicación 1 , en donde dicha generación, envío, recepción, y procesamiento se realizan por una persona que llama, que comprende un navegador y dicho cliente web comprende otro navegador.
6.- El método de acuerdo con la reivindicación 1 , en donde dicha generación, envío, recepción, y procesamiento se realizan para implementar una charla basada en navegador entre dos navegadores web.
7.- Uno o más medios de almacenamiento legibles por computadora que representan instrucciones legibles por computadora que, cuando se ejecutan, implementan un método que comprende: recibir, en un servicio de túnel, una solicitud de HTTP de una persona q ue llama, la solicitud de HTTP deseada para un cliente web q ue soporta un servicio web; poner en serie la solicitud de HTTP; encapsular la solicitud de HTTP en serie en una estructura de solicitud; enviar la estructura de solicitud encapsulada al cliente web; recibir, en el servicio de túnel, una estructura de respuesta encapsulada desde el cliente web, la estructura de respuesta encapsulada incluyendo datos e información asociada con la ejecución del servicio web; y procesar la estructura de respuesta encapsulada para proporcionar una respuesta de HTTP y enviar la respuesta de HTTP a la persona que llama, la respuesta de HTTP incluyendo los datos de información.
9.- El uno o más medios de almacenamiento legibles por com putadora de acuerdo con la reivindicación 7, en donde dicho encapsulamíento se realiza al encapsular la solicitud de HTTP en Anotación de Objeto de JavaScript.
9.- El uno o más medios de almacenamiento legibles por com putadora de acuerdo con la reivindicación 7, en donde la persona que llama comprende un navegador.
10.- El uno o más medios de almacenamiento legibles por computadora de acuerdo con la reivindicación 7, en donde ni la persona que llaman ni el cliente web comprende un navegador.
MX2014012325A 2012-04-13 2013-04-11 Habilidad de clientes web para proporcionar servicios web. MX2014012325A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/447,065 US20130275492A1 (en) 2012-04-13 2012-04-13 Enabling Web Clients to Provide Web Services
PCT/US2013/036055 WO2013155241A1 (en) 2012-04-13 2013-04-11 Enabling web clients to provide web services

Publications (1)

Publication Number Publication Date
MX2014012325A true MX2014012325A (es) 2015-05-11

Family

ID=48289611

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2014012325A MX2014012325A (es) 2012-04-13 2013-04-11 Habilidad de clientes web para proporcionar servicios web.

Country Status (10)

Country Link
US (1) US20130275492A1 (es)
EP (1) EP2820827A1 (es)
JP (1) JP2015520436A (es)
KR (1) KR20150003192A (es)
CN (1) CN103354542A (es)
AU (1) AU2013245896A1 (es)
CA (1) CA2868411A1 (es)
MX (1) MX2014012325A (es)
RU (1) RU2014141044A (es)
WO (1) WO2013155241A1 (es)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319449B2 (en) * 2012-06-29 2016-04-19 Mckesson Financial Holdings Method, apparatus, and computer program product for processing data requests
US9019286B2 (en) * 2012-09-04 2015-04-28 Massimo J. Becker Remote GPU programming and execution method
US9009741B2 (en) * 2013-02-04 2015-04-14 Futurewei Technologies, Inc. Mechanism to initiate calls between browsers without predefined call signaling protocol
FR3001815A1 (fr) * 2013-02-07 2014-08-08 France Telecom Communication avec une application web
US20150046544A1 (en) * 2013-08-08 2015-02-12 Futurewei Technologies, Inc. Mirror Presence Between Websites
US10360064B1 (en) * 2013-08-19 2019-07-23 Amazon Technologies, Inc. Task scheduling, execution and monitoring
CN103546369B (zh) * 2013-11-13 2017-04-05 中国农业银行股份有限公司 一种协作方法、服务器、客户端与系统
JP6393475B2 (ja) * 2013-12-17 2018-09-19 エヌ・ティ・ティ・コミュニケーションズ株式会社 通信アダプタ装置、通信システム、トンネル通信方法、及びプログラム
US9535816B2 (en) * 2013-12-30 2017-01-03 Lenovo (Singapore) Remote diagnostics for a computing device
CN103729292A (zh) * 2013-12-30 2014-04-16 瑞达信息安全产业股份有限公司 一种跨主机、跨平台的远程命令调用方法和系统
US9529657B2 (en) 2014-02-07 2016-12-27 Oracle International Corporation Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information
US9529658B2 (en) 2014-02-07 2016-12-27 Oracle International Corporation Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information
CA2931750C (en) 2014-02-07 2023-03-07 Oracle International Corporation Cloud service custom execution environment
EP3103238B1 (en) 2014-02-07 2021-06-23 Oracle International Corporation Mobile cloud service architecture
US10055423B2 (en) 2014-03-31 2018-08-21 Oracle International Corporation Infrastructure for synchronization of mobile device with mobile cloud service
US10209992B2 (en) 2014-04-25 2019-02-19 Avago Technologies International Sales Pte. Limited System and method for branch prediction using two branch history tables and presetting a global branch history register
US9961131B2 (en) 2014-04-25 2018-05-01 Microsoft Technology Licensing, Llc Enhanced reliability for client-based web services
CN105812345B (zh) * 2014-12-31 2019-08-23 广州市动景计算机科技有限公司 一种实现网页到客户端通信的方法及装置
US10063661B2 (en) 2015-01-14 2018-08-28 Oracle International Corporation Multi-tenant cloud-based queuing systems
CN104597763A (zh) * 2015-01-21 2015-05-06 苏州奥莱维信息技术有限公司 一种基于手机控制的智能家居系统
US9756020B2 (en) * 2015-04-27 2017-09-05 Microsoft Technology Licensing, Llc Persistent uniform resource locators (URLs) for client applications acting as web services
US10911413B2 (en) * 2015-09-16 2021-02-02 Oracle International Corporation Encapsulating and tunneling WebRTC traffic
WO2017171932A1 (en) 2016-03-28 2017-10-05 Oracle International Corporation Pre-formed instructions for a mobile cloud service
CN106506632A (zh) * 2016-10-27 2017-03-15 上海幻电信息科技有限公司 一种基于html5浏览器的音视频直播方法
US10623450B2 (en) * 2016-12-01 2020-04-14 Accenture Global Solutions Limited Access to data on a remote device
CN107168089A (zh) * 2017-06-30 2017-09-15 镇江千月广告传媒有限公司 一种对智能家居设备进行监控的方法
US20200099738A1 (en) * 2018-09-24 2020-03-26 Citrix Systems, Inc. Systems and methods for bridge protocol between diverse applications
CN112887410B (zh) * 2021-01-28 2022-12-20 郑州市景安网络科技股份有限公司 一种web服务程序的运行方法、装置、设备及存储介质
CN114900505B (zh) * 2022-04-18 2024-01-30 广州市迪士普音响科技有限公司 一种基于web的音频场景定时切换方法、装置及介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862330A (en) * 1996-07-16 1999-01-19 Lucent Technologies Inc. Technique for obtaining and exchanging information on wolrd wide web
US6412009B1 (en) * 1999-03-15 2002-06-25 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
US6397264B1 (en) * 1999-11-01 2002-05-28 Rstar Corporation Multi-browser client architecture for managing multiple applications having a history list
WO2002071686A1 (en) * 2001-03-01 2002-09-12 Invicta Networks, Inc. Systems and methods that provide external network access from a protected network
JP2003108449A (ja) * 2001-10-02 2003-04-11 Seiko Epson Corp ネットワークに接続された仲介装置
GB0314971D0 (en) * 2003-06-27 2003-07-30 Ericsson Telefon Ab L M Method for distributing passwords
ATE391385T1 (de) * 2003-07-11 2008-04-15 Ibm Verfahren und system zur benutzerauthentifizierung in einer benutzer- anbieterumgebung
US7487243B1 (en) * 2003-08-29 2009-02-03 Juniper Networks, Inc. Network tunnel termination device selection using weighted load balancing
US20060031750A1 (en) * 2003-10-14 2006-02-09 Waldorf Jerry A Web browser as web service server
US20070174454A1 (en) * 2006-01-23 2007-07-26 Mitchell David C Method and apparatus for accessing Web services and URL resources for both primary and shared users over a reverse tunnel mechanism
EP1999871A2 (en) * 2006-03-10 2008-12-10 Peerant Inc. Peer to peer inbound contact center
US8875135B2 (en) * 2006-04-17 2014-10-28 Cisco Systems, Inc. Assigning component operations of a task to multiple servers using orchestrated web service proxy
US8995252B2 (en) * 2006-10-29 2015-03-31 FatPipe Networks VoIP multiline failover
US20090300750A1 (en) * 2008-05-27 2009-12-03 Avaya Inc. Proxy Based Two-Way Web-Service Router Gateway
EP2128781A1 (en) * 2008-05-27 2009-12-02 Benny Kalbratt Method for authentication
AU2010306379B2 (en) * 2009-10-16 2015-07-23 Real Innovations International Llc System and method for providing real-time data
US8504818B2 (en) * 2010-04-15 2013-08-06 Microsoft Corporation Method and system for reliable protocol tunneling over HTTP

Also Published As

Publication number Publication date
KR20150003192A (ko) 2015-01-08
US20130275492A1 (en) 2013-10-17
RU2014141044A (ru) 2016-04-27
CA2868411A1 (en) 2013-10-17
AU2013245896A1 (en) 2014-10-09
EP2820827A1 (en) 2015-01-07
CN103354542A (zh) 2013-10-16
JP2015520436A (ja) 2015-07-16
WO2013155241A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
MX2014012325A (es) Habilidad de clientes web para proporcionar servicios web.
EP3275155B1 (en) Persistent uniform resource locators (urls) for client applications acting as web services
EP3389230B1 (en) System for providing dialog content
CN110311983B (zh) 服务请求的处理方法、装置、系统、电子设备及存储介质
EP3391616A2 (en) Device management with tunneling
US11470160B2 (en) Managing remote support
JP6275860B2 (ja) チャット情報伝送方法および装置、ならびにチャット情報プッシュ方法およびサーバ
EP3962041A1 (en) Microservices cloud-native architecture for ubiquitous simulation as a service
CN111970240A (zh) 集群纳管方法、装置及电子设备
EP3388938A1 (en) A method and system for pairing at least two electronical devices
CN110636063A (zh) 设备的安全交互控制方法、装置、电子设备及存储介质
US20220377064A1 (en) Method and system for managing a web security protocol
CN115103150A (zh) 音视频在线会议的接入方法、装置、设备及介质
US10630582B1 (en) Scalable border gateway protocol routing
CN111917810B (zh) 一种云通信方法及装置、用户设备、网络设备
WO2008010666A1 (en) System and method for managing domain-state information
CN110865894A (zh) 跨终端控制应用程序的方法及装置
US20150326683A1 (en) Dynamic generation of proxy connections
US11528321B2 (en) Load balancing system, load balancing method, and non-transitory recording medium
US20150343308A1 (en) Apparatus and method for providing user interface for client devices of cloud game services
US20240129306A1 (en) Service to service communication and authentication via a central network mesh
Zhang et al. Lightweight SOA-based twin-engine architecture for enterprise systems in fixed and mobile environments
JP2022051453A (ja) 情報配信装置、情報配信方法及び情報配信プログラム
CN114679486A (zh) 通信交互方法及系统、应用端、客户端、中转服务端
JP2019139457A (ja) ログイン支援プログラム、ログイン支援方法、情報処理端末、及び、ログイン支援システム