EA201691088A1 20161130 Номер и дата охранного документа [PDF] EAPO2016\PDF/201691088 Полный текст описания [**] EA201691088 20141204 Регистрационный номер и дата заявки US61/911,485 20131204 Регистрационные номера и даты приоритетных заявок IB2014/066589 Номер международной заявки (PCT) WO2015/083115 20150611 Номер публикации международной заявки (PCT) EAA1 Код вида документа [PDF] eaa21611 Номер бюллетеня [**] СИСТЕМА И СПОСОБ ДЛЯ СБОРА ДАННЫХ ОБ АКТИВНОСТИ СТОРОННИХ ПРИЛОЖЕНИЙ Название документа [8] G06F 17/22 Индексы МПК [IL] Абрахами Йоав, [IL] Блох Кфир, [IL] Ашсаф Нитзан Сведения об авторах [IL] ВИКС.КОМ ЛТД. Сведения о заявителях
 

Патентная документация ЕАПВ

 
Запрос:  ea201691088a*\id

больше ...

Термины запроса в документе

Реферат

[RU]

Система включает по меньшей мере один концентратор для координации по меньшей мере одного сообщения об активности между вебсайтом и по меньшей мере одним сторонним приложением, при этом упомянутое по меньшей мере одно сообщение об активности имеет стандартизованный формат, и координатор активности для прослушивания упомянутого по меньшей мере одного сообщения об активности и по меньшей мере для добавления данных, извлеченных из упомянутого по меньшей мере одного сообщения об активности, в поток, связанный с идентифицированным контактом и/или анонимным контактом, при этом идентифицированным контактом и/или анонимным контактом является пользователь веб-сайта. Система включает также координатор контактов для извлечения и анализа информации, относящейся к контактному лицу, из потока и для обогащения ранее хранимой информации по контактным лицам и по меньшей мере одной базы данных, а также для сохранения потоков данных об активности и информации, относящейся к контактному лицу, для использования веб-сайтом и контактными лицами.


Полный текст патента

(57) Реферат / Формула:

Система включает по меньшей мере один концентратор для координации по меньшей мере одного сообщения об активности между вебсайтом и по меньшей мере одним сторонним приложением, при этом упомянутое по меньшей мере одно сообщение об активности имеет стандартизованный формат, и координатор активности для прослушивания упомянутого по меньшей мере одного сообщения об активности и по меньшей мере для добавления данных, извлеченных из упомянутого по меньшей мере одного сообщения об активности, в поток, связанный с идентифицированным контактом и/или анонимным контактом, при этом идентифицированным контактом и/или анонимным контактом является пользователь веб-сайта. Система включает также координатор контактов для извлечения и анализа информации, относящейся к контактному лицу, из потока и для обогащения ранее хранимой информации по контактным лицам и по меньшей мере одной базы данных, а также для сохранения потоков данных об активности и информации, относящейся к контактному лицу, для использования веб-сайтом и контактными лицами.


Евразийское (21) 201691088 (13) A1
патентное
ведомство
(12) ОПИСАНИЕ ИЗОБРЕТЕНИЯ К ЕВРАЗИЙСКОЙ ЗАЯВКЕ
(43) Дата публикации заявки (51) Int. Cl. G06F17/22 (2006.01)
2016.11.30
(22) Дата подачи заявки 2014.12.04
(54) СИСТЕМА И СПОСОБ ДЛЯ СБОРА ДАННЫХ ОБ АКТИВНОСТИ СТОРОННИХ ПРИЛОЖЕНИЙ
(31) 61/911,485
(32) 2013.12.04
(33) US
(вв) PCT/IB2014/066589
(87) WO 2015/083115 2015.06.11
(вв) 2015.12.17
(71) Заявитель: ВИКС.КОМ ЛТД. (IL)
(72) Изобретатель:
Абрахами Йоав, Блох Кфир, Ашсаф Нитзан (IL)
(74) Представитель:
Поликарпов А.В. (RU)
(57) Система включает по меньшей мере один концентратор для координации по меньшей мере одного сообщения об активности между вебсайтом и по меньшей мере одним сторонним приложением, при этом упомянутое по меньшей мере одно сообщение об активности имеет стандартизованный формат, и координатор активности для прослушивания упомянутого по меньшей мере одного сообщения об активности и по меньшей мере для добавления данных, извлеченных из упомянутого по
меньшей мере одного сообщения об активности, в поток, связанный с идентифицированным контактом и/или анонимным контактом, при этом идентифицированным контактом и/или анонимным кон-
тактом является пользователь веб-сайта. Система включает также координатор контактов для извле
чения и анализа информации, относящейся к контактному лицу, из потока и для обогащения ранее хранимой информации по контактным лицам и по меньшей мере одной базы данных, а также для сохранения потоков данных об активности и информации, относящейся к контактному лицу, для использования веб-сайтом и контактными лицами.
PCT/IB2014/066589
WO 2015/083115
СИСТЕМА И СПОСОБ ДЛЯ СБОРА ДАННЫХ ОБ АКТИВНОСТИ СТОРОННИХ ПРИЛОЖЕНИЙ
Область техники
[0001] Настоящее изобретение относится к онлайн-приложениям, а именно, к их применению в сочетании со сторонними приложениями.
Перекрестные ссылки на связанные заявки
[0002] Настоящая заявка ссылается на приоритет предварительной заявки на патент США №61/911485, которая зарегистрирована 4 декабря 2013 года и полностью включена в настоящий документ путем ссылки.
Предпосылки создания изобретения
[0003] На рынке имеется множество систем для построения вебсайтов, а также других интерактивных инструментов для конструирования приложений, которые могут применяться для создания и редактирования веб-сайтов или иных онлайн-приложений. Конечные пользователи могут получать доступ к подобным веб-сайтам с помощью клиентского программного обеспечения на множестве различных платформ, например, при помощи обычных персональных компьютеров, смартфонов, планшетных компьютеров и других настольных или мобильных устройств.
[0004] Системы для построения веб-сайтов могут поставляться в различных конфигурациях, например, в виде полностью онлайновых систем построения веб-сайтов, базирующихся на сервере, или серверах, которые подключены к сети Интернет и доступ к которым осуществляется с использованием протоколов связи Интернета, таких, например, как протокол передачи гипертекста (hypertext transfer protocol, HTTP). Создание, редактирование и развертывание подобных систем для построения вебсайтов выполняется исключительно в режиме "онлайн", при непосредственном взаимодействии с серверами.
[0005] Системы построения веб-сайтов могут также быть лишь частично онлайновыми или, в некоторых случаях, даже полностью
офлайновыми. В случае частично онлайновых систем веб-сайт редактируют на локальной пользовательской машине и затем выгружают данные на центральный сервер, или сервера, для развертывания. После выгрузки данных подобные системы построения веб-сайтов функционируют аналогично полностью онлайновым системам для построения веб-сайтов.
[0006] Системы для построения веб-сайтов имеют внутреннюю архитектуру данных, применяемую для организации данных и составных элементов системы. Внутренняя архитектура может отличаться от внешнего вида конструируемого веб-сайта, отображаемого пользователю, и отличаться также от стандартных методов передачи страниц на языке разметки гипертекста (hypertext markup language, HTML) в браузер. К примеру, внутренняя архитектура данных может содержать дополнительные свойства для каждого элемента на странице (создатель, время создания, разрешения, ссылки на шаблоны и т.п.), которые необходимы для редактирования и администрирования веб-сайта в системе построения вебсайта, однако не видны внешнему конечному пользователю (а также, возможно, скрыты от некоторых пользователей-редакторов). Типовая архитектура веб-сайта, построенного с помощью системы построения вебсайта, может включать страницы, которые содержат различные компоненты (например, компоненты фигур, компоненты изображений, текстовые компоненты, одностраничные и многостраничные контейнеры, содержащие мини-страницы и т.п.)
[0007] Компоненты могут не иметь содержимого, например, в случае звездообразной фигуры, которая не имеет никакого внутреннего содержимого (однако имеет цвет, размер, положение и некоторые другие атрибуты), или могут иметь внутреннее содержимое, как, например, компонент текстового параграфа, внутреннее содержимое которого включает отображаемый текст, а также информацию о шрифте, форматировании и верстке. Содержимое, очевидно, может быть различным для различных экземпляров одного компонента текстового параграфа.
[0008] С помощью подобной системы для построения веб-сайта веб-дизайнер может конструировать новый продукт "с нуля" (начиная с пустой страницы) или может брать за основу заранее сконфигурированные шаблоны приложений, созданные им собственноручно, предоставленные
создателем системы или сообществом веб-дизайнеров. Система для построения веб-сайта может поддерживать шаблоны, которые являются исключительно коллекциями компонентов, полными страницами (или мини-страницами) или даже наборами страниц, или завершенными веб-сайтами.
[0009] После того, как веб-дизайнер получит шаблон приложения в свое распоряжение, он может персонализировать его по своему усмотрению, добавив, удалив или изменив любые из элементов шаблона, в результате чего может быть создана его собственная версия шаблона. Персонализация может быть реализована при помощи создания модифицированной версии шаблона (которая отличается от исходного шаблона и является независимой от него). Альтернативно, в системе для построения веб-сайта персонализация может быть реализована посредством механизма, аналогичного наследованию, с сохранением ссылки на исходный шаблон и с соответственным указанием на внесенные в него изменения.
[0010] Системы для построения веб-сайтов могут при этом быть расширяемыми, для чего применяют сторонние приложения и встроенные в них компоненты. Такие сторонние приложения могут быть включены в среду разработки системы для построения веб-сайтов или могут приобретаться (или быть получены иным образом) отдельно, при помощи различных механизмов доставки, например, из магазина приложений (AppStore), встроенного в систему для построения веб-сайта, или из независимого, доступного через сеть или автономного хранилища приложений (или магазина приложений), поддерживаемого поставщиком системы для построения веб-сайта (website building system, WBS) или иной организацией. Сторонние приложения могут быть также получены напрямую от поставщика сторонних приложений (через магазин приложений или иным образом), который может предоставлять непосредственно инсталляционный модуль или же только код активации, или доступа.
[0011] Сторонние приложения могут включать любую комбинацию элементов внешнего интерфейса (отображаемых, "фронтенд") элементов и вспомогательных ("бэк-офисных") элементов (которые не являются частью визуального представления веб-сайта). Сторонние приложения могут вообще не иметь отображаемых элементов (быть полностью "бэк-офисными"), или быть полностью "фронтенд-элементами" (т.е. быть
активными только в контексте использования веб-сайта), или могут представлять собой некоторую комбинацию двух перечисленных вариантов.
[0012] Бэк-офисные элементы стороннего приложения могут включать такие функции, как функции связи с базой данных, опции внешнего обновления и т.п. К примеру, стороннее приложение для ведения блога ("интернет-дневника") может включать бэк-офисный элемент, позволяющий получать обновления от не относящихся к человеку источников (например, новостных RSS-каналов крупных новостных сервисов), а также от человеческих источников, не связанных с данным веб-сайтом (например, автономные приложения для смартфонов, которые позволяют публиковать записи в блоге).
[0013] Интеграция визуальных элементов стороннего приложения в содержащий его веб-сайт может быть реализована множеством различных образом. Сторонние приложения типа "виджет" могут быть встроены на страницу веб-сайта в виде компонента, тогда как сторонние приложения, представляющие собой отдельные разделы веб-сайта, могут быть добавлены на него в качестве дополнительной страницы или нескольких страниц.
[0014] При этом сторонние приложения (как виджеты, так и разделы), могут быть либо одностраничными сторонними приложениями, либо многостраничными сторонними приложения (которые могут иметь внутренние мини-страницы, представленные внутренней структурой URL-адресов). В системе могут применяться любые из четырех возможных комбинаций (одностраничные или многостраничные виджеты и разделы) или все возможные комбинации.
[0015] Многостраничные сторонние приложения, как правило, имеют заданную по умолчанию целевую ("лэндинговую") мини-страницу, которая может быть стартовой страницей, конкретной внутренней мини-страницей (например, новейшей записью блога в случае стороннего приложения для ведения блога), экраном выбора мини-страниц или какой-либо иной мини-страницей.
[0016] Применение сторонних приложений на веб-сайтах, сконструированных при помощи систем для построения веб-сайтов, реализуют с помощью экземпляров сторонних приложений. Система для
построения веб-сайта может поддерживать множественное использование сторонних приложений на нескольких различных уровнях, например, может допускать наличие только одного экземпляра стороннего приложения на всем веб-сайте; может допускать создание экземпляров нескольких сторонних приложений внутри веб-сайта (но не более одного экземпляра для каждого стороннего приложения) или допускать создание множественных экземпляров множества различных сторонних приложений (но не более одного экземпляра на каждой странице). При этом, также, может допускаться создание на странице нескольких экземпляров сторонних приложений, являющихся компонентами, но не сторонних приложений, являющихся разделами, или же создание множества экземпляров различных сторонних приложений может быть не быть ограничено в отношении их количества, множественности или местоположения.
[0017] Содержимое экземпляра стороннего приложения может быть различным для каждого конкретного экземпляра. К примеру, стороннее приложение интернет-магазина может иметь базу данных товаров, которая связана с конкретным экземпляром и отличается от баз данных товаров, связанных с другими экземплярами этого стороннего приложения интернет-магазина (на этом же или других веб-сайтах).
[0018] Для простоты описания страница (или мини-страница) вебсайта, включающая в себя стороннее приложение с его мини-страницами или элементами (т.е. "страница-обертка") далее будет называться вмещающей веб-страницей, а весь веб-сайт в целом - основным веб-сайтом. Страница в целом, которую отображают пользователю и которая включает основную страницу со встроенной мини-страницей, или компонентом, стороннего приложения далее будет называться комбинированной страницей. В случае сторонних приложений, представляющих собой разделы веб-сайта, вмещающей веб-страницей будет "виртуальная страница", на которой размещено стороннее приложение.
[0019] Сторонние приложения развертывают, как правило, либо на серверах поставщика системы для построения веб-сайта, либо на серверах поставщика сторонних приложений, либо на внешних серверах (серверах четвертой стороны), или же может применяться некоторая комбинация перечисленного. Обратимся к фиг. 1, из которой видно, что стороннее
приложение может включать элементы, фактически исполняемые на машине конечного пользователя, например, статически установленные расширения браузера или динамически исполняемые компоненты JavaScript, которые запускают в составе кода системы для построения веб-сайта, исполняемого на стороне клиента.
[0020] Сервера, принадлежащие поставщику системы для построения веб-сайта, выступают в роли контактной точки для конечных пользователей и отвечают на запросы (возможно, в связке с серверами поставщика сторонних приложений для получения необходимой информации). Система для построения веб-сайта может формировать прямые соединения (при необходимости) между клиентским компьютером и серверами поставщика сторонних приложений, например, если необходима потоковая передача видеоинформации.
[0021] Размещенные на веб-сайте экземпляры сторонних приложений, также как и обычные компоненты веб-сайта, могут иметь собственное внутреннее содержимое. Обратимся к фиг. 2, из которой видно, что стороннее приложение может управлять их содержимым независимо от системы для построения веб-сайта и независимо от вебсайта, созданного с использованием подобной системы. Множество экземпляров стороннего приложения (одного стороннего приложения или нескольких различных сторонних приложений) может иметь общее содержимое, например, два экземпляра приложения интернет-магазина на двух независимых страницах веб-сайта могут быть связаны с одной и той же базой данных товаров.
[0022] Выходные данные встроенных сторонних приложений могут интегрироваться во включающие их веб-страницы множеством различных способов, например:
[0023] Обработка данных на стороне сервера: при таком варианте, в соответствии с иллюстрацией фиг. 3, на примере которой рассмотрен данный случай, стороннее приложение [а] (включающее элементы дизайна и отображаемые элементы) и зависящие от конкретного пользователя данные [Ь] стороннего приложения объединяют при помощи серверного кода [с] стороннего приложения, исполняемого на сервере [d] поставщика стороннего приложения. Их передают по среде [е] передачи в серверный код [f] системы для построения веб-сайта, который объединяет их с информацией [д]
вмещающей веб-страницы и затем передает их для отображения на клиентскую станцию [h] пользователя.
[0024] Обработка данных на стороне клиента: в этом варианте, в соответствии с иллюстрацией фиг. 4, на примере которой рассмотрен данный случай, стороннее приложение [а] (включающее элементы дизайна и отображаемые элементы) и зависящие от конкретного пользователя данные [Ь] стороннего приложения объединяют при помощи серверного кода [с] стороннего приложения, исполняемого на сервере [d] поставщика стороннего приложения. Их передают по среде [е] передачи данных в процессорный компонент [h] клиентской стороны. Серверный код [f] системы для построения веб-сайта передает информацию вмещающей веб-страницы в процессорный компонент [h] клиентской стороны. Процессорный компонент [h] клиентской стороны объединяет два этих источника информации и предоставляет унифицированное приложение браузеру (или другому клиентскому агенту) [i].
[0025] Включение с помощью технологии iFrame: при таком варианте, в соответствии с иллюстрацией фиг. 5, на примере которой рассмотрен данный случай, стороннее приложение [а] (включающее элементы дизайна и отображаемые элементы) и зависящие от конкретного пользователя данные [Ь] стороннего приложения объединяют при помощи серверного кода [с] стороннего приложения, исполняемого на сервере [d] поставщика стороннего приложения. Их передают по среде [е] передачи данных в приложение [h], базирующееся на браузере и исполняемое внутри пользовательского агента (например, веб-браузера) [i]. Серверный код [f] системы для построения вебсайта передает информацию вмещающей веб-страницы в это приложение [h], базирующееся на браузере. Включающую веб-страницу реализуют в виде веб-страницы, которая содержит одну или более директив iFrame, включающих контент, полученный от сервера [d] сторонних приложений. Могут применяться также дополнительные или альтернативные способы.
Сущность изобретения
[0026] В соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения предложена система, реализуемая на веб-сайте при помощи клиент-серверной системы, имеющей по меньшей
мере один процессор для обработки инструкций, определяющих эту систему. Система включает по меньшей мере один концентратор для координации по меньшей мере одного сообщения об активности между веб-сайтом и по меньшей мере одним сторонним приложением, при этом упомянутое по меньшей мере одно сообщение об активности имеет стандартизованный формат. Система включает также координатор активности для прослушивания упомянутого по меньшей мере одного сообщения об активности и по меньшей мере для добавления данных, извлеченных из упомянутого по меньшей мере одного сообщения, в поток, связанный с идентифицированным контактным лицом и/или с анонимным контактным лицом, где идентифицированным контактным лицом и/или анонимным контактным лицом является пользователь веб-сайта. Система включает также координатор контактов для извлечения и анализа информации, относящейся к контактному лицу, из потока и для обогащения ранее хранимой информации по контактным лицам, а также по меньшей мере одну базу данных для хранения потоков данных об активности и информации, относящейся к контактному лицу, в целях использования веб-сайтом и контактными лицами.
[0027] При этом, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутый по меньшей мере один концентратор включает по меньшей мере одно из следующего: маршрутизатор и трекер для маршрутизации и отслеживания по меньшей мере одного сообщения об активности между веб-сайтом и по меньшей мере одним сторонним приложением, устройство исполнения политик конфиденциальности для исполнения политик конфиденциальности между веб-сайтом и по меньшей мере одним сторонним приложением, транслятор и адаптер для применения по меньшей мере одного заранее заданного правила трансляции и адаптации контента между веб-сайтом и по меньшей мере одним сторонним приложением, прокси-модуль конфиденциальных данных для реализации представительства в отношении конфиденциальных данных и/или замены конфиденциальных данных и для наложения ограничений полей пользовательских разрешений между веб-сайтом и по меньшей мере одним сторонним приложением, а также устройство валидации и подписи для валидации и подписи упомянутого по меньшей
мере одного сообщения об активности с использованием приемного ключа по меньшей мере одного стороннего приложения, для трансляции внешнего идентификатора, связанного с упомянутым по меньшей мере одним сообщением об активности, во внутренний для веб-сайта идентификатор и для подписи исходящего по меньшей мере одного сообщения об активности с использованием передающего ключа по меньшей мере одного стороннего приложения.
[0028] При этом, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, координатор активности включает по меньшей мере одно из следующего: формирователь потока для идентификации контактных лиц, связанных с упомянутым по меньшей мере одним сообщением об активности, и для формирования потока данных, если соответствующих контактных лиц не существует, устройство слияния потоков для слияния данных из упомянутого по меньшей мере одного сообщения об активности с существующим потоком, а также данных из по меньшей мере двух потоков данных об активности в единый поток, а также формирователь журнала для журналирования данных об активности из потока данных об активности по меньшей мере в одну базу данных.
[0029] Также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, координатор контактов включает по меньшей мере одно из следующего: экстрактор данных для извлечения информации, относящейся к контактному лицу, из одного или более из следующего: сообщение об активности, другие контактные лица и внешние источники; устройство слияния данных для слияния по меньшей мере двух записей контактной информации, где упомянутые записи связаны с одним и тем же идентифицированным контактным лицом, и для слияния извлеченной информации, относящейся к контактному лицу, с контактной информацией существующего контактного лица согласно заранее заданным правилам слияния, обработчик контактов для создания нового идентифицированного контактного лица и/или анонимного контактного лица и для слежения за активностью контактного лица в течение сеанса работы с веб-сайтом, а также обработчик данных и разрешений для управления защитой конфиденциальности и разрешениями для извлеченной информации, относящейся к контактному лицу.
[0030] Дополнительно, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, маршрутизатор и трекер поддерживает маршрутизацию упомянутого по меньшей мере одного сообщения об активности с использованием по меньшей мере одного запроса на прослушивание, поданного сторонним приложением.
[0031] При этом, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, устройство слияния потоков включает устройство слияния "активность-поток" для слияния данных с потоком, который связан с идентифицированным контактным лицом, и устройство слияния "поток-поток" для слияния по меньшей мере двух отдельных потоков в единый поток.
[0032] Также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, устройство слияния "поток-поток" включает по меньшей мере одно из следующего: устройство горизонтального слияния потоков для слияния по меньшей мере двух различных потоков согласно общему идентифицированному контактному лицу и устройство вертикального слияния потоков для слияния потока, сформированного для анонимного контактного лица, с потоком, относящимся к зарегистрированному контактному лицу после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.
[0033] Также, при этом, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, устройство слияния данных включает по меньшей мере одно из следующего: устройство идентификации контактных лиц, сконфигурированное для по меньшей мере одного из следующего: обнаружение идентичных значений поля первичного идентификатора по меньшей мере в двух записях контактной информации, обнаружение значений поля первичного ключа по меньшей мере в двух записях контактной информации, которые идентичны после нормализации, идентификация пользователя веб-сайта с использованием куки-файлов, идентификация пользователя веб-сайта с использованием входа в учетную запись для зарегистрированных пользователей и идентификация пользователя веб-сайта через учетную запись социальной сети для пользователей веб-сайта, чьи учетные записи относятся к социальным сетям. Устройство слияния данных включает также устройство объединения
для объединения контактной информации с использованием по меньшей мере одного из следующего: лингвистические характеристики, синтаксис, анализ текста и консультация с внешними источниками данных или сервисами, устройство разрешения противоречий для разрешения противоречий между записями контактной информации согласно заранее заданным правилам, формирователь списочных значений для формирования полей со списочными значениями, однозначно определяющих порядок следования записей контактной информации, устройство горизонтального слияния контактов для слияния двух несвязанных контактных лиц при обнаружении общего первичного идентификатора и устройство вертикального слияния контактной информации для слияния анонимного контактного лица с контактным лицом, которое связано с зарегистрированным пользователем, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.
[0034] Дополнительно, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, устройство горизонтального слияния включает устройство виртуального слияния для поддержания по меньшей мере двух записей контактной информации в качестве независимых и для их сцепления между собой, в результате которого их помечают как представляющие одно и то же контактное лицо.
[0035] Дополнительно, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, устройство вертикального слияния контактов включает устройство виртуального слияния для поддержания анонимного контактного лица и контактного лица, связанного с зарегистрированным пользователем, в качестве независимых и для их сцепления между собой, в результате которого их помечают как представляющие одно и то же контактное лицо.
[0036] Также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, поле пользовательских разрешений определено веб-сайтом и/или определено владельцем вебсайта.
[0037] Также, при этом, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутый
стандартизованный формат представляет собой по меньшей мере одно из следующего: формат, определенный с помощью заранее заданной схемы, наследования, ссылки обратного вызова, формат, закодированный и определенный по меньшей мере одним сторонним приложением или формат, основанный на внешнем формальном, промышленном или фактически общепринятом стандарте.
[0038] В соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения предложен способ, реализуемый на веб-сайте при помощи клиент-серверной системы, имеющей по меньшей мере один процессор для обработки инструкций, определяющих этот способ.[0039] При этом, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутое согласование включает по меньшей мере одно из следующего: маршрутизацию и отслеживание по меньшей мере одного сообщения об активности между веб-сайтом и по меньшей мере одним сторонним приложением, исполнение политик конфиденциальности между веб-сайтом и по меньшей мере одним сторонним приложением, применение по меньшей мере одного заранее заданного правила трансляции и адаптации контента между веб-сайтом и по меньшей мере одним сторонним приложением, реализацию представительства в отношении конфиденциальных данных и/или замены конфиденциальных данных и наложение ограничений полей пользовательских разрешений между веб-сайтом и по меньшей мере одним сторонним приложением, а также валидацию подписи упомянутого по меньшей мере одного сообщения об активности с использованием приемного ключа по меньшей мере одного стороннего приложения, трансляцию внешнего идентификатора, связанного с упомянутым по меньшей мере одним сообщением об активности, во внутренний для вебсайта идентификатор и подпись исходящего по меньшей мере одного сообщения об активности с использованием передающего ключа по меньшей мере одного стороннего приложения.
[0040] При этом, в соответствии с предпочтительным вариантом осуществления настоящего изобретения, упомянутое прослушивание и по меньшей мере добавление включает по меньшей одно из следующего: идентификацию контактных лиц, связанных с упомянутым по меньшей мере
одним сообщением об активности, и формирование потока данных, если соответствующих контактных лиц не существует, слияние данных из упомянутого по меньшей мере одного сообщения об активности с существующим потоком, а также данных из по меньшей мере двух потоков данных об активности в единый поток, а также журналирование данных об активности из потока данных об активности по меньшей мере в одну базу данных.
[0041] Также, при этом, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутые получение и анализ включают по меньшей мере одно из следующего: извлечение информации, относящейся к контактному лицу, из одного или более из следующего: сообщение об активности, другие контактные лица и внешние источники; слияние по меньшей мере двух записей контактной информации, при этом упомянутые записи связаны с одним и тем же идентифицированным контактным лицом; а также слияние извлеченной информации, относящейся к контактному лицу, с контактной информацией существующего контактного лица согласно заранее заданным правилам слияния. Упомянутые получение и анализ включают также создание нового идентифицированного контактного лица и/или анонимного контактного лица и отслеживание активности контактного лица в течение сеанса работы с вебсайтом, а также управление защитой конфиденциальности и правами доступа к извлеченной информации, относящейся к контактному лицу.
[0042] Дополнительно, также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутые маршрутизация и отслеживание поддерживают маршрутизацию упомянутого по меньшей мере одного сообщения об активности с использованием по меньшей мере одного запроса на прослушивание, поданного сторонним приложением.
[0043] В дополнение, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутое слияние включает слияние данных с потоком, который связан с идентифицированным контактным лицом, и слияние по меньшей мере двух отдельных потоков в единый поток.
[0044] Также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутое слияние данных с потоком, связанным с идентифицированным контактным лицом, и слияние по меньшей мере двух отдельных потоков в единый поток включает по меньшей мере одно из следующего: горизонтальное слияние по меньшей мере двух отдельных потоков согласно общему идентифицированному контактному лицу и вертикальное слияние потока, сформированного для анонимного контактного лица, с потоком, связанным с зарегистрированным контактным лицом, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.
[0045] При этом, также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутое слияние по меньшей мере двух записей контактной информации включает по меньшей мере одно из следующего: обнаружение идентичных значений поля первичного идентификатора по меньшей мере в двух записях контактной информации, обнаружение значений поля первичного ключа по меньшей мере в двух записях контактной информации, которые идентичны после нормализации, идентификация пользователей веб-сайта с использованием куки-файлов, идентификация пользователя веб-сайта с использованием входа в учетную запись для зарегистрированных пользователей и идентификация веб-сайта через учетную записи социальной сети для пользователей веб-сайта, чьи учетные записи связаны с социальной сетью. Упомянутое слияние по меньшей мере двух записей контактной информации включает также объединение контактной информации с использованием по меньшей мере одного из следующего: лингвистические характеристики, синтаксис, анализ текста и консультация с внешними источниками данных или сервисами; разрешение противоречий между записями контактной информации согласно заранее заданным правилам, формирование полей со списочными значениями, однозначно определяющих порядок следования записей контактной информации, горизонтальное слияние двух несвязанных контактных лиц при обнаружении общего первичного идентификатора и вертикальное слияние анонимного контактного лица с контактным лицом, которое связано с зарегистрированным пользователем, после входа в
учетную запись или регистрации, что позволяет объединить эти два контактных лица.
[0046] Также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутое горизонтальное слияние включает виртуальное слияние для поддержания по меньшей мере двух записей контактов в качестве отдельных и для их связывания между собой, в результате которого их помечают как представление одного и того же контактного лица.
[0047] Также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутое вертикальное слияние включает виртуальное слияние для поддержания анонимного контактного лица и контактного лица, связанного с зарегистрированным пользователем, в качестве независимых и их сцепление между собой, в результате которого их помечают как представляющие одно и то же контактное лицо.
[0048] Также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, поле пользовательских разрешений определено веб-сайтом и/или определено владельцем вебсайта.
[0049] Также, в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения, упомянутый стандартизованный формат представляет собой по меньшей мере одно из следующего: формат, определенный с помощью заранее заданной схемы, наследования, ссылки обратного вызова, формат, закодированный и определенный по меньшей мере одним сторонним приложением или формат, основанный на внешнем формальном, промышленном или фактически общепринятом стандарте.
Краткое описание чертежей
[0050] Настоящее изобретение, являющееся предметом рассмотрения данного документа, детально описано и однозначно определено в формуле изобретения, приведенной в заключительной части заявки. Однако изобретение, в том, что касается его организации и принципа действия, вместе с его целями, элементами и преимуществами, может быть наилучшим образом понято при прочтении приведенного ниже подробного описания, с обращением к приложенным чертежам, где:
[0051] На фиг. 1 эскизно проиллюстрированы конфигурации развертывания системы построения веб-сайта (website building system, WBS) и стороннего приложения (third party application, ТРА);
[0052] на фиг. 2 эскизно проиллюстрировано управление внутренним содержимым сторонних приложений;
[0053] на фиг. 3 эскизно проиллюстрировано включение стороннего приложения на вмещающую веб-страницу при помощи обработки данных на стороне сервера;
[0054] на фиг. 4 эскизно проиллюстрировано включение стороннего приложения на вмещающую веб-страницу при помощи обработки данных на стороне клиента;
[0055] на фиг. 5 эскизно проиллюстрировано включение стороннего приложения на вмещающую веб-страницу при помощи фрейма iframe;
[0056] на фиг. 6 эскизно проиллюстрировано отображение стороннего приложения при изменении верстки страницы в соответствии с существующим уровнем техники, не являющееся оптимальным;
[0057] на фиг. 7А и 7В схематично проиллюстрирована система для интеграции системы для построения веб-сайта и одного или более сторонних приложений, сконструированная и функционирующая в соответствии с настоящим изобретением;
[0058] на фиг. 8 схематически проиллюстрирована объектная модель документа в сравнении с компонентной моделью;
[0059] на фиг. 9 эскизно проиллюстрирован пример составного стороннего приложения для ведения блога;
[0060] на фиг. 10 эскизно проиллюстрирован пример модульного стороннего приложения интернет-магазина;
[0061] на фиг. 11А и 11В эскизно проиллюстрированы различные
варианты реализации коммуникационного концентратора,
сконструированного и функционирующего в соответствии с настоящим изобретением;
[0062] на фиг. 11С эскизно проиллюстрированы элементы коммуникационного концентратора, показанного на фиг. 11А и 11В, сконструированного и функционирующего в соответствии с настоящим изобретением;
[0063] на фиг. 12 эскизно проиллюстрирован сценарий трансляции связи при помощи концентратора, показанного на фиг. 11А и 11В, сконструированного и функционирующего в соответствии с настоящим изобретением;
[0064] на фиг. 13 эскизно проиллюстрирована вмещающая вебстраница, которая управляет сторонним приложением, имеющим ассоциированный шаблон, при этом вмещающая веб-страница сконструирована и функционирует в соответствии с настоящим изобретением.
[0065] на фиг. 14 эскизно проиллюстрирована вмещающая вебстраница, которая включает стороннее приложение, имеющее ассоциированный шаблон, внутри мини-страницы, при этом вмещающая вебстраница сконструирована и функционирует в соответствии с настоящим изобретением.
[0066] на фиг. 15 эскизно проиллюстрирована система для координации и сбора данных из различных сообщений, переданных между системой для построения веб-сайта и одним или более встроенными сторонними приложениями, при этом система сконструирована и функционирует в соответствии с настоящим изобретением;
[0067] на фиг. 16А, 16В, 16С и 16D эскизно проиллюстрированы элементы системы, показанной на фиг. 15, построенной и функционирующей в соответствии с настоящим изобретением;
[0068] на фиг. 17 эскизно проиллюстрирован пример графического интерфейса пользователя, в котором отображают поток данных об активности, относящийся к контактному лицу, при этом показанный интерфейс сконструирован и функционирует в соответствии с настоящим изобретением;
[0069] на фиг. 18 эскизно проиллюстрирован обмен сообщениями об активности стороннего приложения между клиентской и серверной сторонами; и
[0070] на фиг. 19 эскизно проиллюстрировано управление входом в учетную запись и выходом из учетной записи в течение сеанса работы с вебсайтом.
[0071] Нужно понимать, что в целях сохранения простоты и ясности иллюстраций, элементы на чертежах не обязательно приведены в реальном масштабе. К примеру, для упрощения понимания чертежей размеры некоторых из элементов могут быть увеличены по сравнению с другими элементами. При этом, в случае необходимости, числовые обозначения на различных чертежах могут повторяться, что указывает на соответствующие друг другу или аналогичные элементы.
Подробное описание изобретения
[0072] В приведенном ниже подробном описании изложены множество конкретных деталей, позволяющих достичь углубленного понимания настоящего изобретения. Однако специалисты в данной области техники должны понимать, что настоящее изобретение может применяться на практике и без этих конкретных деталей. И напротив, чтобы не усложнять описание настоящего изобретения, общеизвестные способы, процедуры, компоненты, блоки и/или схемы не рассмотрены подробно.
[0073] Авторы настоящей заявки нашли множество недостатков в существующих методах встраивания сторонних приложений в системы для построения веб-сайтов, и в методах взаимодействия сторонних приложений с системами для построения веб-сайтов.
[0074] Один из этих недостатков заключается в том, что отображение стороннего приложения ограничено единственной прямоугольной областью вмещающей вебстраницы, областью внутри фрейма iframe. Другие недостатки - неспособность сторонних приложений управлять размером и положением собственного окна, а также визуальных элементов, находящихся вне собственно окна отображения стороннего приложения (например, специальные рамки вокруг окна стороннего приложения).
[0075] Стороннее приложение может иметь собственные стили отображения (цветовые схемы, шрифты, размер символов и т.п.). Использование этих стилей может подходить для некоторых вмещающих веб-страниц, но может визуально диссонировать с другими вмещающими веб-страницами.
[0076] Еще один недостаток - недостаток гибкости отображения сторонних приложений с точки зрения вмещающего веб-сайта. Если внешний
вид веб-сайта будет изменен (например, при развертывании на платформе с отличающимся размером экрана или в результате события динамической верстки), вмещающая веб-страница может быть вынуждена изменить размер окна, предоставленного стороннему приложению. В этом случае отображение стороннего приложения может быть "обрезано", т.е. чтобы достичь некоторых подобластей стороннего приложения, может потребоваться прокрутка с помощью полос прокрутки. Обратимся к фиг. 6, на которой проиллюстрирован пример, показывающий, что может произойти при изменении размера вмещающей веб-страницы [а]: размер области, предоставленной стороннему приложению [Ь] интернет-магазина уменьшился, и кнопка [с] "Купить" не видна под содержимым корзины [d] покупок, следовательно, для совершения покупки необходимы несколько операций прокрутки, и вероятность совершения покупки, таким образом, значительно снижается.
[0077] Нужно понимать, что стороннее приложение при этом не может взаимодействовать с другими компонентами вмещающей его веб-страницы, и что такое взаимодействие, тем не менее, необходимо для реализации более сложных функций. А именно, в рассмотренном примере стороннее приложение не способно выполнять различные операции в зависимости от типа компонентов на вмещающей странице и содержимого этих компонентов. Примером тому может служить веб-сайт с трансляцией обучающих онлайн-курсов кулинарии. В качестве фона при просмотре соответствующих видеороликов пользователю может быть удобно выделить небольшую область на экране для просмотра новостной ленты, а также просматривать метеосводки в некоторой другой области экрана (например, прямую трансляцию с сайта CNN). Для удобства пользователя, когда начинается метеосводка для региона его проживания, сеанс обучения пользователя может быть приостановлен.
[0078] Не существует однозначного стандартного метода, при помощи которого множество сторонних приложений могут взаимодействовать друг с другом, в особенности, если они предоставлены различными поставщиками. То есть, у веб-дизайнера нет однозначного метода для комбинирования множества сторонних приложений от различных поставщиков. Примером может служить веб-сайт интернет-магазина, на котором запущен модуль из
сторонней системы обработки заказов, а также независимый модуль для системы доставки. Было бы удобно иметь возможность пополнения склада в соответствии с расписанием доставки и т.п.
[0079] Авторы настоящей заявки нашли, что такая интеграция может быть реализована при помощи структурированных двусторонних каналов связи между системой для построения веб-сайта и экземплярами сторонних приложений, входящих в ее состав, а также между различными экземплярами сторонних приложений, которые могут быть размещены на одной вмещающей странице. По таким каналам может также передаваться информация, относящаяся к верстке, стилям, а также вспомогательная информация.
[0080] Нужно понимать, что приведенное ниже описание выполнено на основе метода включения сторонних приложений с помощью фрейма iframe, являющегося предпочтительным методом постольку, поскольку он встроен и интегрирован в современные браузеры и не требует создания специального кода для интеграции. Включение при помощи фрейма iframe обеспечивает инкапсуляцию и сэндбоксинг, поддерживаемые браузером, а также встроенную защиту от таких методов взлома, как межсайтовый скриптинг, применяемых во вредоносных сторонних приложениях.
[0081] Обратимся к фиг. 7А и фиг. 7В, на которых проиллюстрирована система 100, предназначенная для интеграции системы для построения вебсайта и одного или более сторонних приложений, в соответствии с одним из вариантов осуществления настоящего изобретения. На фиг. 7А система 100 показана на этапе проектирования веб-сайта, а на фиг. 7В проиллюстрирована система 100 в работе. В соответствии с иллюстрацией фиг. 7А, система 100 включает клиентскую программу 10, систему 30 для построения веб-сайта, установленную на сервере 20 системы для построения веб-сайта (website building system, WBS), а также одно или более сторонних приложений 40, установленных на одном или более серверах 50 сторонних приложений. Система 30 для построения веб-сайта включает координатор 21 WBS, хранилище 22 приложений, таблицу 23 свойств сторонних приложений на стороне системы WBS, координатор 24 сторонних приложений и магазин 25 приложений (который может включать устройство 26 поиска). Клиент 10 включает конструктор 12 страниц и представление
таблицы 23 свойств сторонних приложений на стороне клиента. В некоторых из вариантов осуществления настоящего изобретения клиент 10 может также включать представление магазина 25 приложений на стороне клиента. Конструктор 12 страниц включает линковщик 13, описанный более подробно ниже. Сервер 50 сторонних приложений включает стороннее приложение 40, координатор 51 внешних сторонних приложений и базу 52 данных сторонних приложений, в которой хранят компоненты стороннего приложения 40, шаблоны и другие элементы для использования. Следует отметить, что система 100 может включать несколько серверов сторонних приложений, принадлежащих нескольким поставщикам сторонних приложений 40.
[0082] Нужно понимать, что таблица 23 свойств сторонних приложений может вызываться при назначении атрибутов заданному экземпляру стороннего приложения 40. Также, нужно понимать, что при вызове таблица 23 свойств сторонних приложений может отображаться на клиентской стороне в виде представления таблицы 23 свойств сторонних приложений в клиенте 10. При этом нужно понимать, что офлайновые реализации также могут иметь собственные таблицы свойств, являющиеся частью установленного клиентского программного обеспечения, то есть, таблица 23 сторонних приложений и/или хранилище сторонних приложений могут отсутствовать.
[0083] Нужно понимать, что веб-дизайнер или конечный пользователь 5 за клиентской машиной 10 может создавать собственный веб-сайт (или любое другое онлайн-приложение) с помощью конструктора 12 страниц и формировать страницы веб-сайта вместе с соответствующими взаимодействиями (как внутри страницы, так и между страницами). Веб-дизайнер 5 может выбирать компоненты, шаблоны и другие элементы, являющиеся частью системы 30 для построения веб-сайта, которые хранятся в хранилище 22 приложений, при помощи координатора 21 WBS. Веб-дизайнер 5 может также создавать вмещающую веб-страницу 203, на которую встраивают экземпляры сторонних приложений 40 из множества сторонних приложений 40, которые были приобретены заранее, и шаблоны, компоненты и другие элементы которых могут храниться в хранилище 22 приложений. В одном из альтернативных вариантов осуществления настоящего изобретения приобретенные шаблоны, компоненты и другие
элементы, могут храниться в базе 52 данных сторонних приложений, а доступ к ним может осуществляться при помощи координатора 51 внешних сторонних приложений. В еще одном из вариантов осуществления настоящего изобретения шаблоны, компоненты и другие элементы стороннего приложения 40 могут быть приобретены, в соответствии с необходимостью, через магазин 25 приложений. Таблица 23 свойств может заполняться веб-дизайнером 5 и содержать, например, такую информацию об экземплярах приобретенных сторонних приложений 40, как права доступа, инструкции по установке, платежи или аналогичную информацию, в соответствии с последующим более подробным описанием. Веб-дизайнер 5 может также использовать линковщик 23 для ручного назначения, при необходимости, каналов связи между встраиваемыми сторонними приложениями 40. Также, нужно понимать, что линковщик 23 может позволять веб-дизайнеру 5 назначать любые конкретные соединения связи и правила связи между создаваемой им вмещающей веб-страницей и экземплярами сторонних приложений 40, которые размещают на этой вебстранице, например, как в случае описанных выше видеоролика и новостной сводки CNN, отображаемых одновременно. Нужно понимать, что связи, созданные при помощи линковщика 23, могут быть изменены в течение жизненного цикла веб-сайта.
[0084] Нужно понимать, что веб-дизайнер 5 может получать сторонние приложения 40 по иным каналам, внешним по отношению к магазину 25 приложений, например, через внешний магазин приложений, предоставленный поставщиком сторонних приложений 40 или третьей стороной. В таком случае, система 30 для построения веб-сайта может регистрировать стороннее приложение 40 и его конфигурационные данные при первоначальной установке стороннего приложения 40 на веб-сайте, создаваемом веб-дизайнером 5 при помощи системы 30 для построения вебсайта.
[0085] Чтобы линковщик 23 обеспечивал возможность конфигурирования потенциальных каналов связи, сторонние приложения 40 должны быть способны корректно распознавать и идентифицировать компоненты на вмещающей веб-странице 203 (с которой им необходимо осуществлять связь), включая также экземпляры других сторонних
приложений 40. Идентификация компонентов, которые основаны на ассоциированных шаблонах (будут подробно рассмотрены ниже в настоящем документе), выполняется поставщиком сторонних приложений 40 заранее. Компонентам в ассоциированном шаблоне могут быть присвоены специальные ссылочные идентификаторы, и эти идентификаторы могут использоваться сторонним приложением 40 для связи с упомянутым компонентами.
[0086] Также, нужно понимать, что в случае составных сторонних приложений 40 (которые будут более подробно рассмотрены ниже), например, в случае одного стороннего приложения 40, распределенного по нескольким фреймам iframe, несколько его частей могут автоматически получать информацию, необходимую для связи друг с другом.
[0087] Для компонентов вмещающей страницы веб-сайта, не входящих в ассоциированный шаблон (этот случай будет более подробно рассмотрен ниже), стороннее приложение 40, может иметь список компонентов вмещающей веб-страницы 203, необходимых (обязательно или опционально) для его работы. Этот список может храниться в таблице 23 свойств и может включать уникальные идентификаторы, описание и подробную информацию о компонентах (например, требование, чтобы они были текстовыми компонентами, допускающими использование в качестве метки комментария в блоге). Этот список может быть храниться в записи магазина 25 приложений, относящейся к стороннему приложению 40, и веб-дизайнер 5 может использовать линковщик 23 для задания значений компонентов (полей) на вмещающей веб-странице 203, в соответствии с требованиями стороннего приложения 40. Нужно понимать, что система 30 для построения веб-сайта может динамически создавать отсутствующие компоненты вмещающей веб-страницы 203 при создании экземпляра стороннего приложения 40, и может впоследствии предоставлять веб-дизайнеру 5 возможность их перемещения, изменения их размера и более полного их описания.
[0088] Альтернативно, система 30 для построения веб-сайта может предоставлять полную или частичную компонентную модель вмещающей веб-страницы 203 стороннему приложению 40, включенному в вмещающую веб-страницу 203. Нужно понимать, что подобная структура может быть
именно компонентной моделью, а не объектной моделью документа вмещающей веб-страницы 203. DOM-модель вмещающей веб-страницы 203 может быть значительно более сложной и подробной, чем компонентная модель, поскольку фактическая вмещающая веб-страница 203 может содержать множество HTML-элементов - как скрытых, так и отображаемых, -которые являются частью инфраструктуры системы 30 для построения вебсайта или которые применяются для поддержки компонентов вмещающей веб-страницы 203. Компонентная модель, таким образом, является значительно более простой.
[0089] Обратимся к фиг. 8, где проиллюстрирован один из возможных способов реализации текстового компонента [а] с использованием набора HTML-конструкций (таких как, внешний тег div [b], внутренний тег div [с], фрейм "mini widgets" (мини-виджеты) [d1] ... [d5] и т.п.) DOM-модель [е] вмещающей веб-страницы 203 может содержать отдельные узлы дерева DOM для каждого из этих под-элементов. Компонентная модель [f] может быть значительно более простой и содержать только один узел [д] компонентов.
[0090] Нужно понимать, что система 100 может также поддерживать выборочное предоставление информации о компонентах - веб-дизайнер 5 может назначать, при помощи линковщика 23, информация о каких из компонентах, должна быть предоставлена стороннему приложению 40, при этом только такие компоненты (возможно, имеющие поле "путь расположения", которое указывает на них) могут быть включены в упрощенную компонентную модель, которая является видимой для стороннего приложения 40. Назначение может выполняться при помощи явной пометки соответствующих компонентов, согласно их типу или при любому другому атрибуту системы 30 для построения веб-сайта. Стороннее приложение 40 может затем анализировать компонентную модель вмещающей веб-страницы 203 и находить требуемые компоненты.
[0091] Также, нужно понимать, что связи (ссылки) между вмещающей веб-страницей 203 и экземплярами сторонних приложений 40 могут также формироваться автоматически, например, может выполняться широковещательное линкование, при котором стороннее приложение 40, во время своего функционирование, может передавать сообщения в целях
записи определенных событий. Такие сообщения могут быть опциональными или обязательными (т.е. в этом случае стороннее приложение 40 не может работать или даже быть установлено, если не существует соответствующего стороннего приложения 40, которое было слинковано для приема подобных сообщений. К примеру, стороннее приложение 40 может широковещательно передавать пакеты с информацией о собственной активности, а некоторое установленное стороннее приложение 40, реализующее журналирование данных, может принимать эти информационные пакеты.
[0092] Вновь созданные веб-страницы, все параметрам которых были присвоены соответствующие значения, могут быть сохранены в хранилище 22 приложений (при помощи координатора 221 WBS) и динамически вызываться во время функционирования веб-сайта, в соответствии с последующим более подробным описанием.
[0093] Обратимся вновь к фиг. 7В. В данном варианте осуществления настоящего изобретения применяются те же элементы, что и для фиг. 7А, за исключением элементов клиента 10. При работе клиент 10 имеет в своем составе устройство 201 просмотра для отображения вмещающих вебстраниц. Нужно понимать, что устройство 201 просмотра может включать множество портов 202 отображения, в каждом из которых отображают собственный экземпляр стороннего приложения 40 (экземпляры, полученные на основе одного или более сторонних приложений 40). Клиент 10 включает также коммуникационный концентратор 205 для обеспечения связи и для обеспечения обратного канала между вмещающей веб-страницей 203 и всеми базирующимися на ней сторонними приложениями 40, а также связи, которая осуществляется непосредственно между сторонними приложениями 40, без соединения с соответствующей вмещающей их веб-страницей 203. Ниже функциональность концентратора 205 будет рассмотрена более подробно.
[0094] Нужно понимать, что концентратор 205 может быть реализован в составе клиента 10, поскольку вмещающая веб-страница 203 и все включенные в нее сторонние приложения 40 являются, одновременно, интерактивными подсистемами отображаемого пользователям веб-сайта, и недопустимо, чтобы связь между ними страдала из-за задержек при пересылке данных из клиента в сервер и обратно. В одном из
альтернативных вариантов осуществления настоящего изобретения концентратор 205 может быть реализован на сервере 20 системы для построения веб-сайта, что более предпочтительно для случаев, в которых серверам 40 сторонних приложений необходимо обмениваться большими объемами данных, и соответственно, лучше не маршрутизировать их через клиент 10.
[0095] Нужно понимать, что коммуникационный концентратор 205 может поддерживать различные комбинации связи между системой 30 для построения веб-сайта и одним или более сторонними приложениями 40, а также между множеством сторонних приложений 40. К примеру, концентратор 205 может предоставлять стороннему приложению 40 возможность передачи, в систему 30 для построения веб-сайта, запроса на переключение на другую страницу основного сайта. Коммуникационный концентратор 205 может также предоставлять стороннему приложению 40 возможность передачи запроса на изменение размеров собственного окна, которое, возможно, повлияет на верстку вмещающей веб-страницы. Это может выполняться при помощи управления динамической версткой, которая будет более подробно описана ниже. Альтернативно, вмещающая вебстраница 203 может, например, передавать запрос на переключение на другую версию стороннего приложения, если это необходимо для соответствия изменениям в отображении. Нужно понимать, что подобная двусторонняя связь может также быть установлена между компонентом стороннего приложения 40 и компонентом системы 30 для построения вебсайта, относящимся к стороннему приложению 40, которое отображает вспомогательную информацию, а также между элементами составных сторонних приложений 40 или модульных сторонних приложений, в соответствии с последующим более подробным описанием.
[0096] Также нужно понимать, что система 100 может быть также реализована с использованием одновременно онлайновой и офлайновой систем 30 для построения веб-сайта, и что в ней может применяться любая комбинация вариантов размещения стороннего приложения, например, элементы на стороне клиента, серверы поставщика системы 30 для построения веб-сайта, серверы поставщика 40 сторонних приложений или другие серверы, принадлежащие четвертой стороне. Нужно понимать, что в
случае офлайнового варианта осуществления настоящего изобретения, описанного выше, для реализации системы 100 может тем не менее требоваться сервер.
[0097] Система 100 может быть размещена на отличающемся наборе серверов (эксплуатируемых не поставщиком системы для построения вебсайта), например, системой хостинге частных сайтов для крупных организаций.
[0098] Система 100 может также поддерживать полный спектр вариантов для встраивания экземпляров сторонних приложений 40, в соответствии с предшествующим описанием. Однако система 100 может также поддерживать только подмножество подобных вариантов или может налагать ограничения на возможности встраивания экземпляров сторонних приложений 40.
[0099] Система 100 может также допускать реализацию составных сторонних приложений 40. Составное стороннее приложение 40 может включать множество областей отображения, каждый из которых управляется с использованием отдельного фрейма iframe. Эти области могут также взаимодействовать между собой (при необходимости) при помощи коммуникационного концентратора 205, в соответствии с последующим более подробным описанием.
[00100] Обратимся к фиг. 9, на которой проиллюстрирован пример составного стороннего приложения 40. В соответствии с иллюстрацией, стороннее приложение [а] для ведения блога, полученное из магазина [Ь] приложений, помещают на вмещающую веб-страницу 203 [с]. Стороннее приложение [а] для ведения блога включает три следующие области: область [d] записи блога; область [е] облака тегов; область [f] новостной сводки. Нужно понимать, что в составном стороннем приложении множество его областей могут применяться различным образом, включая как множество одновременно присутствующих частей одного приложения в случае приведенного выше примера для блога, так и множество опционально присутствующих частей одного приложения, когда имеется набор всегда отображаемых областей и набор опциональных областей, отображаемых только при необходимости. Управление отображением опциональных областей может осуществляться сторонним приложением 40 или веб
дизайнером 5 (который принимает решения о конфигурации стороннего приложения при включении его в страницу). Управление отображением может быть также доступно для областей вспомогательной функциональности, например, конфигурационные области или области дополнительных диалогов; а также в качестве альтернативного отображения для сторонних приложений, доступных в нескольких версиях (например, имеющих малую и более крупную версию или имеющих портретно-ориентированную и горизонтальную версию).
[00101] Нужно понимать, что описанная выше функциональность может быть реализована с использованием фреймов iframe для отображения элементов сторонних приложений 40, что позволяет получить преимущества iframe-архитектуры, связанные с инкапсуляцией и защитой информации.
[00102] Также, нужно понимать, что реализация составных сторонних приложений 40 требует, чтобы сторонние приложения 40 (внутри своих фреймов iframe) могли управлять отображением различных фреймов iframe (например, их видимостью, размером и местоположением). Также нужно понимать, что коммуникационный концентратор 205 может обеспечивать возможность их отображения, в соответствии с последующим более подробным описанием.
[00103] Также, нужно понимать, что даже в случае, когда составное стороннее приложение 40 состоит (визуально) из нескольких элементов и областей, оно все-таки считается единым сторонним приложением 40 в отношении приобретения (например, в магазине 25 приложений), установки, конфигурирования и т.п.
[00104] В существующих системах каждое из сторонних приложений 40 может рассматриваться как независимая сущность, при этом взаимодействие между двумя сторонними приложениями 40 (от одного поставщика или от сотрудничающих поставщиков) приходится реализовывать специально для каждого конкретного случая. Нужно понимать, что система 100 может также поддерживать модульные сторонние приложений 40, которые состоят из множества взаимодействующих друг с другом подмодулей, приобретаемых и устанавливаемых независимо.
[00105] Обратимся фиг. 10, на котором проиллюстрировано, каким образом модульное стороннее приложение [а] для управления продажами
может быть разбито на подмодули: модуль [b] CRM; модуль [с] лид-менеджмента; и модуль [d] интернет-магазина. Все необходимые модули этого стороннего приложения могут быть предоставлены одним поставщиком сторонних приложений. Альтернативно, поставщик сторонних приложений может предоставлять некоторое подмножество модулей (или функциональности) стороннего приложения 40 и давать веб-дизайнеру возможность приобретения и/или установки дополнительных модулей стороннего приложения от того же иди другого поставщика сторонних приложений. Нужно понимать, что тогда как составное стороннее приложение приобретают и устанавливают в виде единого стороннего приложения от одного поставщика, которое при этом просто занимает несколько областей экрана, модульное стороннее приложение включает множество модулей, которые могут приобретаться и устанавливаться независимо, и могут включать модули от нескольких поставщиков сторонних приложений. Чтобы обеспечить возможность интеграции множества модулей сторонних приложений от множества поставщиков, каждый модуль стороннего приложения должен иметь список требуемых им интерфейсов и/или функций, и предоставляемых интерфейсов и/или функций. Это может быть реализовано, например, с использованием списков имен интерфейсов, основанных на традиции иерархического именования с разделением точками (e.g. My_CRM_TPA.NewClient.Getlnfo), а также спецификации параметров интерфейсов.
[00106] Необходимые для модуля 40 стороннего приложения интерфейсы могут быть помечены как обязательные (т.е. без которых модуль не будет функционировать) или как опциональные (т.е. модуль будет функционировать, но его функциональность будет ограничена или будет изменена). Так, параметрами, предоставляемыми для каждого из интерфейсов могут быть: уникальное имя интерфейса; описание интерфейса - отображаемое веб-дизайнеру 5, и предоставляющее ему информацию о функциональности, обеспечиваемой отсутствующими интерфейсами; статус "обязательный" / "опциональный"; список параметров интерфейсов и их типов. Нужно понимать, что каждый из модулей стороннего приложения все равно будет находиться в отдельном фрейме iframe (или наборе фреймов
iframe). Функционирование интерфейсов основано на каналах связи, описанных более подробно ниже.
[00107] Нужно понимать, что модули 40 сторонних приложений могут быть скомпонованы на этапе конструирования веб-сайта. Система 30 для построения веб-сайта может выполнять разрешение ссылок на интерфейсы по мере добавления дополнительных модулей стороннего приложения 40, когда новые модули 40 стороннего приложения разрешают существующие, требуемые интерфейсы, но также, возможно, с добавлением новых (неразрешенных) требуемых интерфейсов.
[00108] Нужно также понимать, что веб-дизайнер 5 может редактировать вебсайт и запускать его в целом даже тогда, когда имеются неразрешенные обязательные (и опциональные) интерфейсы. Однако веб-дизайнер 5 не сможет опубликовать созданный веб-сайт до тех пор, пока все обязательные интерфейсы не будут разрешены, при этом ему будет выдано соответствующее уведомление при попытке вызова функции, которая может задействования активации, концентратором 205, модуля стороннего приложения, который все еще имеет неразрешенные обязательные интерфейсы.
[00109] Также, нужно понимать, что магазин 25 приложений может включать устройство 26 поиска, которое может предпринимать попытку нахождения модулей стороннего приложения, разрешающих интерфейсы, которые необходимы имеющимся модулям стороннего приложения. Устройство 26 поиска может осуществлять поиск, исходя из неразрешенных интерфейсов, для конкретного модуля (или модулей) стороннего приложения или для всех модулей стороннего приложения. Устройство 26 поиска может также выполнять поиск по неразрешенным на текущий момент интерфейсам или даже по уже разрешенным интерфейсам, а также по типа интерфейсов -обязательным, опциональным или обоим сразу. Нужно понимать, что устройство 26 поиска может быть ограничено только разрешением неразрешенных интерфейсом конкретных сторонних приложений, а также поиском по конкретным поставщикам сторонних приложений. Устройство поиска 26 может выполнять либо поиск первого уровня (например, поиск модулей, соответствующих неразрешенным на текущий момент интерфейсам), либо многоуровневый поиск (т.е. выполнять итеративный
поиск, находя также модули, соответствующие неразрешенным на текущий момент интерфейсам с учетом модулей сторонних приложений, найденных на предыдущей итерации поиска).
[00110] В системе 100 описания интерфейсов могут применяться для предоставления веб-дизайнеру 5 информацию о значимости некоторых из отсутствующих интерфейсов. Концентратор 205 может осуществлять трансляцию интерфейсов между несовместимыми сторонними приложениями, между которыми тем не менее необходима связь. Связь может быть реализована при помощи адаптерного модуля, предоставляемого поставщиком системы 30 для построения веб-сайта или внешней стороной, который преобразует заданный необходимый интерфейс в другой формат.
[00111] Система 100 может также применяться в системах редактирования онлайн-приложений, где для просмотра созданных онлайн-приложений применяется Интернет (или любое другое сетевое соединение) и клиентское программное обеспечение, не основанное на браузере. В таких системах не требуется применение специальных технологий (например, связь по протоколам IP, HTTP, HTML и т.п.), которые необходимы для инфраструктуры стандартного веб-сайта.
[00112] Нужно понимать, что для обеспечения междоменной связи могут применяться стандартные методы междоменной связи, известные на существующем уровне техники. Эти методы могут включать:
[00113] Метод HTML5 PostMessage. Это стандартная функция HTML5, которая может применяться для обеспечения безопасного междоменного обмена сообщениями. При помощи метода Windows.Postmessage HTML5 обеспечивается безопасная передача сообщений между окнами, фреймами iframes и основным HTML-документом, даже если они размещены на различных доменах. Метод PostMessage предоставляет фрейму iframe, которому необходимо передать данные, инструменты для указания домена, в который будет передано сообщение, а фрейму iframe, принимающему данные, инструменты верификации домена, из которого было передано сообщение.
[00114] Идентификатор фрагмента URL для сообщений: этот метод основан на использовании идентификатора фрагмента URL для передачи
данных сообщений из одной конечной точки в другую конечную точку. Данные кодируют в виде простого текста и добавляют (в качестве идентификатора фрагмента) к URL, который используют для вызова сервиса на домене целевой конечной точки или скрытого фрейма iframe внутри целевого фрейма iframe конечной точки. Затем идентификатор фрагмента декодируют при помощи соответствующего кода в целевом сервисе или целевом фрейме iframe.
[00115] Специализированный коммуникационный веб-сервис. Система 30 для построения веб-сайта предоставляет специализированный веб-сервис, размещенный на сервере 20 системы для построения веб-сайта. Различные конечные точки связи подключаются к этому серверу, либо для передачи сообщений, либо для проверки имеющихся для них сообщений. Это может быть реализовано при помощи известных на существующем уровне техники методов, например, наборе технологий Comet, применявшихся до появления HTML5, технологии WebSockets, основанной на стандарте HTML5, или любой другой технологии очередизации, пулл-передачи, пуш-передачи сообщений сервером, или аналогичной технологии.
[00116] Локальное хранение HTML5: Стандарт HTML5 предоставляет локальное структурированное хранилище, которое может применяться для хранения поставленных в очередь сообщений. Однако доступ к локальному хранилищу может быть получен только веб-контентом, принадлежащим тому же домену, что и осуществляющий хранение фрейм iframe. На сегодняшний день созданы решения (например, технология, лежащая в основе программного продукта Meebo XAuth, которая была куплена корпорацией Google), в которых относительно простой сервер обеспечивает поддержку создания необходимого промежуточного фрейма iframe, что позволяет получать доступ к локальному хранилищу, расположенному в некотором домен, из фреймов iframe, размещенных в сторонних доменах.
[00117] Прикладные программные интерфейсы (Application Programming Interface, API) HTML5 для доступа к локальной файловой системе. Аналогично применению описанного выше локального хранилища, канал связи между фреймами iframe может быть сформирован с помощью локальных файлов в локальном хранилище пользовательского агента, доступ к которым осуществляют при помощи API-интерфейсов доступа к
файлам HTML5. Следует, однако, отметить, что защищенная сэндбоксом локальная файловая система, созданная API-интерфейсами HTML5 для доступа к файлам, доступна исключительно для ее создателя, и значит, для преодоления этого ограничения необходим промежуточный компонент iframe или серверный компонент.
[00118] Специальный плагин браузера: Для управления очередью сообщений, передаваемых между различными фреймами iframe, может быть создан специальный плагин для браузера (или другого пользовательского агента). Такой плагин должен быть установлен пользователями системы 30 для построения веб-сайта (на всех уровнях) и предоставлять соответствующие сервисы всем фреймам iframe, а также страницам основного веб-сайта системы 30 для построения веб-сайта.
[00119] Нужно понимать, что коммуникационный концентратор 205 может функционировать в роли координатора связи между фреймами iframe, осуществляемой с помощью любого из описанных выше методов передачи сообщений. Также, нужно понимать, что концентратор 205 может иметь полную информацию о структуре вмещающей веб-страницы 203 и всю подробную информацию о стороннем приложении 40, предоставленную поставщиком стороннего приложения 40 и хранимую в таблице 23 свойств. Стороннее приложение 40 может при этом иметь отличающиеся параметры при включении в состав других приложений или в других конкретных случаях включения в то же самое приложение (в соответствии с предшествующим описанием). Такие параметры могут включать уникальное имя экземпляра, которое может использоваться для интеллектуальной адресации (в соответствии с последующим более подробным описанием). Также, нужно понимать, что концентратор 205 может иметь подробную информацию о стороннем приложении 40, которая не обязательно должна храниться в таблице 23 свойств.
[00120] Также нужно понимать, что концентратор 205 может обеспечивать интеллектуальную адресацию и идентификацию, верификацию источника сообщения, исполнение политик связи, разрешение проблем с совместимостью сторонних приложений 40, а также перенаправление данных из сторонних приложений 40 в другие компоненты. Концентратор 205 может обеспечивать возможность динамического обновления верстки в
сторонних приложениях 40 на основе изменений, внесенных во вмещающую веб-страницу 203, в соответствии с последующим более подробным описанием.
[00121] Обратимся к фиг. 11А и 11В, на которых проиллюстрированы различные варианты реализации концентратора 205, а также к фиг. 11 С, на которой проиллюстрирована функциональность различных его элементов.
[00122] Концентратор 205 может включать устройство 310 интеллектуальной идентификации и адресации, устройство 320 верификации источника, устройство 330 исполнения политик связи, транслятор 340 протоколов, перенаправляющее устройство 350, устройство 360 динамического обновления верстки, менеджер 370 конфигурации, устройство 380 общего обновления и обертку 390 размещаемого API-интерфейса. Ниже функциональность этих элементов будет рассмотрена более подробно. Нужно понимать, что все причисленные функции применяются для обеспечения работы всех каналов междоменной связи, то есть, канала связи между сторонним приложением 40 и системой 30 для построения веб-сайта и канала связи между одним сторонним приложением 40 и другим сторонним приложением 40.
[00123] Обратимся к фиг. 11 А, на которой проиллюстрирован типовой вариант осуществления концентратора 205, реализованный при помощи промежуточного фрейма [a] iframe, в котором для взаимодействия с системой 30 для построения веб-сайта используется внутренний API-интерфейс связи. Таким образом, сообщения [с], переданные (например), из стороннего приложения [d] в стороннее приложение [е] (для чего применяют модули [f] и [д] API-интерфейса связи соответственно), могут анализироваться, верифицироваться или изменяться при помощи способов, подразумевающих наличие информации о данном конкретном приложении.
[00124] Обратимся к фиг. 11В, на котором проиллюстрирован альтернативный вариант осуществления настоящего изобретения, без применения промежуточного фрейма iframe. Вместо него применяют технологию междоменной связи в одном или более из модулей [а] и [Ь] API-интерфейса связи (встроенные в сторонние приложения [с] и [d] соответственно). Модули [а] и [Ь] взаимодействуют непосредственно с системой 30 для построения веб-сайта, получают информацию о конкретных
применяемых приложениях и используют ее для обработки сообщения [f] связи. Данный вариант, по сравнению с вариантом осуществления настоящего изобретения, показанным на фиг. 11 А, обладает тем недостатком, что значительная часть информации уровня системы 30 для построения веб-сайта может быть обработана внутри модуля, входящего в состав стороннего приложения, при этом к этой информации может быть получен доступ (или даже эта информация может быть модифицирована) вредоносным сторонним приложением.
[00125] В соответствии с приведенным выше описанием, во всех рассмотренных выше методах междоменной связи, адресация фреймов iframe основана на информации о происхождении фрейма iframe (которая включает исходный домен, протокол и порт), т.е. осуществляется с использованием прямой адресации сторонних приложений 40 как при передаче сообщений (при указании приемной стороны), так и приеме сообщений (в форме имени передающей стороны, предоставляемого приемнику). Также, при этом для передачи сообщения необходимо, чтобы передающая сторона указывала целевое окно фрейма iframe (с помощью вызова метода document.getElementByld("...").contentWindow языка JavaScript или любого другого метода). Таким образом, в существующих системах каждое из сторонних приложений 40 должно хранить полную и конкретную информацию обо всех других сторонних приложениях, с которыми оно может осуществлять связь (включая домен, протокол, порт и идентификатор фрейма iframe).
[00126] Очевидно, что такой тип прямой адресации может быть неудобным в окружении системы 100. Несмотря на то, что веб-дизайнер 5 имеет возможность интеграции сторонних приложений 40 от множества поставщиков сторонних приложений 40, не скоординированных между собой, поставщики сторонних приложений 40 могут предоставлять сторонние приложения 40, размещенные в некотором домене, а затем перемещать их в другой домен или поддомен. Также поставщики сторонних приложений 40 могут менять протоколы или порты, используемые для связи с некоторым заданным сторонним приложением. Веб-дизайнеру 5 в этом случае придется изменять дизайн вмещающей веб-страницы 203, которая содержит стороннее приложение 40. Все описанные события могут происходить в
сторонних приложениях 40, которые используются на работающем вебсайте, имеющем множество посетителей. При этом одна вмещающая вебстраница 203 может включать множество экземпляров стороннего приложения, служащих для различных целей. К примеру, одна из страниц на веб-сайте, созданном для поддержки некоторого коммерческого продукта, может содержать два сторонних приложения 40 чата: один для чата между пользователями и для форума, и второй для общения с сотрудником службы поддержки поставщика, когда имеется такая возможность.
[00127] Нужно понимать, что устройство 310 адресации и идентификации может иметь полную информацию о структуре вмещающей веб-страницы 203, а подробное описание стороннего приложения 40 (предоставленное поставщиком 40 стороннего приложения в систему 30 для построения веб-сайта). Устройство 310 адресации и идентификации может обеспечивать адресацию сторонних приложений 40, являющихся как источниками, так и приемниками данных, для их связи друг с другом, с использованием любого из следующего: уникальное имя стороннего приложения 40 (под которым оно зарегистрировано в магазине 25 приложений); дескрипторный идентификатор экземпляра стороннего приложения 40, присвоенный каждому из экземпляров стороннего приложения 40 на вмещающей веб-странице 203, что обеспечивает возможность адресации множества экземпляров одного и того стороннего приложения 40; базовый идентификатор для типа или класса целевого стороннего приложения (например, "необходимо передать сообщение <х> во все экземпляры стороннего приложения 40 для журналирования на вмещающей веб-странице 203"). Такой идентификатор может также указывать на конкретные сервисы, которые должны поддерживаться сторонним приложением 40. Устройство 310 адресации и идентификации может также применять указание на версию, например: "необходимо передать транзакцию <х> в экземпляр пакета <у> бухгалтерского учета, только если он имеет версию .
[00128] Нужно понимать, что во время своего функционирования, сторонние приложения 40 взаимодействуют только с концентратором 205, и следовательно, им должен быть известен только прямой адрес концентратора 205, а не адреса всех остальных сторонних приложений 40.
Этот единственный прямой адрес может быть инкапсулирован при помощи обертки API-интерфейса связи (например, модулей f и g связи, показанный на фиг. 11 А, а также модулей а и Ь, проиллюстрированных на фиг. 11В), предоставленных системой 30 для построения веб-сайта поставщику сторонних приложений 40. Стороннее приложение 40, осуществляющее вызов, может предоставлять дескриптивные адреса сторонних приложений 40, зависящие от конкретного приложения (в соответствии с предшествующим описанием), а устройство 310 адресации и идентификации может транслировать их в прямые адреса 40 сторонних приложений и выполнять маршрутизацию. Таким образом, сторонним приложениям 40 не нужно поддерживать таблицу абсолютных адресов всех сторонних приложений, с которыми оно потенциально может осуществлять связь.
[00129] Нужно, понимать, что верификация источника сообщения является критичной, т.к. в противном случае приемное стороннее приложение 40 потенциально может принять сообщение от вредоносного стороннего приложения 40. Поскольку вся связь может осуществляться через концентратор 205, устройство 320 верификации источника может проверять аутентичность всех входящих сообщений от всех сторонних приложений. Устройство 320 верификации источника может также предоставлять дополнительную информацию, которая может добавляться к сообщению и может использоваться для дополнительной верификации. Нужно понимать, что поскольку все сторонние приложения 40 в магазине 25 приложений, применяемые в системе 100, зарегистрированы в системе 30 для построения веб-сайта, концентратор 205 может проверять, с помощью системы 30 для построения веб-сайта, соответствует ли уникальный идентификатор источника, который может быть включен в сообщение, ожидаемому источнику сообщения (домен, порт и т.п.)
[00130] Стороннее приложение 40 может задавать общую политику связи, которая может зависеть от внешней информации, информации о вмещающей веб-странице 203 и т.п. Устройство 330 исполнения политик связи может обеспечивать применение соответствующей политики связи, без необходимости обработки связи, не соответствующей требованиям. К примеру, на веб-сайте, где выполняет обработка секретной информации, сторонние приложения, в их профилях, могут быть помечены полем "уровень
секретности". Стороннее приложение 40, обеспечивающее внутреннюю базу данных для журналирования событий и сертифицированное как имеющее уровень секретности X, может, соответственно, определять политику, согласно которой оно не будет принимать для журналирования события, уровень секретности которых больше X. Устройство 330 исполнения политик связи в этой ситуации может выполнять необходимую предварительную фильтрацию и не допускать, чтобы сообщения с более высоким уровнем секретности вообще попадали в приложения с менее высоким уровнем секретности.
[00131] Также нужно понимать, что веб-дизайнеру 5 может быть необходимо включить в один создаваемый им веб-сайт два (или более) сторонних приложения, которые могли бы взаимодействовать между собой, однако фактически это может быть не осуществимо из-за несовместимости протоколов. К примеру, в соответствии с иллюстрацией фиг. 12, о которой пойдет речь далее, стороннее приложение [а] интернет-магазина может иметь возможность отправки сообщений о заказах товара в стороннее приложение исполнения заказов и их доставки, например, стороннее приложение [Ь] (предоставленное другим поставщиком). Однако в информации, предоставляемой сторонним приложением [а], могут отсутствовать некоторые поля, необходимые для стороннего приложения [Ь]. Подобная проблема, как правило, требует вмешательства поставщиков сторонних приложений, однако в некоторых случаях такое решение неприемлемо (например, одно из двух сторонних приложений в текущий момент по каким-либо причинам более не обновляется). Транслятор 340 протоколов может транслировать соответствующие сообщения, из приложения [а] в приложение [Ь] (например, добавляя необходимые отсутствующие поля). Трансляция может выполняться транслятором 340 протокола, или может, в некоторых случаях, подразумевать взаимодействие с основным веб-сайтом и вмещающей веб-страницей 203 (например, если требуется дополнительная информация).
[00132] Также, нужно понимать, что стороннее приложение 40 может иметь функциональность, требующую передачи или приема сообщений из другого стороннего приложения 40 (к примеру, как в случае описанной выше пары сторонних приложений интернет-магазина и исполнения заказов).
Однако в некоторых случаях часть решения может отсутствовать, так, в описанном выше примере, может оказаться, что подходящего приложения 40 для исполнения заказов не существует. В таком случае перенаправляющее устройство 350 может давать веб-дизайнеру 5 возможность указать, что требуемые сообщения могут быть маршрутизированы в некоторый компонент вмещающей веб-страницы 203 или из него, и что требуемая функциональность может быть разрешена этим компонентом вмещающей веб-страницы 203 с использованием функциональности, которую могут обеспечить ее компоненты. Это позволяет конструировать веб-сайт в целом, без необходимости создания узкоцелевых специализированных сторонних приложений 40. Соответственно, транзакции могут пересылаться в компонент системы 30 для построения веб-сайта, который может выполнять журналирование транзакций в базе данных, и эта база данных может использоваться впоследствии (другим приложением) для исполнения заказов и доставки в режиме офлайн.
[00133] Сторонние приложения 40 могут иметь множество различных конфигураций и различные возможности, и быть при этом основанными на одном базовом коде, но с различной активируемой функциональностью. К примеру, стороннее приложение 40 может предоставлять базовую функциональность в бесплатной версии и дополнительную функциональность в платной премиум-версии, наборе различных платных версий или дополнительно приобретаемых функциях стороннего приложения 40.
[00134] Нужно понимать, что система 100 может включать управление состоянием приобретенных сторонних приложений 40, при помощи системы 30 для построения веб-сайта, для каждого отдельного пользователя (или, фактически, для каждого отдельного веб-дизайнера). Также, нужно понимать, что все веб-дизайнеры могут быть зарегистрированными пользователями системы 30 для построения веб-сайта, и таким образом, система 30 для построения веб-сайта может администрировать базу данных приобретенных сторонних приложений 40 для каждого из веб-дизайнеров 5. Эта информация может храниться в таблице 23 свойств, координатором 24 сторонних приложений на этапе конструирования веб-сайта или менеджером 370 конфигураций во время его эксплуатации. К примеру, стороннее приложение
40 может передавать, в элемент системы 30 для построения веб-сайта, расположенный на стороне клиента, сообщение запроса версии. Клиентский элемент системы 30 для построения веб-сайта может сверяться с хранилищем 22 или его локально кэшированной копией и возвращать в стороннее приложение 40 ответное сообщение с информацией о функциональности, которой оно должно обладать.
[00135] В одном из альтернативных вариантов осуществления настоящего изобретения система 30 для построения веб-сайта может предоставлять в стороннее приложение 40 конфигурационную информацию стороннего приложения 40 по альтернативным каналам, например, через зашифрованный параметр фрейма iframe, без необходимости описанного выше сообщения запроса.
[00136] В соответствии с предшествующим описанием, стороннее приложение 40 может осуществлять связь непосредственно с конкретными компонентами вмещающей веб-страницы 203. Стороннее приложение 40 может идентифицировать компоненты для связи с использованием нескольких различных методов: непосредственно, для компонентов, основанных на ассоциированных шаблонах (в соответствии с последующим более подробным описанием); при помощи идентификатора доступа, явно предоставленного веб-дизайнером 5 непосредственно для конкретных компонентов вмещающей веб-страницы 203; при помощи передачи (возможно, выборочной) компонентной модели, соответствующей вмещающей веб-странице 203 в стороннее приложение 40.
[00137] Нужно понимать, что при функционировании системы обмен сообщениями и ответами между компонентами вмещающей веб-страницы 203 может быть реализован при помощи устройства 380 обновления. Например, стороннее приложение 40 может оказывать влияние на визуальные атрибуты и атрибуты отображения компонентов вмещающей веб-страницы 203 или запрашивать информацию о них (такую, как информацию об их положении, размерах, цвете, прозрачности и т.п.) Устройство 380 обновления может также обеспечивать возможность, в стороннем приложении 40, считывания или записи содержимого компонентов вмещающей веб-страницы 203, а также позволять ему управлять компонентами с мультимедийными функциями, например, передавать
заданный аудио- или видео-фрагмент в компонент воспроизведения мультимедийных данных, или запрашивать у него приостановку воспроизведения на заданный период времени.
[00138] Устройство 380 может также упрощать, для компонентов системы 30 для построения веб-сайта, определение типа доступа, предоставляемого ими для сторонних приложений 40, - аналогично тому, как в современных операционных системах, с целью защиты файлов, функционируют биты разрешения доступа или списки управления доступом (access control list, ACL). Такие разрешения могут быть определены для каждого и компонентов и применяться для всех сторонних приложений 40 от конкретного поставщика или для конкретных сторонних приложений 40. К примеру, стороннему приложению 40 может быть разрешено получать доступ к текстовому полю, являющемуся частью вмещающей веб-страницы 203 снаружи стороннего приложения 40. Это текстовое поле может применяться для редактирования записи блога в случае стороннего приложения 40 для ведения блога, чтобы обеспечить большую площадь экрана, нежели доступна непосредственно внутри области стороннего приложения 40. Нужно понимать, что в случае сторонних приложений 40, встраиваемых на конкретные мини-страницы в многостраничном контейнере, система 30 для построения веб-сайта может ограничивать доступ стороннего приложения 40 только компонентами на этой конкретной мини-странице.
[00139] Также, нужно понимать, что устройство 380 обновления может разрешать стороннему приложению 40 влиять на глобальные элементы сайта. Это может включать получение и задание таких атрибутов, как текущая страница веб-сайта, текущая мини-страница в контейнере, который содержит стороннее приложение 40, а также история просмотра страниц. Устройство 380 обновления может при это фильтровать или ограничивать подобные запросы.
[00140] Устройство 380 обновления может также обеспечивать возможность, для системы 30 для построения веб-сайта, влиять на визуальный облик и отображение стороннего приложения 40. Устройство 380 обновления может совершать вызовы, при помощи которых система 30 для построения веб-сайта может предоставлять указания по форматированию и стилям в стороннее приложение 40. Они могут включать следующие
свойства: цвета и цветовые схемы; шрифты; размер символов; прозрачность; анимация и спецэффекты (например, размытие). В частности, цветовая схема может включать стандартную цветовую схему (например, использование следующих х цветов), или цвета высокого уровня (например, использование цвета х для текста и цвета у для рамок).
[00141] Нужно понимать, что одним из предпочтительных способов представления составной информации о стилях, является применение каскадных таблиц стилей (Cascading Style Sheets, CSS), позволяющих представить комбинацию из множества указаний по стилю, включающих шрифты, размеры, цвета и т.п. Устройство 380 может передавать подобные сообщения, основанные на CSS в стороннее приложение 40. Таблицы стилей могут быть общими по своему характеру или могут включать конкретные имена типов, определенных в стороннем приложении 40, благодаря чему система 30 для построения веб-сайта может предоставлять в стороннее приложение 40 более точные указания (например, таблица стилей может относиться к конкретным элементам 40 стороннего приложения 40 и содержать указания именно для них).
[00142] Стороннее приложение 40 может затем применять эти указания для более эффективной адаптации собственного визуального облика к вмещающей веб-страницей 203. Это особенно важно для сторонних приложений 40, входящих состав или отображаемых на множестве вмещающих веб-страниц 203 на одном веб-сайте (упомянутое выше многопортовое включение). В подобном множестве вмещающих страниц могут применяться различные цветовые схемы или общий дизайн. Стороннее приложение 40 может использовать информацию, предоставленную ему при помощи таких сообщений о стиле, и адаптировать цвета и стили своего отображения, чтобы лучше подходить для каждой из вмещающих страниц, что позволяет исключить отображения несогласующихся цветовых схем или оформления интерфейса.
[00143] Нужно понимать, что устройство 360 обновления динамической верстки может обеспечивать возможность взаимодействия между системой для построения веб-сайта и сторонним приложением 40 или между двумя сторонними приложениями при управлении изменениями в отображении в результате события динамической верстки. Система 30 для построения веб
сайта может изменять размер и положение компонентов на странице, чтобы сохранить дизайн страницы в случае наступления событий, модифицирующих некоторые из компонентов страницы. Такие события динамической верстки могут включать, например: просмотр веб-сайта на экранах различных размеров; поворот дисплейного устройства и переход его из портретного в горизонтальный режим; изменение размера или положения некоторых из компонентов и изменение содержимого заданных компонентов (если это требует изменения их размера). Событие динамической верстки может также включать обновление компонента в результате обновления серверного контента - например, при отображении информации из интернет-канала, или в результате изменения содержимого, выполненного другими пользователями, также использующими данный веб-сайт в текущий момент. Также нужно понимать, что события динамической верстки могут происходить как в окружении проектирования веб-сайта, так и в его рабочем окружении. А именно, некоторые компоненты и сторонние приложения 40 могут допускать изменение содержимого или изменение размера/положения при его фактической работе (т.е. конечными пользователями), а не только веб-дизайнером.
[00144] Также, нужно понимать, что событие динамической верстки может быть также вызвано сторонним приложением 40. К примеру, стороннее приложение 40 интернет-магазина, может требовать изменения размера, когда пользователь переходит от отображения каталога продукции к просмотру корзины покупок (имеющей отличающийся размер). В качестве другого примера, стороннее приложение 40, реализующее каталог товаров, может включать опцию выделения товаров, которая может включать отображения для них более крупной страницы каталога с расширенным содержанием. Третьим примером является многообластное стороннее приложение 40 которое может включать и отключать отображение дополнительных областей.
[00145] В существующих системах такие ситуации (если они вообще возможны) обрабатывают, урезая отображение сторонних приложений, добавляя к нему полосы прокрутки или простым изменением его размера, с отображением в качестве плавающего окна, которое перекрывает остальные компоненты страницы, в соответствии с иллюстрацией фиг. 6, о которой
пойдет речь далее. Устройство 360 обновления динамической верстки может реализовывать совместную динамическую верстку, при которой система 30 для построения веб-сайта и сторонние приложения 40 взаимодействуют при выполнении динамической верстки, сохраняя общий дизайн вмещающей веб-страницы 203. Функциональность динамической верстки более подробно описана в заявке на патент США №13/771119, зарегистрированной 20 февраля 2013, также за авторством создателей настоящей заявки. Однако, даже в системах с поддержкой совместной динамической вертки механизм динамической верстки на вмещающей веб-странице 203 не обладает полным контролем над внутренней версткой стороннего приложения 40. При этом виджеты системы 30 для построения веб-сайта могут проектироваться таким образом, чтобы допускать изменение их размеров произвольным образом (в заданном диапазоне), однако сторонние приложения 40 могут не поддерживать произвольное изменение размеров. Стороннее приложение 40 может обеспечивать, например, любую комбинацию следующего: набор конфигураций отображения, имеющих различных размер (например, с отображением большего или меньшего количества деталей); возможность изменения размера его внутренних элементов, а также возможность отображения некоторых из его внутренних текстовых элементов с использованием множества размеров шрифтов.
[00146] Стороннее приложение 40 может при этом обеспечивать ограниченный набор размеров отображения или может иметь полный диапазон возможных размеров. Соответственно, запрос на изменение размера, в направлении от вмещающей веб-страницы 203 в стороннее приложение 40, может быть разрешен переключением стороннего приложения 40 к ближайшему доступному размеру или предоставлением списка возможных размеров стороннего приложения 40 (что позволяет системе 30 для построения веб-сайта выбрать подходящий размер для использования).
[00147] Устройство 360 обновления динамической верстки может реализовывать, в направлении от вмещающей веб-страницы 203 к стороннему приложению 40, совместную динамическую верстку с использованием описанной ниже последовательности операций:
[00148] Например, может быть необходимо изменить размер стороннего приложения 40, встроенного на вмещающую веб-страницу 203, до заданного (например X1*Y1 пикселей). Устройство 360 обновления динамической верстки может передавать в стороннее приложение 40 сообщение с запросом на изменение, сторонним приложением 40, своего содержимого до заданного размера (X1*Y1). Стороннее приложение 40 может адаптироваться к этому размеру, с помощью альтернативной конфигурации отображения, изменения внутреннего размера, внутреннего управления динамической версткой или другими средствами. Также, нужно понимать, что вмещающая веб-страница 203 может менять размер внешнего окна фрейма iframe, которое содержит стороннее приложение 40, на новый размер (X1*Y1).
[00149] Также, нужно понимать, что стороннее приложение 40 может допускать изменение размера только с ограниченным набором возможных размеров (например, конкретными конфигурациями пользовательского интерфейса). Соответственно, устройство 360 обновления динамической верстки может использовать описанный ниже альтернативный алгоритм, который позволяет стороннему приложению 40 предоставлять набор возможных размеров.
[00150] Если размер вмещающей веб-страницы 203 изменяют, устройство 360 обновления динамической верстки передает в стороннее приложение 40 сообщение с запросом на изменение, сторонним приложением 40, своего содержимого до заданного размера (X1*Y1). Стороннее приложение 40 после этого определяет ближайший доступный размер (например, X2*Y2 пикселей) и изменяет свой размер соответствующим образом, применяя альтернативную конфигурацию отображения, изменение внутреннего размера, внутреннее управление динамической версткой или другими средствами. Затем устройство 380 обновления может передавать во вмещающую веб-страницу 203 ответное сообщение, подтверждающее изменение размера и содержащее фактический новый размер (X2*Y2). Также, нужно понимать, что вмещающая веб-страница 203 может менять размер внешнего окна фрейма iframe, которое содержит стороннее приложение 40, на фактический новый размер (X2*Y2). Вмещающая веб-страница 203 может затем выполнять дальнейшее
управление внутренней версткой, исходя из фактического нового размера (X2*Y2).
[00151] Нужно понимать, что может также применяться другой вариант осуществления настоящего изобретения, а именно, если на вмещающей вебстранице 203 размещены несколько сторонних приложений 40 (или многобластное стороннее приложение 40). В данном варианте осуществления настоящего изобретения вмещающая веб-страница 203 может запрашивать, у размещенных на ней сторонних приложений 40, список размеров отображения, благодаря чему впоследствии они могут пытаться оптимизировать внешний облик с учетом множества опций, доступных во множестве сторонних приложений 40. Данный вариант осуществления настоящего изобретения может быть также применим в случае, когда сторонние приложения 40 отображают во множестве различных областей.
[00152] Вмещающая веб-страница 203 может выполнять управление динамической версткой, обнаруживать, что одно или более сторонних приложений 40 (ТРА[1] ... ТРА[п]) размещены на вмещающей веб-странице 203 и что их размер должен быть изменен с использованием следующего алгоритма:
[00153] Цикл по i от 1 до п:
[00154] Для каждого TPA[i] определить
[00155] минимальный размер Xmin[i] *Ymin[i];
[00156] максимальный размер Xmax[i]*Ymax[i];
[00157] оптимальный размер Xopt [i] * Yopt [i].
[00158] Устройство 360 динамического обновления верстки может передавать сообщение в стороннее приложение TPA[i] с информацией о минимальном, максимальном и оптимальном размерах, описанных выше, и запрашивать информацию о возможных размерах стороннего приложения 40.
[00159] Стороннее приложение 40 может предоставлять в устройство 380 динамического обновления массив возможных вариантов своего размера, Xposs[i][j] * Yposs[i][j].
[00160] На основе полученной описанным выше образом информации Xposs[][]/Yposs[][] вмещающая веб-страница может вычислять решение для вычисления динамической верстки с использованием (например) полного
анализа всех возможных размеров сторонних приложений, методов линейного программирования или любых других методов, применяемых в алгоритме динамической верстки.
[00161] Сохранение результатов в массиве Xfinal[i]/Yfinal[i] для всех сторонних приложений.
[00162] Цикл по i от 1 до п:
[00163] Вмещающая веб-страница 203 может затем передавать сообщение об изменении размера в TPA[i], которое содержит окончательный размер Xfinal[i]/Yfinal[i];
[00164] Вмещающая веб-страница 203 изменяет размер внешнего окна фрейма iframe, который содержит стороннее приложение TPA[i], на Xfinal[i]/Yfinal[i];
[00165] Вмещающая веб-страница 203 осуществляет дальнейшее управление внутренней версткой, исходя из фактических новых размеров.
[00166] Нужно понимать, что управление динамической версткой может, как правило, требовать, изменения местоположения сторонних приложений 40, а не только изменения их размеров. Однако стороннее приложение 40 должно быть инвариантно к конкретному местоположению его фрейма на вмещающей веб-странице 203.
[00167] В соответствии с предшествующим описанием, стороннему приложению может также быть необходимо время от времени изменять размер окна своего отображения. Поскольку размером окна, в котором отображается фрейм iframe управляет основная страница (т.е. вмещающая веб-страницей 203), изменение размера окна стороннего приложения 40 должно выполняться вмещающей веб-страницей 203, с запросом, от стороннего приложения 40 (через устройство 360 динамического обновления), к вмещающей веб-странице 203 на изменение размера окна.
[00168] Также нужно понимать, что стороннее приложение 40 может также запрашивать (через устройство 360 обновления динамической верстки) изменение своего местоположения на вмещающей веб-странице 203. Это может не оказывать влияния на внутреннюю структуру стороннего приложения 40 (в отличие от изменения размера), однако требует изменения отображения на вмещающей веб-странице 203. Устройство 360 обновления динамической верстки может интегрировать этот запрос с динамической
версткой. Вмещающая веб-страница 203 может задействовать устройство 360 обновления динамической верстки для изменения размера окна стороннего приложения 40 (и, возможно, его местоположения) и для передачи подтверждения размера и местоположения обратно в стороннее приложение 40.
[00169] Нужно понимать, что концентратор 205 может также реализовывать дополнительные специальные сообщения, зависящие от класса стороннего приложения 40 или конкретного стороннего приложения 40, при помощи которых собственно система 30 для построения веб-сайта, конкретная вмещающая веб-страница 203 или другое стороннее приложение 40 может влиять на стороннее приложение 40. К примеру, стороннее приложение 40 для ведения блога может определять входящее сообщение, обеспечивающее публикацию новой записи блога, или нового комментария к текущей записи блога. Такое сообщение может применяться вмещающей веб-страницей 203 (например, в качестве метода публикации записей блога из более крупного поля для редактирования текста, расположенного вне области стороннего приложения). Они могут также использоваться для связки между приложениями на более высоким уровне, например, позволять публиковать записи блога в стороннее приложение для ведения блога при помощи вспомогательного стороннего приложения.
[00170] Нужно понимать, что сторонним приложениям 40 часто необходимы множество различных сложных сервисов - либо для внутреннего использования в стороннем приложении 40, либо для использование в дельнейших звеньях цепи обработки данных веб-дизайнерами, которые применяют стороннее приложение 40 на своих вебсайтах. Подобные сервисы могут включать администрирование пользователей, тарификацию и управление доставкой. Поставщик системы 30 для построения веб-сайта не всегда имеет возможность предоставить все подобные сервисы в составе системы для построения веб-сайта (например, по техническим или экономическим причинам). Также, невозможным может быть предоставление подобных сервисов в виде "пакетов" сторонних приложений 40. В дополнение, поставщику 40 сторонних приложений может быть необходима возможность предоставления множества подобных сервисов веб-дизайнерам с использованием стороннего приложения 40
(например, нескольких сторонних API-интерфейсов тарификации), с возможностью выбора, веб-дизайнером 5, подходящего для использования.
[00171] К примеру, в системе 30 для построения веб-сайта может быть предоставлен встроенный API-интерфейс платежной системы Paypal(tm), который может использоваться непосредственно сторонним приложением 40 или может быть предложен, сторонним приложением 40, веб-дизайнеру для использования. Стороннее приложение 40 может также предоставлять на выбор собственные варианты (т.е. использование конкретного типа тарификации, например, однократные платежи, периодические платежи или разделение доходов) и реализовывать эти варианты при помощи вызова встроенного API-интерфейса Paypal.
[00172] Таким образом, веб-дизайнер 5, использующий систему 30 для построения веб-сайта, может формировать конкретные предложения (например, интернет-магазин музыкальных композиций), в которых применяется более сложная тарификация. Веб-дизайнер 5 в таком случае может избежать необходимости формировать конкретное клиринговое соглашение или соглашение о торгово-сервисном обслуживании с поставщиком API-интерфейса тарификации путем использования встроенного API тарификации, либо непосредственно, либо при помощи стороннего приложения 40, предоставляющего дополнительный уровень абстракции. В этом смысле система 30 для построения веб-сайта может функционировать как дистрибьютор услуг для поставщиков строенных API-интерфейсов.
[00173] Обертка 390 встроенного API-интерфейса может обеспечивать подобную связь между различными частями системы (например, системой 30 для построения веб-сайта, кодом встроенного API-интерфейса и включенными сторонними приложениями 40). Нужно понимать, что уровень обертки API-интерфейса и фактическая реализация API-интерфейса могут быть размещены непосредственно в системе 30 для построения веб-сайта или в другом стороннем приложении 40. Поставщик стороннего приложения 40 (или веб-дизайнер 5) может использовать встроенный API-интерфейс при помощи обертки 390 встроенного API-интерфейса, не будучи осведомленным о методе, которым фактически реализован базовый API-интерфейс.
[00174] В одном из альтернативных, дополнительных вариантов осуществления настоящего изобретения авторы настоящей заявки нашли, что интеллектуальная интеграция между системой 30 для построения вебсайта и одним или более сторонними приложениями 40 может быть достигнута при помощи модели интеграции, в которой дополнительные шаблоны и компоненты системы для построения веб-сайта связаны ("ассоциированы") со сторонними приложениями на уровне магазина 25 приложений, что относится также к соответствующим экземплярам сторонних приложений. Стороннее приложение 40 может также взаимодействовать с этими компонентами (а также с не-ассоциированными компонентами), обмениваясь с ними информационными и управляющими сообщениями. В соответствии с предшествующим описанием, области стороннего приложения 40 на вмещающей веб-странице являются отдельными фреймами iframe, содержимое которых может быть размещено в а различных доменах (поставщика сторонних приложений или других доменах), отличающихся от домена размещения основного веб-сайта. Соответственно, связь между различными фреймами iframe ограничена политикой браузера, требующей происхождения данных из одного источника ("same origin policy), и значит, необходимо применение описанных выше методов.
[00175] В существующих системах сторонние приложения 40 реализуют как монолитные, негибкие объекты, которые могут быть помещены на вмещающую веб-страницу 203, однако не могут каким-либо иным образом влиять на внешний облик самой вмещающей веб-страницы 203. Экземпляры сторонних приложений 40 размещают в области (как правило, прямоугольной), при этом стороннее приложение выполняет все свои операции в этой области.
[00176] Авторы настоящей заявки нашли, что такой принцип может быть расширен за счет наличия (опционального) дополнительного шаблона в системе 30 для построения веб-сайта, который связан, или ассоциирован, со сторонним приложением 40 и называется ассоциированным шаблоном, в соответствии с одним из вариантов осуществления настоящего изобретения. Нужно понимать, что такое связывание может выполняться на этапе разработки и публикации стороннего приложения 40, а также может быть
представлено веб-дизайнеру 5 как часть процедуры приобретения и/или выбора стороннего приложения 40 (из магазина 25 приложений) и процедуры создания экземпляра стороннего приложения 40. Координатор 24 сторонних приложений может извлекать шаблон связанный со сторонним приложением 40 (в качестве части хранилища приложений, поддерживаемого магазином приложений 25, или иным образом предоставленным поставщиком сторонних приложений 40), а также может сохранять шаблон в хранилище 22 для дальнейшего использования, в соответствии с последующим более подробным описанием.
[00177] Нужно понимать, что система 100 может поддерживать публикацию сторонних приложений 40, имеющих множество ассоциированных шаблонов, что дает веб-дизайнеру 5 возможность выбирать наиболее подходящий шаблон.
[00178] Нужно понимать, что при создании экземпляра стороннего приложения 40 на любой вмещающей веб-странице 203 компоненты ассоциированного шаблона могут быть объединены с компонентами вмещающей веб-страницы 203 и могут отображаться совместно с остальными компонентами на вмещающей веб-странице 203.
[00179] Обратимся к фиг. 13, на которой проиллюстрирован пример использования ассоциированного шаблона в соответствии с одним из вариантов осуществления настоящего изобретения. В соответствии с иллюстрацией, стороннее приложение [а] находится в магазине [Ь] приложений вместе с ассоциированным шаблоном [с], который включает компоненты [d] и [е]. Нужно понимать, что когда стороннее приложение [а] помещают на вмещающую веб-страницу 203 [f], стороннее приложение [а] может отображаться в выделенной для него области [д] на странице [f], а экземпляры [d'] и [е'] компонентов [d] и [е] могут отображаться на странице [f], вместе с присутствующими исходно компонентами [h] и [i].
[00180] Нужно понимать, что система 100 может поддерживать множество различных способов, которыми экземпляры компонентов из ассоциированного шаблона (например, описанные выше компоненты [d'] b [е']) размещают на вмещающей веб-странице 203 [fj. Эти способы могут включать: абсолютное размещение (т.е. использование размера и позиции, заданных в ассоциированном шаблоне [с] для приложений [d] и [е]);
размещение относительно целевого компонента (т.е. коррекция размера и местоположения новых экземпляров [сГ] и [е'] согласно вмещающей вебстранице 203 [f]); и размещение относительно стороннего приложения 40 (т.е. коррекция размера и местоположения новых экземпляров [сГ] и [е'] относительно размера и местоположения, заданных для экземпляра стороннего приложения [д] на вмещающей веб-странице 203 [f]). Выбор конкретного способа размещения может осуществляться на основе настроечных параметров, входящих в состав ассоциированного шаблона [с], при этом, опционально, веб-дизайнер 5 может их переопределять.
[00181] Нужно также понимать, что веб-дизайнер 5 может изменять экземпляры [d] и [е], наследованные от шаблона [с] и размещенные на странице [f] Изменения могут относиться только к использованию экземпляров [d] и [е] именно на странице [f] (а также, возможно, наследованных от нее страницах в системах 30 для построения веб-сайтов, поддерживающих межстраничное наследование), и не влиять на "исходный" шаблон [с], ассоциированный со сторонним приложением [а] в магазине [Ь] приложений.
[00182] Нужно понимать, что упомянутые выше изменения в экземплярах [d] и [е] могут включать, в частности, присваивание конкретного содержимого (текстового, визуального и т.п.) экземплярам полей, а также обычные изменения атрибутов. Также, нужно понимать, что если стороннее приложение 40 встраивают на мини-страницу, ассоциированный шаблон применяют к конкретной мини-странице, на которую помещают стороннее приложение 40, в соответствии с иллюстрацией фиг. 14, о которой пойдет речь далее. В соответствии с иллюстрацией, стороннее приложение 40 включают на мини-страницу [х], и соответственно, компоненты [с] и [d] будут добавлены на мини-страницу [х], но не на дополнительные мини-страницы [у] и [z] того же многостраничного контейнера [д].
[00183] Также, нужно понимать, что для мини-страниц, представляющих собой разделы веб-сайта, ассоциированные шаблоны (если они имеются) применяют к виртуальной (и пустой) вмещающей вебстранице 203, созданной для размещения стороннего приложения 40.
[00184] В одном из альтернативных вариантов осуществления настоящего изобретения заранее созданный ассоциированный шаблон
может применяться к заново формируемой странице или мини-странице, которая является "параллельной" для вмещающей веб-страницы 203. Эта заново созданная страница или мини-страница может быть инициализирована с использованием шаблона, который впоследствии может быть изменен согласно требованиям.
[00185] Система 30 для построения веб-сайта может также допускать многопортовое включение, при котором один экземпляр стороннего приложения 40 отображается, или "располагается" на нескольких страницах основного веб-сайта. Это отличается от множественного включения некоторого стороннего приложения 40 на основной веб-сайт, при котором создаются множество экземпляров стороннего приложения 40. Содержимое стороннего приложения 40, которое зависит от конкретного экземпляра, является общим для множества представлений ("видов") одного многопортового стороннего приложения 40.
[00186] При подобном многопортовом включении ассоциированный шаблон может применяться независимо для каждой из страниц и мини-страниц, куда добавлен экземпляр стороннего приложения 40.
[00187] В соответствии с предшествующим описанием, система 100 может обеспечивать двустороннюю линию связи между сторонним приложением 40 и компонентами на вмещающей веб-странице 203. Нужно понимать, что это упомянутые компоненты включают компоненты вмещающей веб-страницы 203, полученные в результате слияния с ассоциированным шаблоном стороннего приложения, а также компоненты, не относящиеся ни к какому из ассоциированных шаблонов.
[00188] Следовательно, нужно понимать, что поставщик сторонних приложений 40 может, как правило, создавать набор шаблонов, ассоциированных со сторонними приложениями 40, предоставляемыми этим поставщиком. Эти шаблоны, помимо фактических шаблонов для дистрибуции (т.е. ассоциированных с текущими версиями распространяемых сторонних приложений), могут включать тестовые шаблоны, шаблоны проектирования и другие шаблоны.
[00189] В соответствии с предшествующим описанием, стороннее приложение 40 может распространяться через магазин 25 приложений или может распространяться также по альтернативным каналам, не относящимся
к поставщику системы 30 для построения веб-сайта или не контролируемыми им. Однако ассоциированные шаблоны, распространяемые совместно со сторонним приложением 40, могут быть тесно связаны и интегрированы с хранилищем 22 приложений, поскольку их конструируют с использованием компонентов, базовых шаблонов и других элементов, администрируемых системой 30 для построения веб-сайта.
[00190] При этом может возникать необходимость модификации или удаления независимо распространяемых элементов системы 30 для построения веб-сайта, лежащих в основе ассоциированного шаблона, которые могут "противоречить" ассоциированному шаблону. Для решения этой проблемы в системе 100 такие ассоциированные шаблоны могут быть реализованы в отдельной области (возможно, для каждого поставщика 40) хранилища 22 приложений. Система 30 для построения веб-сайта может администрировать эти шаблоны аналогично всем другим шаблонам системы 30 для построения веб-сайта.
[00191] Также, нужно понимать, что каждому поставщику сторонних приложений 40 может быть выделен уникальный идентификатор (проектировочный идентификатор), присваиваемый каждому создаваемому шаблону, и этот идентификатор может применяться в процессе проектирования и тестирования стороннего приложения 40. Когда стороннее приложение 40 будет готово к публикации, или распространению, поставщику стороннего приложения 40 нужно будет запросить и получить альтернативный уникальный идентификатор (издательский идентификатор), который будет идентифицировать опубликованное стороннее приложение 40. После выдачи издательского идентификатора создают отдельную, заблокированную версию шаблона. На эту копию ссылается стороннее приложение 40, и она используется при создании экземпляров стороннего приложения 40. Таким образом, поставщик стороннего приложения 40 не сможет по ошибке изменить шаблон, ассоциированным с "публичным" сторонним приложением 40 (которое размещают веб-дизайнеры) и гарантируется целостность ссылок. Также при этом система 100 может формировать перекрестные ссылки на основе отношения между блокированными шаблонами и лежащими в их основами компонентами, а также базовыми шаблонами. Эти перекрестные ссылки могут
использоваться, например, для выдачи предупреждений пользователям системы 30 для построения веб-сайта, если компоненты системы 30 для построения веб-сайта или базовый шаблон, входящий в состав подобного блокированного шаблона, будет изменен (и такое изменение может каким-либо образом повредить шаблон или стороннее приложение 40).
[00192] Соответственно, система 100 может обеспечивать каналы двусторонней связи между сторонними приложениями 40, компонентами на вмещающей веб-странице 203 и системой 30 для построения веб-сайта. Компоненты вмещающей веб-страницы 203 могут быть основаны на шаблоне (или шаблонах), ассоциированных со сторонним приложениями, основаны на других шаблонах системы 30 для построения веб-сайта или не зависеть ни от каких шаблонов.
[00193] В соответствии с предшествующим описанием, коммуникационный концентратор 205 может поддерживать эту связь и может обеспечивать обратный канал между вмещающей веб-страницей и любым из сторонних приложений 40. Авторы настоящей заявки нашли, что данные, проходящие в обоих направлениях между вмещающей веб-страницей и любыми из сторонних приложений 40, если их собрать, обработать и интегрировать (объединить), могут иметь полезное применение.
[00194] К примеру, владельцу веб-сайта может быть необходимо вести учет контингента пользователей или участников веб-сайта, которые могут отличаться от базы зарегистрированных пользователей соответствующей системы 30 для построения веб-сайта. Пользователи веб-сайта могут быть зарегистрированными или незарегистрированными (анонимными) при этом сайт может предоставлять различные уровни функциональности для пользователей различных уровней. При этом пользователи часто предоставляют персональную или контактную информацию (даже будучи анонимными), например, данные в форме контакта, при запуске программного обеспечения мгновенного обмена сообщениями для вызова владельца веб-сайта или при входе в социальную сеть, сотрудничающую с данным веб-сайтом. Нужно понимать, что такая информация может быть введена непосредственно на конструируемом веб-сайте, или может быть предоставлена в ходе взаимодействия со сторонними приложениями 40, встроенными на данный веб-сайт.
[00195] Также, нужно понимать, что фрагменты подобной информации могут быть не организованы, не связаны между собой, возможно, противоречивы, и во многих случаях их не сохраняют для дальнейшего использования. К примеру, некоторый пользователь может вводить адрес персональной электронной почты в форму контакта (функционирующую непосредственно на веб-сайте) и адрес рабочей электронной почты в другую форму, форму подписки (которой управляет стороннее приложение 40) в течение одного и того же сеанса.
[00196] При этом подобные "блуждающие" фрагменты информации могут иметь различные разрешения, ограничивающие их использование. К примеру, пользователи, вводящие адрес своей электронной почты в форме подписки понимают, что для них будет сформирована подписка на основе этого адреса электронной почты, а также, вероятно, что они будут получать соответствующую новостную рассылку. С другой стороны, пользователи, предоставляющие адрес своей электронной почты в качестве идентификатора при регистрации не желают получать по нему никаких сообщений, помимо писем, относящихся к управлению учетной записью, предупреждений об угрозах безопасности и т.п.
[00197] Обратимся вновь к фиг. 15, где проиллюстрирована система 200 для координации и сбора данных из различных сообщений, которыми обмениваются система 30 для построения веб-сайта и одно или более встроенных сторонних приложений 40. Система 200 включает клиентский концентратор 210, установленный на стороне клиента 220, и серверный концентратор 230, координатор 240 контактов, координатор 250 активности, базу 245 данных контактов и базу 255 данных активности, установленную на сервер 260. Нужно понимать, что концентраторы 210 и 230 могут обеспечивать связь между системой 30 для построения веб-сайта и множеством сторонних приложений 40, установленных на серверах 270, а также между различными сторонними приложениями 40, в соответствии с предшествующим описанием в отношении концентратора 205. База 245 данных контактов и база 255 данных активности могут содержать контактную информацию и/или информацию об активности, извлеченную из потоков сообщений в соответствии с последующим более подробным описанием.
[00198] Обратимся вновь к фиг 16А, на которой проиллюстрированы элементы клиентского концентратора 210, и к фиг. 16В, на которой проиллюстрированы элементы серверного концентратора 230, координатора 240 контактов и координатора 250 активности. Клиентский концентратор 210 включает маршрутизатор 211, транслятор и адаптер 212, а также устройство 213 исполнения политик конфиденциальности. Серверный концентратор 230 включает маршрутизатор и трекер 231, транслятор и адаптер 232, устройство 233 исполнения политик конфиденциальности, прокси-модуль 234 конфиденциальных данных, а также устройство 235 валидации и подписи. Координатор 240 контактов включает экстрактор 241 данных, обработчик 242 контактов, устройство 243 слияния данных и обработчик 244 данных и разрешений. Координатор 250 активности включает формирователь 251 потока, устройство 252 слияния потоков, формирователь 253 журнала. Функционирование этих элементов будет более подробно рассмотрено ниже.
[00199] Обратимся вновь к фиг. 16С, где проиллюстрированы элементы устройства 252 слияния потоков, и к фиг. 16D, где проиллюстрированы элементы устройства 243 слияния данных.Устройство 252 слияния данных включает устройство 261 слияния "активность-поток" и устройство 262 слияния "поток-поток". Устройство 262 слияния "поток-поток" при этом включает устройство 263 горизонтального слияния потоков и устройство 264 вертикального слияния потоков. Устройство 243 слияния данных включает устройство 272 идентификации контактов, устройство 273 объединения, устройство 274 разрешения противоречий, формирователь 275 списочных значений, устройство 276 вертикального слияния контактов и устройство 277 горизонтального контактов. Устройство 277 горизонтального слияния контактов включает при этом устройство 278 виртуального горизонтального слияния. Устройство 276 вертикального слияния контактов включает при этом устройство 279 виртуального вертикального слияния. Ниже функционирование этих элементов будет рассмотрено более подробно.
[00200] Нужно понимать, что система 200 может обеспечивать возможность передачи сообщений между системой 200 и множеством сторонних приложений 40, а также обеспечивать другую функциональность, включая организацию сообщений об активности в потоки, хранение истории
сообщений об активности, многоуровневую передачу сообщений об активности, использование побочных каналов для сообщений об активности, трансляцию сообщений об активности и адаптацию их содержимого, валидацию и подпись сообщений об активности, а также динамическую маршрутизацию сообщений об активности с использованием запросов на прослушивание в соответствии с приведенным ниже более подробным описанием.
[00201] При этом система 200 может извлекать информацию о пользователях и выполнять ее слияние, объединяя информацию из различных источников, а также информацию, уже присутствующую в системе 200. Это может выполняться при помощи правил слияния, позволяющих согласовать различную и, возможно, противоречивую информацию. Объединенная информация может храниться в базе 245 данных контактов. Эта информация может также включать поля разрешений на использование, при помощи которых управляют допуском к использованию собранной информации, в соответствии с последующим более подробным описанием.
[00202] В альтернативных вариантах осуществления настоящего изобретения и клиентский концентратор 210, и серверный концентратор 230, по отдельности, могут применяться для связи с множеством сторонних приложений 40, установленных на серверах 270. Нужно понимать, что в случае, когда применяют только клиентский концентратор 210, координатор 240 контактов, координатор 250 активности и базы 245 и 255 данных могут быть установлены локально, на стороне соответствующего клиента.
[00203] Также, нужно понимать, что система 200 может включать дополнительные компоненты, дающие сторонним приложениям 40 возможность администрировать операции по контактам с пользователями (например, массовые новостные рассылки) с наложением ограничений, заданных собственно пользователями. Такие компоненты могут даже изолировать конфиденциальные пользовательские данные от стороннего приложения 40, в результате чего сторонние приложения 40 могут выполнять свои операции без фактического доступа к конфиденциальным пользовательским данным. Такая функциональность может быть реализована, например, с использованием прокси-модуля 234 конфиденциальных данных, более подробно рассмотренного ниже.
[00204] Также, нужно понимать, что база 245 данных контактов может зависеть от конкретного веб-сайта. Однако в системе 30 для построения вебсайта может быть определен мета-сайтовый, или проектный, уровень, включающий набор веб-сайтов (принадлежащих одному владельцу) и позволяющий указать, что контакты должны храниться, обрабатываться и объединяться на мета-сайтовом уровне, а не на уровне одного веб-сайта. Другие элементы веб-сайта (например, встроенные сторонние приложения 40) могут также быть определены на мета-сайтовом уровне, а не на уровне одного веб-сайта. Помимо поддержки мета-сайтового уровня, система 200, в общем, не предоставляет контактную информацию в совместный доступ (за описанными ниже исключениями) и не интегрирует контактную информацию различных веб-сайтов или различных владельцев веб-сайтов (чтобы исключить утечку данных, предоставленных конечными пользователями одного сайта, на другие веб-сайты).
[00205] В соответствии с предшествующим описанием, система 200 может поддерживать множественные взаимодействия между системой 30 для построения веб-сайта и одним или более сторонними приложениями 40. Такие взаимодействия могут представлять заранее заданные операции, например, совершение покупки, добавление объекта в корзину, ввод контактной информации и т.п. Стороннее приложение 40 может указывать, какие операции оно поддерживает, а остальные сторонние приложения 40 могут "прослушивать" конкретные операции и действовать в ответ на принятые операции и связанную с ними информацию. Нужно понимать, что список прослушиваемой активности для заданного стороннего приложения 40 может быть назначен явно и включать одну или более операций, или может быть определен при помощи запроса прослушивания активности, в соответствии с последующим более подробным описанием.
[00206] Нужно понимать, что каждая операция может рассматриваться как сообщение, при этом каждое сообщение может включать структуру данных активности. Структуры данных активности - это заранее определенные типы данных, однако они могут также определяться при помощи наследования между ними и при помощи сторонних приложений 40, которые могут давать возможность их расширения с добавлением новых полей. Они могут зависеть от конкретной системы, или быть основаны на
стандартизованных структурах данных, или включать в себя стандартизованные структуры данных. Они могут кодироваться также, как данные XML или JSON, или могут кодироваться с использованием схемы кодирования двоичных объектов.
[00207] Структура данных активности может также включать поле "описание", предоставляемое сторонним приложением 40. Оно представляет собой описание активности, основанное на стороннем приложении 40 (которое может быть более детальным, чем информация, имеющаяся в системе 30 для построения веб-сайта). К примеру, стороннее приложение 40 IP-телефонии может предоставлять следующий текст описания активности: "Позвоните Джону Смиту по номеру 999-555-1234 - 01:15".
[00208] Структура данных активности может также возвратную ссылку, например "дополнительная информация", которая ведет обратно к структуре данных активности. Она может применяться для предоставления дополнительной важной информации, например: для структуры данных активности в приложении интернет-магазина: полная информация по отслеживанию заказа, история заказов и т.п.; для структуры данных активности в приложении чата: полная запись переговоров чате, а для структуры данных активности в приложении телефонии: запись вызова. Таким образом, полная структура данных активности может включать следующие поля: отметка о времени создания; тип активности; источник активности (идентификатор стороннего приложения или компонента); идентификатор потока данных об активности; информация, зависящая от типа активности (различная для каждого типа активности); идентификатор исходного веб-сайта; идентификатор базы данных участников веб-сайта; идентификатор или URL страницы веб-сайта, на которой произошла данная активность; описание активности, предоставленное сторонним приложением 40; ссылка на более подробную информацию для использования сторонним приложением 40 и захваченная информация о пользователях, и т.п.
[00209] Координатор 250 активности может рассматриваться как журналирующий элемент, который может принимать данные из пропускаемых сообщений от концентратора 230. Формирователь 251 потока может создавать исходный поток, который может рассматриваться как
журнало-подобная или списко-подобная структура, а устройство 252 слияния потоков может добавлять в нее любую дополнительную входную информацию об активности, причем каждый поток является уникальным для отдельного контактного лица. Нужно понимать, что формирователь 251 потока не может создавать новый поток для всех отдельных операций, информация о которых содержится в различных сообщениях об активности. Также, нужно понимать, что информация об активности в потоке может иметь неправильную последовательность (например, стороннее приложение 40 может сообщать об активности с задержкой). Устройство 252 слияния потоков может, при функционировании, выполнять слияние потоков, если они принадлежат одному и тому же одиночному контактному лицу, а формирователь 253 журнала может сохранять журнальный файл в базу данных 255 потока данных об активности все ранее созданных потоков данных об активности.
[00210] В соответствии с предшествующим описанием в отношении фиг. 16С, устройство 252 слияния потоков включает устройство 261 слияния "активность-поток" и устройство 262 слияния "поток-поток". Устройство 261 слияния "активность-поток" может связывать данные об активности с потоком, который относится к идентифицированному контактному лицу, а устройство 262 слияния "поток-поток" может преобразовывать два отдельных потока в один поток. Устройство 263 горизонтального слияния может выполнять слияние двух несвязанных потоков на основе обнаруженных одинаковых первичных идентификаторов, а устройство 264 вертикального слияния может выполнять слияние потока, созданного для анонимного контактного лица, с потоком, связанным с зарегистрированным пользователем, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица. Нужно понимать, что устройство 252 слияния потоков может, при необходимости, выполнять доступ к ранее созданным потокам в базе 255 данных.
[00211] К примеру, анонимный пользователь может заполнить на вебсайте форму обратной связи. Формирователь 251 потока может создать новый поток данных об активности (с идентификатором "аноним 1"), а обработчик 242 контактов может создать новое контактное лицо (с идентификатором "аноним 1", в соответствии с последующим более
подробным описанием). Затем тот же самый пользователь может использовать чат для общения с владельцем веб-сайта. Устройство 252 слияния потоков может объединить эту активность с потоком данных об активности "аноним 1", а контактное лицо "аноним 1" может быть обновлено (в соответствии с последующим более подробным описанием). Затем тот же пользователь, с помощью другого браузера, может заполнить форму планирования. Поскольку корреляции с исходным пользователем нет, формирователь 251 может создать новый поток активности с идентификатором "аноним 2", а обработчик 242 контактов может создать новое контактное лицо с идентификатором "аноним 2".
[00212] Затем тот же пользователь может совершить покупку с вебсайта. Устройство 252 слияния потоков объединяет новую активность с потоком данных об активности "аноним 2", при этом также может быть обновлено контактное лицо "аноним 2" (например, может быть добавлен тег "покупатель").
[00213] Пользователь, с помощью еще одного браузера, может зарегистрироваться на данном веб-сайте. При регистрации все пользователи получают идентификатор "пользователь х" от устройства управления зарегистрированными пользователями на данном веб-сайте. В этот момент времени формирователь 251 потока может создать новый поток данных об активности (с идентификатором "пользователь х"), а обработчик 252 контактов может создать новое контактное лицо (с тем же идентификатором "пользователь х").
[00214] Затем пользователь возвращается к предыдущему браузеру и продолжает чат с владельцем веб-сайта. Поскольку на веб-сайте нет куки-файла, формирователь 251 потока может создать еще один новый поток с идентификатором "аноним 3", а обработчик 242 контактов может создать новое контактное лицо "аноним 3".
[00215] Затем пользователь может выполнить вход в учетную запись веб-сайта. В этот момент будут существовать контактные лица с идентификаторами "аноним 3" и "пользователь х". Устройство 243 слияния данных может выполнять слияние контактных лиц "аноним 3" и "пользователь х", в результате чего операция входа в учетную запись в потоке "пользователь х" и операция входа в учетную запись для контактного
лица "пользователь х", будут указывать одновременно на потоки "пользователь х" и "аноним 3". Устройство 252 слияния потоков может выполнить объединение всей дополнительной активности, совершенной в текущем сеансе пользователем, в поток данных об активности "пользователь х". Формирователь 253 журнала может журналировать все данные об активности из потоков и сохранять копию журнала в базу 255 данных активности.
[00216] Нужно понимать, что владелец веб-сайта может иметь доступ к истории потоков данных об активности для заданных контактных лиц через соответствующий пользовательский интерфейс, предоставляемой системой 30 для построения веб-сайта, в соответствии с иллюстрацией фиг. 17, о которой пойдет речь далее. Для одного из контактных лиц, Дэни Бронштейна, без труда может быть получена история его работы с веб-сайтом. При этом нужно понимать, что система 30 для построения веб-сайта или стороннее приложение 40 могут также предоставлять API-интерфейс для доступа к журналированной информации. Нужно понимать, что журнал активности может применяться для оптимизации, усовершенствования пользовательского интерфейса, таргетирования рекламы и т.п.
[00217] Также, нужно понимать, что параллельно с этим координатор 240 контактов может отбирать информацию из данных, предоставляемых в потоках (или сообщениях) об активности и формировать профиль контактного лица для каждого конкретного пользователя. Экстрактор 241 данных может извлекать данные из сообщений об активности и потоков данных об активности, устройство 243 слияния данных может объединять соответствующие данные с конкретным контактным лицом, информация о котором может храниться в базе 245 данных или может быть получена из нее. Обработчик 242 контактов может создавать новые контактные лица, обрабатывать идентификаторы пользователей веб-сайта, анонимных пользователей или других пользователей, а обработчик 244 данных и разрешений может управлять защитой конфиденциальности и правами доступа к соответствующим данным. В соответствии с предшествующим описанием, устройство 243 слияния данных может включать устройство 277 горизонтального слияния контактов и устройство 276 вертикального слияния контактов. Устройство 277 горизонтального слияния может выполнять
слияние двух несвязанных контактных лиц на основе обнаруженных одинаковых первичных идентификаторов, а устройство 276 вертикального слияния контактов может выполнять слияние анонимного контактного лица с контактным лицом, которое связано с зарегистрированным пользователем, после входа в учетную запись или регистрации, позволяющих объединить эти два контактных лица. Устройство 277 слияния контактов может также включать устройство 278 виртуального горизонтального слияния контактов для поддержания двух контактных лиц в качестве отдельных, однако с их сцеплением между собой, при котором их помечают, как представляющие одно и то же контактное лицо, со слиянием фактической контактной информации или без него. Устройство 275 вертикального слияния контактов может при этом включать устройство 279 виртуального вертикального слияния контактов для поддержания анонимного контактного лица и контактного лица, связанного с зарегистрированным пользователем, в качестве отдельных, однако с их сцеплением между собой, при котором их помечают, как представляющие одно и то же контактное лицо, со слиянием фактической контактной информации или без него. Устройство 243 слияния данных может также выполнять слияние контактной информации (как правило, извлеченной экстрактором 241 данных) с существующим контактным лицом. Нужно понимать, что устройство 272 идентификации контактов может отслеживать пользовательские идентификаторы с использованием куки-файлов и может распознавать контактные лица для слияния в соответствии с последующим более подробным описанием.
[00218] Обратимся снова к фиг. 15, 16А и 16В. Передача сообщений может выполняться на стороне клиента 220, на стороне сервера 260 или на обеих сторонах. Нужно понимать, что сторонние приложения 40 могут, в общем случае, иметь элемент клиентской стороны, а также элемент серверной стороны, или по меньшей мере соединение со стороной сервера, например, соединение с сервером 270 поставщика стороннего приложения 40. Концентратор 210 может обрабатывать все сообщения между клиентом 220 и сторонними приложениями 40, а концентратор 230 между сервером 260 и сторонними приложениями 40. Нужно понимать, что данные, принятые концентратором 210 могут быть обработаны и перенаправлены в
концентратор 230 для дальнейшей обработки, в соответствии с последующим более подробным описанием.
[00219] Обратимся к фиг. 18, на которой проиллюстрирован один из возможных сценариев передачи сообщений между различными платформами. Клиентская машина X пользователя может быть соединена (t) с системой 30 для построения веб-сайта на сервере Y. Система 30 для построения веб-сайта может быть реализована с использованием клиентского компонента А' системы 30 для построения веб-сайта и серверного компонента А системы 30 для построения веб-сайта. При отображении конструируемого веб-сайта он может включать элементы клиентской стороны (данные и/или код) В' и элемент В серверной стороны. Конструируемый веб-сайт может также включать три сторонних приложения 40 - ТРА1, ТРА2 и ЕТРАЗ.
[00220] Стороннее приложение ТРА1 может быть реализовано с использованием компонента D' на стороне клиента и компонента D на стороне сервера, который имеет соединение с поставщиком Н стороннего приложения ТРА1. Стороннее приложение ТРА2 может быть реализовано с использованием компонента Е' на стороне клиента и компонента Е на стороне сервера, который имеет соединение с поставщиком I стороннего приложения ТРА1. Стороннее приложение ЕТРАЗ, однако, может быть сторонним приложением 40, размещенным исключительно на стороне сервера и реализованным с использованием компонента G серверной стороны, который имеет соединение с внутренним интерфейсом F поддержки сторонних приложений 40 в системе 30 для построения веб-сайта. И упомянутый компонент, и система могут осуществлять связь с сервером J поставщика стороннего приложения 40.
[00221] Нужно понимать, что сторонние приложения ТРА1 и ТРА2 могут обмениваться сообщениями на стороне клиента (между компонентами D' и Е'), на сервере (между компонентами D и Е), или на обеих сторонах одновременно. Однако связь со сторонним приложением ЕТРАЗ возможна только на стороне сервера. Также, нужно понимать, что каждый из этих методов имеет собственные преимущества и недостатки. Передача сообщений об активности на стороне клиента может обеспечивать большую степень интерактивности и более быстрый пользовательский отклик.
Передача сообщений об активности на стороне сервера может быть более эффективной, надежной (например, пользователь не сможет закрыть окно браузера в ходе процедуры), гарантировать правильный порядок приема сообщений и обеспечивать возможность передачи сообщений об активности в бэкендовые сторонние приложения 40, установленные на сервере или в панели управления приложениями. Нужно понимать, что подобные бэкендовые сторонние приложения 40 вообще не представлены на стороне клиента.
[00222] Примером использования множества сторонних приложений 40 может служить сценарий, в котором пользователь добавляет товар в корзину в стороннем приложении А (такая активность имеет тип "изменение корзины"). Стороннее приложение А может затем передавать сообщение об активности, с информацией о добавленном товаре, в систему 30 для построения веб-сайта. Система 30 для построения веб-сайта может затем пересылать информацию об активности во все сторонние приложения 40, зарегистрированные для "прослушивания" изменений корзины. Поскольку стороннее приложение В зарегистрировано, оно принимает данную информацию об активности. Стороннее приложение В может затем отображать пользователю сообщение, например: "Если вы добавите в корзину товар X, вы получите скидку" или "Расскажите о данном сайте друзьям и получите скидку".
[00223] Другой пример - это когда пользователь выбирает опцию "мне нравится" (например, через социальную сеть Facebook) для некоторого элемента в стороннем приложении А. Стороннее приложение А может затем передавать сообщение об активности в систему 30 для построения вебсайта, типом активности которого будет "мне нравится для Facebook". Система 30 для построения веб-сайта может затем пересылать информацию об активности во все сторонние приложения 40, зарегистрированные для "прослушивания" операций типа "мне нравится". Поскольку стороннее приложение В зарегистрировано, оно принимает данную информацию об активности. Стороннее приложение В может отображать пользователю виджет с повторным приглашением для пользователя и отображать соответствующее сообщение, например, "если вам нравится этот веб-сайт,
может быть, вы хотите связаться с его владельцем?", или "Не хотите ли получить купон на скидку?".
[00224] В соответствии с предшествующим описанием, вся связь может осуществляться через концентраторы 210 и 230.
[00225] Маршрутизатор 211 может обеспечивать маршрутизацию сообщений, на стороне клиента, между веб-сайтом и всеми сторонними приложениями 40. Маршрутизатор 211 может также обеспечивать маршрутизацию сообщений между концентратором 210 и концентратором 230 для дальнейшей обработки, в соответствии с последующим более подробным описанием.
[00226] Маршрутизатор и трекер 231 может обеспечивать маршрутизацию сообщений между веб-сайтом и любыми из сторонних приложений 40, а также может отслеживать сообщения. Нужно понимать, что сторонние приложения 40 могут также прослушивать сообщения, как на стороне клиента, так и на стороне сервера. Также, нужно понимать, что стороннее приложение 40 явно указывать один или более типов активности для прослушивания, например, прослушивать все операции типа "добавление товара в корзину покупок". Стороннее приложение 40 может также явно указывать классы активности для прослушивания, например, прослушивать всю активность, связанную с Facebook. Также, стороннее приложение может включать выражение с подстановочными знаками (применяемое к наименованию активности), которое может применяться для определения, следует ли передавать информацию об активности в стороннее приложение или нет.
[00227] Также нужно понимать, что в стороннем приложении 40 может применяться запрос на прослушивание активности. Такой запрос может относиться к дополнительной системной информации, включающей информацию обычно недоступную собственно стороннему приложению, например: атрибуты пользователя (например, только зарегистрированные пользователи, только пользователи из Европы и т.п.), атрибуты или информация о структуре веб-сайта (например, прослушивание заданной активности только на страницах, наследованных от заданного шаблона страницы), истории пользовательских операций (например, прослушивание операций по платежам, связанным с корзиной покупок, только если
пользователь ранее совершил покупки на общую сумму, превышающую X) и т.п. Такой запрос может формироваться сторонним приложением 40, однако может также допускать редактирование веб-дизайнером.
[00228] Таким образом, маршрутизатор и трекер 231 может также отслеживать сообщения, которые прослушиваются сторонним приложением 40. Нужно понимать, что подобная архитектура запросов на прослушивание активности может быть наиболее эффективно реализована на уровне маршрутизации сообщений об активности (вместо реализации с помощью API-вызова внутри стороннего приложения 40), поскольку тогда веб-дизайнер будет иметь возможность подстройки и персонализации, без того, чтобы сторонние приложения 40 обеспечивали высокую степень программируемости и персонализации. Маршрутизатор и трекер 231 могут также способствовать сохранению конфиденциальности пользовательских данных, поскольку от веб-дизайнера не требуется предоставление дополнительной информации (нужной для принятия решений по маршрутизации) в задействованные сторонние приложения 40. Это также позволяет исключить излишние обращения к сторонним приложениями 40, которые зачастую размещаются на различных серверах.
[00229] Нужно понимать, что пользователем (посетителем веб-сайта) является лицо, которое заходит на веб-сайт, регистрируется на нем и передает на него информацию. Пользователь может быть не осведомлен о том, что веб-сайт, к которому он или она осуществляет доступ, построен с использованием комбинации системы 30 для построения веб-сайта, компонентов, созданных веб-сайтов и сторонних приложений 40. Таким образом, ответственность за конфиденциальность пользовательских данных в конечном счете лежит на плечах владельца веб-сайта (который также отвечает за действия сторонних приложений 40, включенных в состав его или ее веб-сайта).
[00230] Также, нужно понимать, что доступ к информации пользовательских профилей сторонними приложениями 40 (или другими компонентами системы 30 для построения веб-сайта) может осуществляться на основе правил конфиденциальности, определенных системой 30 для построения веб-сайта, через API-интерфейс, предоставленный системой 30 для построения веб-сайта. При этом, также, вмещающий веб-сайт, как и
размещенные на нем сторонние приложения 40, могут использовать полученную контактную информацию для связи с пользователем (по электронной почте или иным образом).
[00231] Нужно понимать, что возможны три следующие основные угрозы конфиденциальности данных. Первая - взаимодействие веб-сайта и системы 30 для построения веб-сайта с поставщиком сторонних приложений 40. Веб-сайт (и система 30 для построения веб-сайта) не могут полностью доверять стороннему приложению 40 обработку пользовательских данных, например, нельзя гарантировать, что стороннее приложение 40 не будет осуществлять массовую почтовую рассылку (с использованием предоставленных веб-сайтом адресов электронной почты), рассылать нежелательные сообщения ("спам") пользователям, запросившим удаление из списка рассылки, или не передаст персональную информацию пользователей посторонним лицам. Однако подобные проблемы могут быть решены описанными ниже способами.
[00232] Поставщик системы 30 для построения веб-сайта может требовать чтобы поставщики 40 сторонних приложений подписывали соглашение об условиях использования информации (Terms of Use, ToU) перед тем, как им будет предоставлен доступ к рынку приложений для системы 30 для построения веб-сайта. В подобном соглашении может быть указано, что стороннее приложение 40 (и поставщик стороннего приложения 40) обязуется неправомерно не использовать и не распространять пользовательскую информацию. Поставщик системы 30 для построения вебсайта может затем налагать на поставщика стороннего приложения штрафные санкции в случае неправомерного использования им информации (например, блокировать стороннее приложение 40, удалять стороннее приложение 40 с рынка приложений системы 30 для построения веб-сайта и т.п.) Устройства 213 и 233 исполнения политик конфиденциальности, а также прокси-модуль 234 конфиденциальных данных могут обеспечивать исполнение политик конфиденциальности сторонними приложениями 40, в соответствии с последующим более подробным описанием.
[00233] Второй угрозой конфиденциальности является взаимодействие веб-сайта и системы 30 для построения веб-сайта с пользователем (посетителем сайта). Веб-сайт должен обеспечить пользователю четкое
понимание того, как его или ее персональные данные могут использоваться, получить согласие пользователя и выполнять, со своей стороны, соответствующее соглашение. Система 30 для построения веб-сайта требует, чтобы все публичные веб-сайты предоставляли пользователю документ соглашения об условиях использования (ToU), в котором определены допустимые операции с конфиденциальной пользовательской информацией, при этом от пользователя требуется электронная подпись этого документа. Затем веб-сайт должен выполнять требования соглашения и использовать данные соответственно. Система 30 для построения вебсайта может дополнительно включать пример страницы с соглашением ToU в каждом предоставляемом ей шаблоне веб-сайта. Устройства 213 и 233 исполнения политик конфиденциальности могут обеспечивать исполнение условий, перечисленных в документе соглашения ToU. Устройства 213 и 233 исполнения политик конфиденциальности могут также гарантировать, при помощи удаления или переконфигурирования соответствующих данных, что в сторонние приложения будет передаваться только разрешенная информация.
[00234] Третьей угрозой конфиденциальности является поддержка запросов на отмену подписки. Веб-сайт должен предоставлять пользователю опцию для отмены подписки на рекламную почтовую рассылку. Это может обеспечиваться обработчиком 244 данных и разрешений, в соответствии с последующим более подробным описанием.
[00235] Обработчик 244 данных и разрешений может также обрабатывать различные пользовательские разрешения, заданные различными пользователями, в соответствии с последующим более подробным описанием.
[00236] Прокси-модуль 234 конфиденциальных данных может обеспечивать, для системы 30 для построения веб-сайта (и веб-сайтов, созданных с ее помощью), хранение всех конфиденциальных данных, или их части, в защищенном хранилище, которое администрируется системой 30 для построения веб-сайта, и может присваивать сторонним приложениям альтернативные уникальные идентификаторы (для использования вместо конфиденциальных данных), при помощи которых скрытые конфиденциальные данные могут быть получены системой 30 для
построения веб-сайта). Например, адрес электронной почты может быть заменен на альтернативный "идентификатор адреса электронной почты", который передают в стороннее приложение 40, чтобы стороннее приложение 40 не имело доступа к реальному адресу электронной почты.
[00237] Прокси-модуль 234 конфиденциальных данных может при этом обеспечивать набор интерфейсов для различных методов связи (например, электронная почта, сообщения социальных сетей и т.п.), которые могут применяться сторонними приложениями 40 для связи, или передачи сообщений, пользователю без фактического доступа сторонних приложений 40 к конфиденциальным данным, связанным с этим пользователем. Такие конфиденциальные данные могут включать любую идентификационную информацию, позволяющую связаться с пользователем, включая, например: имя, адрес, электронная почта, телефон (включая SMS/MMS), унифицированный идентификатор связи (Skype и т.п.) или идентификатор социальной сети.
[00238] Прокси-модуль 234 конфиденциальных данных может, таким образом, исполнять ограничения, заданные в поле пользовательских разрешений, обеспечивать исполнение пользовательских запросов на отмену подписки и регулировать передачу сообщений пользователям, например, пропускать не более 100 сообщений электронной почты в день для заданного стороннего приложения 40, функционирующего на заданном веб-сайте. Прокси-модуль 234 конфиденциальных данных может определять параметры представительства в отношении конфиденциальных данных, а также, какие конфиденциальные данные могут быть открыты стороннему приложению, а какие - скрыты, для каждого из сторонних приложений 40 или для каждого отдельного поля данных.
[00239] Для сторонних приложений 40, размещенных на серверах системы 30 для построения веб-сайта, прокси-модуль 234 конфиденциальных данных может выдавать альтернативный уникальный идентификатор, аналогичный по форме исходным конфиденциальным данным (например, предоставлять альтернативный фиктивный адрес электронной почты вместо исходного адреса персональной электронной почты) и затем "перехватывать" вызовы, требующие применения этой информации, и перенаправлять сообщение электронной почты (в этом
примере) на правильный адрес. Тот же метод может применяться для выявления нарушений, сторонними приложениями 40, предоставленных им прав.
[00240] Нужно понимать, что владельцу веб-сайта может быть необходимо предоставлять ограниченную или модифицированную информацию в любое из конкретных сторонних приложений 40. Причинами тому могут быть общие соображения безопасности, конкретные обязательства по конфиденциальности в отношении каких-либо элементов пользовательских данных или регулятивные требования, относящиеся к конкретной отрасли или к конкретному приложению. Устройства 213 и 233 исполнения политик конфиденциальности могут реализовывать подобные изменения, внесенные владельцем веб-сайта, а также замещать текущие настройки.
[00241] Одним из примеров может быть веб-сайт, работающий с медицинской информацией, для которого может быть необходимо блокировать некоторые персональные данные в контактной информации при передачи ее в стороннее приложение 40, выполняющее общий анализ географического распределения пользователей. В другом примере стороннее приложение 40 может некорректно работать с некоторыми типами контактной информации. Владельцу сайта, которому необходимо далее использовать такое стороннее приложение 40 (несмотря на известную ошибку), может потребоваться фильтрация контактов, вызывающих известную ошибку, или изменение этих данных таким образом, чтобы исключить появление этой ошибки.
[00242] Трансляторы и адаптеры 212 и 232 могут применять заранее заданные правила трансляции сообщений и адаптации контента. Каждое такое правило может включать условия, например: стороннее приложение (или приложения) 40, к которым оно применимо, критерии фильтрации для отбора сообщений, к которым оно применимо, правило трансформации (например, отбрасывание заданного сообщения, если оно относится к заданному стороннему приложению 40) или применение трансформации к заданному полю (или полям) в структуре данных активности.
[00243] Таким образом, концентраторы 210 и 230 могут предоставлять различные версии структур данных активности в различные сторонние
приложения 40 (или не предоставлять их вовсе), согласно с указаниями, предоставленными владельцем веб-сайта.
[00244] Соответствующая система 30 для построения веб-сайта может также поддерживать валидацию и подпись сообщений, для защиты системы от ошибок и попыток взлома (например, от атак типа "человек посередине", направленных на подмену данных полезной нагрузки сообщений стороннего приложения 40). Для этого каждое стороннее приложение 40, зарегистрированное в системе 30 для построения веб-сайта может иметь два набора публичных/частных ключей: один, используемый для декодирования сообщений, переданных из стороннего приложения 40 в систему 30 для построения веб-сайта (приемный ключ), и другой, используемый для кодирования сообщений, переданных из системы 30 для построения вебсайта в стороннее приложение 40 (передающий ключ).
[00245] К примеру, стороннее приложение А может передавать сообщение в систему 30 для построения веб-сайта. Это сообщение может быть передано с использованием идентификатора стороннего приложения, используемого на веб-сайте, т.е. внешнего идентификатора стороннего приложения (из диапазона идентификаторов сторонних приложений), и может быть подписано сторонним приложением. Система 30 для построения веб-сайта может принимать это сообщение. Устройство 235 валидации и подписи может выполнять валидацию подписи с использованием приемного ключа стороннего приложения А. Если валидация неуспешна, устройство 235 валидации и подписи может передавать отчет о том, что поступившее сообщение является некорректным, и сообщение не будет передано далее.
[00246] Устройство 235 валидации и подписи может транслировать внешний идентификатор, связанный с сообщением, во внутренний идентификатор веб-сайта. Устройство 235 валидации и подписи позволяет гарантировать что каждое сообщение будет получено только нужным сторонним приложением (или приложениями) 40.
[00247] К примеру, для каждого из сторонних приложений В1...Вп устройство 235 валидации и подписи может находить внешний идентификатор стороннего приложения В. Затем устройство 235 валидации и подписи может формировать сообщение для стороннего приложения В и передавать в трансляторы и адаптеры 212/232 инструкцию о необходимости
применения всех применимых правил фильтрации и трансформации, в соответствии с предшествующим описанием. Устройство 235 валидации и подписи может затем подписывать сообщение с использованием передающего ключа для стороннего приложения В и передавать это сообщение в стороннее приложение В через маршрутизатор и трекер 231 (или маршрутизатор 211). Стороннее приложение В может затем принимать это сообщение и выполнять валидацию подписи. Если текущая валидация завершается неуспешно, формируют отчет о том, что данное сообщение является не корректным, и оно более не обрабатывается. Нужно понимать, что устройство 235 валидации и подписи может обрабатывать данные только на стороне сервера, а не на стороне клиента, чтобы исключить передачу секретных данных валидации недоверенному клиенту.
[00248] В соответствии с предшествующим описанием, в системе 200 может применяться множество типов связи между системой 30 для построения веб-сайта и сторонними приложениями 40. Связь может включать, например, управляющую связь, например, выдачу, системой 30 для построения веб-сайта команды на отключение стороннего приложения 40, функциональную связь, например, передачу из стороннего приложения 40, представляющего собой корзину покупок, общей суммы покупок через систему 30 для построения веб-сайта в биллинговое стороннее приложение 40 для совершения платежа или передачу информации об активности, пример которой рассмотрен в настоящей заявке. Нужно понимать, что все эти различные типы связи имеют различные профили и требования, например, в отношении объема передаваемых сообщений, приоритетности, надежности, требованиям к временам отклика и т.п.
[00249] А именно, система 200 может включать отчеты об активности, передаваемые очень часто (например, если события графического пользовательского интерфейса (graphical user interface, GUI) стороннего приложения 40 рассматриваются как активность стороннего приложения 40, о которой необходимо передавать отчеты). Подобные множественные отчеты об активности могут перегружать части системы, обрабатывающие более критичные сообщения. Соответственно, в системе 200 могут быть реализованы множество каналов связи (например, с использованием различных портов, множества одновременных сеансов и т.п.), так что каждый
класс сообщений может передаваться в отдельном канале. Таким образом, для отчетов об активности может использоваться побочный канал, т.е. параллельный канал, который не влияет на функционирование управляющей и функциональной связи.
[00250] В соответствии с предшествующим описанием, система 200 может собирать информацию об активности в целях формирования и обогащения контактной информации при помощи координатора 240 контактов и координатора 250 активности, а также объединять события активности, связанные с конкретными контактными лицами. Для каждого сообщения об активности, маршрутизируемого через концентраторы 210 b 230, координатор 240 контактов и координатор 250 активности могут обрабатывать эту информацию. Формирователь 251 потока может формировать поток данных для каждого конкретного контактного лица из сообщений об активности, а элементы координатора 240 контактов могут извлекать данные и обрабатывать их перед сохранением в базу 245 данных контактов.
[00251] Соответственно, каждый поток данных об активности может иметь связанное с ним сформированное контактное лицо, контактная информация которого может постепенно обогащаться данными, извлеченными из информации об активности, проходящей по данному потоку. Нужно понимать, что координатор 240 контактов может также обнаруживать присутствие "родственных" контактных лиц, т.е. множество записей контактной информации, описывающих одно и то же лицо. Устройство 272 идентификации контактов может распознавать подобные записи при помощи сопоставления поля первичного идентификатора, например, адреса электронной почты, номера телефона, номера социального страхования, идентификатора Facebook и т.п. Нужно понимать, что некоторые поля первичного идентификатора могут быть многозначными (например, некоторое лицом может иметь несколько идентифицирующих его адресов электронной почты), тогда как другие могут быть строго однозначными полями (например, номер социального страхования).
[00252] Соответственно устройство 243 слияния данных может выполнять слияние полей контактной информации, извлеченных из новой информации об активности, с текущим сформированным контактным лицом,
а также может выполнять слияние контактного лица, созданного для анонимного пользователя при использовании им веб-сайта, с заранее определенным хранимым контактным лицом после выполнения, этим анонимным пользователем, операции входа в учетную запись и превращения его в идентифицированного пользователя (такая процедура может быть названа "вертикальным" слиянием). Устройство 277 горизонтального слияния контактов может при этом выполнять "горизонтальное" слияние двух различных контактных лиц (созданных или хранимых), когда оно обнаруживает, что они являются родственными и ссылаются на одного и того же пользователя. В соответствии с предшествующим описанием, подобное слияние может быть реальным (при котором два отдельных контактных лица преобразуют в одно контактное лицо), или слияние двух контактных лиц друг с другом может выполняться при помощи виртуального слияния (т.е. два контактных лица остаются отдельными, однако при этом их связывают друг с другом, помечая, что они представляют одного и того же пользователя - со слиянием фактической контактной информации и потоков данных об активности или без него). Также, нужно понимать, что и при виртуальном слиянии к множеству связанных, виртуально объединенных контактных лиц, может быть добавлена дополнительная информация.
[00253] Таким образом, экстрактор 241 данных может извлекать информацию о типе контактного лица из соответствующей структуры данных активности, а устройство 243 слияния данных может объединять эту информацию с информацией контактного лица, связанного с потоками данных об активности (анонимного или идентифицированного). Если информация I о типе контактного лица содержит поле первичного идентификатора, то устройство 243 слияния может проверять наличие родственных контактных лиц на основе значения этого поля первичного идентификатора, и если они будут найдены, выполнять слияние этих контактных лиц. Устройство 243 слияния данных может также проверять, соответствует ли данная активность установлению идентичности пользователя на веб-сайте (например, является ли она операций входа в учетную запись веб-сайта), и если этот так, выполнять слияние анонимного контактного лица с существующей записью контактной информации,
хранимой для этого пользователя, и в дальнейшем работать с ним, как с идентифицированным контактным лицом.
[00254] Нужно понимать, что в устройстве 272 идентификации контактов могут применяться множество различных методов идентификации пользователей веб-сайта, например, с использованием куки-файлов для отслеживания сеанса отдельного анонимного пользователя (не выполнившего вход в учетную запись веб-сайта), с использованием входа в учетную запись веб-сайта для зарегистрированных пользователей, при помощи входа в учетную запись социальной сети для пользователей вебсайта, чья учетная запись связана с социальной сетью, или при помощи сопоставления полей первичного идентификатора (например, адреса электронной почти или номера телефона) для установления того, что два пользовательских профиля описывают одного и того же пользователя.
[00255] Также, нужно понимать, что пользователи веб-сайта, информацию о которых хранят в базе 245 данных контактов, могут быть классифицированы как анонимные пользователи, не зарегистрированные на веб-сайте, зарегистрированные пользователи и потенциальные пользователи, при этом записи о потенциальных пользователях, официально еще не зарегистрированных на веб-сайте, могут быть импортированы из внешних источников.
[00256] Поскольку соответствующий веб-сайт может устанавливать постоянные куки-файлы, которые сохраняются от сеанса к сеансу, то на одном компьютере и в одном браузере могут существовать несколько анонимных сеансов, остающихся источниками новой информации для одной и той же записи контактной информации. Соответственно, даже анонимный пользователь может иметь значительный объем контекстной и контактной информации.
[00257] Зарегистрированные пользователи должны предоставлять идентификатор, являющийся уникальным для данного конкретного вебсайта. В качестве отдельного идентификатора (например, имени пользователя), зависящего от конкретного веб-сайта, могут применяться множество типов идентификаторов, таких как адрес электронной почты, номер телефона или номер социального страхования, или же внешний идентификатор, предоставленный другой системой, например,
идентификатор социальной сети, идентификатор Google, идентификатор OpenID и т.п.
[00258] Пользователь, регистрирующийся через учетную запись социальной сети может разрешать данному сайту использовать персональную информацию, доступную в социальной сети, для заполнения его пользовательского профиля на этом веб-сайте. Экстрактор 241 данных может повторно обращаться к профилю социальной сети для обнаружения изменений в персональной информации, и возможно, обновлять пользовательский профиль на веб-сайте.
[00259] Зарегистрированный пользователь, в общем случае, должен выполнять вход в учетную запись веб-сайта, чтобы идентифицировать себя, но система при этом может также предоставлять опцию "сохранить вход в систему". Процедура входа в учетную запись может быть явной, т.е. пользователю может быть отображен диалог входа в учетную запись, неявной, т.е. у пользователя могут быть запрошена идентифицирующая информация, например, при добавлении комментария к блогу, или может быть основана на внешней учетной записи, т.е. система может вызывать процедуру входа в учетную запись, связанную с другой системой, например, вход в учетную запись социальной сети или системы OpenID. Процедура входа в учетную запись может также исполняться при помощи физического устройства (например, токена безопасности, подключенного к системе напрямую или через беспроводной интерфейс) или с использованием биометрической информации (включая как биометрические параметры пользователя, например, сканирование отпечатков пальцев или радужной оболочки глаза, так и распознавание поведения пользователя, например, распознавание стиля печати на клавиатуре), или же с помощью комбинации перечисленных выше методов.
[00260] Также, нужно понимать, что процедура входа в учетную запись социальной сети может взаимодействовать с процедурой обычного входа в учетную запись в обоих направлениях. К примеру, с идентификатором подписчика веб-сайта может быть связан идентификатор социальной сети, то есть, вход в учетную запись социальной сети будет подразумевать вход в учетную запись веб-сайта, или идентификатор подписчика веб-сайта может быть связан с идентификаторами социальных сетей, то есть, вход в учетную
запись веб-сайта может также идентифицировать пользователя в одной или более социальных сетях.
[00261] Когда пользователь выполняет явный выход из учетной записи, обработчик 242 контактов может формировать новый куки-файл анонимного пользователя, и соответственно, формировать новый анонимный сеанс (или серию сеансов), информация об активности которых будет сохраняться в этом новом анонимном контактном лице. Новое анонимное контактное лицо может, потенциально, быть объединено с идентифицированным контактным лицом, в случае последующего входа в учетную запись.
[00262] Обратимся к фиг. 19, на которой проиллюстрированы процедуры входа и выхода из учетной записи, выполняемые анонимным пользователем. Пользователь может приступать к использованию системы, являясь анонимным. Обработчик 242 контактов может формировать новое контактное лицо, а формирователь 251 потока может автоматически формировать поток данных об активности с идентификатором "аноним 1", когда пользователь выполняет первую операцию, "операция 1", в стороннем приложении. Устройство 252 слияния потоков может выполнять слияние информации из "операции 1" и дальнейших операций "операция 2" и "операция 3" в контактное лицо "аноним 1".
[00263] После того, как тот же пользователь выполнит вход в учетную запись в качестве пользователя X, устройство 243 слияния данных может выполнять слияние контактного лица "аноним 1" (и всех других соответствующих контактных данных, полученных из потока данных об активности), объединяя его с контактной информацией пользователя X. Нужно понимать, что устройство 252 слияния потоков может также объединять информацию, извлеченную из дополнительных операций, "операция 4" и "операция 5", в один поток, а экстрактор 241 данных может затем создавать новый куки-файл, позволяющий выделить последующую активность пользователя X. Таким образом, если будет выполнена новая операция, "операция 6", обработчик 242 контактов может создать новое анонимное контактное лицо "аноним 2", а экстрактор 241 данных может сохранить извлеченную контактную информацию (и информацию об активности) во вновь созданном анонимном контактном лице "аноним 2".
[00264] Если (как в сценарии А) пользователь "аноним 2" выполнит второй вход в учетную запись, как пользователь Y, устройство 243 слияния данных может выполнять слияние контактного лица "аноним 2" (обновленного после "операции 6" и "операции 7"), добавляя его информацию в контактную информацию идентифицированного пользователя Y, куда будет также добавляться информация о всей последующей активности.
[00265] Если (как в сценарии В) пользователь "аноним 2" выполнит повторный вход в учетную запись как пользователь X, устройство 243 слияния данных может выполнять слияние контактной информации для пользователя "аноним 2" (обновленной после "операции 6" и "операции 7"), добавляя ее в контактную информацию пользователя X (уже обновленную и отражающую операции 1-6), куда будет также добавляться информация о всей последующей активности.
[00266] Нужно понимать, что структура данных об активности, связанная с выполненными операциями, может также включать контактные данные. Экстрактор 241 данных может извлекать эту информацию и пересылать ее в устройство 243 слияния данных, которое может объединять ее с существующей контактной информацией в базе 245 данных контактов, возможно, обогащая эту информацию. Также, нужно понимать, что экстрактор 241 данных может извлекать данные из конкретных сообщений об активности, из потоков в целом, из других контактных лиц или из внешних источников, например, сервисов преобразования IP-адресов в географические, в соответствии с последующим более подробным описанием. В соответствии с предшествующим описанием, контактная информация в базе 245 данных контактов может также включать контактные данные, явно предоставленные пользователем в ходе процедуры регистрации или подписки на веб-сайте, данные, извлеченные из учетной записи социальной сети, использованной пользователем при регистрации на веб-сайте (если была использована функция входа или регистрации через социальную сеть), или предоставленные пользователем при обновлении собственного пользовательского профиля. Экстрактор 241 данных может также извлекать информацию из внешних источников (например, пользователь может вводить только почтовый код США, который может
использоваться веб-сайтом для получения полной информации об адресе от внешнего веб-сервиса, декодирующего почтовые коды).
[00267] В соответствии с предшествующим описанием, устройство 272 идентификации контактов может обнаруживать, что два контактных лица являются родственными, или связанными, на основе поля основного идентификатора, например, имени пользователя, адреса электронной почты или номера телефона. После обнаружения того, что контактные лица А (новое) и В (существующее) являются родственными, устройство 243 слияния данных может объединять контактные лица А и В (контактное лицо В при этом будет главным, куда будут добавлены данные контактного лица А). Объединение выполняют с использованием следующих правил слияния:
[00268] В1 = В или А (т.е. "В || А"); вернуть В, и если В имеет значение null или "пусто", вернуть А;
[00269] В1 = math-func(A, В) ("функция согласования"); при этом имеются важные частные случаи:
В1 = А + В; например, количество посещений, общая сумма покупок;
В1 = min(A, В); например, дата регистрации на веб-сайте;
В1 = тах(А,В); например, дата последней активности;
[00270] В1 = list-unite (В, А) ("функция объединения списков"); добавление А в конец В, с удалением элементов А, которые дублируют элементы в В (т.е. В1 = В & (А-В)). Устройство 243 слияния данных может определять дублирование элементов в списках согласно следующим правилам:
[00271] Для списка, состоящего из регулярных значений (например, скалярных), используют сравнение регулярных значений;
[00272] Для списка, состоящего из структур, в качестве ключа сравнения используют конкретное под-поле структуры. К примеру, тип адреса (домашний, рабочий, адрес доставки, ...) в системе 30 для построения веб-сайта, поддерживающей множественные адреса;
[00273] сравнение нормализованных значений. Примером подобного сравнения является обработка телефонных номеров, описанная ниже:
[00274] Добавление структуры А в структуру В, если структура А является более детальной версией структуры В (в соответствии с последующим более подробным описанием), и
[00275] Более высокий показатель достоверности -значения могут иметь прикрепленные к ним показатели достоверности (например, информация, полученная непосредственно от пользователя, и информация о пользователе, полученная с помощью логического вывода, могут иметь различные показатели достоверности). Устройство 243 слияния данных может выбирать значение с более высоким показателем достоверности.
[00276] Нужно понимать, что поля некоторых типов имеют нормализованный формат. К примеру, телефонные номера могут быть нормализованы в стандартный формат телефонных номеров США (например, (999)555-1234) или международный формат (например, +1-999555-1234). Устройство 243 слияния данных может преобразовывать значение поля в нормализованный формат для сравнения, например, при сравнении первичных контактных идентификаторов (таких как телефонные номера) или при проверке объединяемых списков на наличие дубликатов.
[00277] Устройство 243 слияния данных может сравнивать два структурированных значения, имеющих одинаковую базовую структуру, к примеру, значение адреса, состоящее из нескольких под-полей (страна, регион, почтовый код, улица, номер дома и т.п.). Структуру Y считают детализированной версией структуры X, если каждое из непустых полей в X имеет значение, равное тому же полю в Y, т.е. Y все включает все значение непустых полей X, а также, возможно значения некоторых дополнительных полей. Соответственно, устройство 243 слияния данных может объединять А и В с внесением данных из А в В, если А является детализированной версией В, и А не идентично В.
[00278] Нужно понимать, что экстрактор 241 данных может получать контактный адрес на основе IP-адреса, с использованием которого осуществляется соответствующая активность. Это выполняют, только если данные об активности поступили из сеанса браузера, и адрес данного пользователя неизвестен. Соответственно, экстрактор 241 данных может извлекать информацию о регионе, или стране, согласно географической информации, соответствующей IP-адресу. В этом случае адрес помечают как "предполагаемые географический IP-адрес". Это необходимо, чтобы не создать помеху для будущего слияния адресов из-за наличия адресного поля, содержащего существующий (и возможно неточный) адрес, который
основан на анализе IP-адреса, что может препятствовать сохранению полученного позднее более полного (но по существу отличающегося) адреса в базе 245 контактов.
[00279] Устройство 243 слияния данных может также обрабатывать противоречия тегов для объединяемых списков. Нужно понимать, что в случае слияния списков возможна ситуация, когда имеются два различных объекта, один из контактного лица А, а другой из контактного лица В, которые различаются, однако имеют одинаковый тег. В таком случае устройство 243 слияния данных может объединять списки, помещая в результирующий список оба объекта с одинаковым тегом.
[00280] Так, объединение [{тег:"home", электронная почта:"а@Ь.сот"}] + [{Ter:"home", электронная почта:"с@а!.сот"}] может давать [{тег:"поте", электронная почта:"а@Ь.сот"}, {Ter:"home", электронная почта:"с@а!.сот"}]. Такая процедура может применяться, если объединяемые поля помечены как "допускающие неуникальные теги списка".
[00281] В устройстве 243 могут также применяться лингвистические, синтаксические или иные методы анализа текста, а также консультация со внешними источниками данных или сервисами при попытке объединения контактной информации. К примеру, пользователь может записывать название своей улицы двумя различными способами в двух записях активности, однако указывать при этом один и тот же номер дома, город и почтовый индекс. Устройство 273 объединения может применять анализ текста (например, алгоритмы "саундекс") при сравнении этих двух записей, и может также сравнивать два варианта названия улицы с внешним источником названий улиц для заданного города и индекса. В таком случае устройство 273 объединения может выбирать общепринятое название улицы, если оба адреса являются сходными (но возможно, не идентичными) с этим общепринятым названием, а остальные поля данных адреса имеют соответствующие значения.
[00282] Устройство 243 слияния данных может также выполнять слияние контактной информации согласно информации учетной записи или сеанса. Пользователь может использовать веб-сайт без совершения входа в учетную запись или регистрации, начинать сеанс, выполнять некоторые операции как часть этого сеанса и впоследствии регистрироваться или
входить в учетную запись, в результате чего текущий сеанс может быть связан с вновь созданным или существующим профилем зарегистрированного пользователя (который содержит контактную информацию).
[00283] После начала сеанса работы пользователя с веб-сайтом (в качестве анонимного пользователя), устройство 272 идентификации контактов может отслеживать активность пользователя в ходе этого сеанса (с использованием куки-файлов, идентификатора сеанса и т.п.), а обработчик 242 контактов может создавать для данного конкретного анонимного пользователя сформированное контактное лицо, основанное на активности пользователя в течение анонимного сеанса. Маршрутизатор и трекер 231 может также продолжать отслеживать активность анонимного пользователя в множестве различных сеансов на одном компьютере. Это может быть реализовано при помощи постоянного куки-файла (в отличие от сеансового куки-файла).
[00284] После регистрации пользователя устройство 243 слияния данных может использовать созданную контактную информацию для предварительного заполнения пользовательского профиля. Если пользователь выполнит вход в учетную запись, устройство 243 слияния данных может объединять исходно сформированную контактную информацию с существующим пользовательским профилем. Нужно понимать, что сформированную контактную информацию объединяют согласно пользовательскому идентификатору на данном веб-сайте, поскольку устройство 243 слияния данных может не иметь каких-либо других первичных идентификаторов (электронная почта и т.п.), чтобы использовать их в созданной контактной информации для слияния. Также, нужно понимать, что подобное слияние может выявлять противоречия в собранной информации. При слиянии контактной информации, созданной для анонимного пользователя, с существующими данными профиля, неизбежно могут возникать противоречия. К примеру, анонимный пользователь может заполнять форму ввода данных (отображаемую некоторым сторонним приложением 40) под именем Джон Смит, а затем может войти в учетную запись под именем Джон Доу (с использованием одного браузерного сеанса или различных сеансов). Возможно (например), что более поздний вход в
учетную запись был на самом деле выполнен вторым лицом, использующим тот же компьютер, или что пользователь ввел в контактную форму псевдоним, чтобы сохранить свою конфиденциальность. Аналогичное возможно при слиянии, устройством 243 слияния данных, множества анонимных структур контактной информации.
[00285] Устройство 264 разрешения противоречий может, в общем случае, разрешать противоречия автоматически, поскольку большинство полей (включая поля первичных ключей, таких как электронная почта или номер телефона) являются списочными полями, способными содержать множественные значения. Это может относиться только к множественному использованию одного и того же базового веб-сайта. Все подобные противоречия, которые не могут быть разрешены (например, при помощи слияния множество значений в списочное значение) могут быть помечены флагом для возможности ручной обработки владельцем веб-сайта, конечным пользователем (который может указать, какое из значений следует использовать) или при помощи других технологий.
[00286] Таким образом, возможно, что сконструированная контактная информация может отражать не одно лицо, а комбинированный набор пользователей, осуществляющих доступ к одному и тому же веб-сайту с одного компьютера.
[00287] В соответствии с предшествующим описанием, устройство 243 слияния данных в общем случае объединяет контактные лица согласно полям первичного идентификатора (например, электронная почта и номер телефона) всякий раз, когда их создают или изменяют.
[00288] Входными данными такой процедуры является запись контактной информации (входной контактное лицо С) с одним или более полями первичного идентификатора, имеющими одно или более значений (например, запись контактной информации с двумя адресами электронной почты и тремя номерами телефона). Множество полей первичного идентификатора могут быть необходимы, поскольку пользователь может иметь (например) номера домашнего/рабочего/сотового телефона, а также домашний и рабочий адрес электронной почты, при этом пользователь может их использовать в форме контакта взаимозаменяемо.
[00289] Устройство 243 слияния данных может выполнять нормализацию значений первичного ключа формировать запрос на запись контактной информации, содержащую любое из нормализованных значений первичного ключа, например, "(телефон=Р1 или телефон=Р2) или (электронная почта=Е1 или электронная почта=Е2)". Устройство 243 слияния данных может при этом ограничивать запрос базой 245 данных контактов для конкретного веб-сайта. Устройство 243 слияния данных может также выполнять запрос к базе 245 данных контактов и получать список L совпадающих контактных лиц (который включает входной контактное лицо С).
[00290] Если входное контактное лицо соответствует зарегистрированному участнику веб-сайта (для конкретного веб-сайта), устройство 243 слияния данных может удалять контактное лицо С из списка L и выполнять слияние всех остальных контактных лиц в списке L в контакте С. Устройство 243 слияния данных может затем сохранять обновленное контактное лицо С обратно в базу 245 данных контактов и удалять все остальные контакты, присутствующие в списке L, из базы 245 данных контактов. В соответствии с предшествующим описанием, устройство 234 слияния данных, альтернативно, может выполнять виртуальное слияние, объединять всю контактную информацию (т.е. обновлять все записи контактной информации, чтобы они содержали всю доступную информацию) и помечать совпадающие записи контактной информации как принадлежащие одному лицу (вместо удаления "дубликатов" записей контактной информации). Это может быть необходимо например, если сторонние приложения 40 хранят или используют внутренние идентификаторы, относящиеся к записям контактной информации, и удаление записей контактной информации может приводить к ошибкам сторонних приложений 40. Аналогичная обработка (т.е. пометка контактных лиц как связанных, вместо их удаления) может применяться и в других случаях, в соответствии с последующим более подробным описанием).
[00291] Если входное контактное лицо НЕ является зарегистрированным подписчиком веб-сайта, устройство 243 слияния данных может выполнять проверку, сколько контактных лиц, являющихся участниками веб-сайта, находятся в списке L. Если в нем находится 0
участников веб-сайта, устройство может удалять контактное лицо С из списка L, и объединять все остальные контактные лица из списка L в контактное лицо С. Устройство 243 слияния данных может затем сохранят обновленное контактное лицо С обратно в базу 245 данных и удалять все контакты, оставшиеся в списке L базы 245 данных контактов.
[00292] Если имеется один участник веб-сайта (контактное лицо D), устройство 243 слияния данных может удалять контактное лицо D из списка L и объединять все контактные лица, оставшиеся в списке L (включая контактное лицо С), в контактном лице С. Устройство 243 может затем сохранять обновленное контактное лицо D обратно в базу 245 данных и удалять все контактные лица, оставшиеся в списке L базы 245 данных контактов.
[00293] Если имеются два или более контактных лиц (D, D1, D2, ...) участников веб-сайта, устройство 243 слияния данных может выбирать контактное лицо D из найденных контактных лиц (D, D1, D2, ...) участников веб-сайта и удалять контактное лицо D из списка L. Затем устройство может формировать подсписок LL, который основан на списке L и содержит все контактные лица из списка L, не являющиеся участниками веб-сайта. Устройство 243 слияния данных может затем объединять все контакты, оставшиеся в списке LL, в контактном лице D. Устройство 243 слияния данных может затем сохранять обновленное контактное лицо D обратно в базу 245 данных и удалять все контакты, оставшиеся в списке LL базы 245 данных контактов.
[00294] В соответствии с предшествующим описанием, касающимся слияния данных после входа в учетную запись, в данных могут возникать противоречия. Однако поскольку формирователь 275 списочных значений может формировать поля со списочными (т.е. множественными) значениями и может определять однозначный порядок следования контактов, в большинстве случаев подобной проблемы не возникает.
[00295] К примеру, когда устройство 243 слияния контактов выполняет слияние следующих контактов:
[00296] Контакт1= [Телефон1 ,ЭлектроннаяПочта1];
[00297] Контакт2= [Телефон2,ЭлектроннаяПочта2];
[00298] КонтактЗ= [ТелефонЗ,ЭлектроннаяПочтаЗ];
[00299] Он может формировать комбинированную контактную информацию:
[00300] КомбинированныйКонтакт = [Телефон = [Телефон1, Телефон2], ЭлектроннаяПочта = [ЭлектроннаяПочта1, Электронная почта2].
[00301] Нужно понимать, что база 245 данных контактов может включать контактную информацию из множества источников, имеющую различные уровни прав доступа для ее использования. Описанное ниже касается электронной почты, однако, рассмотренная технология применима к информации любого из упомянутых выше типов (телефон, факс, идентификатор Skype, идентификатор системы мгновенного обмена сообщениями, идентификатор социальной сети и т.п.), используемой для контакта с пользователем.
[00302] Например, способ, которым адрес электронной почты был предоставлен на веб-сайте, может указывать на допустимые пути его использования. Возможными источниками адреса электронной почты могут быть: идентификатор, использованный при регистрации; форма контакта, подписка на новостную рассылку и запрос на отмену рассылки. Адреса электронной почты могут дополнительно различаться согласно условиям "соглашения о допустимом использовании", которое электронно подписывает пользователь.
[00303] Нужно понимать, что система 30 для построения веб-сайта, в общем случае, имеет информацию о допустимых путях использования каждого заданного адреса электронный почты. Однако владелец веб-сайта может обладать отличающейся, независимой или дополнительной информацией. К примеру, она может быть получена вследствие характера различных форм регистрации на веб-сайте или благодаря наличию в системе контактной информации, которая была импортирована веб-сайтом из другого источника, включающего дополнительную информацию о разрешениях на использование.
[00304] Обработчик 244 данных и разрешений может обеспечивать исполнение правильной политики использования сторонними приложениями 40, применяемыми на веб-сайте, помогая владельцу веб-сайта администрировать эту информацию.
[00305] Соответственно, запись контактной информации для соответствующего контактного лица может включать два информационных поля. Первое поле - это поле разрешений веб-сайта, содержащее производные или предполагаемые разрешение, вычисленные веб-сайтом на основе активности пользователя. Форма контакта подразумевает только функциональные письма, тогда как форма подписки может подразумевать периодическую рассылку. Второе поле - это разрешения владельца вебсайта, основанные на значении поля разрешений веб-сайта. Владелец вебсайта может изменять рекомендации веб-сайта и поступать в соответствии с собственными соображениями, но при этом он или она несет ответственность за использование, выходящее за рамки разрешений, которые заданы в поле разрешений веб-сайта.
[00306] Нужно понимать, что значение в поле разрешений веб-сайта может представлять собой наиболее полную информацию касательно намерений пользователя, которой владеет веб-сайт. Значение разрешений владельца веб-сайта назначается веб-сайтом и используется сторонними приложениями 40, а также другими частями системы (например, сторонним приложением 40, обеспечивающим новостную рассылку).
[00307] Обработчик 244 данных и разрешений может использовать эти поля разрешений для определения фактических разрешений несколькими различными способами. Например, в обработчике 244 данных и разрешений могут быть реализованы любые из следующих кодов, а также их комбинации и варианты (как для адресов электронной почты, так и для других идентификаторов контактных лиц):
[00308] "Неизвестный" - адрес электронной почты был получен из неизвестного источника и не может быть использован для отправки каких-либо электронных писем.
[00309] Адрес электронной почты, являющийся идентификатором, - адрес электронной почты, предоставленный в целях регистрации. Он не может быть использован для отправки каких-либо писем, за исключением вопросов, связанных с регистрацией, например, подтверждение, забытый пароль или предупреждение о потенциальных угрозах безопасности.
[00310] Функциональный адрес электронный почты -предоставлен для конкретной цели и подразумевает однократную отправку письма. К
примеру, письмо с подтверждением покупки, или письмо, отправляемое для конкретной формы контакта.
[00311] Рекуррентный адрес электронной почты, - допускает отправку периодических рассылок и рекламных писем с конкретного веб-сайта. В данном случае необходимо явная подписка и/или разрешение.
[00312] Совместно используемый адрес электронной почты -допускает передачу множественных и периодических рассылок и рекламных писем данным веб-сайтом, а также его партнерами (сторонними приложениями 40 или четвертой стороной). Это требует явной подписки и/или разрешения и может включать детальную информацию о разрешенном совместном использовании.
[00313] "Отказ" - пользователь явным образом отказался от подписки. Не допускается отправка пользователю никаких писем (за исключением, возможно, уведомления об отмене подписки).
[00314] Нужно понимать, что в обработчике 244 данных и разрешений могут применяться альтернативные методы, например, битовая маска разрешений (аналогичная применяемым в системах UNIX или Linux) или механизм списков контроля доступа ACL. В обработчике 244 данных и разрешений могут быть также реализованы отдельные поля разрешений для отдельных частей контактной информации (например, адреса электронной почты, адреса системы мгновенного обмена сообщениями, идентификатора социальной сети и т.п.)
[00315] В одном из типовых сценариев применения база 245 данных содержит первый набор адресов электронной почты, собранных из форм контакта, и второй набор адресов электронной почты, полученных из запросов на подписку. Веб-сайт может вызывать стороннее приложение 40 новостной рассылки, зная, что стороннее приложение 40 будет отправлять письма только пользователям из второго набора (подавшим запрос на подписку).
[00316] Преимущества подобной системы включают более высокий уровень защиты (как технической, так и правовой), как для владельца вебсайта, так и для веб-сайта, - от непроизвольной рассылки спама или неправомерного использования конфиденциальной информации, а также способность реально исполнять политики конфиденциальности при
использовании системы в сочетании с прокси-модулем 234 конфиденциальных данных, описанным выше. Также подобная система позволяет гарантировать более строгое исполнение запросов на отмену подписки.
[00317] Соответственно, пользователь может формировать потоки с информацией об активности между соответствующей системой 30 для построения веб-сайта и любыми соответствующими сторонними приложениями 40. Эти потоки может быть названы потоками данных об активности. Каждый поток данных об активности может использоваться в качестве источника информации об отдельном контактном лице. Структуры данных активности из отдельных потоков могут быть при этом объединены и формировать единую контактную информацию, если будет определено, что различные потоки данных об активности поступают из одного источника. К примеру, один пользователь может работать анонимно с использованием двух устройств, например, мобильного устройства и персонального компьютера. Такой пользователь может формировать два анонимных потока, сообщения из которых могут быть сохранены. После того как будет установлено, что оба этих потока связаны с одним пользователем, они могут быть объединены.
[00318] Процедуры и отображаемая информация, представленная в настоящем документе, не является неотъемлемо присущей какому-либо конкретному вычислительному устройству или устройству иного типа. Может применяться множество различных систем общего назначения, имеющих программы, которые соответствуют замыслу настоящего изобретения, или более удобным для исполнения соответствующего способа может оказаться построение более специализированного устройства. Структура, которая должна присутствовать в этих различных системах, будет представлена в приведенном ниже описании. При этом варианты осуществления настоящего изобретения не описаны на примере какого-либо конкретного языка программирования. Нужно понимать, что для реализации замысла настоящего изобретения, описанного в данном документе, может использоваться множество различных языков программирования.
[00319] Если не указано обратно, то, как следует из предшествующего рассмотрения, предполагается, что в настоящем описании такие термины,
как, например, "обработка", "расчет", "вычисление", "определение", или аналогичные термины, которые могут относиться к операции и/или процедуре компьютера, компьютерной системы или иного электронного вычислительного устройства, которое манипулирует данными и/или преобразует данные, представленные в виде физических (например, электрических) величин в регистрах и/или памяти компьютерной системы, в другие данные, также представленные в виде физических величин в памяти компьютерной системе, ее регистрах или на другом аналогичном носителе для хранения информации, или же в устройствах передачи или отображения.
[00320] Варианты осуществления настоящего изобретения могут включать устройство для выполнения описанных в настоящем документе операций. Такое устройство может быть специально сконструировано для соответствующих целей или может включать компьютер общего назначения, избирательно приводимый в действие или реконфигурируемый компьютерной программой, хранимой в компьютере. Подобная компьютерная программа может храниться на машиночитаемом носителе, например, без ограничения перечисленным, на диске любого типа, включая гибкие диски, оптические диски, магнитнооптические диски, в памяти "только для чтения" (ROM), в памяти "только для чтения" на компакт-дисках (CD-ROM), в памяти с произвольным доступом (RAM), в электрически программируемой памяти "только для чтения" (EPROM), в электрически перепрограммируемой памяти "только для чтения" (EEPROM), на магнитных или оптических картах, в флэш-памяти или на носителе любого другого типа, подходящем для хранения электронных инструкций и допускающим подключение к шине компьютерной системы.
[00321] В настоящем документе проиллюстрированы и описаны конкретные отличительные признаки настоящего изобретения, однако специалисты в данной области техники могут найти множество модификаций, замен, изменений и эквивалентных элементов. Соответственно, нужно понимать, что приложенная формула изобретения призвана охватить все такие модификации, замены, изменения и эквивалентные элементы, как соответствующие сущности настоящего изобретения и попадающие в объем его правовой защиты.
ФОРМУЛА ИЗОБРЕТЕНИЯ
1. Система, реализуемая на веб-сайте при помощи клиент-серверной системы, имеющей по меньшей мере один процессор для обработки инструкций, определяющих упомянутую систему, при этом упомянутая система включает:
по меньшей мере один концентратор для координации по меньшей мере одного сообщения об активности между веб-сайтом и по меньшей мере одним сторонним приложением, при этом упомянутое по меньшей мере одно сообщение об активности имеет стандартизованный формат;
координатор активности для прослушивания упомянутого по меньшей мере одного сообщения об активности и по меньшей мере для добавления данных, извлеченных из упомянутого по меньшей мере одного сообщения, в поток, связанный с идентифицированным контактным лицом и/или с анонимным контактным лицом, при этом упомянутым идентифицированным контактным лицом и/или анонимным контактным лицом является пользователь веб-сайта;
координатор контактов для получения и анализа информации, относящейся к контактному лицу, из упомянутого потока и для обогащения ранее хранимой информации для упомянутого контактного лица; и
по меньшей мере одну базу данных для хранения упомянутых потоков об активности и упомянутой информации, относящейся к контактному лицу, для использования упомянутым веб-сайтом и упомянутым контактным лицом.
2. Система по п. 1, в которой упомянутый по меньшей один концентратор включает по меньшей мере одно из следующего:
маршрутизатор и трекер для маршрутизации и отслеживания упомянутого по меньшей мере одного сообщения об активности между упомянутым веб-сайтом и упомянутым по меньшей мере одним сторонним приложением;
устройство исполнения политик конфиденциальности для исполнения политик конфиденциальности между упомянутым веб-сайтом и упомянутым по меньшей мере одним сторонним приложением;
транслятор и адаптер для применения по меньшей мере одного заранее заданного правила трансляции и адаптации контента между упомянутым веб-сайтом и упомянутым по меньшей мере одним сторонним приложением;
прокси-модуль конфиденциальных данных для реализации представительства в отношении конфиденциальных данных и/или замены конфиденциальных данных, и для исполнения ограничений полей пользовательских разрешений между упомянутым веб-сайтом и упомянутым по меньшей мере одним сторонним приложением; и
устройство валидации и подписи для валидации и подписи упомянутого по меньшей мере одного сообщения об активности с использованием приемного ключа упомянутого по меньшей мере одного стороннего приложения, для трансляции внешнего идентификатора, связанного с упомянутым по меньшей мере одним сообщением об активности, во внутренний для упомянутого веб-сайта идентификатор и для подписи исходящего упомянутого по меньшей мере одного сообщения об активности с использованием передающего ключа упомянутого по меньшей мере одного стороннего приложения.
3. Система по п. 1, в которой упомянутый координатор активности включает по меньшей мере одно из следующего:
формирователь потока для идентификации упомянутых контактных лиц, связанных с упомянутым по меньшей мере одним сообщением об активности, и для формирования упомянутого потока данных, если соответствующих контактных лиц не существует;
устройство слияния потоков для объединения данных из упомянутого по меньшей мере одного сообщения об активности с существующим потоком, а также данных из по меньшей мере двух из упомянутых потоков данных об активности в единый поток; и
формирователь журнала для журналирования данных об активности из упомянутого потока данных об активности в упомянутую по меньшей мере одну базу данных.
4. Система по п. 1, в которой упомянутый координатор контактов включает по меньшей мере одно из следующего:
экстрактор данных для извлечения информации, относящейся к контактному лицу, из одного или более из следующего: сообщение об активности, упомянутый поток, другие контактные лица и внешние источники;
устройство слияния данных для слияния по меньшей мере двух записей контактной информации, где упомянутые записи связаны с одним и тем же идентифицированным контактным лицом, и для объединения упомянутой извлеченной информации, относящейся к контактному лицу, с контактной информацией существующего контактного лица согласно заранее заданным правилам слияния;
обработчик контактов для создания нового идентифицированного контактного лица и/или анонимного контактного лица и для слежения за активностью контактного лица в течение сеанса работы с упомянутым вебсайтом; и
обработчик данных и разрешений для управления защитой конфиденциальности и разрешениями для извлеченной информации, относящейся к контактному лицу.
5. Система по п. 2, в которой упомянутый маршрутизатор и трекер поддерживает маршрутизацию упомянутого по меньшей мере одного сообщения об активности с использованием запросов на прослушивания, поданных упомянутым по меньшей мере одним сторонним приложением.
6. Система по п. 3, в которой упомянутое устройство слияния потоков включает устройство слияния "активность-поток" для объединения упомянутых данных с упомянутым потоком, связанным с упомянутым идентифицированным контактным лицом, и устройство слияния "поток-поток" для слияния по меньшей мере двух отдельных потоков в единый поток.
5.
7. Система по п. 6, в которой упомянутое устройство слияния "поток-поток" включает устройство горизонтального слияния потоков для слияния упомянутых по меньшей мере двух различных потоков согласно общему идентифицированному контактному лицу и устройство вертикального слияния потоков для слияния потока, сформированного для анонимного контактного лица, с потоком, относящимся к зарегистрированному контактному лицу после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.
8. Система по п. 4, в которой упомянутое устройство слияния данных включает по меньшей мере одно из следующего:
устройство идентификации контактных лиц для выполнения по меньшей мере одного из следующего: обнаружение идентичных значений поля первичного идентификатора по меньшей мере в двух упомянутых записях контактной информации, обнаружение значений поля первичного ключа по меньшей мере в двух упомянутых записях контактной информации, которые идентичны после нормализации, идентификация пользователя вебсайта с использованием куки-файлов, идентификация пользователя вебсайта с использованием входа в учетную запись для зарегистрированных пользователей и идентификация пользователя веб-сайта через учетную запись социальной сети для пользователей веб-сайта, чьи учетные записи относятся к социальным сетям.
устройство объединения для объединения контактной информации с использованием по меньшей мере одного из следующего: лингвистические характеристики, синтаксис, анализ текста и консультация с внешними источниками данных или сервисами;
устройство разрешения противоречий для разрешения противоречий между записями контактной информации согласно заранее заданным правилам;
формирователь списочных значений для формирования полей со списочными значениями, определяющими однозначный порядок следования упомянутых записей контактной информации;
устройство горизонтального слияния контактов для слияния двух несвязанных контактных лиц при обнаружении общего первичного идентификатора; и
устройство вертикального слияния контактов для слияния анонимного контактного лица с контактным лицом, которое связано с зарегистрированным пользователем, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.
9. Система по п. 8, в которой упомянутое устройство горизонтального
слияния контактов включает устройство виртуального слияния для
поддержания по меньшей мере двух записей контактной информации в
качестве отдельных записей и для их сцепления между собой, так что их
помечают как представляющие одно и то же контактное лицо.
10. Система по п. 8, в которой упомянутое устройство вертикального слияния контактов включает устройство виртуального слияния для поддержания анонимного контактного лица и контактного лица, связанного с зарегистрированным пользователем, в качестве отдельных лиц и для их сцепления между собой, так что их помечают как представляющие одно и то же контактное лицо.
11. Система по п. 2, в которой упомянутое поле пользовательских разрешений определено упомянутым веб-сайтом и/или определено упомянутым владельцем веб-сайта.
12. Система по п. 1, в которой упомянутый стандартизованный формат представляет собой по меньшей мере одно из следующего: формат, определенный с помощью заранее заданной схемы, наследования, ссылки обратного вызова, формат, закодированный и определенный упомянутым по меньшей мере одним сторонним приложением или формат, основанный на внешнем формальном, промышленном или фактически общепринятом стандарте.
10.
13. Способ, реализуемый на веб-сайте при помощи клиент-серверной системы, имеющей по меньшей мере один процессор для обработки инструкций, определяющих упомянутый способ, при этом упомянутый способ включает:
координацию по меньшей мере одного сообщения об активности между веб-сайтом и по меньшей мере одним сторонним приложением, при этом упомянутое по меньшей мере одно сообщение об активности имеет стандартизованный формат;
прослушивание упомянутого по меньшей мере одного сообщения об активности и по меньшей мере добавление данных, извлеченных из упомянутого по меньшей мере одного сообщения, в поток, связанный с идентифицированным контактным лицом и/или с анонимным контактным лицом, при этом упомянутым идентифицированным контактным лицом и/или анонимным контактным лицом является пользователь веб-сайта;
получение и анализ информации, относящейся к контактному лицу, из упомянутого потока и обогащение ранее хранимой информации для упомянутого контактного лица; и
хранение упомянутых потоков данных об активности и упомянутой информации, относящейся к контактному лицу, для использования упомянутым веб-сайтом и упомянутым контактным лицом.
14. Способ по п. 13, в которой упомянутая координация включает по меньшей мере одно из следующего:
маршрутизацию и отслеживание упомянутого по меньшей мере одного сообщения об активности между упомянутым веб-сайтом и упомянутым по меньшей мере одним сторонним приложением;
исполнение политик конфиденциальности между упомянутым вебсайтом и упомянутым по меньшей мере одним сторонним приложением;
применение по меньшей мере одного заранее заданного правила трансляции и адаптации контента между упомянутым веб-сайтом и упомянутым по меньшей мере одним сторонним приложением;
реализацию представительства в отношении конфиденциальных данных и/или замены конфиденциальных данных, и исполнение ограничений
полей пользовательских разрешений между упомянутым веб-сайтом и упомянутым по меньшей мере одним сторонним приложением; и
валидацию подписи упомянутого по меньшей мере одного сообщения об активности с использованием приемного ключа упомянутого по меньшей мере одного стороннего приложения, трансляцию внешнего идентификатора, связанного с упомянутым по меньшей мере одним сообщением об активности, во внутренний для упомянутого веб-сайта идентификатор и подпись исходящего упомянутого по меньшей мере одного сообщения об активности с использованием передающего ключа упомянутого по меньшей мере одного стороннего приложения.
15. Способ по п. 13, в котором упомянутое прослушивание и упомянутое по меньшей мере добавление включает по меньшей мере одно из следующего:
идентификацию упомянутых контактных лиц, связанных с упомянутым по меньшей мере одним сообщением об активности, и формирование упомянутого потока данных, если соответствующих контактных лиц не существует;
объединение данных из упомянутого по меньшей мере одного сообщения об активности с существующим потоком, а также данных из по меньшей мере двух из упомянутых потоков данных об активности в единый поток; и
журналирование данных об активности из упомянутого потока данных об активности в упомянутую по меньшей мере одну базу данных.
16. Способ по п. 13, в которой упомянутое извлечение и анализ включают по меньшей мере одно из следующего:
извлечение информации, относящейся к контактному лицу, из одного или более из следующего: сообщение об активности, упомянутый поток, другие контактные лица и внешние источники;
слияние по меньшей мере двух записей контактной информации, где упомянутые записи связаны с одним и тем же идентифицированным контактным лицом, и объединение упомянутой извлеченной информации,
относящейся к контактному лицу, с контактной информацией существующего контактного лица согласно заранее заданным правилам слияния;
формирование нового идентифицированного контактного лица и/или анонимного контактного лица и слежение за активностью контактного лица в течение сеанса работы с упомянутым веб-сайтом, и
управление защитой конфиденциальности и разрешениями для извлеченной информации, относящейся к контактному лицу.
17. Способ по п. 14, в котором упомянутые маршрутизация и отслеживание поддерживают маршрутизацию упомянутого по меньшей мере одного сообщения об активности с использованием запросов на прослушивания, поданных упомянутым по меньшей мере одним сторонним приложением.
18. Способ по п. 15, в котором упомянутое слияние включает объединение упомянутых данных с упомянутым потоком, связанным с упомянутым идентифицированным контактным лицом, и слияние по меньшей мере двух отдельных потоков в единый поток.
19. Способ по п. 18, в котором упомянутое объединение упомянутых данных с упомянутым потоком, связанным с упомянутым идентифицированным контактным лицом и слияние по меньшей мере двух независимых потоков в единый поток включает горизонтальное слияние упомянутых по меньшей мере двух различных потоков согласно общему идентифицированному контактному лицу и/или вертикальное слияние потока, сформированного для анонимного контактного лица, с потоком, относящимся к зарегистрированному контактному лицу после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.
20. Способ по п. 16, в котором упомянутое объединение по меньшей мере двух записей контактной информации включает по меньшей мере одно из следующего:
17.
обнаружение идентичных значений поля первичного идентификатора по меньшей мере в двух упомянутых записях контактной информации, обнаружение значений поля первичного ключа по меньшей мере в двух упомянутых записях контактной информации, которые идентичны после нормализации, идентификация пользователя веб-сайта с использованием куки-файлов, идентификация пользователя веб-сайта с использованием входа в учетную запись для зарегистрированных пользователей и идентификация пользователя веб-сайта через учетную запись социальной сети для пользователей веб-сайта, чьи учетные записи относятся к социальным сетям.
объединение контактной информации с использованием по меньшей мере одного из следующего: лингвистические характеристики, синтаксис, анализ текста и консультация с внешними источниками данных или сервисами;
разрешение противоречий между записями контактной информации согласно заранее заданным правилам;
формирование полей со списочными значениями, определяющими однозначный порядок следования упомянутых записей контактной информации;
горизонтальное слияние двух несвязанных контактных лиц при обнаружении общего первичного идентификатора; и
вертикальное слияние анонимного контактного лица с контактным лицом, которое связано с зарегистрированным пользователем, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.
21. Способ по п. 20, в которой упомянутое горизонтальное слияние включает виртуальное слияние для поддержания по меньшей мере двух записей контактной информации в качестве отдельных записей и их сцепление между собой, так что их помечают как представляющие одно и то же контактное лицо.
22. Способ по п. 20, в котором упомянутое вертикальное слияние включает виртуальное слияние для поддержания анонимного контактного
21.
лица и контактного лица, связанного с зарегистрированным пользователем, в качестве отдельных лиц и для их сцепления между собой, так что их помечают как представляющие одно и то же контактное лицо.
23. Способ по п. 14, в котором упомянутое поле пользовательских разрешений определено упомянутым веб-сайтом и/или определено упомянутым владельцем веб-сайта.
24. Способ по п. 13, в котором упомянутый стандартизованный формат представляет собой по меньшей мере одно из следующего: формат, определенный с помощью заранее заданной схемы, наследования, ссылки обратного вызова, формат, закодированный и определенный упомянутым по меньшей мере одним сторонним приложением, или формат, основанный на внешнем формальном, промышленном или фактически общепринятом стандарте.
23.
1/24
Конечный пользователь Элемент ТРА
на стороне клиента
WBS
Сервер WBS"
Элемент ТРА на серверной стороне
Поставщик WBS
2/24
4/24
5/24
Клиент WBS
^ Доставить
в:
I С | Заказать |
I I I
магазин приложений
100
8/24
9/24
О Текстовый компонент
DOM e
Текстовый компонент
b div
d5r
dlЈ
Фиг. 8
d1 d2 d3 d4 d5
Компонентная модель
10/24
11/24
Магазин приложений
CRM
Лид-менеджмент
Интернет-магазин
Фиг. 10
12/24
13/24
14/24
205
310
Устройство интеллектуальной идентификации и адресации
Устройство верификации источника
\320
Обертка размещаемого API-интерфейса
340
Устройство исполнения политик связи
Транслятор протоколов
370
Менеджер конфигурации
Перенаправляющее устройство
Устройство динамического обновления верстки
Устройство обновления
Фиг. ПС
380
16/24
17/24
ТРА
О ЛЛ
О лл
О лл
18/24
19/24
2 -j -j Концентратор
210
Устройство исполнения политик конфиденциальности
213
Фиг. 16А
Концентратор
245
База данных контактов
240
231-^
2 J J -
230
241
Экстрактор данных
Обработчик контактов
Устройство исполнения политик конфиденциальности
Маршрутизатор + трекер
Устройство слияния данных
Обработчик данных и разрешений
234
"235
251
Транслятор + адаптер
Формирователь потока
Формирователь
журнала
255
База данных активности
Координатор контактов
Координатор активности
242
244
Фиг. 16В
21/24
^-261
Устройство слияния "активность-поток"
262
Устройство слияния "поток-поток"
Устройство
Устройство
горизонтального
вертикального
слияния
слияния
потоков
потоков
263
^264
Фиг. 16С
-243
-276
-272
Устройство
вертикального
слияния потоков
Устройство
виртуального
вертикального
слияния
Устройство идентификации контактов
'2 73
Устройство объединения
279-
-277
-274
Устройство
горизонтального
слияния контактов
Устройство
виртуального
горизонтального
слияния
Устройство разрешения противоречий
-275
Формирователь списочных значений
278
My Contacts
Manage your website contacts, site members and prospects
Contacts
(c)
Prospects
0 & Import Д New
Фиг. 17
All Contacts (124) Recently Added (74) Recently Viewed (108) Potential Merge (86)
Friends (24) ?
Family (24) ? t NOW Lflbei
? ? ? ?
? ? ? ? ? ? ?
? All
? ? ? ? ? ? ? ? ? ? ? ?
Nomev
Johnny Goodman Alizabeth Brown Kira Rosenbloom All Black Dani Bronsteln Adam Smith Allnor Alonir All Black Dani Bonstein Johnny Goodman Alizabeth Brown Klra Rosenbloom
Dani Bronstein
See member %/
Email jonny good manOgrnail. corn
Phone +1 (646) 882-0833
Address 2601 Mission St
San Francisco, CA 94110 USA
Social Connect:
History
f 02/01/2013 Liked your business Focebook paoe
Ш 01/15/2013 Sent you a message via 123 contact form
12/20/2013 Bought 1 item in your shop
12/12/2012 Added to contact list
EH 12/12/2012 Sent you a message via 123 contact form
Edit
to to
to -1^
К о
S °
5 %
О Р
24/24
Операция 1
Аноним 1
Операция 2
Операция 3
Вход X
Пользо-, ватель X
Операция 4
Пользователь " Y
ВходУ
Вход X
Пользователь X
(r)
Фиг. 19
(19)
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 1
Фиг. 1
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 1
Фиг. 1
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 1
Фиг. 1
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 2
Фиг. 2
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 3
Фиг.4
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 3
Фиг.4
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 5
Фиг.4
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 6
Фиг. 6
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 6
Фиг. 6
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 6
Фиг. 6
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг.9
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг.9
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг.9
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг.9
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг.9
Система и способ для сбора данных об сторонних приложений
Система и способ для сбора данных об сторонних приложений
Фиг. ПА
Фиг. ПА
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 11В
Фиг. 11В
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 12
Фиг. 12
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 14
Фиг. 14
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 15
Фиг. 15
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 16D
Фиг. 16D
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 16D
Фиг. 16D
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 16D
Фиг. 16D
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 16D
Фиг. 16D
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 16D
Фиг. 16D
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 16D
Фиг. 16D
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Фиг. 16D
Фиг. 16D
О English *
Create Explore My Account Premium Support
О English *
Create Explore My Account Premium Support
О English *
Create Explore My Account Premium Support
О English *
Create Explore My Account Premium Support
О English *
Create Explore My Account Premium Support
О English *
Create Explore My Account Premium Support
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений
Система и способ для сбора данных об активности сторонних приложений