Способ построения временных каналов передачи данных между клиентами служб обмена мгновенными сообщениями, использующими различные коммуникационные протоколы
Иллюстрации
Показать всеИзобретение относится к обмену сообщениями, а именно к обеспечению возможности коммуникации между пользователями различных служб обмена мгновенными сообщениями. Технический результат – обеспечение межплатформенной коммуникации с возможностью использования любого клиентского приложения и, соответственно, любой службы обмена мгновенными сообщениями для коммуникации с пользователями и автоматизированными программными интерфейсами, использующими такие же или иные клиентские приложения и службы обмена мгновенными сообщениями. Способ построения временных каналов передачи данных между клиентами служб обмена мгновенными сообщениями, использующими различные коммуникационные протоколы, обеспечивающий коммуникацию пользователя с по меньшей мере одним собеседником, состоит из операций по преобразованию исходного сообщения во внутренний унифицированный формат, распределению в очередь входящих сообщений, пересылке его обрабатывающему интерфейсу, позволяющему поддерживать общение вида пользователь - автоматизированный программный интерфейс или организовать канал связи пользователь - пользователь. 22 з.п. ф-лы, 1 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение, в целом, относится к способам обмена сообщениями. В частности, техническое решение относится к системе программно-аппаратных модулей, обеспечивающих возможность коммуникации между пользователями различных служб обмена мгновенными сообщениями. При применении указанного способа, каждому пользователю любой службы обмена мгновенными сообщениями обеспечивается возможность организации анонимного канала связи с автоматизированным программным интерфейсом или с любым пользователем той же самой или иной службы обмена мгновенными сообщениями, вследствие этого, конечный пользователь в конкретный момент времени может не обладать информацией о собеседнике и его контактных данных.
УРОВНЕНЬ ТЕХНИКИ
Обмен сообщениями является одним из основных способов передачи данных между пользователями компьютерных систем. Коммуникация происходит посредством различных технических средств: электронной почты, SMS, мгновенных сообщений и т.п. Пересылка сообщения обеспечивается маршрутизацией от компьютерной системы исходного пользователя через отправляющий сервер по сети на получающий сервер, обеспечивающий хранение сообщения для получающего пользователя. Получение сообщения пользователем возможно как в режиме реального времени, если соответствующий клиент службы обмена мгновенными сообщениями получающего пользователя находится в режиме установленного соединения с получающим сервером, так и в тот момент времени, когда получатель установит соединение из соответствующего клиента с получающим сервером.
В настоящее время широкое распространение получили различные службы обмена мгновенными сообщениями. В рамках некоторых служб обмена пользователи могут осуществлять коммуникацию, как в режиме диалога, так и создавая группы или конференции. Количество различных служб обмена мгновенными сообщениями превышает несколько десятков. Самыми популярными из них являются: WhatsApp, Viber, Facebook Messenger, Skype, ICQ, Google Hangouts, ВКонтакте, Google Allo, Telegram, Line, BBM, Slack, Hipchat, Битрикс24 и др.
Тем не менее, приложения указанных служб обмена сообщениями обычно сконфигурированы для доступа только к нескольким типам, или только одному типу сообщения и не могут, как правило, использоваться для доступа к другим дополнительным типам сообщений. К тому же, при коммуникации приложениями используются уникальные протоколы обмена информацией, характерные исключительно для данной службы обмена мгновенными сообщениями, т.е. приложения обмена сообщениями обычно разрабатываются для доступа к данным, хранимым в ограниченном количестве форматов данных, и используют собственные протоколы обмена информацией.
Как правило, круг общения пользователя отдельно взятой службы обмена мгновенными сообщениями замкнут в ее границах. Каждая служба имеет собственную базу данных пользователей, которые общаются с использованием определенного клиента обмена сообщениями.
На настоящий момент большинство пользователей зарегистрированы и осуществляют коммуникацию одновременно через несколько служб обмена сообщениями. Данное обстоятельство обуславливает возникновение ряда недостатков такой модели: наличие разных приложений на коммуникационном устройстве пользователя, необходимость запоминания, каким клиентским приложением пользуется определенный собеседник и т.д. С увеличением количества служб обмена сообщениями и, соответственно, протоколов передачи данных, указанная проблема усугубляется.
Кроме того, разработчики создают различные автоматизированные программные системы, регистрирующиеся в сетях служб обмена мгновенными сообщениями и вступающие в диалог с реальными пользователями, оказывая тем самым информационные и другие услуги.
Указанная выше проблема становилась объектом внимания разработчиков программного обеспечения в сфере обмена мгновенными сообщениями. Из уровня техники известен ряд технических решений, направленных на преодоление проблемы межпротокольной коммуникации.
Известен способ и система обмена мгновенными сообщениями по патенту США на изобретение №7,016,978 «Instant messaging architecture and system for interoperability and presence management (Структура обмена мгновенными сообщениями и система со способностью сочетаемости и информированием о присутствии)» (заявитель BellSouth Intellectual Property Corporation, заявка №10/135,929 от 29.04.2002, МПК G06F 15/16). Согласно описанию и формуле технического решения, предложена система компьютерных сетей, позволяющая по меньшей мере одному пользователю, принадлежащему первому множеству пользователей, использующему сеть первого провайдера, устанавливать сессию обмена мгновенными сообщениями с по меньшей мере одним пользователем, использующим сеть второго провайдера. Система содержит распределенную сеть, связывающую первого и второго провайдеров, в которой каждый провайдер содержит универсальный сервер службы мгновенных сообщений, связанный с распределенной сетью, содержащий базу данных, в которой находится информация о маршруте и присутствии, относящаяся к по меньшей мере одному пользователю, зарегистрированному в сети другого провайдера, характеризующийся тем, что универсальный сервер настроен для выполнения функции коммуникации между пользователями посредством унифицированного протокола обмена сообщениями. Кроме того, система содержит двухрежимный локальный сервер службы мгновенных сообщений, настроенный для установления связи для обмена мгновенными сообщениями между по меньшей мере двумя пользователями, зарегистрированными в сетях провайдеров, использующих проприетарный протокол обмена мгновенными сообщениями, характеризующийся тем, что, по определению, двухрежимный локальный сервер поддерживает взаимодействие между пользователями посредством универсального протокола мгновенных сообщений.
Недостатком указанного технического решения является то, что оно может быть реализовано только вследствие кооперации владельцев (разработчиков) сетей обмена мгновенными сообщениями, которые желают и технически готовы поддерживать инфраструктуру обмена сообщениями по унифицированному протоколу, например, XML. Для этого они должны выбрать единый унифицированный формат и обеспечить в своих сетях техническую реализацию для его поддержки. Те сети обмена мгновенными сообщениями, которые этого не сделают, будут лишены возможности участия в процессе обмена сообщениями между своими пользователями и пользователями других сетей.
Одним из аналогов является также техническое решение по патенту США на изобретение №7,287,057 «Accessing information using an instant messaging system (Осуществление доступа к информации посредством службы мгновенных сообщений)» (заявитель International Business Machines Corporation (IBM Corp.), заявка №10/002,685 от 15.11.2001, публ. 15.05.2003, МПК G06F 15/16).
Система и способ передачи сообщений от пользовательского приложения обмена мгновенными сообщениями автономным компьютерным программам, использующихся как посредники для иных компьютерных программ. Система и способ включают регистрацию набора клиентских приложений для обмена сообщениями для получения и отправки сообщений первым интерфейсом, получение сообщения от одного из множества пользователей служб обмена мгновенными сообщениями с запросом на доступ к информации, содержащейся в базе данных, и возвращение ответа на такой запрос в клиентское приложение пользователя. Компьютерная система производит анализ адресата сообщения, где адресатом может выступать компьютерная программа, имеющая доступ к базе данных, необходимой для формирования ответа на запрос, производит выбор необходимой автономной компьютерной программы. Затем, второй интерфейс, связанный с компьютерной системой, преобразует сообщение в формат автономной компьютерной программы, которой адресован запрос, получает от нее ответ. Компьютерная система получает ответ от второго интерфейса, определяет получателя ответа и передает ответ первому интерфейсу, который производит выбор клиент-приложения адресата сообщения, переводит сообщение из формата автономной компьютерной программы в формат клиентского приложения и осуществляет доставку сообщения адресату.
Данное изобретение предназначено для создания систем, обеспечивающих подключение множества чат-ботов и выбор нужного чат-бота для ответа на запрос пользователя в зависимости от контекста запроса. Оно ограничивается поиском информации в базах данных и формированием автоматических ответов на запросы, не обеспечивая тем самым возможность обмена сообщениями между реальными пользователями.
РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Исходя из анализа уровня техники, существует потребность создания способа, который позволил бы пользователю использовать одну, наиболее удобную для него службу обмена мгновенными сообщениями, равно как и любое клиентское приложение для отправки мгновенных сообщений, использующее любой из существующих протоколов передачи данных, и при этом позволил обмениваться сообщениями с пользователями любых других служб обмена мгновенными сообщениями, потреблять услуги, реализованные в других службах обмена мгновенными сообщениями, не обладая информацией о том, какую службу обмена мгновенными сообщениями используют собеседники. Кроме того, способ, предпочтительно, должен обеспечивать непредоставление личных данных пользователей собеседникам, в том числе с целью защиты от возможной рекламы, которую пользователи могут отправлять собеседникам, получив их контактные данные.
Технической проблемой, решаемой применением предлагаемого способа, является невозможность обеспечения анонимной коммуникации пользователя, использующего одну из служб обмена мгновенными сообщениями с пользователем или автоматизированным программным интерфейсом, использующим иную службу обмена мгновенными сообщениями. Применением способа, являющегося предметом настоящего изобретения, достигается обеспечение межплатформенной коммуникации с возможностью использования любого клиентского приложения и, соответственно, любой службы обмена мгновенными сообщениями для коммуникации с пользователями и автоматизированными программными интерфейсами, использующими такие же или иные клиентские приложения и службы обмена мгновенными сообщениями. Применение способа позволяет технически создать канал передачи данных между программными продуктами, использующими разнообразные, в том числе несовместимые, протоколы передачи информации. Кроме того, способ позволяет решить проблему получения и нежелательного использования личных и контактных данных собеседника.
Вышеописанные проблемы предшествующего уровня техники преодолеваются принципами настоящего изобретения, которое относится к способу, определяющему порядок взаимодействия систем, компьютерных программных продуктов и структур данных для создания и поддержания диалогов в службах обмена мгновенными сообщениями пользователей данных служб, как с самой системой, так и друг с другом, организованных в соответствии с логикой, заданной разработчиком конкретного сервиса, построенного на принципах настоящего изобретения.
Заявителем предложен способ построения временных каналов передачи данных между клиентами служб обмена мгновенными сообщениями, использующими различные коммуникационные протоколы, обеспечивающий коммуникацию пользователя с по меньшей мере одним собеседником, состоящий из совокупности следующих операций: регистрация автоматизированным программным интерфейсом в по меньшей мере одной из множества служб обмена мгновенными сообщениями, получение первым модулем автоматизированного программного интерфейса исходного сообщения, содержащего информационное наполнение, от инициирующего диалог пользователя, преобразование исходного сообщения во внутренний унифицированный формат, передача преобразованного исходного сообщения второму модулю, помещение вторым модулем преобразованного исходного сообщения в очередь входящих сообщений, получение обрабатывающим интерфейсом преобразованного исходного сообщения из очереди входящих сообщений, анализ информационного наполнения преобразованного исходного сообщения, выполнение заданного набора инструкций на основе результатов анализа информационного наполнения исходного сообщения и, если инструкция требует операций с внешними данными, формирование запроса на основе результата анализа информационного наполнения исходного сообщения третьему модулю, передача сформированного запроса третьему модулю, обработка третьим модулем запроса, полученного от обрабатывающего интерфейса, формирование ответа на запрос, содержащего данные о по меньшей мере одном получателе, помимо инициировавшего диалог пользователя, получение ответа на запрос обрабатывающим интерфейсом, формирование исходящего сообщения на исходное сообщение от инициировавшего диалог пользователя, определение обрабатывающим интерфейсом перечня получателей исходящего сообщения, на основе ответа на запрос, имеющего в составе инициировавшего диалог пользователя, передача исходящего сообщения второму модулю, помещение исходящего сообщения в единую очередь исходящих сообщений, распределение вторым модулем исходящего сообщения из единой очереди исходящих сообщений в по меньшей мере одну вторичную очередь исходящих сообщений, соответствующую определенной службе обмена мгновенными сообщениями, получение исходящего сообщения первым модулем, перевод исходящего сообщения первым модулем из внутреннего унифицированного формата в формат определенной службы мгновенных сообщений, получение исходящего сообщения пользователями, содержащимися в перечне получателей, если инструкция не требует операций с внешними данными, формирование иного исходящего сообщения на исходное сообщение от инициировавшего диалог пользователя, передача исходящего сообщения второму модулю, помещение исходящего сообщения в единую очередь исходящих сообщений, распределение вторым модулем иного исходящего сообщения из единой очереди исходящих сообщений в по меньшей мере одну вторичную очередь исходящих сообщений, соответствующую определенной службе обмена мгновенными сообщениями, получение иного исходящего сообщения первым модулем, перевод иного исходящего сообщения первым модулем из внутреннего унифицированного формата в формат определенной службы мгновенных сообщений, получение иного исходящего сообщения инициировавшим диалог пользователем.
В частном случае выполнения указанная техническая проблема дополнительно решается тем, что клиентские приложения службы обмена мгновенными сообщениями имеют открытые программные интерфейсы.
В частном случае выполнения указанная техническая проблема дополнительно решается тем, что первый модуль содержит уникальные, для каждой службы обмена мгновенными сообщениями, подмодули.
В ином частном случае выполнения указанная техническая проблема дополнительно решается тем, что он позволяет обрабатывать одновременно несколько диалогов.
В частном случае выполнения, указанная техническая проблема дополнительно решается тем, что обрабатывающий интерфейс получает данные об отправителе исходного сообщения и производит подбор соответствующего открытого диалога или открывает новый диалог.
В другом частном случае выполнения способ отличается от своей реализации в общем случае тем, что перечень получателей исходящего сообщения содержит исходного пользователя.
Способ может быть реализован отличающимся от реализации в общем случае тем, что перечень получателей исходящего сообщения содержит исходного пользователя и обрабатывающий интерфейс.
В ином частном случае реализации способ дополнительно характеризуется тем, что перечень получателей исходящего сообщения содержит исходного пользователя и, по меньшей мере, иных пользователей, данные о которых были получены в ответе на запрос, направленный обрабатывающим интерфейсом третьему модулю.
Целесообразно наличие в составе третьего модуля автоматизированного программного интерфейса базы данных пользователей, с которыми возможна организация диалога.
В частном случае реализации указанный способ отличается от способа в общем случае тем, что информационное наполнение исходного сообщения содержит данные о службе обмена мгновенными сообщениями и идентификатор пользователя в службе обмена мгновенными сообщениями.
В ином варианте реализации способ отличается от общего случая тем, что полученное обрабатывающим интерфейсом сообщение относится к одному из следующих типов сообщений: ответ на которое может быть сформирован обрабатывающим интерфейсом без обращения к третьему модулю и ответ на которое может быть сформирован обрабатывающим интерфейсом после обращения к третьему модулю. В развитие указанного частного случая способ дополнительно отличается тем, что обрабатывающий интерфейс производит анализ информационного наполнения исходного сообщения и относит его к одному из указанных типов сообщений. При выявлении обрабатывающим интерфейсом по результатам анализа исходного сообщения того, что информационное наполнение исходного сообщения не требует обращения к третьему модулю, обрабатывающий интерфейс формирует исходящее сообщение.
В ином частном случае выполнения способ дополнительно отличается от своей реализации в общем случае тем, что исходящее сообщение не содержит личных данных пользователя.
Способ, в частном случае выполнения, отличается от общего случая тем, что пользователи из перечня получателей после установления соединения при реализации способа в общем случае могут производить обмен сообщениями между по меньшей мере двумя собеседниками, являющимися членами группы перечня получателей.
В частном случае реализации настоящий способ отличается от своей реализации в общем случае тем, что база данных третьего модуля содержит сведения о пользователях. В развитие указанного частного случая способ дополнительно отличается тем, что пользователи, содержащиеся в базе данных третьего модуля, характеризуются признаками пользователей.
Способ, в ином частном случае, дополнительно характеризуется тем, что пользователи, содержащиеся в базе данных третьего модуля, классифицированы в соответствии с признаками пользователей.
В частном случае реализации указанный способ дополнительно характеризуется тем, что ответ на запрос обрабатывающего интерфейса основывается, в том числе, на классификации пользователи, содержащиеся в базе данных третьего модуля. В уточнении указанного частного случая, способ дополнительно отличается тем, что каждый пользователь осуществляет выбор личных данных, передаваемых с исходным сообщением другим пользователям из перечня получателей.
В ином частном случае реализации способ дополнительно характеризуется тем, что обрабатывающий интерфейс выступает одновременно отправителем и получателем сообщения.
Способ, в частном случае, дополнительно отличающийся тем, что распределение вторым модулем исходящих сообщений из единой очереди исходящих сообщений по вторичным очередям исходящих сообщений осуществляется на основе принадлежности адресатов сообщений из перечня получателей соответствующим службам обмена мгновенными сообщениями. В уточнении указанного частного случая, способ дополнительно отличается тем, что информация о принадлежности адресатов сообщений из перечня получателей соответствующим службам обмена мгновенными сообщениями содержится в базе данных третьего модуля, за исключением такой информации об инициировавшем диалог пользователе.
В рамках данного описания «сеть» определяется как один или несколько линий передачи данных, которые могут транспортировать электронные данные между компьютерными системами и/или модулями. Когда информация передается или предоставляется по сети или другому соединению передачи данных (или проводному, или беспроводному, или комбинации проводного или беспроводного) на компьютерную систему, это соединение должным образом интерпретируется в качестве машиночитаемого носителя. Таким образом, любое такое соединение правильно называть машиночитаемым носителем. Комбинации вышеупомянутых носителей также охватываются понятием машиночитаемый носитель. Машиноисполняемые инструкции содержат, например, инструкции и данные, которые вызывают выполнение компьютерной системой общего назначения или компьютерной системой специального назначения некоторой функции или группы функций. Машиноисполняемые инструкции могут быть, например, двоичным кодом, инструкциями промежуточного формата, такими как язык ассемблера, или исходным кодом.
В настоящем изобретении «автоматизированный программный интерфейс» определяется как по меньшей мере один программный модуль, по меньшей мере один аппаратный модуль или их комбинация, которые работают совместно для выполнения операций над электронными данными. Например, определение компьютерной системы включает в себя аппаратные компоненты персонального компьютера, а также программные модули, такие как операционная система персонального компьютера. Физическое размещение модулей не является важным. Компьютерная система может включать в себя один или несколько компьютеров, соединенных через сеть. Аналогично, компьютерная система может включать в себя отдельное физическое устройство (такое как мобильный телефон или персональное цифровое информационное устройство (PDA)), где внутренние модули (такие как память и процессор) работают совместно для выполнения операций над электронными данными.
Модули автоматизированного программного интерфейса определяются как составные элементы автоматизированного программного интерфейса, которые выполняют строго определенные операции над электронными данными. Каждый модуль: первый, второй, третий, отвечает за реализацию последовательных действий при функционировании автоматизированного программного интерфейса. Первый модуль отвечает за прием и отправку сообщений непосредственно клиентскому приложению. Модуль также производит преобразование сообщения из формата определенной службы обмена мгновенными сообщениями во внутренний унифицированный формат и наоборот. Второй модуль осуществляет функцию распределения и транспортировки сообщений от первого модуля обрабатывающему интерфейсу и наоборот. Третий модуль выполняет функции бизнес-логики автоматизированного программного интерфейса, позволяя ему оперировать внешними данными.
Основным модулем автоматизированного программного интерфейса является обрабатывающий интерфейс, выполняющий операции по обработке, анализу сообщений, ведению диалогов, построение логики диалогов и т.п. Обрабатывающий интерфейс представляет собой программно-аппаратный модуль, настроенный для выполнения указанных задач. Обрабатывающий интерфейс содержит программный модуль, позволяющий в автоматическом режиме анализировать информационное наполнение сообщений, поступающих от пользователей, и выбирать варианты ответа в соответствии с содержанием, выполняя соответствующие наборы инструкций.
Исходным сообщением является совокупность электронных данных с определенным информационным наполнением, содержащимся в теле письма. Исходное сообщение может быть изначально отправлено пользователем в адрес автоматизированного программного интерфейса или как ответ на сообщение, сформированное и отправленное автоматизированным программным интерфейсом данному пользователю.
Регистрация в различных службах обмена мгновенными сообщениями автоматизированным программным интерфейсом производится посредством компьютерной программы, осуществляющей функции собеседника, являющейся составной частью указанного автоматизированного программного интерфейса, через которую производят обмен сообщениями с пользователями данных служб обмена мгновенными сообщениями, т.е. диалоги.
Перечень получателей исходящего сообщения формируется по результатам получения обрабатывающим интерфейсом ответа на запрос, адресованный третьему модулю. В признаке, указанном в одном из частных случаев реализации настоящего технического решения, указано, что члены группы перечня получателей выбираются на основании информационного наполнения сообщения, принятого обрабатывающим интерфейсом от пользователя. В частности, члены группы перечня получателей могут включать пользователей, оказывающих услуги в определенной сфере, наименование которой было выбрано инициировавшим диалог пользователем из списка сфер, предложенных ему автоматизированным программным интерфейсом.
Для программирования логики ведения диалогов используется обрабатывающий интерфейс. Для программной реализации обрабатывающего интерфейса используется язык программирования диалогов. В общем случае, диалог является объектом внутри исполняемой компьютерной программы, являющейся частью настоящего изобретения, логика поведения которого управляется программным кодом. Одновременно в автоматизированном программном интерфейсе поддерживается неограниченное количество диалогов, тем не менее количество диалогов ограничено физическими параметрами компьютерной сети, в рамках которой запущена программа. Обрабатывающий интерфейс хранит информацию обо всех открытых диалогах, их состояниях, участниках и т.д. По отправителю сообщения из очереди входящих сообщений обрабатывающий интерфейс определяет, каким открытым диалогом необходимо обрабатывать данное сообщение, либо создает новый диалог, основываясь на содержании сообщения. Обрабатывающий интерфейс позволяет анализировать сообщения, полученные от пользователей, формировать сообщения пользователям, как в текущем диалоге, так и в других открытых в настоящий момент диалогах, инициировать и завершать диалоги с заданными параметрами, оперировать переменными, массивами, объектами, аналогично высокоуровневым объектно-ориентированным языкам программирования, взаимодействовать с третьим модулем автоматизированного программного интерфейса, который обменивается информацией с базой данных путем направления запроса, адресованного указанному модулю и получения ответа на отправленный запрос. Третий модуль интерфейса в процессе обработки запроса может обращаться к соответствующей базе данных, где содержится, в том числе, контактные данные иных пользователей, с которыми инициировавший диалог пользователь может контактировать впоследствии. Контактные данные пользователей преобразуются обрабатывающим интерфейсом в перечень получателей исходящего сообщения для последующей инициации диалога с исходным пользователем.
В базе данных содержатся контакты пользователей, объединенные в соответствии с качественными группировочными признаками, т.е. признаками пользователей. Классификация может происходить, например, по типу оказываемых услуг, по месту расположения и т.д.
В основе диалогов лежат мгновенные сообщения, которые отправляются между отображениями автоматизированного программного интерфейса в службах обмена мгновенными сообщениями, зарегистрированными в конкретных службах обмена мгновенными сообщениями, и пользователями этих служб, использующих клиентские приложения. Для организации временного канала передачи данных, выраженного в обмене сообщениями, между пользователями различных служб обмена мгновенными сообщениями в тот момент, когда этого требует бизнес-логика конкретного сервиса, обрабатывающий интерфейс логически объединяет диалоги с разными пользователями и обеспечивает прием сообщений от по меньшей мере одного отправителя и пересылку их по меньшей мере одному получателю. При этом в зависимости от бизнес-логики конкретного сервиса, реализуемого на базе настоящего изобретения, обрабатывающий интерфейс может не передавать контактные данные отправителя и получателя друг другу, т.е. оставляя их анонимными друг для друга. Решение о предоставлении данных собеседнику принимает инициирующий диалог пользователь.
Для управления мгновенными сообщениями в рамках логических диалогов в автоматизированном программном интерфейсе содержится первый модуль, реализованный в виде очередей входящих и исходящих сообщений. Адресатами сообщений могут быть как реальные пользователи различных служб обмена мгновенными сообщениями, так и сам автоматизированный программный интерфейс, в частности обрабатывающий интерфейс как ядро диалогового слоя. Сообщения, принятые обрабатывающим интерфейсом, обрабатываются, в результате обработки создаются исходящие сообщения.
Для поддержания заданной логики диалогов обрабатывающий интерфейс может отправлять сообщения самому себе. Обмен сообщениями внутри автоматизированного программного интерфейса производится во внутреннем унифицированном формате и не зависит от конкретных служб обмена мгновенными сообщениями. В один момент времени один пользователь одного клиентского приложения службы обмена мгновенными сообщениями может совершать только один диалог с автоматизированным программным интерфейсом. Любые сообщения, отправляемые между системой и пользователем, рассматриваются как часть одного диалога с момента его открытия автоматизированным программным интерфейсом и до момента закрытия. Поэтому для идентификации диалога автоматизированному программному интерфейсу достаточно хранить только тип службы мгновенных сообщений, клиент которой использует пользователь и уникальный идентификатор пользователя в данной службе.
Для реализации логики диалогов обрабатывающий интерфейс взаимодействует с третьим модулем автоматизированного программного интерфейса, выполняющим функции блока бизнес-логики. В общем случае реализации третий модуль содержит базу данных, в которой хранится информация о пользователях служб обмена мгновенными сообщениями, являющихся подписчиками определенных услуг автоматизированного программного интерфейса в той или иной роли, об объектах, информация о которых необходима для реализации логики сервиса, их географического местоположения и иных данных. На этом же уровне реализуется процедура обработки указанной информации и процедура принятия решений в процессе организации диалогов. Взаимодействие обрабатывающего интерфейса и третьего модуля реализовано по протоколу RestFul, инкапсулированному в протокол http, таким образом, настоящее изобретение допускает как создание собственного подмодуля бизнес-логики, так и подключение автоматизированного программного интерфейса к любым другим подмодулям бизнес-логики. Описанный ниже пример реализации изобретения использует модуль, построенный на базе ОС Linux, СУБД PostgreSQL.
С использованием настоящего технического решения могут быть реализованы сервисы доступа пользователя к различным услугам, что подтверждается примером конкретной реализации способа, приведенным ниже.
Дополнительные признаки и преимущества изобретения изложены в нижеследующем описании и, частично, очевидны из описания или могут быть узнаны из практики осуществления изобретения. Признаки и преимущества изобретения могут быть реализованы и получены при помощи инструментальных средств и комбинаций, особо указанных в прилагаемой формуле изобретения. Эти и другие признаки настоящего изобретения станут более очевидными из последующего описания и прилагаемой формулы изобретения или могут быть узнаны из практики осуществления изобретения, как изложено ниже.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Прилагаемый чертеж, являющийся частью настоящего описания, отражает предпочтительный вариант реализации способа и совместно с описанием раскрывает признаки настоящего технического решения. На чертеже представлена блок-схема способа построения временного канала передачи данных между клиентами служб обмена мгновенными сообщениями.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Варианты выполнения в пределах объема настоящего изобретения включают в себя машиночитаемые носители для переноса или хранения на них машиноисполняемых инструкций или структур данных. Такие машиночитаемые носители могут быть любыми доступными носителями, к которым компьютерная система общего назначения или специального назначения может осуществлять доступ. В качестве примера такие машиночитаемые носители могут содержать физические носители данных, такие как оперативное запоминающее устройство (ОЗУ, RAM), постоянное запоминающее устройство (ПЗУ, ROM), стираемое программируемое ПЗУ (СППЗУ, EPROM), компакт-диск (CD-ROM) или другое запоминающее устройство на оптических дисках, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, или любые другие носители, которые могут использоваться для переноса или хранения требуемого средства программного кода в виде машиноисполняемых инструкций, машиночитаемых инструкций или структур данных, и к которым компьютерная система общего назначения или специального назначения может осуществлять доступ.
Изобретение может быть применено на практике в сетевых вычислительных средах со многими типами конфигураций компьютерных систем, включая персональные компьютеры, портативные компьютеры, карманные устройства, мультипроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые персональные компьютеры (ПК, PC), миникомпьютеры, мейнфреймы, мобильные телефоны, PDA, пейджеры и т.п. Изобретение также может быть применено на практике в средах распределенных систем, где локальные и удаленные компьютерные системы, которые соединены (или проводными линиями передачи данных, или беспроводными линиями передачи данных, или комбинацией проводных и беспроводных линий передачи данных) по сети, обе выполняют задачи. В среде распределенной системы программные модули могут располагаться как на локальных, так и на удаленных запоминающих устройствах.
На чертеже представлен один из вариантов реализации способа, в основе которого лежит настоящее изобретение. Далее под способом понимается совокупность последовательных операций с данными, осуществляемых посредством программно-аппаратного комплекса, реализованного по описанной на чертеже схеме, предназначенного для организации анонимных каналов обмена мгновенными сообщениями между пользователями одной или различных служб обмена мгновенными сообщениями. Пользователь одной из служб мгновенных сообщений 101, имеющих открытый программный интерфейс приложения 110, обеспечивающий возможность отправки и приема сообщений в сетях этих служб, регистрирует в качестве контакта автоматизированный программный интерфейс через его отображение в среде конкретной службы обмена мгновенными сообщениями и отправляет ему сообщение 113. Первый модуль 410 отправки и приема сообщений содержит программную обертку 120, обеспечивающую считывание сообщения 113, преобразование его из формата службы 101 во внутренний унифицированный формат в виде сообщения 131 и отправку его в очередь 161 входящих сообщений второго модуля 420 автоматизированного программного интерфейса по внутреннему унифицированному протоколу. Подмодуль 170 считывает (стрелка 181) сообщение 131, находит класс, обрабатывающий событие (сообщение), т.е. подписчика. В данном примере подписчиком всех входящих сообщений является модуль 180 обрабатывающего интерфейса 430 автоматизированного программного интерфейса. Стрелка 191 отражает процесс передачи сообщения 131 в модуль обрабатывающего интерфейса 180. Программа выполнения диалога, реализованная на определенном языке программирования, принимает сообщение, анализирует его содержание, включая информационное наполнение и службу, посредством которой было отправлено исходное сообщение, и выполняет набор запрограммированных инструкций. Если инструкция требует операций с внешними данными, не хранящимися в программном окружении диалога, подмодуль 180 обращается к подмодулю 211 третьего модуля 440. Запрос 201 выполняется по Restful-протоколу, инкапсулированному в протокол http или https. Реализация указанного протокола не является сущностью настоящего изобретения, и, следовательно, запрос может быть выполнен в произвольном виде. Подмодуль 211 реализован