WO2017021579A1 - Sistema de mensajería instantánea - Google Patents

Sistema de mensajería instantánea Download PDF

Info

Publication number
WO2017021579A1
WO2017021579A1 PCT/ES2016/070584 ES2016070584W WO2017021579A1 WO 2017021579 A1 WO2017021579 A1 WO 2017021579A1 ES 2016070584 W ES2016070584 W ES 2016070584W WO 2017021579 A1 WO2017021579 A1 WO 2017021579A1
Authority
WO
WIPO (PCT)
Prior art keywords
instant messaging
bot
machine
user
electronic device
Prior art date
Application number
PCT/ES2016/070584
Other languages
English (en)
French (fr)
Inventor
José Angel NOGUERA ARNALDOS
Ramón MEGÍAS OLMOS
José Salvador MONTESINOS NAVARRO
Juan Antonio JIMÉNEZ ASENSIO
José Francisco JIMÉNEZ ALBURQUERQUE
Jorge SOTO LOZANO
Original Assignee
Proyectos Y Soluciones Tecnologicas Avanzadas, S.L.P.
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 Proyectos Y Soluciones Tecnologicas Avanzadas, S.L.P. filed Critical Proyectos Y Soluciones Tecnologicas Avanzadas, S.L.P.
Priority to EP16832372.3A priority Critical patent/EP3334099A4/en
Publication of WO2017021579A1 publication Critical patent/WO2017021579A1/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes

Definitions

  • the present invention belongs to the technical field of telecommunications. More particularly, the present invention relates to instant messaging services for communication between person-person, machine-machine and people-machines through mobile devices.
  • ES2240734 describes a mobile messaging system comprising at least one client device and a server, where the tooth device transmits presence information of! Username. It is also worth mentioning the chat management service (instant conversations) between people through a mobile terminal interface.
  • AI L Artificial in ⁇ elligence Mark-up Language, in English
  • XML-based brand language eXtensibie Markup Language, in English
  • This language is structured in a series of labels and marks that allow defining the patterns that intelligence should look for in the text and the actions that it should take when it finds any of them, such as answering a question, modifying the value of a variable or activate certain signals. It also has "wild card” patterns that redirect the behavior of intelligence towards the main employer in case of detecting any of the different ways that natural language has to give the same order or ask the same question.
  • Extensible Messaging and Presence Communication Protocol or X PP (Extensible Messaging and Presence Protocol, in English) also based on XML and originally designed for instant messaging, which has the following advantages over other similar protocols:
  • Transport Layer TLS Transport Layer Security, in English.
  • Open standard it is a widely regulated and tested protocol, with many years of development which guarantees its reliability.
  • the present invention serves to solve the problem mentioned above, solving the inconveniences presented by the solutions mentioned in the prior art, providing an instant messaging system for communication between entities, the entities being able to be both people and machines.
  • the communication of people with the machines of the proposed system can be done both in natural language and through specific commands that users can send to the machines.
  • users are allowed to interact with electronic devices (in the Internet of Things ecosystem) and interact machines with machines from users' mobile devices.
  • the machine can mimic the behavior of a person, in the context of the invention the machine can also be called a robot or "bot.”
  • the proposed system has means for communication between users-users, user-bot and bot-bot.
  • System users can obtain the current status of a bot, as well as the commands it can perform, and modify the access control list of a bot to allow other users or bots to interact with it.
  • System users can add machines (bots) to the system and establish themselves as an administrator of the added machine, as well as establish their initial configuration, update the profile of a bot, update their knowledge base and reset the bot to its initial configuration.
  • the system prevents the fraudulent registration of bots and allows a bot to discover if another bot implements a specific interface, establishing a relationship between them for later communication.
  • the bots are capable of executing actions and generating responses from specific commands or messages in natural language received from a user's mobile device. Users always interact with the system through their mobile devices (for example, smartphones, tablets, etc.).
  • the present invention allows a user (non-expert) to interact, preferably in natural language, with other users and "bots" (for example, appliances, industrial machines, lighting and so on and so on) through a messaging chat.
  • Instant and Voice over Internet Protocol VolP
  • the communication interface used is a social network of instant messaging, type "chat” (cibercharla) and the chat user can create groups of users between what are "bots” and can chat with them, as with other users, in natural language
  • the system is built on different protocols and technologies used in other areas, extending them with functionalities to achieve the objective that entities (human and machine) can communicate with each other.
  • the system comprises an interpreter running as firmware hosted on the machine's hardware (bot). That firmware is registered and acts directly on the bot.
  • the technologies used in the system are:
  • a short-range communication protocol for example, Bluetooth: On this technology a protocol is developed to establish the initial configuration of a bot and register it in the system.
  • An Internet message transfer protocol (for example, HTTP): It takes requests to register users and bots in the system, synchronization of users / contacts, multimedia sending / receiving, etc.
  • a base protocol for the communication of the different entities of the system both human and machine entities (for example, XMPP), on which extensions are developed to allow interaction (by example, with a simple click) of the users with the machines, as well as the machines with each other, and allowing the sending of commands to the machines using a natural language.
  • human and machine entities for example, XMPP
  • extensions are developed to allow interaction (by example, with a simple click) of the users with the machines, as well as the machines with each other, and allowing the sending of commands to the machines using a natural language.
  • a language to implement artificial intelligence that interacts with the user in natural language for example, AIML, which recognizes patterns in the text of chat messages.
  • the system includes means of notification to inform users associated with a machine of their changes in status, actions, etc.
  • security protocols are included that prevent fraudulent registrations, phishing and other attacks on system entities.
  • One aspect of the invention relates to an instant messaging system between entities, comprising an instant messaging application for communication between multiple users, between multiple machines, and between users and machines.
  • the present invention is easily implemented with wireless electronics based on compatible microprocessors for integration into the existing hardware of equipment and machinery manufacturers.
  • the proposed system includes a natural language interpreter based on artificial intelligence technique and ontologies, implemented as a firmware that is embedded in existing electronics, as discussed in the previous point.
  • Multi-configuration capability by the user and the creation of simultaneous user groups between people and machines are equipped with an ontology-based computer intelligence algorithm to perform specific tasks as well as respond to users in a colloquial language as if it were another human user of the system.
  • FIGURE 1.- Shows a block diagram of the architecture of the instant messaging system, according to a preferred embodiment of the invention.
  • FIGURE 2.- Shows a diagram of the interaction between blocks of the instant messaging system, according to a possible embodiment of the invention.
  • FIGURE 3. Shows a block diagram of the functional architecture of the system user application, according to a possible embodiment of the invention.
  • FIGURES 4.- Shows a block diagram of the functional architecture of the system server application, according to a possible embodiment of the invention.
  • FIGURES 5.- Shows a block diagram of the functional architecture of a machine registered in the system, according to a possible embodiment of the invention.
  • FIGURE 6.- Shows a block diagram of the functional architecture of the firmware acting on a machine of the system, according to a possible embodiment of the invention.
  • Figure 1 shows a schematic diagram of the block architecture of the instant messaging system between users (100) and machines (70), which in the example illustrated are household appliances.
  • the system can use a social network chat type, in which the user (100) is registered and used by means of a mobile terminal (10), for user-user, user-appliance and appliance-appliance communication, using instant messaging and, preferably, natural language.
  • the system includes:
  • a chat or instant messaging application (20) that runs on your mobile terminal (10).
  • an electronic device (60) with specific purpose hardware that has an interpreter module (63) running as firmware, hosted in the hardware that is registered and acts directly on the machine (70) or the appliance in this example.
  • the interpreter module (63) that constitutes an artificial intelligence, implemented through for example AIML language, responsible for interacting with the user ( 100) in natural language and operating on the hardware of the electronic device (60) to which the machine (70) is connected.
  • a user (100) can, for example, send the "Turn on” message to the interpreter's intelligence (63) and this translates the natural language message to a specific command for the machine (70); in this case, to activate a signal that starts the appliance to which the intelligence is connected, which in turn can respond with a message "Ready, I have already turned on.” which reaches the user (100) through the instant messaging application (20) of the mobile terminal (10).
  • the set of patterns and responses contemplated by the interpreter's intelligence (63) define a specific "personality" that is unique to each use case; In the example, that of the user's home appliances.
  • Figure 1 illustrates the basic structure of the communication system between users (100) and machines (70) as described, comprising the following blocks:
  • the application (20) is a computer app for sending written messages, in Chat or instant messaging format, and voice over IP, VolP, which The user can download to his mobile terminal (10), such as a mobile phone or tablet.
  • This application (20) allows you to use messages, text or voice, to chat with other users as well as to configure an HW of an electronic device (60) with which the user (100) can also chat in natural language with a machine (70).
  • the server (30) which can be on a dedicated node, owner or served in the cloud (90) of Internet services (80), which communicates with the mobile terminal (10) through a radio interface (110A) of the mobile operator (100).
  • the server (30) has an Application Programming Interface or API (40) by means of which a user access protocol (100) to the machine (70) is programmed, a protocol that is supported on a communication interface (110B) of the mobile telephone operator (100) between said server (30) and a router (50).
  • the router terminal (50) can be, for example inside the house connected to the electronic device (60) which, in turn, communicates and acts on the machine
  • the electronic device (60) comprises a hardware structure or electronic board based on a microprocessor (63) with wireless communication (64) and integration capability in other existing embedded systems.
  • a microprocessor (63) with wireless communication (64) and integration capability in other existing embedded systems.
  • an embedded computer application based on artificial intelligence and ontologies is implemented in firmware.
  • This firmware has the ability to process digital instructions in natural language and offer them to the user (100) in the form of comprehensive text in the native language as well as in voice.
  • the hardware where this firmware is programmed also includes the following blocks:
  • Semantic database (61) or knowledge base based on Ontologies.
  • Figure 2 shows the basic blocks of the system structure that interact for natural language communication between the user (100) and the machine (70), according to a possible implementation:
  • the communication with the machine (70) is done through the firmware used by the lexical database (61) or ontology.
  • the hardware and firmware interact through a lightweight format for data exchange, such as XML, JSON, MQTT, among others.
  • Figure 3 shows in a block diagram the architecture in functional modules comprising the instant messaging application (20):
  • Synchronization Module responsible for linking or synchronizing user contacts (obtained from different sources, such as the native calendar or social networks such as Google+ or Facebook), with other users of the HiThing system.
  • Registration Module responsible for registering the user in the HiThing system. Registration can be done in different ways, such as phone number, email or social networks such as Google+ or Facebook.
  • This module also allows, once registered, to add other means of registration to that same user, such as for example that the same user has the option to add an email to their account, apart from the telephone number with which they registered.
  • This module includes the specific functionality between the user and the bot, defined in modules 250, 260 and 270.
  • Bot Status Module responsible for monitoring the current status of the bot, as well as managing asynchronously the changes that occur in it. It will also manage the bot access control list.
  • Bot command control Module responsible for managing the different commands that a bot can perform. You will be able to consult the bot about its default commands, as well as send them to the bot to do a specific job.
  • Bot Configuration Module responsible for performing the initial configuration of the bot, sharing with the bot the necessary data so that it can register in the system, as well as telling the bot who is its administrator and its profile. It also allows the bot update, as well as the functionality necessary to reset the bot to factory mode.
  • Presence (280) of the user Module responsible for managing the user's current presence, as well as the presence of the user's contacts.
  • User profile Module in charge of managing the user profile in the system, allowing it to be modified and informing the rest of the contacts about its change.
  • Instant messaging service configuration (300): Module responsible for managing instant messaging between the different entities of the system (users and bots), both individual messages and messages to groups.
  • FIG. 4 shows in a block diagram the architecture in functional modules comprising the API application (40) of the server (30): User registration (410): This module includes the functionality of registering users in our system.
  • Bot Registration Understands the functionality of registering bots in our system.
  • Synchronization Module referring to the synchronization of the contacts of a user (in his mobile terminal agenda) with the other users of the system, either by Google, Facebook, telephone or email.
  • Instant messaging management Module that implements all instant messaging functionality, which allows us to:
  • Bots Authentication (452): Provide security for bot authentication.
  • Figure 5 shows in a block diagram the architecture in functional modules comprising the electronic device (60) that connects and communicates with the machine (70), also referred to herein as Bot: Communication port management (510):
  • ⁇ Action Interpreter (531), based on the external signals received, updates the state or knowledge base (artificial intelligence) to generate the corresponding command.
  • ⁇ Action Generator (532), based on the commands received from the artificial intelligence base.
  • FIG. 6 shows in a block diagram the architecture in functional modules comprising the firmware (600) implemented on the electronic device hardware (60):
  • Sending Instant Messages (623): prepare the means that allow the bot to send and receive and messages.
  • ⁇ Restrictions on access to the Bot (624): define the list of users who are allowed access to the bot.
  • Receiving user configuration (632): local connection with the user's device to receive the initial configuration data.
  • Communication with the hardware means that allow the bot to interact with the hardware to which it is connected. Understands:
  • ⁇ Response Generator (612): answer these messages with the appropriate response, generated according to the intelligence programming.
  • a protocol has been implemented on the Bluetooth user-bot communication technology, as well as on the HTTP protocol for bot-server communication, which allows a user who has acquired a bot to be added as administrator of the bot and pass the necessary data so that the bot can connect and register on the server.
  • the bot configuration process will be performed following the following
  • Step 1 The bot will be in initial configuration mode (bluetooth open waiting for connections).
  • Step 2 o The user from his mobile device selects the bot from the list of bluetooth devices and sends a message with the necessary configuration parameters to the bot for connection to the server.
  • Step 3 or. The bot saves the information received from the user and uses it to connect to the server, sending an HTTP registration message in the system.
  • Step 4 or. The server validates the information received from the bot and registers it in the system, informing the bot with a response message that the registration was made, which includes the necessary bot data to log in to the XMPP server. If an error occurs, it responds with an error message stating the reason for it.
  • Step 5 o The bot receives the response message from the server with the necessary information to connect to the XMPP server and informs the user with a message about Bluetooth. If an error occurred in the registry, it will inform the user with an error message and return to the initial configuration status.
  • Step 6 o The user receives the message from the bot that tells him if the process finished successfully or not. In the first case, it will save the information received from the bot to be able to communicate with it via the XMPP server, or it can send a message to cancel the process, forcing the bot to return to its initial configuration. Server security protocol (30) to avoid fraudulent bot records corresponding to machines (70).
  • a security protocol used to register bots has been developed to prevent fraud and attacks against the server (30).
  • This protocol allows that in the event of an attack on the server, the bot registry service can be recovered reliably and securely without having to modify code in the bot, with the consequent advantage that the bots will not be compromised to the attack.
  • tokens or tokens are used as character strings that the bot provides to the server (30) so that it authenticates it as a single and secure bot.
  • a Secret is also used, defined as a string of random characters known only to the server (30) with which the tokens are created.
  • Step 1 or. A convenient number of random algorithms is implemented to provide a verification token to the bot. The number of algorithms is equivalent to the opportunities to recover the tokens in case of attack to the server. Step 2 o. These algorithms are stored in a place outside the bots and the server together with a unique secret by algorithm and its numbering, which serves as an index to find it.
  • Step 3 On the server (30) only one of these algorithms is implemented to check the token.
  • Step 4 In each bot as many tokens are saved as there are algorithms, these tokens are produced by these algorithms (each bot has unique tokens).
  • Step 5 o To know which token you have to use to authenticate, the bot performs an HTTP query to the server (30), asking what algorithm you are using, the server (30) returns the number of the algorithm you are using (index) and the bot authenticates with the token related to that algorithm number. Step 6 o. When the bot registers, it sends the token backed up with the server (30), and if everything is correct it lets it register correctly.
  • Step 1 When the server is attacked and the attackers get the algorithm to remove the tokens, the first thing to do is to protect the service, eject the attacker and secure the server again so that they do not re-enter.
  • Step 2 o Once the key cases have been made, the algorithm on the server is changed to another previously thought and indexed.
  • Step 3 The attacker no longer knows what the new algorithm is.
  • the bot can register normally. Just use another token of the ones he has.
  • the bot administrator can change the bot's profile whenever he wishes, both the avatar and the nickname or nickname of the bot. To perform this process, the following steps are performed: i.
  • the bot administrator sends a message with the profile change request to the bot.
  • the bot receives the message, obtains its new profile configuration and updates the information on the server by sending a message with its new profile configuration. Neither.
  • the server stores the bot information, storing its new profile, responding to the bot with a message indicating the result of your request.
  • the bot receives the message with the result:
  • the bot sends a notification message about the change made to the different entities interested in the status changes of the bot.
  • the bot informs the administrator about it with an error message.
  • Each bot manages an access control list, hereinafter called LCA, where it stores the different entities, users (100) and machines (70), which have permission to communicate with the registered bot.
  • LCA access control list
  • the only entity that can interact with the bot is its administrator.
  • the administrator can modify the ACL, adding or removing other entities to it.
  • the process to add / remove ACL entities is as follows:
  • the administrator sends a message to the bot indicating the entities that you want to add / remove from the bot.
  • the bot processes the received list and sends a message with the new ACL to the server.
  • the server successfully stored the ACL.
  • the server then sends a notification message to the users belonging to its ACL, indicating the new entities that have been added or removed.
  • the server reported an error.
  • the bot sends a message to your administrator about the error, leaving your ACL unchanged.
  • any entity associated with a bot can consult its ACL.
  • the process is the following: 1) An entity sends a message to the bot to obtain its ACL.
  • the bot sends a list with the different entities currently added to its ACL.
  • the server (30) discards said request.
  • An entity human or machine
  • An entity can communicate with a bot and obtain its current status, as well as the list of commands that the bot can perform. Any user in the bot's ACL can check the status of the bot and send commands.
  • a first phase of "discovery" is added, in which both bots interact with each other to see if they are compatible and can communicate through the sending of commands.
  • a user can know the status of the bot by sending a status request message, to which the bot responds with a message indicating the current status it is in.
  • a user can send commands to a bot using natural language, but can also ask the bot for a list of specific commands that allow the user to execute them without having to write those commands in natural language.
  • the process is the following:
  • the bot responds to the user with a message including his actions.
  • a bot receives a message from its administrator to include another bot, BOT-B, as defined above. Once added, BOT-A sends a message to BOT-B asking if it implements an "INTERFACE-1".
  • the BOT-B receives the request. If you implement this interface, respond to the BOT-A with an affirmative message, otherwise respond with an error.
  • the BOT-A receives a confirmation about the implemented interface, it can request the BOT-B commands using the mechanism defined above.
  • the responses or actions of the bot to the different entries sent by the users are stored in a knowledge base that can be updated by the bot administrator.
  • the update process is as follows:
  • the administrator must obtain the URL from which the new knowledge base can be downloaded, by sending a message to the server.
  • the server responds with the URL, and the administrator forwards it within a message to the bot.
  • the bot receives the URL from which to download the new knowledge base to install it.
  • the bot will respond with a message to the administrator indicating that the update was performed.
  • the administrator sends a message to the bot indicating that it should be restored to the initial configuration.
  • the bot sends a request to the server to remove all the data related to it, and deletes all the local information in order to start a new bot configuration. 3) The bot informs the administrator that the reset has been completed by sending a confirmation message. At this point the bot cannot receive any type of message until it is reconfigured.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Sistema de mensajería instantánea comprendiendo una aplicación de mensajería instantánea (20) para la comunicación entre usuarios (100) y máquinas (70) mediante lenguaje natural, que además comprende un servidor (30) que comunica el terminal móvil (10) con un dispositivo electrónico (60) que, a su vez, se comunica y actúa sobre la máquina (70), mediante una API (40) a través de la que el usuario (100) accede a la máquina (70). El dispositivo electrónico (60)se conecta, a través de un terminal enrutador (50), al servidor (30. Dicho dispositivo electrónico (60) comprende un hardware configurable mediante la aplicación de mensajería instantánea(20) e incluye un módulo intérprete (62) para realizar una traducción entre mensajes en lenguaje natural intercambiados por la aplicación de mensajería instantánea(20) y comandos específicos de la máquina (70). El intérprete (62) está implementado mediante firmware embebido en el hardware del dispositivo electrónico (60)y se basa en técnicas de inteligencia artificial y ontologías.

Description

SISTEMA DE MENSAJERÍA INSTANTÁNEA
DESCRIPCIÓN OBJETO DE LA INVENCIÓN
La presente invención pertenece al campo técnico de las telecomunicaciones. Más particularmente, la presente invención se refiere a los servicios de mensajería instantánea para la comunicación entre persona-persona, máquina-máquina y personas-máquinas a través de dispositivos móviles.
ANTECEDENTES DE LA INVENCIÓN
En la actualidad existe una gran variedad de sistemas electrónicos y aplicaciones informáticas para terminales portables, tales como teléfonos móviles inteligentes y tabletas, para permitir el envío de mensajes instantáneos. Las tecnologías actuales de mensajería instantánea (por ejemplo, Whatsapp, Telegram, etc.) tienen algunas desventajas:
No permiten establecer un canal de comunicación en lenguaje natural entre usuarios y otros dispositivos electrónicos para usos distintos a los de telefonía móvil o chat entre personas.
No disponen de un "traductor" de instrucciones que pueda servir de pasarela entre el lenguaje máquina y el lenguaje natural con el objetivo de permitir la interacción con máquinas u otros dispositivos electrónicos. - No permiten realizar grupos de interacción entre usuarios y máquinas u otros dispositivos electrónicos por medio de mensajes de texto en lenguaje natural.
No permiten recibir mensajes de estado interpretados en lenguaje natural. Por citar algún otro ejemplo de sistemas de mensajería instantánea, en ES2240734 se describe un sistema de mensajería móvil que comprende al menos un dispositivo cliente y un servidor, donde el dispositivo diente transmite al servidor información de presencia de! usuario. También cabe mencionar el servicio de gestión de chats (conversaciones instantáneas) entre personas a través de una interfaz del terminal móvil.
En todos ios casos existentes que usan terminales móviles para la comunicación por mensajería instantánea, dicha comunicación tiene lugar entre dispositivo y dispositivo, para intercambiar mensajes (en lenguaje natural) entre personas, pero no para mensajes que una persona quiera dirigir a un dispositivo para comunicarse con el mismo y viceversa (comunicación máquina-persona). En el campo de la inteligencia artificial es conocido el lenguaje AI L (Artificial iníelligence Mark-up Language, en inglés), que es un lenguaje de marcas basado en XML (eXtensibie Markup Language, en inglés) que permite la programación de una inteligencia capaz de reconocer patrones en un texto y generar respuestas apropiadas en función de diversas condiciones y estados del sistema. Este lenguaje se estructura en una serie de etiquetas y marcas que permiten definir los patrones que la inteligencia debe buscar en el texto y las acciones que debe llevar a cabo cuando encuentre alguno de ellos, como por ejemplo responder a una pregunta, modificar el valor de una variable o activar determinadas señales. También cuenta con patrones "comodín" que redirigen el comportamiento de la inteligencia hacia el patrón principal en caso de detectar alguna de las distintas maneras que tiene el lenguaje natural para dar una misma orden o formular una misma pregunta.
Por otro lado, también es conocido el Protocolo Extensible de Mensajería y comunicación de Presencia o X PP (Extensible Messaging and Presence Protocol, en inglés) basado también en XML y originalmente ideado para mensajería instantánea, que presenta las siguientes ventajas sobre otros protocolos similares:
Seguridad: permite autenticación de usuarios y máquinas, integridad de ios datos y confidencialidad. Para ello, usa el protocolo de seguridad en la Capa de TransporteTLS (Transport Layer Security, en inglés). - Estándar abierto: es un protocolo ampliamente regulado y testado, con muchos años de desarrollo lo que garantiza su fiabiiidad.
Flexibilidad: permite el desarrollo de funcionalidades a medida, asi como facilitar la integración con otros sistemas desarrollados sobre este protocolo. El problema técnico objetivo que aquí se plantea es proporcionar medios de mensajería instantánea, que utilizan protocolos de comunicación ya existentes para permitir una implementación sencilla, que proporcionan una vía "amistosa" de comunicación entre entidades de sistema, pudiendo ser esas entidades tanto personas como máquinas, incluyendo la posibilidad de comunicarse persona- persona, máquina-máquina y personas-máquinas.
DESCRIPCIÓN DE LA INVENCIÓN
La presente invención sirve para solucionar el problema mencionado anteriormente, resolviendo los inconvenientes que presentan las soluciones comentadas en el estado de la técnica, proporcionando un sistema de mensajería instantánea para la comunicación entre entidades, las entidades pudiendo ser tanto personas como máquinas.
La comunicación de las personas con las máquinas del sistema propuesto puede realizarse tanto en lenguaje natural como a través de comandos específicos que los usuarios pueden enviar a las máquinas. Mediante el envío de mensajería instantánea, se permite a los usuarios interactuar con dispositivos electrónicos (en el ecosistema de la Internet de las Cosas) y hacer interactuar máquinas con máquinas desde los dispositivos móviles de los usuarios.
Puesto que en esta comunicación la máquina puede imitar el comportamiento de una persona, en el contexto de la invención puede llamarse a la máquina también robot o "bot".
El sistema que se propone cuenta con medios para la comunicación entre usuarios- usuarios, usuario-bot y bot-bot. Los usuarios del sistema pueden obtener el estado actual de un bot, así como los comandos que éste puede realizar, y modificar la lista de control acceso de un bot para permitir a otros usuarios o bots interactuar con él. Los usuarios del sistema pueden añadir máquinas (bots) al sistema y establecerse como administrador de la máquina añadida, así como establecer su configuración inicial, actualizar el perfil de un bot, actualización de su base de conocimiento y resetear el bot a su configuración inicial. El sistema, en una realización preferida, impide el registro fraudulento de bots y permite a un bot descubrir si otro bot implementa una interfaz concreta, estableciendo una relación entre ambos para una posterior comunicación. Los bots son capaces de ejecutar acciones y generar respuestas a partir de comandos específicos o mensajes en lenguaje natural recibidos desde un dispositivo móvil del usuario. Los usuarios interactúan con el sistema siempre a través de sus dispositivos móviles (por ejemplo, teléfonos inteligentes, tabletas, etc.).
La presente invención permite que un usuario (no experto) pueda interactuar, preferiblemente en lenguaje natural, con otros usuarios y "bots" (por ejemplo, electrodomésticos, máquinas industriales, iluminación y así con un largo etcétera) por medio de un chat de mensajería instantánea y Voz sobre el Protocolo de Internet (VolP). La interfaz de comunicación empleada es una red social de mensajería instantánea, tipo "chat" (cibercharla) y el usuario del chat puede crear grupos de usuarios entre lo que se encuentran "bots" y puede chatear con ellos, como con otros usuarios, en lenguaje natural.
El sistema se construye sobre diferentes protocolos y tecnologías usados en otros ámbitos, extendiéndolos con funcionalidades para lograr el objetivo de que entidades (humanas y máquinas) puedan comunicarse entre sí. Para ello, el sistema comprende un intérprete corriendo como firmware alojado en el hardware de la máquina (bot). Ese firmware se registra y actúa directamente sobre el bot. Las tecnologías usadas en el sistema son:
Un protocolo de comunicación de corto alcance (por ejemplo, Bluetooth): Sobre esta tecnología se desarrolla un protocolo para establecer la configuración inicial de un bot y darle de alta en el sistema.
Un protocolo de transferencia de mensajes por Internet (por ejemplo, HTTP): Lleva las peticiones para dar de alta a usuarios y bots en el sistema, la sincronización de usuarios/contactos, envío/recepción de multimedia, etc.
Un protocolo base para la comunicación de las distintas entidades del sistema, tanto entidades humanas como máquinas (por ejemplo, XMPP), sobre el que se desarrollan extensiones para permitir la interacción (por ejemplo, con un simple clic) de los usuarios con las máquinas, así como las máquinas entre sí, y permitiendo el envío de comandos a las máquinas usando un lenguaje natural.
Un lenguaje para implementar la inteligencia artificial que interactúa con el usuario en lenguaje natural (por ejemplo, AIML, que reconoce patrones en el texto de los mensajes de un chat).
Opcionalmente, el sistema incluye medios de notificación para informar a los usuarios asociados a una máquina de sus cambios de estado, acciones, etc.
Adicionalmente para dar de alta en el sistema a usuarios y máquinas, se incluyen protocolos de seguridad que evitan registros fraudulentos, suplantación de identidades y otros ataques en las entidades del sistema.
Un aspecto de la invención se refiere a un sistema de mensajería instantánea entre entidades, que comprende una aplicación de mensajería instantánea para la comunicación entre múltiples usuarios, entre múltiples máquinas, y entre usuarios y máquinas.
Algunas de las ventajas técnicas que presenta la invención frente a las soluciones del estado de la anterior técnica son:
La presente invención se implementa fácilmente con electrónica inalámbrica basada en microprocesadores compatibles para la integración en el hardware ya existente de fabricantes de equipos y maquinaria.
El sistema propuesto incluye un intérprete del lenguaje natural basado en técnica de inteligencia artificial y ontologías, implementado como un firmware que va embebido en la electrónica existente, como se comenta en el punto anterior.
Capacidad de multiconfiguracion por parte del usuario y de la creación de grupos de usuarios simultáneos entre personas y máquinas. Estas máquinas están dotadas de un algoritmo informático de inteligencia basado en ontologías para realizar tareas determinadas así como responder a los usuarios en un lenguaje coloquial como si fuera otro usuario humano del sistema. BREVE DESCRIPCIÓN DE LAS FIGURAS
A continuación se pasa a describir de manera muy breve una serie de dibujos que ayudan a comprender mejor la invención y que se relacionan expresamente con una realización de dicha invención que se presenta como un ejemplo no limitativo de ésta.
FIGURA 1.- Muestra un diagrama de bloques de la arquitectura del sistema de mensajería instantánea, según una realización preferente de la invención.
FIGURA 2.- Muestra un esquema de la interacción entre bloques del sistema de mensajería instantánea, según una posible realización de la invención.
FIGURA 3.- Muestra un diagrama de bloques de la arquitectura funcional de la aplicación de usuario del sistema, según una posible realización de la invención.
FIGURAS 4.- Muestra un diagrama de bloques de la arquitectura funcional de la aplicación del servidor del sistema, según una posible realización de la invención.
FIGURAS 5.- Muestra un diagrama de bloques de la arquitectura funcional de una máquina dada de alta en el sistema, según una posible realización de la invención.
FIGURA 6.- Muestra un diagrama de bloques de la arquitectura funcional del firmware que actúa sobre una máquina del sistema, según una posible realización de la invención.
REALIZACIÓN PREFERENTE DE LA INVENCIÓN
A continuación, se describen posibles modos de realización del sistema propuesto para la comunicación en tiempo real entre entidades por mensajería instantánea.
La Figura 1 muestra un diagrama esquemático de la arquitectura de bloques del sistema de mensajería instantánea entre usuarios (100) y máquinas (70), que en el ejemplo ilustrado son electrodomésticos. El sistema puede emplear una red social tipo chat, en la que está dado de alta el usuario (100) y que utiliza mediante un terminal móvil (10), para la comunicación usuario-usuario, usuario-electrodoméstico y electrodoméstico-electrodoméstico, usando mensajería instantánea y, preferiblemente, lenguaje natural. Para ello, el sistema comprende:
En la parte del usuario (100), una aplicación de chat o mensajería instantánea (20) que corre en su terminal móvil (10).
En la parte de la máquina (70), por ejemplo, en el interior de la vivienda donde se localiza el electrodoméstico, un dispositivo electrónico (60) con hardware de propósito específico que dispone de un módulo intérprete (63) corriendo como firmware, alojado en el hardware que se registra y actúa directamente sobre la máquina (70) o el electrodoméstico en este ejemplo.
Entre ambas partes, el usuario (100) y la máquina (70), la comunicación en lenguaje natural se consigue gracias al módulo intérprete (63) que constituye una inteligencia artificial, implementada mediante por ejemplo lenguaje AIML, encargada de interactuar con el usuario (100) en lenguaje natural y de operar sobre el hardware del dispositivo electrónico (60) al que está conectada la máquina (70). De esta forma un usuario (100) puede, por ejemplo, enviarle a la inteligencia del intérprete (63) el mensaje "Enciéndete" y ésta traduce el mensaje de lenguaje natural a un comando específico para la máquina (70); en este caso, para activar una señal que pone en marcha el electrodoméstico al que esté conectada la inteligencia, que a su vez puede responder con un mensaje "Listo, ya me he encendido." que llega al usuario (100) a través de la aplicación de mensajería instantánea (20) del terminal móvil (10). El conjunto de patrones y respuestas que contempla la inteligencia del intérprete (63) definen una "personalidad" determinada que es única para cada caso de uso; en el ejemplo, el de los electrodomésticos de la vivienda del usuario.
Más particularmente, en el ejemplo de la Figura 1 se ilustra la estructura básica del sistema de comunicación entre usuarios (100) y máquinas (70) según se describe, comprendiendo los siguientes bloques:
Terminal móvil (10) con conectividad a Internet (80) para posibilitar el acceso de los usuarios (100) y su comunicación por medio de una aplicación de mensajería instantánea (20). La aplicación (20) es una app informática para el envío de mensajes escritos, en formato Chat o de mensajería instantánea, y de voz sobre IP, VolP, que el usuario puede descargar en su terminal móvil (10), tal como un teléfono móvil o tableta. Esta aplicación (20) permite usar mensajes, de texto o de voz, para chatear con otros usuarios así como para configurar un HW de un dispositivo electrónico (60) con el que el usuario (100) también puede chatear en lenguaje natural con una máquina (70).
Servidor (30), que puede estar en un nodo dedicado, propietario o servido en la nube (90) de servicios de Internet (80), que se comunica con el terminal móvil (10) a través de una interfaz de radio (110A) del operador de telefonía móvil (100). El servidor (30) dispone de una Interfaz de Programación de Aplicación o API (40) por medio de la que se programa un protocolo de acceso del usuario (100) a la máquina (70), protocolo que se soporta sobre una interfaz de comunicación (110B) del operador de telefonía móvil (100) entre dicho servidor (30) y un enrutador (50). El terminal enrutador (50) puede estar, por ejemplo en el interior de la vivienda comunicado con el dispositivo electrónico (60) que, a su vez, se comunica y actúa sobre la máquina
(70).
El dispositivo electrónico (60) comprende una estructura hardware o placa electrónica basada en un microprocesador (63) con comunicación inalámbrica (64) y capacidad de integración en otros sistemas embebidos existentes. En el hardware con el microprocesador (63) se implementa en firmware una aplicación informática embebida basada en inteligencia artificial y en ontologías. Este firmware tiene la capacidad de procesar las instrucciones digitales al lenguaje natural y ofrecerlas al usuario (100) en forma de texto comprensivo en el idioma nativo así como en voz. En concreto, el hardware donde se programa este firmware comprende además los siguientes bloques:
Base de datos (61) semántica o base del conocimiento basada en Ontologías.
Intérprete (62)
Puertos de comunicación inalámbrica (64), por ejemplo WiFi.
Periféricos (65) de entrada/salida o l/O digitales y analógicos para la conexión del dispositivo electrónico (60) a la máquina (70) y, a través de mensajes por un bus integrado (120), actuar en las funcionalidades de la máquina (70), por ejemplo funciones de un electrodoméstico. En la Figura 2 se muestran los bloques básicos de la estructura del sistema que interactúan para la comunicación en lenguaje natural entre el usuario (100) y la máquina (70), según una posible implementación:
La aplicación de mensajería instantánea (20) en el terminal móvil (10) del usuario (100)
La aplicación API (40) en el servidor (30) de la nube (90) con el que tiene conectividad el terminal móvil (10) y con el que la aplicación de mensajería instantánea (20) intercambia mensajes usando HTTP y XMPP
El dispositivo electrónico (60) con el hardware que se conecta a la máquina (70) y que se comunica con el servidor (30) y con dicha máquina (70). La comunicación con la máquina (70) se realiza a través del firmware que usa la base de datos (61) léxica u ontología. El hardware y el firmware interaccionan a través de un formato ligero para el intercambio de datos, como puede ser XML, JSON, MQTT, entre otros. La Figura 3 muestra en un diagrama de bloques la arquitectura en módulos funcionales que comprende la aplicación de mensajería instantánea (20):
Sincronización (210): Módulo encargado de enlazar o sincronizar contactos del usuario (obtenidos desde distintos orígenes, como por ejemplo la agenda nativa o redes sociales como Google+ o Facebook), con otros usuarios del sistema HiThing.
Registro (220): Módulo encargado de realizar el registro del usuario en el sistema HiThing. El registro podrá realizarse por distintas vías, como número de teléfono, email o redes sociales como Google+ o Facebook.
Este módulo también permite, una vez registrado, añadir otros medios de registro a ese mismo usuario, como por ejemplo que un mismo usuario tenga la opción de añadir a su cuenta un email, aparte del número de teléfono con el que se registró.
Comunicación con el Bot (230): Este módulo comprende la funcionalidad específica entre el usuario y el bot, definida en los módulos 250, 260 y 270. Servidor de Mensajería (240): Este módulo comprende la funcionalidad específica de mensajería, tanto entre usuarios como usuario y bots, definida en los módulos 280, 290 y 300.
Estado del Bot (250): Módulo encargado de monitorizar el estado actual del bot, así como de gestionar de manera asincrona los cambios que se produzcan en el mismo. Además gestionará de la lista de control de acceso del bot.
Control de comandos del Bot (260): Módulo encargado de gestionar los distintos comandos que puede realizar un bot. Será capaz tanto de consultar al bot sobre cuáles son sus comandos por defecto, así como de enviárselos al bot para que realice un trabajo específico.
Configuración del Bot (270): Módulo encargado de realizar la configuración inicial del bot, compartiendo con el bot los datos necesarios para que pueda registrarse en el sistema, así como indicándole al bot quién es su administrador y su perfil. También permite la actualización del bot, así como la funcionalidad necesaria para resetear al bot a modo fábrica.
Presencia (280) del usuario: Módulo encargado de gestionar la presencia actual del usuario, así como de la presencia de los contactos del mismo.
Perfil (290) del usuario: Módulo encargado de gestionar el perfil de usuario en el sistema, permitiendo modificarlo e informar al resto de contactos sobre el cambio del mismo.
Configuración del servicio de mensajería instantánea (300): Módulo encargado de gestionar la mensajería instantánea entre las distintas entidades del sistema (usuarios y bots), tanto mensajes individuales como mensajes a grupos.
La Figura 4 muestra en un diagrama de bloques la arquitectura en módulos funcionales que comprende la aplicación API (40) del servidor (30): Registro del usuario (410): Este módulo comprende la funcionalidad de registrar a los usuarios en nuestro sistema.
Registro del Bot (420): Comprende la funcionalidad de registrar bots en nuestro sistema.
Sincronización (430): Módulo referente a la sincronización de los contactos de un usuario (en su agenda del terminal móvil) con los demás usuarios del sistema, bien sea por cuenta Google, Facebook, teléfono o email.
Gestión de mensajería instantánea (440): Módulo que implementa toda la funcionalidad de mensajería instantánea, que nos permite:
Envío/Recepción de información de Presencia del usuario (441): Para saber si un usuario está en línea o cuando fue la última vez que se conectó.
Gestión de Perfiles de usuario (442): Poder modificar su nickname, su foto de perfil, y su tarjeta de visita.
Envío Mensajes Instantáneos (443): Comunicación con las distintas entidades.
Restricciones de acceso al Bot (444): Poder definir qué usuarios están permitidos a interactuar con los bots.
Envío/Recepción de información de Perfiles de Bots (445):
Modificar el nickname del bot, su foto de perfil y su tarjeta de visita.
- Seguridad (450):
Autenticación del usuario (451): Proporcionar seguridad para la autenticación de los usuarios.
Autenticación de Bots (452): Proporcionar seguridad para la autenticación de bots.
Seguridad del Servidor (453): Proporcionar seguridad e integridad a nuestros servidores.
La Figura 5 muestra en un diagrama de bloques la arquitectura en módulos funcionales que comprende el dispositivo electrónico (60) que se conecta y comunica con la máquina (70), también aquí referida como Bot: Gestión de puertos de comunicación (510):
WiFi (511)
Bluetooth (512)
USB (513)
SPI (514)
CANBus (515)
Gestión de buses y puertos de entrada/salida (520):
Gestión de puertos de entrada (521), que pueden ser digitales y analógicos.
Gestión de puertos de salida (522), que pueden ser digitales y analógicos.
Comunicación con el Bot (530):
Intérprete de Acciones (531), a partir de las señales externas recibidas actualiza la base de estados o de conocimiento (inteligencia artificial) para general el comando correspondiente.
Generador de Acciones (532), a partir de los comandos recibidos de la base de inteligencia artificial.
La Figura 6 muestra en un diagrama de bloques la arquitectura en módulos funcionales que comprende el firmware (600) implementado sobre el hardware del dispositivo electrónico (60):
Comunicación (620) con el Servidor (30): comprende las operaciones realizadas directamente entre bot y servidor, entre las que se incluyen:
Envío de registro (621) en el servidor (30): dar de alta el bot de forma segura como usuario del sistema.
Recepción de credenciales (622) desde el servidor (30): confirmación del alta del bot en el servidor y obtención de los datos necesarios para su autenticación.
Envío Mensajes Instantáneos (623): preparar los medios que permiten al bot enviar y recibir y mensajes.
Restricciones de acceso al Bot (624): definir la lista de usuarios a los que se les permite acceso al bot. Envío/Recepción de Perfiles de Bots (625): modificación del apodo y avatar del bot que verán los demás usuarios.
Comunicación directa (630) con el Usuario (100): operaciones realizadas entre usuario y bot, al margen del servidor, durante su configuración inicial. Incluye:
Conectividad con el servidor (631): configuración del canal de comunicaciones que debe utilizar el bot para acceder al servidor.
Recepción de configuración de usuario (632): conexión local con el dispositivo del usuario para recibir los datos de configuración inicial.
Comunicación con el hardware (640): medios que permiten al bot interactuar con el hardware al que está conectado. Comprende:
Conectividad con hardware de entrada/salida (641): escritura y lectura sobre los puertos de entrada y salida para control y monitorización del hardware externo.
Actualización de variables internas (642) de la base de datos (61) del conocimiento: seguimiento en la lógica interna del bot del estado del sistema en su conjunto. - Base de datos (61) del conocimiento: inteligencia artificial encargada de interactuar con los usuarios en lenguaje natural. Se basa en:
Reconocimiento de Patrones de Mensajes (611): detección de palabras, expresiones y/o emojis en los mensajes recibidos.
■ Generador de Respuestas (612): contestar a dichos mensajes con la respuesta adecuada, generada en función de la programación de la inteligencia.
A continuación se describe una posible realización del protocolo de configuración inicial y registro de un bot:
a) Protocolo de intercambio de mensajes Bluetooth para la configuración del bot.
Para la configuración inicial del bot se ha implementado un protocolo sobre la tecnología Bluetooth de comunicación usuario-bot, así como sobre el protocolo HTTP para comunicación bot-servidor, que permite a un usuario que haya adquirido un bot añadirse como administrador del mismo y pasarle los datos necesarios para que el bot pueda conectarse y registrarse en el servidor.
El proceso de configuración del bot se realizará siguiendo los siguientes
Paso 1o. El bot estará en modo configuración inicial (bluetooth abierto esperando conexiones).
Paso 2o. El usuario desde su dispositivo móvil selecciona al bot de la lista de dispositivos bluetooth y le envía un mensaje con los parámetros de configuración necesarios al bot para su conexión con el servidor.
Paso 3o. El bot guarda la información recibida del usuario y utiliza la misma para conectar con el servidor, enviándole un mensaje HTTP de registro en el sistema.
Paso 4o. El servidor valida la información recibida del bot y lo da de alta en el sistema, informando al bot con un mensaje de respuesta que el registro fue realizado, en el cual se incluyen la datos necesarios del bot para iniciar sesión en el servidor XMPP. Si se produce algún error, le responde con un mensaje de error indicándole el motivo del mismo.
Paso 5o. El bot recibe el mensaje de respuesta del servidor con la información necesaria para conectarse al servidor XMPP e informa al usuario con un mensaje sobre Bluetooth. Si se produjo un error en el registro, informará al usuario con un mensaje de error y volverá al estado de configuración inicial.
Paso 6o. El usuario recibe el mensaje del bot que le indica si el proceso finalizó correctamente o no. En el primer caso, guardará la información recibida del bot para poder comunicarse con el mismo a través del servidor XMPP, o puede enviarle un mensaje para cancelar el proceso, obligando al bot a volver a su configuración inicial. Protocolo de seguridad en el servidor (30) para evitar registros fraudulentos de bots correspondientes a máquinas (70).
Se ha desarrollado un protocolo de seguridad utilizado para el registro de bots pensado para evitar fraudes y ataques contra el servidor (30).
Este protocolo permite que en caso de ataque al servidor se pueda recuperar el servicio de registro de bots de forma fiable y segura sin necesidad de tener que modificar código en el bot, con la consiguiente ventaja de que los bots no se verán comprometidos al ataque.
En el contexto de la invención, se utilizan testigos o tokens, como cadenas de caracteres que el bot proporciona al servidor (30) para que éste lo autentique como un bot único y seguro. Y también se usa un Secreto, definido como una cadena de caracteres aleatorios solamente conocida por el servidor (30) con el que se crean los tokens.
Se procede a describir el protocolo de seguridad:
Paso 1o. Se implementa un número conveniente de algoritmos aleatorios para proporcionar un token de verificación al bot. El número de algoritmos es equivalente a las oportunidades de recuperar los tokens en caso de ataque al servidor. Paso 2o. Estos algoritmos son guardados en un sitio ajeno a los bots y al servidor junto a un secreto único por algoritmo y su numeración, que sirve de índice para encontrarlo.
Paso 3o. En el servidor (30) está implementado solamente uno de esos algoritmos para comprobar el token.
Paso 4o. En cada bot se guardan tantos tokens como algoritmos hay, estos tokens son producidos por dichos algoritmos (cada bot tiene tokens únicos).
Paso 5o. Para saber qué token tiene que utilizar para autenticarse, el bot realiza una consulta HTTP al servidor (30), preguntándole qué algoritmo está usando, el servidor (30) devuelve el número del algoritmo que está utilizando (índice) y el bot se autentica con el token relacionado a ese número de algoritmo. Paso 6o. Cuando el bot se registra, envía el token apalabrado con el servidor (30), y si todo es correcto le deja registrarse correctamente.
En caso de ataque:
Paso 1o. Cuando el servidor es atacado y los atacantes consiguen el algoritmo para sacar los tokens, lo primero que hay que hacer es proteger el servicio, expulsar al atacante y asegurar de nuevo el servidor para que no vuelvan a entrar.
Paso 2o. Una vez realizados los casos claves, se cambia el algoritmo en el servidor a otro previamente pensado e indexado.
Paso 3o. El atacante ya no sabe cuál es el nuevo algoritmo.
Paso 4o. El bot puede registrarse normalmente. Simplemente utiliza otro token de los que él tiene.
A continuación se describe una posible realización de los protocolos específicos basados en el estándar XMPP para la implementación del sistema, cuyas comunicaciones se basan en el intercambio de diferentes mensajes definidos en el protocolo de comunicación XMPP, el cual ha sido extendido para permitir añadir humanos y bots al sistema, así como para permitir la interacción entre ellos. En concreto, se han desarrollado las siguientes características:
A. Configuración del perfil de los bots.
Todas las entidades del sistema, humanos y bots, tienen un perfil, que comprende un apodo y un avatar. El administrador del bot puede cambiar el perfil del bot siempre que lo desee, tanto el avatar como el alias o apodo del bot. Para realizar este proceso, se realizan los siguientes pasos: i. El administrador del bot envía un mensaje con la petición de cambio de perfil al bot.
¡i. El bot recibe el mensaje, obtiene su nueva configuración de perfil y actualiza la información en el servidor enviándole un mensaje con su nueva configuración de perfil. Ni. El servidor almacena la información del bot, almacenando su nuevo perfil, respondiendo al bot con un mensaje indicándole el resultado de su petición.
iv. El bot recibe el mensaje con el resultado:
a. Si el cambio se realizó correctamente, el bot envía un mensaje de notificación sobre el cambio realizado a las distintas entidades interesadas en los cambios de estado del bot.
b. Si se produjo algún error, el bot informa al administrador sobre el mismo con un mensaje de error.
Administración de una lista de control de acceso para los bots.
Cada bot gestiona una lista de control de acceso, en adelante llamada LCA, donde almacena las distintas entidades, usuarios (100) y máquinas (70), que tienen permiso para comunicarse con el bot registrado. En un principio, la única entidad que puede interactuar con el bot es el administrador del mismo. Así mismo, sólo el administrador podrá modificar la LCA, añadiendo o eliminando otras entidades a la misma. El proceso para añadir/eliminar entidades de la LCA es el siguiente:
1) El administrador envía un mensaje al bot indicándole las entidades que desea añadir/eliminar del bot.
2) El bot procesa la lista recibida y envía un mensaje con la nueva LCA al servidor.
3) El bot recibe la respuesta sobre los cambios realizados en el servidor, dándose los siguientes casos:
a. El servidor almacenó correctamente la LCA. A continuación el servidor envía un mensaje de notificación a los usuarios pertenecientes a su LCA, indicándoles las nuevas entidades que han sido añadidas o eliminadas.
b. El servidor informó de un error. En este caso el bot envía un mensaje a su administrador sobre el error producido, dejando sin modificar su LCA.
Además de añadir/eliminar entidades a la LCA, cualquier entidad asociada a un bot podrá consultar su LCA. El proceso es el siguiente: 1) Una entidad envía un mensaje al bot para obtener su LCA.
2) El bot envía un listado con las distintas entidades añadidas actualmente a su LCA.
Si una entidad no tuviera permiso para comunicarse con el bot, el servidor (30) descarta dicha petición.
Consulta de estado de los bots y envío de comandos a los mismos.
Una entidad (humano o máquina) puede comunicarse con un bot y obtener el estado actual del mismo, así como la lista de comandos que puede realizar el bot. Cualquier usuario que se encuentre en la LCA del bot podrá consultar el estado del bot y enviarle comandos. En cuanto a la comunicación entre bots, se añade una primera fase de "descubrimiento", en la cual ambos bots interactúan entre sí para ver si son compatibles y pueden comunicarse a través del envío de comandos.
Un usuario puede conocer el estado del bot enviándole un mensaje de petición de estado, al cual el bot responde con un mensaje indicando el estado actual en el que se encuentra.
Como se comentó previamente, un usuario puede enviar comandos a un bot usando el lenguaje natural, pero también puede pedirle al bot una lista de comandos específicos que permiten al usuario ejecutarlos sin tener que escribir esas órdenes en lenguaje natural. El proceso es el siguiente:
1) El usuario envía un mensaje al bot pidiéndole las acciones que realiza.
2) El bot responde al usuario con un mensaje incluyendo sus acciones.
En cuanto a la comunicación entre bots, dado que podrán haber máquinas de diferentes fabricantes que no tengan que tener nada en común, se añade un primer proceso de descubrimiento entre bots para conocer si ambos bots entienden el mismo lenguaje o acciones, En concreto, este proceso se basa en la implementación por parte de los bots de "interfaces", y es definido de la siguiente manera:
1) Un bot, BOT-A, recibe de su administrador un mensaje para incluir en su LCA a otro bot, BOT-B, tal y como se define anteriormente. Una vez añadido, el BOT-A envía un mensaje al BOT-B preguntándole si implementa una "INTERFAZ-1".
El BOT-B recibe la petición. Si implementa dicha interfaz, responde al BOT-A con un mensaje afirmativo, en caso contrario responde con un error.
Si el BOT-A recibe una confirmación sobre la interfaz implementada, puede pedir los comandos del BOT-B usando el mecanismo definido anteriormente.
Actualización de base de conocimiento del bot.
Las respuestas o acciones de los bot a las distintas entradas enviadas por los usuarios se encuentran almacenadas en una base de conocimiento que puede ser actualizada por el administrador del bot. El proceso de actualización es el siguiente:
1) El administrador debe obtener la URL desde la que podrá descargarse la nueva base de conocimiento, enviando un mensaje al servidor.
2) El servidor responde con la URL, y el administrador la reenvía dentro de un mensaje al bot.
3) EL bot recibe la URL desde donde descargar la nueva base de conocimiento para instalarla.
4) Una vez instalada, el bot responderá con mensaje al administrador indicando que se realizó la actualización.
5) Si se produjo algún error, se enviará un mensaje al administrador con dicho error.
Resetear el bot a su estado de configuración inicial.
En cualquier momento un administrador podrá restablecer un bot a su configuración inicial. El proceso de reseteo el siguiente:
1) El administrador envía un mensaje al bot indicándole que debe restablecerse a la configuración inicial.
2) El bot envía al servidor una petición para que se eliminen todos los datos referentes a él, y elimina toda la información local para poder iniciar una nueva configuración del bot. 3) El bot comunica al administrador que se ha completado el reseteo enviándole un mensaje de confirmación. En este punto el bot no puede recibir ningún tipo de mensaje hasta que vuelva a ser configurado.
4) Si todas las operaciones fueron correctas, el bot devuelve una IQ de tipo 'result':
5) Si se produjo algún error, se enviará un mensaje al administrador con dicho error. Protocolo de comunicación serie con el hardware conectado al bot. HiThing dispone de varios protocolos embebidos ya diseñados y programados de fábrica para que el usuario haga uso de ellos desde el primer momento por medio de los puertos de comunicaciones Serie y USB. A través de este puerto el usuario dispone programados los protocolos de comunicaciones CanBus, UART, SPI. Por otro lado también permite la opción de que el usuario construya su propio protocolo de comunicaciones aprovechando los puertos de comunicaciones antes citados.

Claims

REIVINDICACIONES
1. Un sistema de mensajería instantánea, caracterizado por que comprende:
- una aplicación de mensajería instantánea (20), que corre en un terminal móvil (10) de un usuario (100), para la comunicación entre el usuario (100) y una máquina (70), para la comunicación entre múltiples usuarios (100) y para la comunicación entre múltiples máquinas (70); y
- un servidor (30) conectado a Internet (80), que comunica el terminal móvil (10) con un dispositivo electrónico (60) que, a su vez, se comunica y actúa sobre la máquina (70), el servidor (30) comprendiendo una API (40) a través de la que el usuario (100) accede a la máquina (70) mediante mensajes intercambiados por la aplicación de mensajería instantánea (20) desde el terminal móvil (10) y por medio del dispositivo electrónico (60).
2. El sistema de mensajería instantánea, de acuerdo con la reivindicación 1 , caracterizado por que para la comunicación entre el usuario (100) y la máquina (70) se realiza usando lenguaje natural.
3. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que la comunicación entre el usuario (100) y la máquina (70) comprende usar comandos específicos de la máquina (70).
4. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que la aplicación de mensajería instantánea (20) comprende medios de intercambio de mensajes escritos y de voz sobre IP.
5. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que el terminal móvil (10) se selecciona entre un teléfono inteligente y una tableta.
6. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que el dispositivo electrónico (60) se conecta al servidor (30) a través de un terminal enrutador (50).
7. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que comprende un dispositivo electrónico (60) que se comunica y actúa sobre la máquina (70), y con el que se comunica el terminal móvil (10) por medio de un servidor (30) conectado a Internet
(80), el dispositivo electrónico (60) comprendiendo un hardware configurable mediante la aplicación de mensajería instantánea (20) y el hardware comprendiendo un módulo intérprete (62) para realizar una traducción entre mensajes en lenguaje natural intercambiados por la aplicación de mensajería instantánea (20) y comandos específicos de la máquina (70)
8. El sistema de mensajería instantánea, de acuerdo con la reivindicación 7, caracterizado por que el módulo intérprete (62) está implementado mediante firmware embebido en el hardware del dispositivo electrónico (60) y se basa en técnicas de inteligencia artificial y ontologías.
9. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones 7-8, caracterizado por que el hardware del dispositivo electrónico (60) además comprende
una base de datos (61) semántica basada en ontologías y un microprocesador (63) que interaccionan con el módulo intérprete (62).
10. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones 7-9, caracterizado por que el hardware del dispositivo electrónico (60) además comprende al menos un puerto de comunicación inalámbrica (64) para conectar el dispositivo electrónico (60) a un terminal enrutador (50) que se comunica con el servidor (30).
1 1. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones 7-10, caracterizado por que el hardware del dispositivo electrónico
(60) además comprende al menos un periférico (65) de entrada/salida para conectar el dispositivo electrónico (60) a la máquina (70) y actuar sobre la máquina (70).
12. El sistema de mensajería instantánea, de acuerdo con cualquiera de las reivindicaciones anteriores, caracterizado por que comprende:
un protocolo de comunicación de corto alcance para establecer una configuración inicial de una máquina (70) y darle de alta en el sistema, un protocolo de transferencia de mensajes por Internet para dar de alta a usuarios (100) y máquinas (70) en el sistema, y vincular las máquinas (70) dadas de alta con contactos de una agenda del usuario (100) o de redes sociales.
un protocolo base para la comunicación de las distintas entidades del sistema, tanto entidades humanas como máquinas (por ejemplo, XMPP), sobre el que se desarrollan extensiones para permitir la interacción (por ejemplo, con un simple clic) de los usuarios con las máquinas, así como las máquinas entre sí, y permitiendo el envío de comandos a las máquinas usando un lenguaje natural.
un lenguaje para implementar una inteligencia artificial que interactúa en lenguaje natural entre el usuario (100) y la máquina (70)
13. El sistema de mensajería instantánea, de acuerdo con la reivindicación 12, caracterizado por que el lenguaje de implementación de la inteligencia artificial es AIML, que reconoce patrones en los mensajes de la aplicación de mensajería instantánea (20), los protocolos de transferencia de mensajes por Internet son XMPP y HTTP, y el protocolo de comunicación de corto alcance es Bluetooth.
PCT/ES2016/070584 2015-08-06 2016-07-29 Sistema de mensajería instantánea WO2017021579A1 (es)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP16832372.3A EP3334099A4 (en) 2015-08-06 2016-07-29 INSTANT MESSAGING SYSTEM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ES201531171A ES2600145B1 (es) 2015-08-06 2015-08-06 Sistema de mensajería instantánea
ESP201531171 2015-08-06

Publications (1)

Publication Number Publication Date
WO2017021579A1 true WO2017021579A1 (es) 2017-02-09

Family

ID=57937712

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2016/070584 WO2017021579A1 (es) 2015-08-06 2016-07-29 Sistema de mensajería instantánea

Country Status (3)

Country Link
EP (1) EP3334099A4 (es)
ES (1) ES2600145B1 (es)
WO (1) WO2017021579A1 (es)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3067489A1 (fr) * 2017-06-20 2018-12-14 Orange Dispositifs et procedes de communication
US20210168102A1 (en) * 2017-09-27 2021-06-03 Slack Technologies, Inc. Triggering event identification and application dialog validation

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10204098B2 (en) * 2017-02-13 2019-02-12 Antonio GONZALO VACA Method and system to communicate between devices through natural language using instant messaging applications and interoperable public identifiers
CN115242742B (zh) * 2020-09-29 2023-07-14 支付宝(杭州)信息技术有限公司 一种服务控制方法、装置及系统
FR3127828A1 (fr) * 2021-10-06 2023-04-07 Orange Agent conversationnel en interface entre une machine et des utilisateurs

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103153A1 (en) * 2002-11-21 2004-05-27 Chang Tsung-Yen Dean Apparatus and method for providing smart network appliances
WO2009007131A1 (en) * 2007-07-11 2009-01-15 Vandinburg Gmbh Speech control of computing devices
EP2317730A1 (en) * 2009-10-29 2011-05-04 Siemens Enterprise Communications GmbH & Co. KG Method and system to automatically change or update the configuration or setting of a communication system
US20130144961A1 (en) * 2011-12-01 2013-06-06 Nhn Corporation System and method for providing information interactively by instant messaging application
US20140040404A1 (en) * 2011-03-31 2014-02-06 NextPlane, Inc. System and method for federating chat rooms across disparate unified communications systems

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070043878A1 (en) * 2005-08-18 2007-02-22 Microsoft Corporation Virtual robot communication format customized by endpoint
US9043407B1 (en) * 2009-06-12 2015-05-26 Avaya Inc. Interactive user interface to communication-enabled business process platforms method and apparatus
WO2014092503A1 (en) * 2012-12-13 2014-06-19 Samsung Electronics Co., Ltd. Method and apparatus for controlling devices in home network system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103153A1 (en) * 2002-11-21 2004-05-27 Chang Tsung-Yen Dean Apparatus and method for providing smart network appliances
WO2009007131A1 (en) * 2007-07-11 2009-01-15 Vandinburg Gmbh Speech control of computing devices
EP2317730A1 (en) * 2009-10-29 2011-05-04 Siemens Enterprise Communications GmbH & Co. KG Method and system to automatically change or update the configuration or setting of a communication system
US20140040404A1 (en) * 2011-03-31 2014-02-06 NextPlane, Inc. System and method for federating chat rooms across disparate unified communications systems
US20130144961A1 (en) * 2011-12-01 2013-06-06 Nhn Corporation System and method for providing information interactively by instant messaging application

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3334099A4 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3067489A1 (fr) * 2017-06-20 2018-12-14 Orange Dispositifs et procedes de communication
WO2018234654A1 (fr) * 2017-06-20 2018-12-27 Orange Dispositifs et procédés de communication
US11880361B2 (en) 2017-06-20 2024-01-23 Orange Communication devices and methods
US20210168102A1 (en) * 2017-09-27 2021-06-03 Slack Technologies, Inc. Triggering event identification and application dialog validation
US11706168B2 (en) * 2017-09-27 2023-07-18 Salesforce, Inc. Triggering event identification and application dialog validation

Also Published As

Publication number Publication date
ES2600145B1 (es) 2017-11-20
EP3334099A1 (en) 2018-06-13
EP3334099A4 (en) 2019-03-20
ES2600145A1 (es) 2017-02-07

Similar Documents

Publication Publication Date Title
WO2017021579A1 (es) Sistema de mensajería instantánea
CA3121023C (en) Wireless access credential system
US11832102B2 (en) User-authorized onboarding using a public authorization service
US9800468B2 (en) Goal-driven provisioning in IoT systems
US9710984B2 (en) Method for the authentication of at least one first unit on at least one second unit
US20190014117A1 (en) SCALABLE AND SECURE RESOURCE ISOLATION AND SHARING FOR IoT NETWORKS
EP3092782B1 (en) Mechanisms for conserving resources of wearable devices
JP4829554B2 (ja) 装置のグループをプロテクトするファイヤウォール、システムに参加する装置及びシステム内のファイヤウォール・ルールを更新する方法
ES2713424T3 (es) Sistemas y métodos para la gestión de acceso a cerraduras utilizando señales inalámbricas
ES2767601T3 (es) Servidor y procedimiento para el control remoto del funcionamiento de un terminal de comunicación, y un terminal de comunicación
US20090327724A1 (en) Two-way authentication between two communication endpoints using a one-way out-of-band (oob) channel
EP2343916B1 (en) Secure coupling of hardware components
WO2016200535A1 (en) System, apparatus and method for transferring ownership of a device from manufacturer to user using an embedded resource
CN108419452A (zh) 用于管理移动装置上的应用的远程web客户端的技术
Fremantle et al. Oauthing: privacy-enhancing federation for the internet of things
WO2019059754A9 (es) Método y sistema de comunicación segura por proxificación de sockets de red
EP2701371B1 (en) Constructing a Contact Sharing History
US9747432B1 (en) Remotely enabling a disabled user interface of a wireless communication device
Shabisha et al. Security enhanced emergency situation detection system for ambient assisted living
KR20170053708A (ko) Soa(service-oriented architecture)에 기초하는 스케일러블 과금 시스템
Brown 802.1 X Port-Based Authentication
CN108605222A (zh) 用于在电信网络与电信终端设备之间传输参数数据且用于在电信终端设备上激活和/或改变和/或停用通过参数数据限定或表示的通信配置文件的方法、用于传输参数数据的系统、用于传输参数数据的电信终端设备、计算机程序以及计算机程序产品
Hussein et al. Lightweight and secure authentication protocol for wearable device in smart healthcare
EP3595344B1 (en) Remote management of wireless user devices
Zhu et al. Vesta: A secure and autonomic system for pervasive healthcare

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16832372

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016832372

Country of ref document: EP