ES2926005T3 - Sistema y método para entregar contenido dinámicamente - Google Patents

Sistema y método para entregar contenido dinámicamente Download PDF

Info

Publication number
ES2926005T3
ES2926005T3 ES18734844T ES18734844T ES2926005T3 ES 2926005 T3 ES2926005 T3 ES 2926005T3 ES 18734844 T ES18734844 T ES 18734844T ES 18734844 T ES18734844 T ES 18734844T ES 2926005 T3 ES2926005 T3 ES 2926005T3
Authority
ES
Spain
Prior art keywords
application
data
request
user
bridge device
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
ES18734844T
Other languages
English (en)
Inventor
Ruiz Eduardo Rafael Lopez
Nicolas Guillon
Jeremie Bonfil-Praire
Loïc Driencourt
Melinda Monteillet
Davide Romito
Qinglin Ye
Federick Casal
Fabrice Mantoan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
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 Amadeus SAS filed Critical Amadeus SAS
Application granted granted Critical
Publication of ES2926005T3 publication Critical patent/ES2926005T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • 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]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Electronic shopping [e-shopping] utilising user interfaces specially adapted for shopping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/14Travel agencies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computational Linguistics (AREA)
  • Library & Information Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Peptides Or Proteins (AREA)

Abstract

Las realizaciones de la invención proporcionan un sistema para entregar contenido dinámicamente desde un sistema proveedor de contenido (2) a un dispositivo de usuario (3), estando configurado el sistema proveedor de contenido (2) para entregar contenido en respuesta a una solicitud que tiene uno o más formatos predefinidos. , comprendiendo el dispositivo de usuario (3) una aplicación (4) que se ejecuta en el dispositivo de usuario (3), estando asociada la aplicación (4) con una interfaz de aplicación, estando configurada la aplicación para recibir datos de entrada de al menos un usuario a través de la aplicación interfaz, comprendiendo los datos de entrada un conjunto de elementos de datos, teniendo cada elemento de datos un tipo y un valor, en el que la aplicación comprende una extensión de aplicación ejecutable. El sistema comprende además un dispositivo puente (10), estando configurado el dispositivo puente para conectar dinámicamente la aplicación (4) al sistema proveedor de contenido (2) durante la ejecución de la extensión de la aplicación, estando configurada la extensión de la aplicación para activar una conexión con el dispositivo puente (10), en respuesta a la detección de una condición de activación, estando configurada la aplicación (4) para transmitir al menos algunos de los elementos de datos comprendidos en cada bloque de datos de entrada al dispositivo puente (10) durante la conexión con el dispositivo puente (10), estando configurado el dispositivo puente para generar una solicitud de contenido según uno de los formatos de solicitud predefinidos utilizando los elementos de datos recibidos de la aplicación (4) y para transmitir la solicitud al sistema proveedor de contenido (2). (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Sistema y método para entregar contenido dinámicamente
Campo técnico
La invención se refiere en general a ordenadores y software informático y, en particular, a sistemas, métodos y productos de programas informáticos para entregar contenido dinámicamente.
Antecedentes
Muchos desarrollos de plataformas informatizadas modernas están dedicados a la optimización del intercambio de información entre sistemas o dispositivos informatizados. En particular, en una arquitectura de cliente/servidor, un dispositivo informático de cliente (dispositivo de usuario) puede solicitar contenido de un dispositivo o sistema informático servidor (sistema proveedor de contenido) a través de una red de comunicación.
Un desafío importante para los sistemas proveedores de contenido es entregar lo más rápido y eficientemente posible el contenido solicitado (datos, servicio, producto) a los dispositivos de cliente. Un enfoque explorado para mejorar los sistemas proveedores de contenido existentes es cambiar de una interfaz estática entre los sistemas proveedores de contenido y los dispositivos de cliente, donde el usuario ingresa estáticamente las solicitudes, a una interfaz más dinámica y transparente donde las solicitudes de los usuarios se anticipan o derivan capturando de forma transparente el contexto derivado de las acciones del usuario en el dispositivo de cliente.
En una arquitectura de cliente/servidor basada en la web, se sabe, por ejemplo, capturar el contexto del usuario explotando ''cookies'', que son datos que un servidor web puede almacenar o leer en el disco duro de un dispositivo de cliente. Sin embargo, las cookies llevan información limitada que solo permite que los sistemas proveedores de contenido recopilen información general sobre el usuario, lo que aún requiere una interfaz estática entre el sistema proveedor de contenido y el dispositivo de usuario. Además, se limitan al contexto de un navegador y no se adaptan al contexto de las aplicaciones.
Es deseable una interfaz dinámica entre el sistema proveedor de contenido y el dispositivo del usuario para reducir el número de acciones que un usuario necesita realizar en una interfaz para acceder a un contenido (como información o un servicio), así como el tiempo empleado por un usuario para acceder a un servicio o contenido.
Los sistemas proveedores de contenido existentes permiten la recepción de solicitudes de cliente a través de una interfaz de usuario dedicada a través de la cual un número de usuarios cliente pueden acceder directamente e ingresar estáticamente una solicitud de un servicio o contenido. El contenido manejado por el sistema proveedor de contenido puede ser recibido de los sistemas proveedores de contenido que se comunican con el sistema proveedor de contenido, en respuesta a las solicitudes ingresadas por un usuario en la interfaz de usuario dedicada. Esto requiere que el usuario pause una acción en curso cuando desee acceder al servicio o contenido, inicie sesión en el sistema proveedor de contenido, ingrese los parámetros de su solicitud y las diferentes opciones relacionadas con el servicio o contenido deseado, siendo requerido que los parámetros estén estructurados según el formato prescrito por el sistema proveedor de contenido.
Por ejemplo, el sistema proveedor de contenido puede ser un sistema proveedor de viajes que determina las mejores opciones de viaje en respuesta a la solicitud de un usuario para un viaje, especificando el usuario en una interfaz de usuario una fecha, ubicaciones geográficas de salida/llegada y, opcionalmente, preferencias del usuario (criterios de coste, conexiones, etc.) si el usuario desea viajar a costes optimizados. Por tanto, se requiere que el usuario pause su acción en curso (por ejemplo, en un contexto de negocio, es posible que tenga que pausar una tarea del negocio en curso) para acceder estáticamente a la interfaz de usuario dedicada del sistema proveedor de viajes, ingresar los parámetros de viaje, validar la solicitud de viaje, iniciar sesión en la cuenta de usuario, etc. Cuando se hayan completado todas estas engorrosas operaciones, puede acceder a la información de viaje y/o realizar directamente la reserva de viaje para reservar un viaje y posiblemente servicios auxiliares (por ejemplo, alquiler de coches o reserva de hotel).
Sin embargo, a menudo sucede que los usuarios olvidan o no encuentran tiempo para realizar dichas reservas con antelación, en particular en un contexto de negocio donde tienden a priorizar sus principales actividades de negocio. Como resultado, no pueden beneficiarse del mejor servicio al mejor coste o con las mejores opciones de viaje.
De manera más general, los usuarios están dispuestos a dedicar el menor tiempo posible a acceder a los contenidos o servicios entregados por los sistemas proveedores de contenido. El éxito de los sistemas proveedores de contenido modernos puede depender del tiempo necesario para que un usuario acceda o compre un servicio de manera eficiente y, más generalmente, de la optimización de la experiencia de usuario. Por ejemplo, un usuario podría verse desanimado a utilizar un sistema proveedor de contenido debido al tiempo necesario para acceder a la interfaz dedicada de un sistema proveedor de contenido.
Otras soluciones proporcionan la generación automática de solicitudes de viaje a partir de eventos incluidos en el calendario de un usuario, como los documentos US 2003/023463 A1, US 015/371155 A1, US 2002/032589 A1, y US 2013/046788 A1, o utilizan correos electrónicos para solicitar viajes, como el documento US 2008/201178 A1. Sin embargo, los enfoques existentes no permiten entregar datos de forma dinámica y transparente desde un sistema proveedor de contenido con latencia y precisión optimizadas.
En consecuencia, se necesitan sistemas, métodos y productos de programas informáticos mejorados para la entrega de contenido dinámico que eviten la necesidad de que un usuario acceda activamente a la interfaz de aplicación dedicada de un sistema proveedor de contenido mientras optimiza la interacción entre el usuario y el sistema proveedor de contenido.
Compendio
Para abordar estos y otros problemas, se proporciona un sistema para entregar contenido dinámicamente desde un sistema proveedor de contenido a un dispositivo de usuario, estando configurado el sistema proveedor de contenido para entregar contenido en respuesta a una solicitud que tiene uno o más formatos predefinidos, comprendiendo el dispositivo de usuario una aplicación que se ejecuta en el dispositivo de usuario, estando asociada la aplicación con una interfaz de aplicación, estando configurada la aplicación para recibir datos de entrada de al menos un usuario a través de la interfaz de aplicación, comprendiendo los datos de entrada un conjunto de elementos de datos, teniendo cada elemento de datos un tipo y un valor, en donde la aplicación puede comprender una extensión de la aplicación ejecutable. El sistema puede comprender además un dispositivo puente, estando configurado el dispositivo puente para conectar dinámicamente la aplicación al sistema proveedor de contenido durante la ejecución de la extensión de la aplicación, estando configurada la extensión de la aplicación para activar una conexión con el dispositivo puente, en respuesta a la detección de una condición de activación, estando configurada la aplicación para transmitir al menos algunos de los elementos de datos comprendidos en cada bloque de datos de entrada al dispositivo puente durante la conexión con el dispositivo puente, estando configurado el dispositivo puente para generar una solicitud de contenido que comprende parámetros de solicitud según uno de los formatos de solicitud predefinidos utilizando los elementos de datos recibidos de la aplicación y para transmitir la solicitud al sistema proveedor de contenido, en donde el dispositivo puente comprende:
- un analizador configurado para analizar un conjunto de valores de referencia para cada parámetro de solicitud, en respuesta a la recepción de un bloque de datos de entrada;
- un mapeador configurado para determinar si al menos algunos de los valores de referencia del conjunto de valores de referencia mapean un elemento de datos en el bloque de datos de entrada o en una o más fuentes auxiliares, estando configurado además el mapeador para asociar una puntuación elemental que indica el nivel de relevancia de la coincidencia entre el valor de referencia y un elemento de datos a cada elemento de datos que mapea un valor de referencia, comprendiendo además el dispositivo puente un generador de solicitudes configurado para generar una solicitud de contenido basada en las puntuaciones elementales asociadas con los elementos de datos que mapean dichos valores de referencia.
En una realización, cada valor de referencia puede estar asociado con una lista de valores auxiliares, estando configurado el mapeador para determinar un mapeo entre un valor de referencia y un elemento de datos en el bloque de datos de entrada o en una o más fuentes auxiliares, si el elemento de datos en el bloque de datos de entrada o en una o más fuentes auxiliares mapea uno de los valores auxiliares.
La solicitud puede comprender parámetros de solicitud, estando asociado cada parámetro de solicitud con uno o más valores de referencia, siendo el valor de al menos uno de los parámetros de solicitud derivado de un valor de referencia mapeado a un elemento de datos y estando asociado con el parámetro de solicitud dependiendo de la puntuación determinada por el valor de referencia;
estando configurado además el dispositivo puente para enviar la solicitud al sistema proveedor de contenido.
En una realización, el valor de un parámetro de solicitud puede determinarse a partir del valor de referencia que tiene la puntuación más alta.
El dispositivo puente puede configurarse para determinar el valor del parámetro de solicitud utilizando una función que define una relación entre el valor del parámetro de solicitud y el valor de referencia.
En una realización, el dispositivo puente puede comprender además un convertidor configurado para convertir el formato de un valor de referencia en el formato del parámetro de solicitud asociado con el valor de referencia.
En algunas realizaciones, la aplicación puede estar asociada con una memoria de datos configurada para almacenar los elementos de datos.
En algunas realizaciones, la aplicación puede comprender una memoria de datos de usuario configurada para almacenar un identificador de usuario, estando configurada la extensión de la aplicación para transmitir de forma transparente y segura el identificador de usuario al dispositivo puente, estando configurado el dispositivo puente para controlar el acceso del usuario al sistema proveedor de contenido utilizando el identificador de usuario.
El dispositivo puente está configurado para recibir contenido del sistema proveedor de contenido en respuesta a la solicitud, estando configurado el dispositivo puente para transmitir el contenido a la aplicación, comprendiendo la aplicación una unidad de presentación para representar el contenido en un área dedicada de la interfaz de aplicación. En una realización, la unidad de presentación puede configurarse para ajustar dinámicamente las dimensiones de la aplicación en función del contenido transmitido por el dispositivo puente.
Breve descripción de los dibujos
Los dibujos adjuntos, que se incorporan y constituyen una parte de esta especificación, ilustran varias realizaciones de la invención y, junto con la descripción general de la invención dada anteriormente y la descripción detallada de las realizaciones dadas a continuación, sirven para explicar las realizaciones de la invención
La Figura 1 es una vista esquemática de un sistema de entrega de contenido dinámico, según algunas realizaciones. La Figura 2 es una vista esquemática de un dispositivo puente, según algunas realizaciones.
La Figura 3 muestra un sistema proveedor de viajes según una realización ejemplar.
La Figura 4 es un diagrama de flujo que ilustra el proceso de activación del dispositivo puente, según una realización de la invención.
La Figura 5 es un diagrama de flujo que ilustra el proceso de inicio de sesión en la extensión de la aplicación, según una realización de la invención.
La Figura 6 es un diagrama de flujo que ilustra el proceso de creación de una sesión, según una realización de la invención.
La Figura 7 es un diagrama de flujo que ilustra un método de entrega de contenido, según una realización de la invención.
La Figura 8 es un diagrama de flujo que ilustra el proceso implementado por el dispositivo puente si no se cumple una condición de generación de solicitud, según una realización alternativa de la invención.
La Figura 9 es un diagrama de flujo que ilustra el procesamiento de un bloque de datos de entrada, según una realización de la invención.
La Figura 10 es un diagrama de flujo que ilustra el proceso de determinar si se cumple una condición de generación de solicitud, según una realización de la invención.
La Figura 11 es una vista de una interfaz de aplicación, según una realización ejemplar.
La Figura 12 es otra vista de la interfaz de aplicación de la figura 11, según realización ejemplar.
La Figura 13 es una vista de una interfaz de aplicación, según otra realización ejemplar.
La Figura 14 es una vista esquemática de un sistema informático ejemplar para alojar los sistemas o los dispositivos de la Figura 1.
Descripción detallada
Las realizaciones de la invención proporcionan un sistema y un método para entregar dinámicamente contenido en un entorno informático.
Con referencia a la figura 1, se muestra un entorno operativo de ejemplo de un sistema 100 de entrega de contenido dinámico, según algunas realizaciones.
El sistema 100 de entrega de contenido dinámico puede implementarse para entregar dinámicamente contenido generado por al menos un sistema 2 proveedor de contenido a un dispositivo de usuario 3 a partir de datos capturados en una aplicación 4 que se ejecuta (o ejecutándose) en el dispositivo de usuario 3, a través de un dispositivo puente 10.
El sistema 2 proveedor de contenido puede ser cualquier sistema configurado para entregar contenido directamente a uno o más dispositivos de usuario 5 en respuesta a las solicitudes del usuario, a través de una red de comunicación 62, o indirectamente a través del dispositivo puente 10 a un dispositivo de usuario 3 que ejecuta una aplicación 4 determinada, a través de una red de comunicación 60. En una realización, el sistema 2 proveedor de contenido puede alojar uno o más sitios web y/o tener un servicio de alojamiento que aloja uno o más sitios web.
Tal como se utiliza en la presente memoria, el término "contenido" se refiere a cualquier contenido que pueda entregarse a un dispositivo de usuario a través de un sistema informático, como datos, productos, servicios, que abarca no solo texto electrónico sino también imágenes, fotografías, grabaciones de audio y otras formas de datos que pueden procesarse, almacenarse y devolverse en forma electrónica a un dispositivo de usuario a través de una interfaz de usuario.
Cada dispositivo de cliente 3, 5 (también denominado en lo sucesivo "dispositivo de usuario") puede ser un dispositivo informático personal, un ordenador de tableta, un terminal de cliente ligero, un teléfono inteligente y/u otro dispositivo informático de este tipo. Cada dispositivo de cliente 3, 5 puede alojar navegadores web y/o software de aplicaciones personalizadas (por ejemplo, un sistema de cliente) y puede incluir una interfaz de usuario de cliente.
Cada dispositivo de usuario 3, 5 puede incluir además una aplicación de navegador web que se comunica con una aplicación de servidor web alojada por el sistema 2 proveedor de contenido. Dicha aplicación de servidor web puede, a su vez, comunicarse con sistemas 20 proveedores de contenido indirectos a través de una red dedicada 62 para permitir que el sistema 2 proveedor de contenido entregue indirectamente el contenido suministrado por dicho sistema 20 proveedor de contenido 0 "indirecto" a los dispositivos de usuario 3, 5.
El dispositivo de usuario 3 puede ser cualquier sistema informático adecuado configurado para ejecutar una aplicación 4 asociada con una Interfaz de Aplicación 40 (también denominada en lo sucesivo "Al"), a través de la cual un usuario puede ingresar o recibir datos. Los datos 400 ingresados en la aplicación por el usuario o recibidos por el usuario (generalmente denominados "datos de entrada") pueden almacenarse en una memoria de datos de la aplicación 4.
Un usuario que opere uno de los dispositivos de usuario 3, 5 puede interactuar directamente con el sistema 100 proveedor de contenido utilizando los dispositivos de usuario 3, 5 durante una sesión de solicitud de servicio relacionada con una aplicación (por ejemplo, a la que se accede conectándose a un servicio web). El sistema 2 proveedor de contenido puede almacenar una cuenta de usuario si el usuario ya está registrado, o alternativamente puede no comprender datos relacionados con el usuario si el usuario no ha creado previamente una cuenta de usuario.
El sistema 2 proveedor de contenido puede estar dedicado a uno o más campos de servicios específicos (por ejemplo, el campo de viajes o el campo inmobiliario). Mientras que cada dispositivo de usuario 5 puede conectarse a la red de comunicación 62 para habilitar convencionalmente la inicialización de una sesión de solicitud de contenido por parte de un usuario con el sistema 2 proveedor de contenido y la recepción del contenido solicitado desde el sistema 2 proveedor de contenido en respuesta a la solicitud de contenido, el dispositivo de usuario 3, según realizaciones de la invención, puede acceder a dicho contenido de forma transparente. Más específicamente, el dispositivo de usuario 3 puede acceder de forma transparente al contenido del sistema 2 proveedor de contenido en respuesta a los datos recibidos por una aplicación 4 que se ejecuta en el dispositivo de usuario 3, estando conectado el dispositivo de usuario 3 con el dispositivo puente 10 a través de la red de comunicación 60. Los datos recibidos por la aplicación 4 pueden comprender:
- entrada de datos 400 por un usuario durante la ejecución de la aplicación a través de la interfaz de usuario de la aplicación 40 y/o datos recibidos por el usuario; dichos datos pueden almacenarse en la memoria de datos 400 y/o
- datos auxiliares que pueden comprender datos relacionados con el usuario y/o con el contexto actual de la aplicación, también denominados datos contextuales de la aplicación (como, por ejemplo, si el usuario está accediendo a una tarjeta de Cliente que comprende datos como la dirección del cliente y la información de contacto del cliente ); dichos datos se pueden mantener en una o más fuentes auxiliares como, por ejemplo, en una memoria 35 (por ejemplo, ubicación o perfil de usuario) o en configuraciones de usuario 404 (preferencias de usuario definidas para la aplicación).
El dispositivo puente 10 puede interactuar con la aplicación 4 para capturar los datos de entrada 400 y determinar si una solicitud de usuario se puede extrapolar utilizando los datos de entrada 400 y/o los datos auxiliares, según uno o más formatos de solicitud predefinidos soportados por el sistema 2 proveedor de contenido. Cada solicitud está definida por al menos un conjunto de parámetros de solicitud que representan las entradas de la solicitud. Los parámetros de solicitud se estructuran según el formato prescrito por el sistema 2 proveedor de contenido.
Si el dispositivo puente 10 puede extrapolar una solicitud a partir de datos capturados de la aplicación y/o los datos auxiliares, el dispositivo puente 10 puede configurarse para generar una solicitud, rellenándose los campos de la solicitud con valores determinados por el dispositivo puente 10 a partir de los datos de entrada 400, y posiblemente a partir de los datos auxiliares (como los datos de usuario almacenados en la memoria 35 o la configuración de usuario 404). El dispositivo puente 10 puede así transmitir la solicitud al sistema 2 proveedor de contenido.
Para determinar los parámetros de solicitud, el dispositivo puente puede mapear (o asociar) cada parámetro de solicitud con un elemento de datos de los datos de entrada 400 y/o de los datos auxiliares. En algunas realizaciones, a cada mapeo entre un parámetro de solicitud y un elemento de datos se le puede asignar además una puntuación que se puede utilizar para generar la solicitud.
En una aplicación ejemplar de la invención a un sistema proveedor de viajes implementado como un servidor web y configurado para entregar propuestas de viaje (para pre-reserva o reserva) en respuesta a solicitudes de viaje, el formato predefinido de una solicitud generada por el dispositivo puente puede comprender los siguientes parámetros de solicitud:
- parámetros de ubicación/fecha/hora de salida;
- parámetros de ubicación/fecha/hora de llegada;
- parámetros adicionales relacionados con el viaje.
Los parámetros de solicitud pueden incluir parámetros de solicitud "obligatorios" u "opcionales", siendo requeridos los parámetros de solicitud obligatorios por el sistema de gestión de contenido para poder procesar la solicitud. Los parámetros de solicitud opcionales pueden incluir, por ejemplo, el idioma preferido del usuario o los parámetros de refinamiento de la solicitud (por ejemplo, hora del día, compañía preferida).
El sistema 2 proveedor de contenido puede entregar contenido al dispositivo de usuario 3, ya sea directamente o a través del dispositivo puente 10, en respuesta a la solicitud generada.
Las realizaciones de la invención pueden ser implementadas por un sistema informático que comprende uno o más ordenadores o servidores conectados en red. El sistema informático puede proporcionar funciones de procesamiento y base de datos para el proveedor de contenido.
El sistema 2 proveedor de contenido puede alojar uno o más sitios web y/o tener un servicio de alojamiento que aloja uno o más sitios web.
La aplicación 4 puede comprender una extensión 41 de la aplicación ejecutable (también denominada "plugin", "complemento" o "componente de software de extensión") configurada para agregar una función de entrega de contenido dinámico a la aplicación 4. La extensión 41 de la aplicación puede activarse estática o dinámicamente dentro de la aplicación 4, cuando se lanza la aplicación.
La interfaz de aplicación 40 puede tener una configuración personalizada dependiendo de la aplicación 4 y puede actualizarse dinámicamente dependiendo de la ejecución de la aplicación 4 y de la extensión 41 de la aplicación, cuando dicha extensión está activada. La interfaz de aplicación 40 puede presentarse en una unidad de presentación 30 del dispositivo de usuario 3 como una interfaz de usuario (por ejemplo, interfaz gráfica de usuario) y puede comprender diferentes tipos de elementos gráficos, como ventanas, campos de entrada de texto, iconos, elementos seleccionables, elementos de control gráfico como menús desplegables o cuadro de lista, botones de activación, etc. La unidad de presentación 30 se denominará interfaz de usuario con fines ilustrativos.
Los datos 400 recibidos a través de la interfaz de aplicación 40 pueden comprender un conjunto de elementos de datos 401. Cada elemento de datos puede estar definido por un valor que tiene un tipo (cadena, carácter, número, etc.) y, opcionalmente, un formato de datos (formato de fecha, formato de hora, etc). Un elemento de datos puede pertenecer además a una categoría de datos (por ejemplo, ubicación, fecha, hora, etc.). En algunas realizaciones donde los datos ingresados por el usuario en la interfaz de aplicación están estructurados como en una herramienta de gestión de eventos, el elemento de datos puede tener además una tipología (por ejemplo, hora de inicio del evento, fecha, ubicación del evento, etc.).
En algunas realizaciones, los elementos de datos ingresados en la aplicación 4 pueden estructurarse según un gráfico de dependencia, estando representado cada elemento de datos por un nombre y un valor, o más generalmente según un formato de representación de datos.
El dispositivo de usuario 3 puede comprender un gestor de interfaz (no mostrado) para generar la visualización de información en la interfaz de usuario 30, generando dinámicamente el gestor de interfaz una visualización de la interfaz 40 de entrada de la aplicación dependiendo de la ejecución de la aplicación 4 y la activación de la extensión 41 de la aplicación.
La aplicación 4 puede ser cualquier aplicación adaptada para recibir datos a través de la interfaz de aplicación 40 y soportar una extensión 41 de la aplicación. Por ejemplo, la aplicación 4 puede ser una aplicación de comunicación a través de la cual un usuario puede comunicarse a través de una interfaz de mensajería con otro usuario, como una aplicación de mensajería (por ejemplo, aplicación de correo electrónico) o una aplicación de red social (por ejemplo, FACEBOOK, TWITTER, etc.). La aplicación también puede ser una aplicación de organización, como un calendario o un cuadro de mando, o una aplicación de escritorio (como una aplicación de Procesamiento de Texto, por ejemplo). La aplicación puede comprender una herramienta única o proporcionar un conjunto de herramientas (como una herramienta de aplicación de mensajería, una herramienta de gestión de reuniones y una herramienta de gestión de calendario). Si la aplicación comprende varias herramientas, el acceso del usuario a una herramienta de la aplicación 4 puede activar la entrega de contenido dinámico.
Debe observarse que, aunque la invención tiene ventajas particulares para los datos de entrada 400 de tipo texto, en algunas realizaciones los datos de entrada 400 pueden incluir cualquier tipo de datos que puedan ser analizados e interpretados por el dispositivo puente 10, como datos de tipo de voz, datos de tipo imagen, o una combinación de los mismos.
La aplicación 4 puede estar ubicada internamente (por ejemplo, una aplicación de software de escritorio preinstalada en el dispositivo del usuario) o externamente al dispositivo de usuario y/o distribuida entre múltiples ordenadores (por ejemplo, aplicación de software cliente-servidor, como una aplicación web). La aplicación 4 puede proporcionarse alternativamente como un servicio a través de la red, como un servicio de computación en la nube.
El dispositivo de usuario 3 puede configurarse para comunicarse a través de la red 60 para ejecutar la aplicación 4 si la aplicación es una aplicación cliente-servidor o una aplicación proporcionada como un servicio de computación en la nube.
Cada red de comunicación 60, 61,62 puede incluir una o más redes privadas y/o públicas (por ejemplo, Internet) que permiten el intercambio de datos como Internet, una red de área local (LAN), una red de área amplia (WAN ), una red celular de voz/datos, una o más conexiones de bus de alta velocidad y/u otros tipos de redes de comunicación de este tipo. Cada red de comunicación 60, 61,62 puede utilizar tecnologías y/o protocolos de comunicaciones estándar como 4G, Ethernet, 802.11, TCP/IP (Protocolo de control de transmisión/Protocolo de Internet, HTTP (Protocolo de transporte de hipertexto), FTP (Protocolo de transferencia de archivos), etc. Los datos pueden intercambiarse sobre cada red 60, 61,62 según diferentes tecnologías y/o formatos de intercambio de datos como el lenguaje de marcado de hipertexto (HTML) y el lenguaje de marcado extensible (XML).
El dispositivo puente 10 puede comprender una primera interfaz 101 para interactuar con el sistema 2 proveedor de contenido a través de la red 61 y una segunda interfaz 102 para interactuar con la aplicación 4 que se ejecuta en el dispositivo de usuario 3 a través de la red 60.
Inicialmente, un usuario puede lanzar la aplicación 4 en el dispositivo de usuario 3. El usuario puede ingresar datos 400 ("datos sin procesar") en cualquier momento en la interfaz de aplicación 40 de la aplicación 4 durante la ejecución de la aplicación, lo que cambia el estado de la aplicación y puede activar dinámicamente una actualización de la visualización de la interfaz de aplicación 40.
La aplicación 40 puede comprender una unidad de activación 410 para activar la extensión 41 de la aplicación. Por ejemplo, dicha unidad de activación 410 puede lanzar la extensión de la aplicación en respuesta a una selección de un elemento gráfico asociado con la extensión 41 de la aplicación en la interfaz de aplicación 4, como un botón de activación.
Alternativamente, el usuario puede predefinir en la configuración de usuario 404 asociada con la aplicación 4 la activación automática de la extensión 41 de la aplicación, estando entonces configurada la unidad de activación 410 para activar automáticamente la extensión 41 de la aplicación en el lanzamiento de la aplicación 4. En otra realización más, el usuario puede activar dinámicamente la extensión 41 de la aplicación en respuesta a la detección de condiciones de activación. Por ejemplo, si la aplicación es una herramienta de gestión de reuniones, la extensión 41 de la aplicación puede activarse automáticamente si el usuario recibe una invitación para una reunión con una ubicación de reunión diferente de la ubicación del usuario definida en su perfil.
El dispositivo puente 10 puede incluir una unidad 110 de control de inicio de sesión para controlar el acceso al dispositivo puente 10 por parte de un usuario de la aplicación 4 utilizando el identificador de usuario recibido de forma transparente de la aplicación 4 (inicio de sesión persistente).
El dispositivo puente 10 puede comprender además un motor 120 de procesamiento de datos para procesar los elementos de datos 401 de cada bloque de datos de entrada 400 recibido de la aplicación 4 y/o datos auxiliares para inferir los valores de los parámetros de solicitud y generar una solicitud a ser transmitida al sistema proveedor de contenido si se cumple una condición de generación de solicitud.
Cada parámetro de solicitud puede estar asociado con una lista predefinida de valores de referencia que representan un conjunto de posibles valores a partir de los cuales se puede determinar el valor del parámetro de solicitud. Un parámetro de solicitud puede tener una tipología (por ejemplo, "ubicación de salida", "ubicación de llegada"), puede pertenecer a una categoría de datos (por ejemplo, ubicación, fecha), puede tener un tipo de datos (por ejemplo, char) y/o un formato de datos (ej., IATA).
Para al menos algunos de los parámetros de solicitud, el motor 120 de procesamiento de datos puede configurarse para analizar uno o más valores de referencia asociados con cada parámetro de solicitud.
El motor 120 de procesamiento de datos puede configurarse para determinar si uno o más valores de referencia asociados con un parámetro de solicitud pueden mapease a uno o más elementos de datos de los datos de entrada 400. El motor 120 de procesamiento de datos puede determinar además una puntuación elemental (también denominada en la presente memoria indicador elemental de confianza o ETI) para cada mapeo determinado entre un valor de referencia y un elemento de datos. Cada valor de referencia correspondiente a un parámetro de solicitud y el mapeo de un elemento de datos representa un valor candidato a partir del cual el valor del parámetro de solicitud correspondiente puede ser derivado por un generador de solicitudes 150.
El motor 120 de procesamiento de datos puede determinar además el valor de uno o más parámetros de solicitud a partir de los datos auxiliares (perfil de usuario, preferencias de usuario, datos contextuales de la aplicación, etc.).
En consecuencia, el dispositivo puente 10 puede derivar el valor de un parámetro de solicitud a partir del valor de un valor de referencia asociado con el parámetro de solicitud que mapea un elemento de datos del bloque de datos de entrada, dependiendo de la puntuación elemental calculada para dicho mapeo entre un elemento de datos y un valor de referencia.
El dispositivo puente 10 puede configurarse para generar una solicitud al proveedor de contenido 2 utilizando los valores determinados para al menos algunos de los parámetros de solicitud si se cumple una condición de generación de solicitud. Una condición de generación de solicitud puede cumplirse, por ejemplo, si se ha encontrado un valor candidato para cada parámetro de solicitud "obligatorio".
Se considera ahora una aplicación ejemplar de la invención para la entrega de contenido de viajes para ilustrar el funcionamiento del dispositivo puente 10. Para cada parámetro de solicitud (por ejemplo, "ubicación de salida"), el motor 120 de procesamiento de datos puede, por tanto, analizar inicialmente uno o más valores de referencia predefinidos asociados con el parámetro de solicitud, determinar si el bloque de datos de entrada comprende un elemento de datos (por ejemplo, París) que mapea el uno o más valores de referencia asociados con el parámetro de solicitud (por ejemplo, CDG, Orly, Londres, ...). En una realización, los valores de referencia pueden comprender posibles valores de los parámetros de solicitud (por ejemplo, valores de ubicación en formato IATA) o valores equivalentes o sinónimos. Los valores de referencia pueden analizarse en un orden predefinido. El análisis de los valores de referencia para un parámetro de solicitud determinado puede detenerse dependiendo del número de mapeos encontrados entre los valores de referencia asociados con el parámetro de solicitud y los elementos de datos y/o las puntuaciones encontradas para dicho mapeo.
En algunas realizaciones, el motor 120 de procesamiento de datos solo puede comparar un elemento de datos con los valores de referencia asociados con el parámetro de solicitud si el elemento de datos tiene la misma categoría que el parámetro de solicitud.
Si se encuentra un mapeo entre un elemento de datos del bloque de datos de entrada y uno o más valores de referencia asociados con el parámetro de solicitud que se está procesando (por ejemplo, el elemento de datos "París" mapea tres valores de referencia "ORLY", "CDG" y "París"), el motor 120 de procesamiento de datos puede determinar una puntuación elemental ETI para cada mapeo entre un elemento de datos y un valor de referencia.
Para cada parámetro de solicitud, el motor 120 de procesamiento de datos puede seleccionar un mapeo entre un elemento de datos y un valor de referencia asociado con el parámetro de solicitud dependiendo de las puntuaciones elementales determinadas para los diferentes mapeos {Elemento de datos/Valor de referencia} encontrados para el parámetro de solicitud. En una realización, la puntuación elemental puede determinarse a partir de una comparación semántica entre un elemento de datos y un valor de referencia y/o datos o reglas adicionales disponibles del sistema proveedor de contenido o de la aplicación, como perfil de usuario, preferencias de usuario, etc.
En una realización, el motor 120 de procesamiento de datos puede seleccionar para cada parámetro de solicitud el mapeo entre un elemento de datos y un valor de referencia correspondiente al parámetro de solicitud que tiene la puntuación más alta, por ejemplo, derivándose entonces el valor del parámetro de solicitud de dicho valor de referencia. Por ejemplo, si el elemento de datos es "28 de julio" que tiene una categoría de fecha y una tipología "fecha de inicio del evento", mientras que el parámetro de solicitud tiene una tipología "fecha de salida" y también pertenece a la categoría de fecha. "28/07/2017" (Valor de referencia 1) y "28/07/2018" (Valor de referencia 2) son dos valores de referencia que mapean el elemento de datos "28 de julio". Por tanto, el motor 120 de procesamiento de datos puede encontrar dos mapeos entre:
- valor de referencia 1 y elemento de datos "28 de julio" (Mapeo 1)
- valor de referencia 2 y elemento de datos "28 de julio” (Mapeo 2)
Esto proporciona dos valores candidatos a partir de los cuales se puede determinar el valor del parámetro de solicitud.
Se le puede asignar una puntuación más alta al “Mapeo 1 ” que al mapeo 2 debido a que el valor de referencia 1 es la fecha más cercana con respecto a la fecha actual. El motor 120 de procesamiento de datos puede seleccionar el "Mapeo 1". Sin embargo, el valor del parámetro de solicitud ("fecha de salida") no se establecerá exactamente en el valor de "valor de referencia 1" debido a que el elemento de datos tiene una tipología de "fecha de inicio del evento" diferente de la tipología del parámetro de solicitud. El motor 120 de procesamiento de datos puede en su lugar determinar el valor del parámetro de solicitud (fecha de salida) a partir del valor de referencia seleccionado (Valor de referencia 1) utilizando una función de cálculo. Dichos valores de referencia están, por tanto, vinculados al parámetro de solicitud correspondiente por dichas funciones de cálculo, siendo el valor del parámetro de solicitud, por tanto, una función del valor determinado para el valor de referencia.
Además, cada parámetro de solicitud puede ser dependiente o independiente de uno o más de otros parámetros de solicitud. En consecuencia, el valor de un parámetro de solicitud puede ser no solo una función de un valor de referencia correspondiente sino también del valor de otros parámetros de solicitud. Por ejemplo, el parámetro de solicitud "hora de llegada" depende del parámetro de solicitud "fecha de llegada".
El motor 120 de procesamiento de datos puede comprender un analizador para analizar los datos de entrada 400. En una realización, el dispositivo puente 10 puede configurarse para recibir dinámicamente los datos de entrada 400 a medida que son ingresados por el usuario. En otra realización, el dispositivo puente 10 puede configurarse para recibir dinámicamente los datos de entrada en respuesta a una acción de validación por parte del usuario. Una acción de validación puede activarse, por ejemplo, cuando se envía un mensaje a otro usuario u otro sistema o dispositivo, si la aplicación es una aplicación de comunicación, cuando se crea una reunión al guardar la reunión en una aplicación o herramienta de calendario.
El dispositivo puente 10 puede comprender además una unidad de pruebas 130 configurada para determinar si se cumple una condición de generación de solicitud a partir del mapeo realizado entre los elementos de datos y los valores de referencia.
El generador de solicitudes 150 puede configurarse para generar una solicitud, si se cumple la condición de generación de solicitudes, estando configurado el dispositivo puente 10 para enviar la solicitud así generada al sistema proveedor de contenido a través de la interfaz 101.
El generador de solicitudes 150 puede configurarse para derivar el valor del parámetro de solicitud del valor de un valor de referencia mapeando un elemento de datos del bloque de datos de entrada o datos auxiliares dependiendo de la puntuación elemental obtenida para tal mapeo. El generador de solicitudes puede aplicar reglas de estructuración de datos definidas por el sistema proveedor de contenido para derivar el valor de un parámetro de solicitud, como las reglas definidas por un estándar (por ejemplo, IATA). El valor derivado así calculado puede asignarse al parámetro de solicitud correspondiente. El generador de solicitudes 150 puede además tener en cuenta una relación predefinida entre los parámetros de solicitud para determinar el valor de un parámetro de solicitud dado. Por ejemplo, considerando una aplicación 4 de gestión de reuniones y un sistema 2 proveedor de contenido del tipo sistema proveedor de viajes, suponiendo que un valor de elemento de datos de la tipología de fecha de inicio del evento y otro valor de elemento de datos de la tipología de hora de inicio del evento fueron mapeados cada uno a un valor de referencia (un valor de referencia asociado con el parámetro de solicitud de fecha de salida y un valor de referencia asociado con el parámetro de solicitud de hora de salida) por el dispositivo puente 10, los valores de los parámetros de solicitud "fecha de salida" y "hora de salida" para una solicitud de viaje pueden entonces derivarse de los dos valores de referencia, utilizando funciones o reglas de cálculo predefinidas.
En algunas realizaciones, el dispositivo puente 10 también puede comprender un convertidor de datos 140 configurado para convertir los elementos de datos mapeados a los valores de referencia en el formato de parámetro de solicitud correspondiente según lo definido por el sistema 2 proveedor de contenido, si se cumple la condición de generación de solicitud, antes a la generación de la solicitud.
En funcionamiento, el usuario puede por tanto acceder al sistema 2 proveedor de contenido o interactuar con él utilizando la interfaz de aplicación 40 en lugar de utilizar directamente la interfaz del sistema proveedor de contenido sin necesidad de especificar activamente una solicitud de contenido del sistema 2 proveedor de contenido.
A medida que se ejecuta la aplicación y la aplicación 4 recibe datos, el dispositivo puente 10 puede generar dinámicamente solicitudes en respuesta a los datos transmitidos desde la aplicación 4. El sistema 2 proveedor de contenido puede comprender un motor de búsqueda configurado para procesar solicitudes recibidas según un protocolo de comunicación adecuado (como el protocolo HTTP, por ejemplo), teniendo las solicitudes un formato entre los formatos de solicitud predefinidos soportados por el sistema 2 proveedor de contenido. En respuesta a las solicitudes recibidas del dispositivo puente 10, el sistema 2 proveedor de contenido puede activar una búsqueda por su motor de búsqueda para determinar si existen resultados que satisfagan la solicitud.
En el lado de la aplicación, los datos recibidos del usuario o derivados del contexto a través de la interfaz de aplicación 40 pueden recogerse y transmitirse continuamente al dispositivo puente 10 hasta que el dispositivo puente recopile suficiente información para generar una solicitud de contenido (por ejemplo, para un producto o para datos).
La interfaz de aplicación 40 puede comprender un área de interfaz 403 (mostrada esquemáticamente en la figura 1) dedicada a la extensión 41 de la aplicación. La interfaz del área dedicada 403 puede cambiar dinámicamente a medida que el usuario ingresa datos en la parte restante de la interfaz de aplicación, como resultado del procesamiento realizado por el dispositivo puente 10. En algunas realizaciones, la forma y/o el tamaño y/o el modo de visualización del área 403 pueden cambiarse dinámicamente dependiendo de los resultados devueltos por el dispositivo puente 10 y/o de si se detecta una acción del usuario en el área 403. En una realización, el dispositivo puente 10 puede devolver un indicador de fiabilidad a la aplicación para controlar el modo de visualización del área de interfaz 403. El área de interfaz puede visualizarse dentro de la misma ventana que la interfaz de aplicación o en una ventana separada (ventana emergente), por ejemplo. El indicador de fiabilidad puede ser calculado por el dispositivo puente 10 en función de las puntuaciones determinadas para el mapeo entre elementos de datos y valores de referencia.
El dispositivo puente 10 puede, por ejemplo, permitir la compra de un producto o un servicio por parte del usuario determinando si los datos recibidos por la aplicación coinciden con al menos algunos de los parámetros predefinidos de una solicitud, correspondiente a uno de los formatos de solicitud predefinidos por el sistema proveedor de contenido.
Si el motor de búsqueda del sistema 2 proveedor de contenido determina que existe contenido (por ejemplo, uno o más productos) que coincide con la solicitud recibida del dispositivo puente 10, el sistema 2 proveedor de contenido puede devolver una respuesta que comprende los resultados de la búsqueda que cumplen la solicitud (por ejemplo, ofertas de productos) a la aplicación 4 a través del dispositivo puente 10. La extensión 41 de la aplicación puede generar una visualización de los resultados en el área dedicada 403 de la interfaz de aplicación 40 o, alternativamente, redirigir al usuario al dominio de Internet del sistema 2 proveedor de contenido abriendo una ventana emergente para permitir que el usuario complete su acceso al contenido (por ejemplo, para comprar uno o más productos). Alternativamente, la extensión 41 de la aplicación puede estar asociada con una parte dedicada de la interfaz de aplicación en la que el usuario puede acceder a los resultados que cumplen la solicitud (por ejemplo, ofertas de productos) y puede seleccionar uno o más resultados, que pueden redirigir al usuario a la interfaz del sistema 2 proveedor de contenido para completar el acceso al contenido (datos, servicio), como por ejemplo para completar una transacción de compra de producto.
La extensión 41 de la aplicación puede comprender una función de redirección para redirigir al usuario al sistema 2 proveedor de contenido a través de una aplicación dedicada instalada en el dispositivo de usuario 3 o a través del dominio de internet del sistema 2 proveedor de contenido utilizando la URL asociada, en respuesta a una selección realizada por el usuario.
Por ejemplo, el dispositivo puente 10 puede enviar la solicitud al sistema 2 proveedor de contenido utilizando una URL de un tipo predefinido que puede comprender un conjunto de campos, como:
- un cuerpo;
- el campo de identificador del sistema proveedor de contenido, como un campo de cadena;
- campos relacionados con los parámetros de solicitud (pares de nombre/valor) según lo determinado por el dispositivo puente 10 que pueden incluir además el idioma detectado por el dispositivo puente 10 (por ejemplo, idioma de EE. UU.).
El experto en la técnica entenderá fácilmente que la invención no se limita a dichos campos específicos en la URL de solicitud y puede incluir diferentes campos dependiendo de la aplicación de la invención.
De manera más general, la URL de solicitud puede coincidir con uno de una pluralidad de tipos de URL definidas por el sistema proveedor de contenido dependiendo de la jerarquía del Sistema de Nombres de Dominio (por ejemplo, por marca, por región geográfica). Cada tipo de URL puede comprender un conjunto de campos, comprendiendo cada uno de los cuales una clave y un valor.
La Figura 2 es un diagrama de bloques de la unidad de procesamiento de datos 120 según algunas realizaciones.
La unidad de procesamiento 120 puede comprender:
- una lista 12 predefinida de valores de referencia que comprende la lista de valores de referencia para los que el dispositivo puente 10 encuentra un mapeo en respuesta a la recepción de un bloque de datos de entrada de la aplicación 4;
- un analizador de datos 11 configurado para analizar el bloque de datos de entrada;
- un mapeador 13 configurado para determinar si al menos un valor de referencia de la lista 12 se puede mapear a uno o más elementos de datos del bloque de datos de entrada y/o datos de una o más fuentes auxiliares de datos (preferencia del usuario, configuración del usuario, perfil de usuario, etc.); el mapeador 13 puede implementar uno o más algoritmos de búsqueda adaptados a las estructuras de datos soportadas por la aplicación 4 que incluyen algoritmos de búsqueda optimizados para limitar el espacio de búsqueda;
- un bloque 14 de determinación de puntuación configurado para determinar una puntuación elemental ETI para cada mapeo determinado entre un valor de referencia y un elemento de datos;
- una estructura 16 de datos de asociación configurada para almacenar cada valor de referencia con el elemento de datos mapeado, y posiblemente la puntuación asociada, para cada mapeo entre un valor de referencia y un elemento de datos.
Las realizaciones de la invención pueden implementarse mediante un sistema informático que comprende uno o más servidores u ordenadores conectados en red. El sistema informático puede proporcionar funciones de procesamiento y base de datos para el proveedor de contenido.
Haciendo referencia ahora a la figura 3, un entorno operativo 300 ejemplar según una realización de la invención en la que el sistema 2 proveedor de viajes es un sistema de reservas. El sistema 2 proveedor de viajes puede configurarse para determinar propuestas de viaje en respuesta a una solicitud y permitir la reserva de un viaje o servicios relacionados con viajes en respuesta a una selección de una propuesta por parte de un usuario, ya sea directamente si el sistema proveedor de viajes o indirectamente. El entorno 300 puede incluir un sistema de distribución global (GDS) 200, uno o más sistemas 20 proveedores de productos indirectos, como sistemas 201 de la compañía, uno o más sistemas de compras o vendedores indirectos de viajes (sistemas proveedores de contenido auxiliares), como un sistema 202 de agencia de viajes, el sistema 2 proveedor de viajes y uno o más dispositivos de cliente 3, 5. Cada uno de los GDS 200, los sistemas 201 de la compañía, el sistema 202 de vendedor indirecto, el sistema 2 proveedor de viajes y el dispositivo de usuario 3 o 5 pueden comunicarse a través de una red 62. Cada uno de los sistemas 201 de la compañía puede incluir un Sistema Informático de Reserva (CRS) y/o un sistema de facturación para la aerolínea respectiva que permite que el GDS 200 y/o el sistema 202 de vendedor indirecto reserven y paguen billetes de avión. Los sistemas 201 de la compañía también pueden interactuar entre sí, ya sea directamente o a través del GDS 200, para permitir que una compañía validadora venda billetes para asientos proporcionados por una compañía operadora. La compañía operadora puede entonces facturar a la compañía validadora por los servicios prestados.
El GDS 200 puede configurarse para facilitar la comunicación entre los sistemas 201 de la compañía y los sistemas 202 de vendedor indirecto al permitir que los agentes de viajes, las compañías validadoras u otros vendedores indirectos busquen segmentos disponibles y hagan reservas en uno o más sistemas 21 de la compañía a través del GDS 200 Con este fin, el GDS 200 puede mantener enlaces a cada uno de los sistemas 201 de la compañía a través de la red 62. Estos enlaces pueden permitir que el GDS 200 obtenga datos de programación y disponibilidad para segmentos de los sistemas 201 de la compañía, y solicitudes de reserva de propuestas de viaje para los sistemas 201 de la compañía . Los sistemas 201, 202 de la compañía y la agencia de viajes pueden así reservar vuelos, trenes u otros tipos de segmentos en múltiples compañías a través de una única conexión con el GDS 200. El GDS 200 puede almacenar y/o mantener un Registro de Nombres de Pasajeros (PNR) que incluye un conjunto completo de datos para un itinerario de un viaje, incluidos segmentos de múltiples compañías y/u otros servicios de viaje que comprenden el viaje, como reservas de hoteles y coches de alquiler.
Un sistema 202 de agencia de viajes puede incluir un servidor web que proporciona un sitio web de acceso público. Este sitio web puede configurarse para proporcionar acceso a funciones de planificación de viajes, como la capacidad de buscar productos de viaje que coincidan con una solicitud de viaje. Con este fin, el sistema 202 de agencia de viajes puede proporcionar al viajero acceso a los datos de una o más bases de datos alojadas por el GDS 200, los sistemas 201 de la compañía, el sistema 202 de agencia de viajes y el sistema 203 de planificación de viajes. En una realización alternativa de la invención, el sistema 202 de agencia de viajes puede ser un sistema propietario que limita el acceso a proveedores de servicios de viajes o agentes de viajes, en cuyo caso el acceso puede proporcionarse a través de un sitio web privado u otra aplicación.
El sistema 2 proveedor de viajes puede estar en comunicación con el sistema 202 de agencia de viajes a través de la red 62 o alguna otra conexión adecuada. En realizaciones alternativas de la invención, todo o parte del sistema 2 proveedor de viajes puede integrarse en uno o más de los otros sistemas 200, 201, 202, 203. Los viajeros o agentes de viajes pueden utilizar el sistema 202 de agencia de viajes para generar y/o buscar propuestas de viaje que satisfagan una solicitud de viaje recibida del viajero que utiliza el sistema 2 proveedor de viajes.
El GDS 200, los sistemas 201 de la compañía , el sistema 202 de agencia de viajes, el sistema 2 proveedor de viajes y los dispositivos de usuario 3, 5 del entorno operativo pueden implementarse en uno o más dispositivos o sistemas informáticos, denominados colectivamente ordenador, como ordenador.
La Figura 4 es un diagrama de flujo que representa el proceso implementado por la aplicación 4 para conectarse dinámicamente al dispositivo puente 10, según una realización.
Inicialmente, la aplicación 4 es lanzada por el usuario (bloque 500).
En el paso 501, el usuario puede iniciar sesión en la extensión 41 de la aplicación. Alternativamente, el usuario puede iniciar sesión automáticamente en la extensión de la aplicación al lanzar la aplicación, si se ha activado el inicio de sesión automático.
En el paso 502, los datos de entrada son recibidos por la aplicación 4 (por ejemplo, token de seguridad, configuración, idioma), ya sea directamente del usuario o mediante la validación de los datos recibidos por el usuario (por ejemplo, invitación a una reunión, archivo adjunto, etc.) a través de la interfaz de aplicación 40. El usuario puede, por ejemplo, ingresar los datos utilizando un dispositivo de entrada como un teclado o un dispositivo de puntero (por ejemplo, un dispositivo de ratón) a través de la interfaz de aplicación. Los datos de entrada pueden ser, por ejemplo, datos de texto que tienen una estructura de datos predefinida definida por la aplicación 4. En algunas realizaciones, como una aplicación de calendario o agenda o una herramienta de calendario o agenda de una aplicación (aplicación de mensajería), la interfaz de aplicación puede comprender campos predefinidos, como cuadros de texto, definido cada uno por un par de datos que comprende un nombre y un valor. Se puede visualizar un cuadro de texto en la interfaz de aplicación en asociación con un nombre. El valor de un cuadro de texto puede ser ingresado o seleccionado por el usuario o tener un valor por defecto definido por la aplicación o ser rellenado automáticamente por la aplicación 4 dependiendo de la configuración 404 del usuario. Por ejemplo, si la aplicación comprende una herramienta de calendario, el calendario comprende un conjunto de entradas de calendario. Se puede crear una entrada de calendario para un "evento" (por ejemplo, una "reunión"). Al seleccionar una entrada de calendario, se le puede solicitar al usuario que especifique diferentes campos (cuadros de texto), que incluyen:
- un campo de temática;
- un campo de ubicación;
- un campo de fecha de inicio;
- un campo de fecha de finalización;
- un campo de hora de inicio;
- un campo de hora de finalización.
Cada uno de los campos anteriores puede estar definido por un par de datos que comprende un nombre y un valor. La entrada de datos por parte del usuario puede estructurarse según una estructura de datos predefinida por la aplicación 4, identificando la estructura de datos los pares nombre/valor de los campos y las relaciones entre los campos.
En el paso 503, los datos de entrada pueden almacenarse en la memoria 400 de entrada de datos de la aplicación según la estructura de representación de datos de la aplicación 4. Los datos de entrada pueden almacenarse como bloques de datos. En algunas realizaciones, los datos de entrada pueden almacenarse en la memoria 400 cuando el usuario guarda los datos de entrada realizando una acción como, por ejemplo, seleccionando un botón de guardado para una entrada de calendario o enviando un mensaje, para una aplicación de mensajería.
Cada bloque de datos de entrada almacenado en la memoria 400 de datos de entrada puede comprender un conjunto de elementos de datos 401, teniendo cada elemento de datos un formato de datos y un valor.
En el paso 504, la extensión (41) de la aplicación puede determinar si se cumple una condición de activación a partir del bloque de datos de entrada.
En algunas realizaciones, la condición de activación puede cumplirse en respuesta a los datos recibidos por la aplicación 4. En una realización en la que la interfaz de aplicación 40 comprende un conjunto de cuadros de texto definidos por un par de nombre/valor, la condición de activación puede depender de la recepción de al menos un valor para uno de los cuadros de texto, por ejemplo, como resultado de una entrada directa por parte del usuario. En otras realizaciones, la condición de activación puede cumplirse en respuesta a la recepción de datos por parte del usuario, o a la validación de los datos recibidos por el usuario o incluso a la apertura de un registro de cliente (en respuesta a la apertura de dicho registro de cliente, el dispositivo puente puede, por ejemplo, generar una solicitud de viaje para visitar al cliente en una fecha cercana, como la semana siguiente). En otra realización en la que la interfaz de aplicación 40 comprende áreas para la entrada de texto sin formato por parte del usuario (por ejemplo, aplicación de mensajería), la condición de activación puede cumplirse en respuesta a la entrada de texto por parte del usuario. En realizaciones en las que la aplicación 4 permite la creación de entradas (evento, mensaje), la condición de activación puede cumplirse en respuesta a la creación de una nueva entrada por parte del usuario (por ejemplo, creación de un nuevo mensaje o evento).
En el paso 506, la conexión con el dispositivo puente puede ser activada por la extensión 41 de la aplicación, en respuesta a la detección de la condición de activación. La aplicación 4 puede entonces transmitir al menos algunos de los elementos de datos 401 comprendidos en cada bloque de datos de entrada 400 al dispositivo puente 10 durante la activación de la conexión con el dispositivo puente 10.
La figura 5 es un diagrama de flujo que representa el proceso de inicio de sesión persistente de un usuario en la extensión de la aplicación (bloque 501 de la figura 4).
En el paso 600, en respuesta al lanzamiento de la extensión de la aplicación, la aplicación 4 puede verificar si la memoria 35 de la aplicación comprende un identificador de usuario, como una credencial de usuario o un token de seguridad para iniciar sesión en el sistema 2 proveedor de contenido.
Si es así, el identificador de autenticación puede recuperarse de forma transparente del área de memoria 35 en el paso 602 y enviarse al dispositivo puente 10 en el paso 610. El identificador de usuario puede ser verificado por el proveedor 2 de contenido (transmisión a través del dispositivo puente en el paso 607) y puede ser almacenado en la memoria 35 si es válido en el paso 608.
De lo contrario, si no se encuentra ningún identificador de usuario en el área de memoria 35 (por ejemplo, debido a que el usuario no ingresó su identificador previamente o no pudo almacenar su identificador debido a que el área de memoria 35 estaba vacía o era insuficiente), la aplicación 4 puede activar la visualización de un panel de inicio de sesión para solicitar al usuario que ingrese un identificador de usuario en el paso 604. Si el usuario ingresa un identificador de usuario (606), el identificador de usuario también puede ser verificado por el proveedor 2 de contenido (transmisión a través del dispositivo puente en el paso 607) y almacenado en la memoria 35 si es válido en el paso 608.
La Figura 6 es un diagrama de flujo que representa el proceso de creación de una sesión por parte del dispositivo puente 10 para permitir el acceso transparente de un usuario de la aplicación 4 al sistema proveedor de contenido en respuesta a la recepción del identificador de usuario (paso 607 de la Figura 5), según una realización (bloque 700).
En el paso 701, el dispositivo puente 10 puede comparar el identificador de usuario recibido de la aplicación 4 con un conjunto de identificadores autorizados predefinidos.
Si el identificador de autenticación no coincide con el conjunto de identificadores autorizados predefinidos, el dispositivo puente 10 puede devolver un mensaje de error de inicio de sesión a la aplicación 4 en el paso 702 o alternativamente crear un perfil para el usuario. La aplicación 4 puede activar la visualización de un panel de inicio de sesión para solicitar al usuario que ingrese su identificador de usuario (similar al paso 604 de la figura 5).
En respuesta a un identificador de autenticación recibido del usuario, en el paso 704, el dispositivo puente 10 puede recuperar información relacionada con el usuario, como por ejemplo información del usuario relacionada con el sistema/empresa/comunidad a la que pertenece el usuario, con el fin de validar o no validar el acceso del usuario, sin necesidad de entradas adicionales por parte del usuario (por ejemplo, ingreso del identificador de comunidad, identificador de correo electrónico).
En el paso 706, se puede crear una sesión (instancia del sistema 2 proveedor de contenido).
En el paso 708, se puede enviar un mensaje de creación de sesión a la aplicación 4 por medio del cual la aplicación 4 y el dispositivo puente 10 pueden intercambiar datos para generar solicitudes al sistema 2 proveedor de contenido. El dispositivo puente puede además enviar información del perfil de usuario recuperada en el paso 704 a la aplicación para su almacenamiento en el área de memoria 35.
La aplicación puede crear un identificador de sesión único y/o un token de seguridad para un intercambio seguro entre la aplicación 4 y el dispositivo puente 10.
El área de memoria 35 puede comprender un área 350 dedicada al usuario en la que el identificador de usuario y/o la información del perfil de usuario (por ejemplo, sistema/empresa/comunidad) y/o el identificador de sesión y/o el token de seguridad pueden ser almacenados. Si la aplicación 4 es una aplicación web o una aplicación compartida, el área de memoria 35 de la aplicación puede dividirse en una o más subáreas, estando cada subárea relacionada con un usuario. En algunas realizaciones, la propia memoria 35 se puede mantener en un servidor o se puede mantener una copia de la memoria en dicho servidor.
En consecuencia, el inicio de sesión puede ser realizado de forma transparente en nombre del usuario (inicio de sesión persistente) por la aplicación 4 y el dispositivo puente 10.
La figura 7 es un diagrama de flujo que representa el proceso de generación de una solicitud en el dispositivo puente 10 a partir de los datos recibidos de la aplicación 4, según algunas realizaciones.
Durante una sesión, el dispositivo puente 10 puede configurarse para intercambiar dinámicamente con la aplicación 4.
A medida que el usuario ingresa datos a la aplicación a través de la memoria de la aplicación, la aplicación 4 puede almacenar los datos de entrada de forma estructurada en la memoria 35.
En respuesta a la detección de una condición de activación (correspondiente al paso 504 de la figura 4) relacionada con la entrada de un nuevo bloque de datos por parte del usuario a través de la interfaz de aplicación, la aplicación puede enviar el bloque de datos al dispositivo puente 10. En una realización, la aplicación puede enviar el bloque de datos de entrada "tal cual" sin procesamiento previo. Alternativamente, la aplicación 4 puede devolver al menos algunos de los elementos de datos del bloque de datos de entrada al dispositivo puente con o sin procesamiento previo. Si no hay datos disponibles en la aplicación 4 (el usuario no ha ingresado ningún dato), la aplicación 4 puede enviar un valor vacío al dispositivo puente 10 periódicamente hasta que los datos sean ingresados por el usuario en la aplicación 4.
En el paso 800, el dispositivo puente recibe, por tanto, un bloque de datos de la aplicación 4, comprendiendo el bloque de datos un conjunto de elementos de datos.
En una implementación ejemplar de la invención que utiliza una aplicación 4 de mensajería de correo electrónico que comprende un conjunto de herramientas y un sistema 2 proveedor de viajes configurado para determinar propuestas de viaje en respuesta a solicitudes de viaje, como una fecha/ubicación de salida y/o una fecha/ubicación de llegada, se pueden realizar, por ejemplo, los siguientes pasos:
- si el usuario está creando o ha recibido una entrada de Calendario en la aplicación 4 de mensajería de correo electrónico, el bloque de datos devuelto al Dispositivo Puente 10 puede incluir un conjunto de elementos de datos que comprenden un valor para uno o más campos entre los campos de Título, Ubicación, Asistentes (correo electrónico y nombre), fecha y hora de Inicio (con zona horaria), fecha y hora de finalización (con zona horaria);
- si el usuario está creando o recibiendo una entrada de correo electrónico, el bloque de datos devuelto al Dispositivo Puente 10 puede incluir un conjunto de elementos de datos que comprenden datos relacionados con la reunión que pueden comprender de manera similar un valor para uno o más campos entre los campos de Título, Ubicación, Asistentes (correo electrónico y nombre), fecha y hora de Inicio (con zona horaria), fecha y hora de finalización (con zona horaria);
- si el usuario está creando una tarjeta de Cliente, el bloque de datos devuelto al Dispositivo Puente 10 puede incluir un conjunto de elementos de datos que comprenden un valor para uno o más campos entre una dirección de Cliente, un nombre de cliente, una referencia de facturación del cliente;
- si el usuario está escribiendo un correo electrónico, el bloque de datos devuelto al Dispositivo Puente 10 puede incluir un conjunto de elementos de datos que comprenden un valor para uno o más campos relacionados con el viaje derivados del texto del usuario y/o los archivos adjuntos incluidos en el correo electrónico, como la información de ubicación/acceso. El dispositivo puente 10 puede utilizar además una o más fuentes auxiliares de información, como datos disponibles en la Aplicación 4 (no necesariamente en una entrada de calendario, correo electrónico o tarjeta de cliente). Por ejemplo, el perfil de usuario o la información de configuración en la aplicación (por ejemplo, idioma del usuario, información de ubicación/acceso, valores de apariencia o CSS) puede ser utilizada por el dispositivo puente 10.
En el paso 802, el dispositivo puente 10 puede analizar y procesar el bloque de datos de entrada recibido de la Aplicación (Figura 3) o los datos auxiliares para determinar si comprenden elementos de datos que coinciden con uno o más valores de referencia asociados con cada parámetro de solicitud.
Los valores de referencia pueden comprender posibles valores de los parámetros de solicitud. En algunas realizaciones, los valores de referencia pueden comprender además valores equivalentes incluidos en el campo léxico de estos posibles valores y/o sinónimos de los posibles valores. En el paso 802, el dispositivo puente 10 puede aplicar diferentes técnicas de procesamiento de datos, como análisis de datos, tokenización de datos, filtrado de datos, derivación de datos, etc., teniendo en cuenta la estructura de datos de la aplicación 4 para determinar si un valor de referencia coincide con uno o más elementos de datos del bloque de datos de entrada y/o datos auxiliares.
Si se identifica una coincidencia entre un elemento de datos y un valor de referencia, el valor de referencia se empareja (o mapea) con el elemento de datos.
El método puede comprender además determinar una puntuación elemental ETI para cada par de elemento de datos/valor de referencia si se ha encontrado un mapeo entre el elemento de datos y el valor de referencia, en el paso de procesamiento 802. La puntuación puede ser un valor determinado para el par {valor de referencia/elemento de datos} e indicar el nivel de relevancia de la coincidencia entre el valor de referencia y un elemento de datos, cuanto mayor sea el valor de la puntuación, mayor será la relevancia. Si no se encuentra ningún mapeo para un valor de referencia, se puede asignar un valor cero a la puntuación.
Por ejemplo, en una aplicación de la invención para proporcionar viajes, un mapeo entre un elemento de datos y un valor de referencia puede considerarse relevante si:
- el valor es léxicamente equivalente (por ejemplo, IATA PAR y París, Francia son equivalentes),
- viaje razonable para el viajero (por ejemplo, el aeropuerto CDG es más relevante para una solicitud de vuelo que el código FRCDG de estación de tren de SNCF), y
- comodidad/coste razonable (por ejemplo, volar a CDG en lugar de ORLY será más cómodo para el viajero y cualquier coste adicional para la compañía, como un taxi, está justificado).
Cada par de elemento de datos/valor de referencia puede, por tanto, asociarse con un Indicador de Confianza Elemental ETI. Una coincidencia exacta puede, por ejemplo, corresponder a un valor máximo de ETI.
En algunas realizaciones, los datos de aprendizaje automático se pueden utilizar en el paso 802 para determinar el ETI, como una tabla de búsqueda que almacena tripletes de datos, incluyendo cada triplete un elemento de datos, un valor de referencia y un valor de eT i calculado previamente para el par de elemento de datos/valor de referencia.
Si se ha determinado al menos un mapeo entre un elemento de datos del bloque de datos de entrada y un valor de referencia con un valor ETI no nulo, el valor del parámetro de solicitud puede derivarse del valor de referencia dependiendo de las puntuaciones ETI obtenidas para los diferentes mapeos entre los valores de referencia correspondientes al parámetro de solicitud y los elementos de datos. Por ejemplo, se puede seleccionar el mapeo que tenga la puntuación más alta y el valor del parámetro de solicitud se puede derivar del valor de referencia correspondiente al mapeo seleccionado. El valor de referencia seleccionado para generar el valor del parámetro de solicitud puede ser previamente convertido al formato o la estructura de datos soportada por el sistema proveedor de contenido para este parámetro de solicitud.
Cuando se han procesado al menos algunos de los parámetros de solicitud, el método puede determinar si se cumple una condición de generación de solicitud a partir de los valores ETI asignados a cada par de valor de referencia/elemento de datos en el paso 805. De lo contrario, el proceso puede esperar un nuevo bloque de datos de entrada de la aplicación.
Si se cumple la condición de generación de solicitud del paso 805, se puede generar una solicitud en el paso 806, comprendiendo la solicitud valores para al menos algunos de los parámetros de solicitud, asignándose a cada parámetro de solicitud un valor derivado del elemento de datos emparejado con una referencia valor que está asociado con el parámetro de solicitud dependiendo de su puntuación ETI asociada.
En el paso 808, la solicitud puede enviarse al sistema 2 proveedor de contenido, por ejemplo, utilizando una URL si el sistema proveedor de contenido es un servidor web.
Si la condición del paso 805 no se cumple, el método puede esperar a una nueva entrada de bloque de datos de la aplicación 4 para proceder. Se puede visualizar un error en la interfaz de aplicación.
La respuesta del sistema 2 proveedor de contenido a la solicitud enviada por el dispositivo puente 10 puede visualizarse en el área de interfaz 403 de la interfaz de aplicación dedicada a la extensión 41 de la aplicación. El usuario puede seleccionar un elemento de la visualización relacionado con la instancia del proveedor de contenido, lo que puede activar una actualización de la visualización a través del dispositivo puente o una redirección a la interfaz del sistema proveedor de contenido.
Por ejemplo, considerando el ejemplo de un sistema 2 proveedor de viajes que entrega propuestas de viaje en respuesta a solicitudes de viaje y una aplicación 2 del tipo calendario, el bloque de datos de entrada puede comprender elementos de datos relacionados con un evento, como al menos una ubicación, fechas y horas de inicio/finalización del evento, mientras que los parámetros de solicitud estándar incluyen una ubicación, fecha, hora de salida y/o una ubicación, fecha y/u hora de llegada.
En dicho ejemplo, el valor de un parámetro de solicitud puede derivarse de un valor de referencia utilizando reglas de cálculo de la siguiente manera:
- los parámetros de solicitud de fecha y hora de salida de la solicitud se pueden definir como la fecha/hora de inicio del evento (valores de referencia) menos un valor predefinido (por ejemplo, 24 horas).
- los parámetros de solicitud de fecha y hora de regreso se pueden definir como la fecha de finalización del evento (valor de referencia) más un valor predefinido (por ejemplo, 4 horas).
En otro ejemplo más, los parámetros de solicitud de fecha y hora de salida pueden definirse como la fecha/hora de inicio del evento (valor de referencia) menos el tiempo necesario para acceder al evento desde la ubicación de salida del usuario hasta la ubicación del evento, lo que puede incluir la suma de los tiempos promedio necesarios para que un usuario:
- llegue al aeropuerto desde su punto de salida (tomado de datos históricos y de perfil);
- pase el control de seguridad y de vuelo en el punto de salida;
- vuele desde la ubicación de salida hasta la de llegada;
- pase el control de seguridad y de vuelo en el punto de llegada; y
- llegue a la ubicación del evento desde el puerto de llegada (incluyendo el tiempo promedio de alquiler de coche). De manera similar, los parámetros de fecha y hora de regreso de la solicitud pueden definirse como la fecha/hora de finalización del evento (valor de referencia) más el tiempo necesario para que el usuario vuelva a la ubicación del usuario desde la ubicación del evento, lo que puede incluir la suma de los tiempos promedio necesarios para que un usuario:
- llegue al aeropuerto desde la ubicación del evento (incluyendo la duración promedio estimada de la devolución del alquiler del coche);
- pase el control de seguridad y de vuelo en el punto de salida.
En una realización de la invención, el dispositivo puente 10 puede activar además la creación de una o más entradas de calendario o agenda en la aplicación, si la aplicación 4 es una aplicación de Calendario/Agenda o comprende una herramienta de Calendario/Agenda (como una aplicación de mensajería ), y si el dispositivo puente 10 genera una solicitud y el usuario valida una propuesta de viaje y posibles servicios complementarios entregados por proveedores de contenido auxiliares a través del sistema (2) proveedor de contenido, como por ejemplo reserva de hotel, alquiler de coches en el ejemplo de un sistema 2 proveedor de contenido que entrega propuestas de viajes (sistema proveedor de viajes).
En el ejemplo de un sistema 2 proveedor de viajes, considerando el ejemplo de una aplicación 4 que comprende una herramienta de Calendario o Agenda (como una aplicación de mensajería) que comprende entradas de calendario/agenda, si un usuario reserva una de las propuestas (viaje) y servicios adicionales devueltos por el sistema proveedor de viajes a través del dispositivo puente 10, el dispositivo puente puede, por tanto, crear dinámicamente las siguientes entradas de calendario ejemplares que pueden ser generadas para este evento de viaje:
- una entrada recordatoria para dirigirse al puerto de salida. Se puede generar un recordatorio, por ejemplo, para solicitar al usuario que comience a dirigirse al aeropuerto. Este evento puede generarse una cantidad de tiempo predefinida antes del primer segmento en un enlace (por ejemplo, 2 horas antes de la salida del vuelo). Los datos del puerto relevantes pueden estar asociados con instrucciones y consejos;
- una entrada recordatoria para la facturación de Vuelo/Tren: dicho recordatorio puede generarse una cantidad de tiempo predefinida antes del primer segmento de vuelo (por ejemplo, 24 horas antes del primer vuelo). Se puede incluir el enlace de facturación a la aerolínea, así como información relevante del viaje para facilitar la facturación (por ejemplo, el número de Reserva);
- una entrada para segmentos de Vuelo/Tren: dicha entrada puede indicar cada segmento de un viaje del usuario, siendo las horas de inicio y finalización del viaje las de los segmentos de vuelo. Se pueden incluir detalles del vuelo e información relevante (como información de la Terminal, información del aeropuerto/estación de tren, duración, números de vuelo/tren...);
- entradas para una reserva de Hotel: se pueden crear dos entradas para cada reserva de hotel, una para el evento de "facturación" y otra para la hora de "salida". Se pueden incluir detalles del hotel e información relevante (por ejemplo, Dirección, información de la reserva...);
- entradas para reserva de alquiler de coches: se pueden crear dos entradas para cada reserva de alquiler de coches, incluido un evento de recogida y un evento de entrega. Se pueden incluir detalles e información relevante del alquiler de coche (por ejemplo, proveedor del alquiler de coche, dirección de la ubicación de recogida, información de la reserva, etc.).
El dispositivo puente 10 puede además crear una o más entradas en una o más de otras aplicaciones que se ejecutan en el dispositivo de cliente 3 (diferentes de la aplicación 4), como por ejemplo en una aplicación de navegación social GPS (GPS significa Posicionamiento Global).
La figura 8 es un diagrama de flujo que representa el proceso de generación de una solicitud (paso 808 de la figura 7) según otro enfoque. En lugar de esperar la entrada de un nuevo bloque de datos, si la condición de generación de solicitud no se cumple en el paso 805 de la figura 7, el dispositivo puente 10 puede alternativamente enviar un mensaje a la aplicación 4 para que la extensión 41 de la aplicación genere una visualización de un formulario de solicitud que comprende solicitar al usuario que ingrese valores para al menos algunos de los valores de referencia como se muestra en la Figura 8.
En consecuencia, si se determina que la condición de generación de solicitud no se cumple en base a los indicadores de confianza elementales determinados para cada valor de referencia, en el paso 8080, uno o más valores de referencia Ri puede ser etiquetado con una etiqueta dependiendo del valor ETI asociado con cada valor de referencia Ri. Por ejemplo, los valores de referencia que están asociados con un valor ETI inferior o igual a un valor de umbral predefinido pueden etiquetarse en el paso 8080. Los valores de referencia etiquetados pueden corresponder a los valores de referencia para los que se ha encontrado un mapeo con un elemento de datos del bloque de datos de entrada, pero con un valor ETI bajo o para el que no se ha encontrado ningún mapeo. En algunas realizaciones, los valores de referencia para los que se han encontrado dos o más valores candidatos (elementos de datos de mapeo) con valores ETI iguales pueden etiquetarse adicionalmente.
En el paso 8082, el dispositivo puente 10 puede enviar un mensaje a la extensión 41 de la aplicación para generar una visualización de un formulario de solicitud en la interfaz de usuario. El formulario puede comprender al menos un campo a ser rellenado por el usuario para cada valor de referencia etiquetado. En algunas realizaciones, el formulario puede comprender un campo para cada valor de referencia de la solicitud según el formato de solicitud predefinido, estando vacíos los campos de los valores de referencia etiquetados y estando los campos de los otros valores de referencia rellenos previamente con los elementos de datos coincidentes del bloque de datos de entrada.
Si el usuario ingresa valores en el formulario de interfaz de aplicación 40 para los valores de referencia etiquetados, los valores pueden transmitirse al dispositivo puente 10.
El usuario puede modificar adicionalmente los demás valores de los parámetros de solicitud. De ser así, los valores actualizados también pueden transmitirse al dispositivo puente 10 y el dispositivo puente 10 puede generar la solicitud en base a los valores actualizados para los parámetros de solicitud en lugar del valor determinado por el dispositivo puente.
El método de entrega de contenido puede entonces procesar con el paso de generación de solicitud (808).
Debe observarse que, en algunas realizaciones, el formulario de solicitud puede visualizarse en el área 403 al lanzar la extensión de la aplicación. Los campos de los parámetros de solicitud pueden rellenarse dinámicamente en respuesta a pares de parámetro/valor de solicitud devueltos por el dispositivo puente 10. El dispositivo puente 10 puede devolver dichos pares cada vez que se encuentra un valor para un parámetro de solicitud, e incluso antes de que se compruebe la condición de generación de solicitud en el paso 805.
En dicha realización, el usuario puede actualizar los valores en cualquier momento, transmitiéndose dicha actualización al dispositivo puente que reemplaza entonces el valor de la solicitud con el nuevo valor especificado por el usuario. En realizaciones en las que se visualiza un formulario al usuario para permitirle proporcionar un valor para los parámetros de solicitud para los que no se ha encontrado ningún mapeo o corregir un valor candidato identificado por el dispositivo puente para cada parámetro de solicitud, el dispositivo puente 10 puede recopilar datos de aprendizaje automático de las correcciones o entradas así proporcionadas por el usuario para el posterior procesamiento de mapeo.
Si dos elementos de datos han sido mapeados a un mismo valor de referencia y tienen la misma puntuación ETI, el dispositivo puente 10 puede seleccionar arbitrariamente uno de ellos o utilizar datos contextuales para seleccionar uno de ellos.
La figura 9 es un diagrama de flujo que representa el paso de procesar un bloque de datos, según una realización (paso 802 de la figura 7).
El paso de procesamiento puede implementarse en respuesta a la recepción de un bloque de datos de la aplicación 4 (paso 800 de la figura 7).
En el paso 8020, el dispositivo puente 10 puede procesar cada parámetro de solicitud.
En el paso 8021, se puede analizar una lista de valores de referencia Ri predefinidos correspondiente al parámetro de solicitud. La lista de valores de referencia Ri predefinidos puede haber sido recibida previamente del sistema 2 proveedor de contenido y almacenada. Alternativamente, el valor de referencia Ri puede almacenarse en una o más bases de datos (bases de datos públicas y/o privadas). Los valores de referencia correspondientes a posibles valores para el parámetro de referencia, o valores que son equivalentes o sinónimos de dichos posibles valores del parámetro de solicitud.
En el paso 8022, para cada valor de referencia Ri (bloque 8021), se puede determinar si existe un mapeo entre el valor de referencia Ri y un elemento de datos del bloque de datos de entrada o de los datos auxiliares comparando la lista de valores de referencia asociados con el valor de referencia Ri con los elementos de datos del bloque de datos de entrada y/o los datos auxiliares. En algunas realizaciones, un elemento de datos puede procesarse solo si tiene la misma categoría que el parámetro de solicitud.
Si se determina que un elementos de datos Dk coincide con un valor de referencia asociado con el valor de referencia Ri (bloque 8023), se puede determinar un indicador de confianza elemental ETI para el mapeo entre Ri y Dk en el paso 8025. De lo contrario, se puede asignar un valor nulo al valor de referencia en el paso 8024.
El procesamiento de los valores de referencia para un parámetro de solicitud dado puede terminar cuando se ha encontrado al menos un mapeo con un ETI mayor o igual a un umbral T predefinido (bloque 8023) en el paso 8026.
En el paso 8028, el valor del parámetro de solicitud puede derivarse de uno de los valores de referencia para los que se ha encontrado un mapeo con un elemento de datos del bloque de datos de entrada o de los datos auxiliares dependiendo de la puntuación ETI (seleccionada en el paso 8026).
El proceso puede iterarse entonces para al menos algunos de los otros parámetros de solicitud.
El proceso puede entonces continuar con el paso 806 de la figura 7.
La figura 10 es un diagrama de flujo que representa el proceso de determinar si se cumple una condición de generación de solicitud, según una realización (paso 805 de la figura 7).
El proceso puede activarse si se encuentra al menos una coincidencia para al menos algunos de los parámetros de solicitud (bloque 804 de la figura 7).
El proceso puede comprender determinar un indicador global de confianza (GTI) para el bloque de datos de entrada, en el paso 8052, en base a los indicadores de confianza elementales ETI determinados para los valores de referencia utilizados para derivar el valor de cada parámetro de solicitud.
En el paso 8054, se puede determinar una condición relacionada con el valor de GTI. Por ejemplo, puede determinarse si el valor de GTI es inferior o igual a un umbral T predefinido. En dicha realización, la condición de generación de solicitud es, por tanto, una condición relacionada con el GTI.
Si se cumple la condición del paso 8054, se puede generar una solicitud como se ha descrito anteriormente en el paso 806.
De lo contrario, si no se cumple la condición del paso 8054, el proceso puede volver al paso 800 como se representa en la figura 7 o realizar el paso 8080 como se representa en la figura 8.
Las figuras 11 a 13 muestran vistas sucesivas de una interfaz de aplicación 40 ejemplar de una aplicación de mensajería 4 que comprende una herramienta de gestión de reuniones y está conectada a un sistema 2 proveedor de viajes a través de un dispositivo puente 10. El usuario puede acceder a la aplicación para crear una reunión o abrir una reunión existente. Los elementos de datos ingresados por el usuario en la aplicación 4 están estructurados como nombre/valor.
La vista de la figura 11 corresponde a una fase inicial del método de entrega de contenido en la que el usuario ha abierto la herramienta de reuniones para crear un evento. La herramienta comprende un conjunto de cuadros que incluyen cuadros de asistentes para indicar los asistentes a la reunión, un cuadro de asunto para indicar el tema de la reunión, un cuadro de ubicación para indicar la ubicación de la reunión, cuadros de hora de inicio y finalización para indicar el inicio o el fin de la reunión, un cuadro de mensaje de reunión donde se puede ingresar información relacionada con la reunión. En la fase inicial, los cuadros están todos vacías y la extensión 41 de la aplicación se ha lanzado automáticamente.
Un área 700 está dedicada a la extensión 41 de la aplicación, cambiando dinámicamente la interfaz de esta área a medida que el usuario ingresa datos en los cuadros. En las realizaciones de las figuras 12 y 13, se visualiza un formulario de solicitud en el área 403 de interfaz dedicada de la interfaz de aplicación 40 y los campos del formulario de solicitud pueden rellenarse dinámicamente como resultado del procesamiento realizado por el dispositivo puente.
En el ejemplo de la figura 11, el usuario ha ingresado una fecha/hora de inicio y una fecha/hora de finalización en los cuadros correspondientes de la herramienta de reuniones. Estas entradas se pasan al dispositivo puente 10 en forma de un bloque de datos de entrada. El dispositivo puente 10 procesa entonces el bloque de datos de entrada y determina una asociación entre los elementos de datos de este bloque de datos de entrada y un conjunto de valores de referencia correspondientes a los parámetros de solicitud de viaje estándar. Como se muestra en la parte izquierda de la interfaz de aplicación, los parámetros de solicitud incluyen:
- una fecha de salida derivada por el dispositivo puente 10 a partir de la fecha de inicio de la reunión;
- una hora de salida derivada por el dispositivo puente 10 a partir la hora de inicio de la reunión;
- una fecha de regreso derivada por el dispositivo puente 10 a partir de la fecha de finalización de la reunión;
- una hora de regreso derivada por el dispositivo puente 10 a partir de la hora de finalización de la reunión;
- una ubicación de salida (correspondiente al campo "desde" del área 700) establecida en la ubicación "SEA" (Seattle); la ubicación de salida puede ser derivada por el dispositivo puente 10 a partir de una fuente auxiliar, como el perfil de usuario que proporciona la ubicación del usuario;
- una ubicación de llegada (correspondiente al campo "a" del área 700) establecida en la ubicación "RDM" (RDM es el código IATA para el Aeropuerto Municipal de Redmond, en Oregón, EE. UU.); la ubicación de llegada puede ser derivada por el dispositivo puente 10 a partir de las entradas del usuario, ya que el usuario aún no ha indicado ninguna ubicación.
El dispositivo puente 10 convierte entonces el formato de la ubicación de salida y llegada en su nombre_correspondiente de 'industria de viajes' según lo define el código estándar de IATA (IATA significa "Asociación de Transporte Aéreo Internacional") utilizando una tabla de mapeo que asocia cada ubicación a una ubicación estándar. La ubicación "SEA" se convierte, por tanto, en la ubicación estándar "PARIS" correspondiente y la ubicación "RDM" se convierte en la ubicación estándar Heathrow. El dispositivo puente 10 genera entonces la solicitud en consecuencia y envía la solicitud generada al sistema 2 proveedor de contenido que devuelve el resultado a la aplicación 4 a través del dispositivo puente 10. La extensión 41 de la aplicación muestra el resultado en el área 700 en forma de propuestas de viaje que coinciden con la ubicación.
Aunque la figura 11 ilustra un ejemplo simplificado en el que se detectan elementos de datos de tipo IATA en el bloque de datos de entrada para determinar los parámetros de solicitud de ubicación, el experto en la técnica entenderá fácilmente que la invención también se aplica a elementos de datos que no son estándares de IATA para dichos parámetros de solicitud como, por ejemplo, un elemento de datos "Habitación 345" que puede ser decodificado por el dispositivo puente 10 en una entrada para la solicitud de viaje (por ejemplo, la Habitación 345 será enviada al sistema de viajes como aeropuerto RDM, ya que es el más relevante).
En consecuencia, las acciones del usuario se procesan de forma transparente para detectar la necesidad de una solicitud de viaje y generar dicha solicitud dinámicamente en un área 403 de la interfaz de aplicación, sin interrumpir al usuario en su acción principal (crear un evento de reunión), excepto si él/ella decide dirigirse al área dedicada. El usuario puede ignorar los resultados visualizados en el área 403 o seleccionar una propuesta de viaje apuntando al botón "reservar".
En algunas realizaciones, los resultados de la solicitud pueden visualizarse en una ventana emergente como se muestra en la figura 13 en lugar de visualizarse en el área 4903. En el ejemplo mostrado en la figura 13, la ventana emergente comprende propuestas de viaje ofrecidas por dos compañías AIR FRANCE y KLM (AIR FRANCE es una marca comercial de SOCIETE AIR FRANCE; KLM es una marca comercial y una marca de K.L.M. (H.K.) LTD). En una realización, el dispositivo puente 10 puede devolver los resultados a la aplicación 4 junto con un indicador de fiabilidad que indica si los resultados se visualizarán en el área 700 o en una ventana emergente. El indicador de fiabilidad puede ser calculado por el dispositivo puente 10 en función de los indicadores de confianza elementales determinados para los valores de referencia. El dispositivo puente 10 puede, por tanto, asignar un valor de indicador correspondiente a una visualización de ventana emergente cuando el mapeo entre los valores de referencia y los elementos de datos tiene un alto nivel de fiabilidad, es decir, corresponde a una alta probabilidad de que un usuario necesite contenido del sistema 2 proveedor de contenido.
Haciendo referencia ahora a la figura 14, el sistema 2 proveedor de contenido, el dispositivo puente 10 y los dispositivos de usuario 3, 5 del entorno operativo pueden implementarse en uno o más dispositivos o sistemas informáticos, denominados colectivamente ordenador, como el ordenador 30. El ordenador 30 puede incluir un procesador 32, una memoria 34, un dispositivo 36 de memoria de almacenamiento masivo, una interfaz 38 de entrada/salida (E/S) y una Interfaz Hombre-Máquina (HMI) 39. El ordenador 30 también puede estar acoplado operativamente a uno o más recursos externos 42 a través de la red 6 (que puede ser la red 60, 61 o 62, por ejemplo) y/o la interfaz 38 de E/S. Los recursos externos pueden incluir, pero no se limitan a, servidores, bases de datos, dispositivos de almacenamiento masivo, dispositivos periféricos, servicios de red basados en la nube o cualquier otro recurso informático adecuado que pueda ser utilizado por el ordenador 30.
El procesador 32 puede incluir uno o más dispositivos seleccionados entre microprocesadores, microcontroladores, procesadores de señales digitales, microordenadores, unidades centrales de procesamiento, matrices de puertas programables por campo, dispositivos lógicos programables, máquinas de estado, circuitos lógicos, circuitos analógicos, circuitos digitales o cualquier otro dispositivo que manipule señales (analógicas o digitales) en base a instrucciones operativas que se almacenan en la memoria 34. La memoria 34 puede incluir un único dispositivo de memoria o una pluralidad de dispositivos de memoria que incluyen, pero no se limitan a, memoria de solo lectura (ROM) , memoria de acceso aleatorio (RAM), memoria volátil, memoria no volátil, memoria estática de acceso aleatorio (SRAM), memoria dinámica de acceso aleatorio (DRAM), memoria flash, memoria caché o cualquier otro dispositivo capaz de almacenar información. El dispositivo 36 de memoria de almacenamiento masivo puede incluir dispositivos de almacenamiento de datos como un disco duro, una unidad óptica, una unidad de cinta, un dispositivo de estado sólido no volátil o cualquier otro dispositivo capaz de almacenar información. Una base de datos 44 puede residir en el dispositivo 36 de memoria de almacenamiento masivo y puede utilizarse para recopilar y organizar datos utilizados por los diversos sistemas y módulos descritos en la presente memoria.
El procesador 32 puede operar bajo el control de un sistema operativo 46 que reside en la memoria 34. El sistema operativo 46 puede gestionar los recursos informáticos de modo que el código de programa informático incorporado como una o más aplicaciones de software informático, como una aplicación 48 que reside en la memoria 34, puede tener instrucciones ejecutadas por el procesador 32. En una realización alternativa, el procesador 32 puede ejecutar la aplicación 48 directamente, en cuyo caso se puede omitir el sistema operativo 46. Una o más estructuras de datos 50 también pueden residir en la memoria 34 y pueden ser utilizadas por el procesador 32, el sistema operativo 46 y/o la aplicación 48 para almacenar o manipular datos.
La interfaz de E/S 38 puede proporcionar una interfaz de máquina que acopla operativamente el procesador 32 a otros dispositivos y sistemas, como la red 6 y/o el recurso externo 42. La aplicación 48 puede, por lo tanto, trabajar en cooperación con la red 6 y/o el recurso externo 42 comunicándose a través de la interfaz de E/S 38 para proporcionar las diversas características, funciones, aplicaciones, procesos y/o módulos que comprenden las realizaciones de la invención. La aplicación 48 también puede tener un código de programa que es ejecutado por uno o más recursos externos 42, o de lo contrario depender de funciones y/o señales proporcionadas por otro sistema o componentes de red externos al ordenador 30. De hecho, dadas las casi infinitas configuraciones posibles hardware y software, los expertos en la técnica entenderán que las realizaciones de la invención pueden incluir aplicaciones que están ubicadas externamente al ordenador 30, distribuidas entre múltiples ordenadores u otros recursos externos 42, o proporcionadas por recursos informáticos (hardware y software) que se proporcionan como un servicio a través de la red 6, como un servicio de computación en la nube.
La HMI 39 (como la HMI 30 en la implementación de la figura 1 de un dispositivo de usuario 3) puede acoplarse operativamente al procesador 32 del ordenador 30 de manera conocida para permitir que un usuario del ordenador 30 interactúe directamente con el ordenador 30. La HMI 39 puede incluir pantallas de video y/o alfanuméricas, una pantalla táctil, un altavoz y cualquier otro indicador sonoro y visual adecuado capaz de proporcionar información al usuario. La HMI 39 también puede incluir dispositivos y controles de entrada como un teclado alfanumérico, un dispositivo de puntero, teclados, pulsadores, perillas de control, micrófonos, etc., capaces de aceptar comandos o entradas del usuario y transmitir la entrada ingresada al procesador 32.
La base de datos 44 puede residir en el dispositivo 36 de memoria de almacenamiento masivo y puede utilizarse para recopilar y organizar datos utilizados por los diversos sistemas y módulos descritos en la presente memoria. La base de datos 44 puede incluir datos y estructuras de datos de soporte que almacenan y organizan los datos. En particular, la base de datos 44 puede disponerse con cualquier organización o estructura de base de datos incluyendo, pero sin limitarse a, una base de datos relacional, una base de datos jerárquica, una base de datos en red, una base de datos orientada a objetos o combinaciones de las mismas. Se puede utilizar un sistema de gestión de base de datos en forma de una aplicación de software informático que se ejecuta como instrucciones en el procesador 32 para acceder a la información o los datos almacenados en los registros de la base de datos 44 en respuesta a una consulta, donde una consulta puede ser determinada y ejecutada dinámicamente por el sistema operativo 46, otras aplicaciones 48, o uno o más módulos. Aunque las realizaciones de la invención pueden describirse en la presente memoria utilizando terminología de base de datos relacional, jerárquica, en red, orientada a objetos u otra en casos específicos, los expertos en la técnica entenderán que las realizaciones de la invención pueden utilizar cualquier modelo de gestión de base de datos adecuado y no se limitan a ningún tipo de base de datos particular.
Si bien la invención tiene ventajas particulares para los sistemas proveedores de contenido que soportan solicitudes que comprenden al menos algunos parámetros de solicitud relacionados con una fecha, una hora y/o una ubicación, como un sistema proveedor de viajes, el experto en la técnica entenderá fácilmente que la invención no está limitada a dichos sistemas proveedores de contenido y puede aplicarse a diversos sistemas proveedores de contenido, como un sistema de búsqueda de bienes raíces.
En general, las rutinas ejecutadas para implementar las realizaciones de la invención, ya sea que se implementen como parte de un sistema operativo o una aplicación, componente, programa, objeto, módulo o secuencia de instrucciones específicos, o incluso un subconjunto de los mismos, se pueden denominar en la presente memoria "código de programa informático" o simplemente "código de programa". El código de programa generalmente comprende instrucciones legibles por ordenador que residen en diversos momentos en diversos dispositivos de memoria y almacenamiento en un ordenador y que, cuando son leídos y ejecutados por uno o más procesadores en un ordenador, hacen que ese ordenador realice las operaciones necesarias para ejecutar las operaciones y/o elementos que incorporan los diversos aspectos de las realizaciones de la invención. Las instrucciones de programa legibles por ordenador para llevar a cabo operaciones de las realizaciones de la invención pueden ser, por ejemplo, lenguaje ensamblador o código fuente o código objeto escrito en cualquier combinación de uno o más lenguajes de programación.
Pueden identificarse varios códigos de programa descritos en la presente memoria en base a la aplicación dentro de la que se implementa en realizaciones específicas de la invención. Sin embargo, debe apreciarse que cualquier nomenclatura de programa particular que sigue se utiliza simplemente por conveniencia y, por tanto, la invención no debe limitarse al uso únicamente en cualquier aplicación específica identificada y/o implicada por dicha nomenclatura. Además, dado el número generalmente infinito de formas en que los programas informáticos pueden organizarse en rutinas, procedimientos, métodos, módulos, objetos y similares, así como las diversas formas en que la funcionalidad del programa puede asignarse entre diversas capas de software que residen dentro de un ordenador típico (por ejemplo, sistemas operativos, librerías, API, aplicaciones, subprogramas, etc.), debe apreciarse que las realizaciones de la invención no se limitan a la organización y asignación específicas de la funcionalidad del programa descritas en la presente memoria.
El código de programa incorporado en cualquiera de las aplicaciones/módulos descritos en la presente memoria es capaz de distribuirse individual o colectivamente como un producto de programa en una variedad de formas diferentes. En particular, el código de programa puede distribuirse utilizando un medio de almacenamiento legible por ordenador que contiene instrucciones de programa legibles por ordenador para hacer que un procesador lleve a cabo aspectos de las realizaciones de la invención.
Los medios de almacenamiento legibles por ordenador, que son inherentemente no transitorios, pueden incluir medios tangibles volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para el almacenamiento de información, como instrucciones legibles por ordenador, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento legibles por ordenador pueden incluir además RAM, ROM, memoria programable y borrable de solo lectura (EPROM), memoria programable y borrable eléctricamente de solo lectura (EEPROM), memoria flash u otra tecnología de memoria de estado sólido, memoria de solo lectura de disco compacto (CD-ROM) portátil, u otro almacenamiento óptico, casetes magnéticos, cintas magnéticas, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que pueda utilizarse para almacenar la información deseada y que pueda ser leído por un ordenador. Un medio de almacenamiento legible por ordenador no debe interpretarse como señales transitorias per se (por ejemplo, ondas de radio u otras ondas electromagnéticas de propagación, ondas electromagnéticas que se propagan a través de un medio de transmisión, como una guía de ondas, o señales eléctricas transmitidas a través de un cable). Las instrucciones de programa legibles por ordenador pueden descargarse a un ordenador, otro tipo de aparato de procesamiento de datos programable u otro dispositivo desde un medio de almacenamiento legible por ordenador o a un ordenador externo o dispositivo de almacenamiento externo a través de una red.
Las instrucciones de programas legibles por ordenador almacenadas en un medio legible por ordenador pueden utilizarse para dirigir un ordenador, otros tipos de aparatos de procesamiento de datos programables u otros dispositivos para que funcionen de manera particular, de modo que las instrucciones almacenadas en el medio legible por ordenador produzcan un artículo de manufactura que incluye instrucciones que implementan las funciones, acciones y/u operaciones especificadas en los diagramas de flujo, diagramas de secuencia y/o diagramas de bloques. Las instrucciones de programa informático pueden proporcionarse a uno o más procesadores de un ordenador de propósito general, un ordenador de propósito especial u otro aparato de procesamiento de datos programable para producir una máquina, de modo que las instrucciones, que se ejecutan a través del uno o más procesadores, hacen que se realicen un serie de cálculos para implementar las funciones, acciones y/u operaciones especificadas en los diagramas de flujo, diagramas de secuencia y/o diagramas de bloques.
Si bien la invención se ha ilustrado mediante una descripción de diversas realizaciones y si bien estas realizaciones se han descrito con un detalle considerable, no es la intención del solicitante restringir o limitar de ningún modo el alcance de las reivindicaciones adjuntas a tal detalle. Las ventajas y modificaciones adicionales serán fácilmente evidentes para los expertos en la técnica. Por ejemplo, el paso de procesamiento 802 puede implementarse utilizando diferentes técnicas de búsqueda optimizadas para determinar la asociación entre cada valor de referencia y un elemento de datos. Además, el área 403 de la interfaz de aplicación 40 puede ajustarse dinámicamente dependiendo de los datos que se visualizarán y/o la información recibida por el dispositivo puente, como el indicador de fiabilidad. Si bien las realizaciones de las figuras 7 a 10 se han descrito según un orden de pasos particular, el experto en la técnica entenderá fácilmente que la invención no se limita a dicha secuencia de pasos y que algunos pasos pueden implementarse en un orden diferente. Más generalmente, en ciertas realizaciones alternativas, las funciones, acciones y/u operaciones especificadas en los diagramas de flujo, diagramas de secuencia y/o diagramas de bloques pueden reordenarse, procesarse en serie y/o procesarse simultáneamente de acuerdo con las realizaciones de la invención. Además, cualquiera de los diagramas de flujo, diagramas de secuencia y/o diagramas de bloques puede incluir más o menos bloques que los ilustrados de acuerdo con las realizaciones de la invención.

Claims (11)

REIVINDICACIONES
1. Un sistema para entregar contenido dinámicamente desde un sistema (2) proveedor de contenido a un dispositivo de usuario (3), estando configurado dicho sistema (2) proveedor de contenido para entregar contenido en respuesta a una solicitud que tiene uno o más formatos predefinidos, comprendiendo el dispositivo de usuario (3) una aplicación (4) que se ejecuta en el dispositivo de usuario (3), estando asociada la aplicación (4) con una interfaz de aplicación, estando configurada la aplicación para recibir uno o más bloques de datos de entrada de al menos un usuario a través de la interfaz de aplicación, comprendiendo un bloque de datos de entrada un conjunto de elementos de datos, teniendo cada elemento de datos un tipo y un valor, en donde la aplicación comprende una extensión de la aplicación ejecutable, comprendiendo además el sistema un dispositivo puente (10), estando configurado el dispositivo puente para conectar dinámicamente dicha aplicación (4) a dicho sistema (2) proveedor de contenido durante la ejecución de la extensión de la aplicación, estando configurada la extensión de la aplicación para activar una conexión con el dispositivo puente (10), en respuesta a la detección de una condición de activación, estando configurada la aplicación (4) para transmitir al menos algunos de los elementos de datos comprendidos en cada bloque de datos de entrada al dispositivo puente (10) durante la conexión con el dispositivo puente (10), estando configurado el dispositivo puente para generar una solicitud de contenido que comprende parámetros de solicitud según uno de dichos formatos de solicitud predefinidos utilizando dichos elementos de datos recibidos de la aplicación (4) y para transmitir dicha solicitud al sistema (2) proveedor de contenido, en donde el dispositivo puente comprende:
- un analizador (11) configurado para analizar un conjunto de valores de referencia para cada parámetro de solicitud, en respuesta a la recepción de un bloque de datos de entrada;
- un mapeador (13) configurado para determinar si al menos algunos de los valores de referencia de dicho conjunto de valores de referencia mapean un elemento de datos en dicho bloque de datos de entrada o en una o más fuentes auxiliares, estando configurado además dicho mapeador para asociar una puntuación elemental que indica el nivel de relevancia de la coincidencia entre el valor de referencia y un elemento de datos para cada elemento de datos que mapea un valor de referencia,
comprendiendo además el dispositivo puente un generador de solicitudes configurado para generar una solicitud de contenido en base a las puntuaciones elementales asociadas con los elementos de datos que mapean dichos valores de referencia,
2. El sistema de la reivindicación 1, en donde cada valor de referencia está asociado con una lista de valores auxiliares, y en donde el mapeador (13) está configurado para determinar un mapeo entre un valor de referencia y un elemento de datos en dicho bloque de datos de entrada o en una o más fuentes auxiliares, si el elemento de datos en dicho bloque de datos de entrada o en una o más fuentes auxiliares mapea uno de dichos valores auxiliares.
3. El sistema de cualquiera de las reivindicaciones precedentes 1 o 2, en donde la solicitud comprende parámetros de solicitud, estando asociado cada parámetro de solicitud con uno o más valores de referencia, siendo el valor de al menos uno de los parámetros de solicitud derivado de un valor de referencia mapeado a un elemento de datos y estando asociado con dicho parámetro de solicitud dependiendo de la puntuación determinada para dicho valor de referencia;
estando además configurado el dispositivo puente (10) para enviar dicha solicitud al sistema (2) proveedor de contenido.
4. El sistema de la reivindicación 3, en donde el valor de un parámetro de solicitud se determina a partir del valor de referencia que tiene la puntuación más alta.
5. El sistema de la reivindicación 4, en donde el dispositivo puente está configurado para determinar el valor de dicho parámetro de solicitud utilizando una función que define una relación entre el valor del parámetro de solicitud y dicho valor de referencia.
6. El sistema de cualquiera de las reivindicaciones precedentes 2 a 5, en donde el dispositivo puente comprende además un convertidor (140) configurado para convertir el formato de un valor de referencia en el formato del parámetro de solicitud asociado con el valor de referencia.
7. El sistema de cualquier reivindicación precedente, en donde dicha aplicación (4) está asociada con una memoria de datos (400) configurada para almacenar dichos elementos de datos.
8. El sistema de cualquier reivindicación precedente, en donde dicha aplicación (4) comprende una memoria (35) de datos de usuario configurada para almacenar un identificador de usuario, estando configurada la extensión de la aplicación para transmitir de forma transparente y segura dicho identificador de usuario a dicho dispositivo puente (10), estando configurado dicho dispositivo puente (10) para controlar el acceso de dicho usuario al sistema (2) proveedor de contenido utilizando dicho identificador de usuario.
9. El sistema de cualquier reivindicación precedente, en donde el dispositivo puente (10) está configurado para recibir contenido del sistema (2) proveedor de contenido en respuesta a dicha solicitud, estando configurado el dispositivo puente (10) para transmitir dicho contenido a la aplicación, comprendiendo la aplicación una unidad de presentación para presentar dicho contenido en un área dedicada (403) de la interfaz de aplicación (40).
10. El sistema de la reivindicación 9, en donde la unidad de presentación (30) está configurada para ajustar dinámicamente las dimensiones de la aplicación (4) en función del contenido transmitido por el dispositivo puente.
11. El sistema de cualquier reivindicación precedente, en donde los datos de entrada recibidos por la aplicación (4) comprenden datos auxiliares que incluyen datos relacionados con el usuario y/o datos contextuales de la aplicación relacionados con un contexto actual de la aplicación, manteniéndose dichos datos en una o más fuentes auxiliares.
ES18734844T 2017-07-13 2018-07-06 Sistema y método para entregar contenido dinámicamente Active ES2926005T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1756718A FR3069076B1 (fr) 2017-07-13 2017-07-13 Systeme et procede pour delivrer dynamiquement du contenu
PCT/EP2018/068374 WO2019011805A1 (en) 2017-07-13 2018-07-06 SYSTEM AND METHOD FOR DYNAMIC CONTENT DISTRIBUTION

Publications (1)

Publication Number Publication Date
ES2926005T3 true ES2926005T3 (es) 2022-10-21

Family

ID=62091936

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18734844T Active ES2926005T3 (es) 2017-07-13 2018-07-06 Sistema y método para entregar contenido dinámicamente

Country Status (7)

Country Link
US (1) US11068321B2 (es)
EP (2) EP4071637B1 (es)
CN (1) CN111034157B (es)
AU (1) AU2018299827B2 (es)
ES (1) ES2926005T3 (es)
FR (1) FR3069076B1 (es)
WO (1) WO2019011805A1 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2969525T3 (es) * 2019-10-18 2024-05-21 Amadeus Sas Dispositivo, sistema y método para la intermediación entre un sistema de proveedor que proporciona objetos de proveedor y un dispositivo de cliente
US11276094B2 (en) 2019-10-18 2022-03-15 Amadeus S.A.S. Device, system and method for intermediation between a provider system that provides provider objects and a client device
FR3102279A1 (fr) * 2019-10-18 2021-04-23 Amadeus S.A.S. Device, system and method for intermediation between a provider system that provides provider objects and a client device
USD947224S1 (en) * 2020-03-09 2022-03-29 Smartnomad Display screen or portion thereof with animated graphical user interface
US12437324B2 (en) * 2022-12-01 2025-10-07 Amadeus S.A.S. Device, system and method for reproducing a requesting step between a client device and a provider system at an intermediation server
US12335349B2 (en) 2023-08-04 2025-06-17 Amadeus S.A.S. Computing network system and method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002023442A1 (en) * 2000-09-13 2002-03-21 Infospace, Inc. System and method for providing an advanced personal information manager
US20030023463A1 (en) * 2001-04-16 2003-01-30 Frank Dombroski Method and system for automatically planning, booking, and calendaring travel arrangements
JP4533092B2 (ja) * 2003-12-11 2010-08-25 キヤノン株式会社 テレビジョン放送受信装置及びテレビジョン放送受信装置の制御方法
US20060080321A1 (en) * 2004-09-22 2006-04-13 Whenu.Com, Inc. System and method for processing requests for contextual information
US20080201178A1 (en) * 2007-02-20 2008-08-21 Yuri Vizitei On-demand travel management service and platform
US8631137B2 (en) * 2008-06-27 2014-01-14 Sony Corporation Bridge between digital living network alliance (DLNA) protocol and web protocol
JP5488180B2 (ja) * 2010-04-30 2014-05-14 ソニー株式会社 コンテンツ再生装置、制御情報提供サーバ、及びコンテンツ再生システム
EP2577592A1 (en) * 2010-05-27 2013-04-10 Global Blue Holdings AB Method and application for location-based services
WO2012127484A1 (en) * 2011-03-24 2012-09-27 Yogesh Chunilal Rathod A system and method for managing, monitoring, tracking, updating, measuring and facilitate maintaining user status & state
US8606801B2 (en) * 2011-08-16 2013-12-10 Hipmunk, Inc. Calendar-based suggestion of a travel option
KR102057795B1 (ko) * 2013-03-15 2019-12-19 애플 인크. 콘텍스트-민감성 방해 처리
US20150371155A1 (en) * 2014-06-24 2015-12-24 Philippe Saint-Just Method, compupter program, and system for planning, reserving, and purchasing travel accommodations from calendar events
US10268491B2 (en) * 2015-09-04 2019-04-23 Vishal Vadodaria Intelli-voyage travel
EP3176736A1 (en) * 2015-12-04 2017-06-07 Nextop Italia SRL Semplificata Electronic system and method for travel planning, based on object-oriented technology

Also Published As

Publication number Publication date
CN111034157A (zh) 2020-04-17
AU2018299827A1 (en) 2020-02-06
WO2019011805A1 (en) 2019-01-17
FR3069076A1 (fr) 2019-01-18
CN111034157B (zh) 2023-04-07
US11068321B2 (en) 2021-07-20
EP3652918A1 (en) 2020-05-20
AU2018299827B2 (en) 2021-05-13
US20210133006A1 (en) 2021-05-06
EP4071637B1 (en) 2025-09-03
EP3652918B1 (en) 2022-06-22
FR3069076B1 (fr) 2021-02-19
EP4071637A1 (en) 2022-10-12

Similar Documents

Publication Publication Date Title
ES2926005T3 (es) Sistema y método para entregar contenido dinámicamente
US11238209B2 (en) Systems and methods for viewing and editing composite documents
CN104412264B (zh) 预先缓存与旅行目的地相关的数据
CN101772780A (zh) 域间通信
US8751234B2 (en) Communication device for determining contextual information
US20160371798A1 (en) Travel concierge system and processes for building a travel itinerary by a single search query
US20140075367A1 (en) Supplementing a Virtual Input Keyboard
US12277180B2 (en) Information processing apparatus and method
KR102714333B1 (ko) 지능형 에이전트를 통하여 사용자 장치와 채팅 메시지를 송수신하는 중에 패키지 여행 상품을 제공하는 서버 및 그 동작 방법
US20160131491A1 (en) Interactively Scheduling an Itinerary
US20140047346A1 (en) User interface elements for transportation sharing
US20160012495A1 (en) Soliciting customer feedback based on indoor positioning system detection of physical customer presence
KR20140090117A (ko) 콘텐츠 전달 시스템의 동작 방법 및 컨텐츠 전달 디바이스
US20180137582A1 (en) Vaction rental booking and additional services
US11049200B2 (en) User detection based on locator-embedded identifier
WO2022103289A1 (ru) Способ и система автоматизированного формирования предложений для заказа билетов
US20250299116A1 (en) Methods and systems of provisioning a travel report
US20250307718A1 (en) Orchestration of booking matching
US20250259209A1 (en) Personalized internal services via a privacy-constrained content promotion platform
Miller Preparing the next generation for the cognitive era
US11118931B2 (en) Enhanced endpoint directions in a mapping program
KR20250063182A (ko) 대규모 언어 모델을 이용하여 패키지 여행 상품에 관한 정보와 관련 컨택스트 정보를 함께 제공하는 서버 및 그 동작 방법
WO2025215507A1 (en) Automated travel planning system and method
CN116503128A (zh) 出行订单完善方法、系统、电子设备和存储介质
Christmann et al. Context-adoptive Mobile Applications for User Guidance with Standard Phones