EA036433B1 - System and method for third party application activity data collection - Google Patents
System and method for third party application activity data collection Download PDFInfo
- Publication number
- EA036433B1 EA036433B1 EA201691088A EA201691088A EA036433B1 EA 036433 B1 EA036433 B1 EA 036433B1 EA 201691088 A EA201691088 A EA 201691088A EA 201691088 A EA201691088 A EA 201691088A EA 036433 B1 EA036433 B1 EA 036433B1
- Authority
- EA
- Eurasian Patent Office
- Prior art keywords
- contact
- website
- activity
- party application
- party
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Область техникиTechnology area
Настоящее изобретение относится к онлайн-приложениям, а именно к их применению в сочетании со сторонними приложениями.The present invention relates to online applications, in particular to their use in combination with third-party applications.
Перекрестные ссылки на связанные заявкиCross-references to related tickets
Настоящая заявка ссылается на приоритет предварительной заявки на патент США № 61/911485, которая зарегистрирована 4 декабря 2013 г. и полностью включена в настоящий документ путем ссылки.This application refers to the priority of US Provisional Patent Application No. 61/911485, which was filed December 4, 2013 and is incorporated herein by reference in its entirety.
Предпосылки создания изобретенияBackground of the invention
На рынке имеется множество систем для построения веб-сайтов, а также других интерактивных инструментов для конструирования приложений, которые могут применяться для создания и редактирования веб-сайтов или иных онлайн-приложений. Конечные пользователи могут получать доступ к подобным веб-сайтам с помощью клиентского программного обеспечения на множестве различных платформ, например при помощи обычных персональных компьютеров, смартфонов, планшетных компьютеров и других настольных или мобильных устройств.There are many website building systems on the market as well as other interactive application design tools that can be used to create and edit websites or other online applications. End users can access such websites using client software on a variety of different platforms, such as common personal computers, smartphones, tablets, and other desktop or mobile devices.
Системы для построения веб-сайтов могут поставляться в различных конфигурациях, например в виде полностью онлайновых систем построения веб-сайтов, базирующихся на сервере, или серверах, которые подключены к сети Интернет и доступ к которым осуществляется с использованием протоколов связи Интернета, таких, например, как протокол передачи гипертекста (hypertext transfer protocol, HTTP). Создание, редактирование и развертывание подобных систем для построения веб-сайтов выполняется исключительно в режиме онлайн при непосредственном взаимодействии с серверами.Website building systems can be supplied in a variety of configurations, such as fully online server-based website building systems or servers that are connected to the Internet and accessed using Internet communication protocols such as as a hypertext transfer protocol (HTTP). The creation, editing and deployment of such systems for building websites is carried out exclusively online with direct interaction with the servers.
Системы построения веб-сайтов могут также быть лишь частично онлайновыми или, в некоторых случаях, даже полностью офлайновыми. В случае частично онлайновых систем веб-сайт редактируют на локальной пользовательской машине и затем выгружают данные на центральный сервер, или сервера, для развертывания. После выгрузки данных подобные системы построения веб-сайтов функционируют аналогично полностью онлайновым системам для построения веб-сайтов.Website building systems can also be only partially online or, in some cases, even completely offline. In the case of partially online systems, the website is edited on the local user's machine and then the data is uploaded to a central server, or server, for deployment. Once the data is uploaded, such website building systems function in a manner similar to fully online website building systems.
Системы для построения веб-сайтов имеют внутреннюю архитектуру данных, применяемую для организации данных и составных элементов системы. Внутренняя архитектура может отличаться от внешнего вида конструируемого веб-сайта, отображаемого пользователю, и отличаться также от стандартных методов передачи страниц на языке разметки гипертекста (hypertext markup language, HTML) в браузер. К примеру, внутренняя архитектура данных может содержать дополнительные свойства для каждого элемента на странице (создатель, время создания, разрешения, ссылки на шаблоны и т.п.), которые необходимы для редактирования и администрирования веб-сайта в системе построения веб-сайта, однако не видны внешнему конечному пользователю (а также, возможно, скрыты от некоторых пользователей-редакторов). Типовая архитектура веб-сайта, построенного с помощью системы построения вебсайта, может включать страницы, которые содержат различные компоненты (например, компоненты фигур, компоненты изображений, текстовые компоненты, одностраничные и многостраничные контейнеры, содержащие мини-страницы и т.п.).Systems for building websites have an internal data architecture used to organize the data and the building blocks of the system. The internal architecture may differ from the way the web site is designed to be displayed to the user, and may also differ from the standard methods of sending hypertext markup language (HTML) pages to the browser. For example, the internal data architecture may contain additional properties for each element on the page (creator, creation time, permissions, links to templates, etc.) that are necessary for editing and administering a website in the website building system, however not visible to the external end user (and possibly also hidden from some editor users). A typical architecture for a website built with a website building system might include pages that contain various components (for example, shape components, image components, text components, single-page and multi-page containers containing mini-pages, etc.).
Компоненты могут не иметь содержимого, например, в случае звездообразной фигуры, которая не имеет никакого внутреннего содержимого (однако имеет цвет, размер, положение и некоторые другие атрибуты), или могут иметь внутреннее содержимое, как, например, компонент текстового параграфа, внутреннее содержимое которого включает отображаемый текст, а также информацию о шрифте, форматировании и верстке. Содержимое, очевидно, может быть различным для различных экземпляров одного компонента текстового параграфа.Components may have no content, for example in the case of a star shape that has no internal content (but has color, size, position, and some other attributes), or they may have internal content, such as a text paragraph component whose internal content includes display text, as well as font, formatting, and layout information. The content can obviously be different for different instances of the same text paragraph component.
С помощью подобной системы для построения веб-сайта веб-дизайнер может конструировать новый продукт с нуля (начиная с пустой страницы) или может брать за основу заранее сконфигурированные шаблоны приложений, созданные им собственноручно, предоставленные создателем системы или сообществом веб-дизайнеров. Система для построения веб-сайта может поддерживать шаблоны, которые являются исключительно коллекциями компонентов, полными страницами (или мини-страницами) или даже наборами страниц, или завершенными веб-сайтами.With such a system for building a website, a web designer can design a new product from scratch (starting from a blank page) or can use as a basis pre-configured application templates, created by himself, provided by the creator of the system or the community of web designers. The system for building a website can support templates that are solely collections of components, complete pages (or mini-pages), or even sets of pages, or complete websites.
После того как веб-дизайнер получит шаблон приложения в свое распоряжение, он может персонализировать его по своему усмотрению, добавив, удалив или изменив любые из элементов шаблона, в результате чего может быть создана его собственная версия шаблона. Персонализация может быть реализована при помощи создания модифицированной версии шаблона (которая отличается от исходного шаблона и является независимой от него). Альтернативно, в системе для построения веб-сайта персонализация может быть реализована посредством механизма, аналогичного наследованию, с сохранением ссылки на исходный шаблон и с соответственным указанием на внесенные в него изменения.Once the web designer has got the application template at his disposal, he can personalize it as he wishes by adding, removing or changing any of the template elements, as a result of which his own version of the template can be created. Personalization can be achieved by creating a modified version of the template (which is different from and independent of the original template). Alternatively, in a system for building a website, personalization can be implemented through a mechanism similar to inheritance, while maintaining a link to the original template and correspondingly indicating the changes made to it.
Системы для построения веб-сайтов могут при этом быть расширяемыми, для чего применяют сторонние приложения и встроенные в них компоненты. Такие сторонние приложения могут быть включены в среду разработки системы для построения веб-сайтов или могут приобретаться (или быть получены иным образом) отдельно, при помощи различных механизмов доставки, например, из магазина приложений (AppStore), встроенного в систему для построения веб-сайта, или из независимого доступного через сеть или автономного хранилища приложений (или магазина приложений), поддерживаемого поставщиком системы для построения веб-сайта (website building system, WBS) или иной организацией. СторонниеAt the same time, systems for building websites can be extensible, for which third-party applications and built-in components are used. Such third-party applications may be included in the development environment of the system for building websites, or may be purchased (or otherwise obtained) separately, using various delivery mechanisms, for example, from an AppStore built into the system for building a website. , or from an independent web-based or offline application store (or application store) maintained by a website building system (WBS) vendor or other organization. Third party
- 1 036433 приложения могут быть также получены напрямую от поставщика сторонних приложений (через магазин приложений или иным образом), который может предоставлять непосредственно инсталляционный модуль, или же только код активации, или доступа.- 1 036433 applications can also be obtained directly from a third-party application provider (via an application store or otherwise), which can provide an installation module directly, or only an activation or access code.
Сторонние приложения могут включать любую комбинацию элементов внешнего интерфейса (отображаемых, фронтенд) элементов и вспомогательных (бэк-офисных) элементов (которые не являются частью визуального представления веб-сайта). Сторонние приложения могут вообще не иметь отображаемых элементов (быть полностью бэк-офисными), или быть полностью фронтенд-элементами (т.е. быть активными только в контексте использования веб-сайта), или могут представлять собой некоторую комбинацию двух перечисленных вариантов.Third-party applications can include any combination of front-end (display, frontend) elements and auxiliary (back-office) elements (which are not part of the visual presentation of the website). Third-party applications can have no display elements at all (be completely back-office), or be completely front-end elements (that is, be active only in the context of using the website), or they can be some combination of the two listed options.
Бэк-офисные элементы стороннего приложения могут включать такие функции, как функции связи с базой данных, опции внешнего обновления и т.п. К примеру, стороннее приложение для ведения блога (интернет-дневника) может включать бэк-офисный элемент, позволяющий получать обновления от не относящихся к человеку источников (например, новостных RSS-каналов крупных новостных сервисов), а также от человеческих источников, не связанных с данным веб-сайтом (например, автономные приложения для смартфонов, которые позволяют публиковать записи в блоге).The back office elements of a third-party application may include features such as database connectivity, external update options, etc. For example, a third-party blogging (internet diary) application might include a back-office element that allows you to receive updates from non-human sources (for example, the RSS news feeds of major news services), as well as from human sources not affiliated with this website (for example, stand-alone smartphone apps that allow you to post to your blog).
Интеграция визуальных элементов стороннего приложения в содержащий его веб-сайт может быть реализована множеством различных способов. Сторонние приложения типа виджет могут быть встроены на страницу веб-сайта в виде компонента, тогда как сторонние приложения, представляющие собой отдельные разделы веб-сайта, могут быть добавлены на него в качестве дополнительной страницы или нескольких страниц.The integration of the visual elements of a third-party application into its containing website can be done in many different ways. Third-party widget-type applications can be embedded as a component on a website page, while third-party applications, which are separate sections of a website, can be added to it as an additional page or multiple pages.
При этом сторонние приложения (как виджеты, так и разделы), могут быть либо одностраничными сторонними приложениями, либо многостраничными сторонними приложения (которые могут иметь внутренние мини-страницы, представленные внутренней структурой URL-адресов). В системе могут применяться любые из четырех возможных комбинаций (одностраничные или многостраничные виджеты и разделы) или все возможные комбинации.That being said, third-party apps (both widgets and sections) can be either single-page third-party apps or multi-page third-party apps (which can have internal mini-pages represented by an internal URL structure). The system can use any of four possible combinations (single or multi-page widgets and sections) or all possible combinations.
Многостраничные сторонние приложения, как правило, имеют заданную по умолчанию целевую (лэндинговую) мини-страницу, которая может быть стартовой страницей, конкретной внутренней мини-страницей (например, новейшей записью блога в случае стороннего приложения для ведения блога), экраном выбора мини-страниц или какой-либо иной мини-страницей.Multi-page third-party applications typically have a default landing (landing) mini-page, which can be a start page, a specific internal mini-page (for example, the newest blog post in the case of a third-party blogging app), a mini-page selection screen or some other mini-page.
Применение сторонних приложений на веб-сайтах, сконструированных при помощи систем для построения веб-сайтов, реализуют с помощью экземпляров сторонних приложений. Система для построения веб-сайта может поддерживать множественное использование сторонних приложений на нескольких различных уровнях, например, может допускать наличие только одного экземпляра стороннего приложения на всем веб-сайте; может допускать создание экземпляров нескольких сторонних приложений внутри веб-сайта (но не более одного экземпляра для каждого стороннего приложения) или допускать создание множественных экземпляров множества различных сторонних приложений (но не более одного экземпляра на каждой странице). При этом также может допускаться создание на странице нескольких экземпляров сторонних приложений, являющихся компонентами, но не сторонних приложений, являющихся разделами, или же создание множества экземпляров различных сторонних приложений может быть не быть ограничено в отношении их количества, множественности или местоположения.The use of third-party applications on websites built with website building systems is implemented using instances of third-party applications. The system for building a website may support multiple uses of third-party applications at several different levels, for example, may only allow one instance of a third-party application to be present on an entire website; may allow multiple third-party applications to be instantiated within a website (but not more than one instance for each third-party application), or may allow multiple instances of many different third-party applications to be instantiated (but not more than one instance per page). It may also allow multiple instances of third-party applications that are components, but not third-party applications that are sections, to be created on a page, or creating multiple instances of different third-party applications may not be limited in terms of their number, multiplicity, or location.
Содержимое экземпляра стороннего приложения может быть различным для каждого конкретного экземпляра. К примеру, стороннее приложение интернет-магазина может иметь базу данных товаров, которая связана с конкретным экземпляром и отличается от баз данных товаров, связанных с другими экземплярами этого стороннего приложения интернет-магазина (на этом же или других веб-сайтах).The content of an instance of a third-party application may be different for each specific instance. For example, a third-party online store application may have a product database that is associated with a specific instance and is different from the product databases associated with other instances of that third-party online store application (on the same or other websites).
Для простоты описания страница (или мини-страница) веб-сайта, включающая в себя стороннее приложение с его мини-страницами или элементами (т.е. страница-обертка) далее будет называться вмещающей веб-страницей, а весь веб-сайт в целом - основным веб-сайтом. Страница в целом, которую отображают пользователю и которая включает основную страницу со встроенной мини-страницей, или компонентом, стороннего приложения далее будет называться комбинированной страницей. В случае сторонних приложений, представляющих собой разделы веб-сайта, вмещающей веб-страницей будет виртуальная страница, на которой размещено стороннее приложение.For ease of description, a page (or mini-page) of a website that includes a third-party application with its mini-pages or elements (i.e., a wrapper page) will hereinafter be referred to as the containing web page, and the entire website as a whole - the main website. The page as a whole, which is displayed to the user and which includes a main page with an embedded mini-page, or component, of a third-party application will hereinafter be referred to as a combination page. In the case of third-party applications that are sections of a website, the hosting web page will be the virtual page that hosts the third-party application.
Сторонние приложения развертывают, как правило, либо на серверах поставщика системы для построения веб-сайта, либо на серверах поставщика сторонних приложений, либо на внешних серверах (серверах четвертой стороны), или же может применяться некоторая комбинация перечисленного. Обратимся к фиг. 1, из которой видно, что стороннее приложение может включать элементы, фактически исполняемые на машине конечного пользователя, например, статически установленные расширения браузера или динамически исполняемые компоненты JavaScript, которые запускают в составе кода системы для построения веб-сайта, исполняемого на стороне клиента.Third-party applications are typically deployed to either the servers of the system provider for building the website, or to the servers of the third-party application provider, or external servers (fourth-party servers), or some combination of the above. Referring to FIG. 1, which shows that a third-party application may include elements that actually run on the end user's machine, such as statically installed browser extensions or dynamically executable JavaScript components that run as part of system code to build a client-side website.
Сервера, принадлежащие поставщику системы для построения веб-сайта, выступают в роли контактной точки для конечных пользователей и отвечают на запросы (возможно, в связке с серверами поставщика сторонних приложений для получения необходимой информации). Система для построения веб-сайта может формировать прямые соединения (при необходимости) между клиентским компьютеромThe servers owned by the system vendor for building the website act as a contact point for end users and respond to requests (possibly in conjunction with the servers of the third-party application provider to obtain the necessary information). The system for building the website can form direct connections (if necessary) between the client computer
- 2 036433 и серверами поставщика сторонних приложений, например, если необходима потоковая передача видеоинформации.- 2 036433 and third-party application provider servers, for example, if video streaming is required.
Размещенные на веб-сайте экземпляры сторонних приложений, также как и обычные компоненты веб-сайта, могут иметь собственное внутреннее содержимое. Обратимся к фиг. 2, из которой видно, что стороннее приложение может управлять их содержимым независимо от системы для построения вебсайта и независимо от веб-сайта, созданного с использованием подобной системы. Множество экземпляров стороннего приложения (одного стороннего приложения или нескольких различных сторонних приложений) может иметь общее содержимое, например два экземпляра приложения интернет-магазина на двух независимых страницах веб-сайта могут быть связаны с одной и той же базой данных товаров.Instances of third-party applications hosted on the website, as well as regular components of the website, may have their own internal content. Referring to FIG. 2, which shows that a third-party application can manage their content independently of the system for building the website and independently of the website built using such a system. Multiple instances of a third-party application (one third-party application or several different third-party applications) may share content, for example, two instances of an online store application on two independent pages of a website may be linked to the same product database.
Выходные данные встроенных сторонних приложений могут интегрироваться во включающие их веб-страницы множеством различных способов, например:The output of embedded third-party applications can be integrated into their containing web pages in many different ways, for example:
Обработка данных на стороне сервера: при таком варианте в соответствии с иллюстрацией фиг. 3, на примере которой рассмотрен данный случай, стороннее приложение [а] (включающее элементы дизайна и отображаемые элементы) и зависящие от конкретного пользователя данные [b] стороннего приложения объединяют при помощи серверного кода [с] стороннего приложения, исполняемого на сервере [d] поставщика стороннего приложения. Их передают по среде [е] передачи в серверный код [f] системы для построения веб-сайта, который объединяет их с информацией [g] вмещающей веб-страницы и затем передает их для отображения на клиентскую станцию [h] пользователя.Server side data processing: In this case, as illustrated in FIG. 3, on the example of which this case is considered, the third-party application [a] (including design elements and display elements) and user-specific data [b] of the third-party application are combined using the server code [c] of the third-party application running on the server [d] third party application provider. They are passed over the medium [e] to the server code [f] of the system to build a website, which combines them with the information [g] of the hosting web page and then transmits them for display to the user's client station [h].
Обработка данных на стороне клиента: в этом варианте в соответствии с иллюстрацией фиг. 4, на примере которой рассмотрен данный случай, стороннее приложение [а] (включающее элементы дизайна и отображаемые элементы) и зависящие от конкретного пользователя данные [b] стороннего приложения объединяют при помощи серверного кода [с] стороннего приложения, исполняемого на сервере [d] поставщика стороннего приложения. Их передают по среде [е] передачи данных в процессорный компонент [h] клиентской стороны. Серверный код [f] системы для построения веб-сайта передает информацию вмещающей веб-страницы в процессорный компонент [h] клиентской стороны. Процессорный компонент [h] клиентской стороны объединяет два этих источника информации и предоставляет унифицированное приложение браузеру (или другому клиентскому агенту) [i].Client Side Processing: In this embodiment, as illustrated in FIG. 4, on the example of which this case is considered, the third-party application [a] (including design elements and displayed elements) and user-specific data [b] of the third-party application are combined using the server code [c] of the third-party application running on the server [d] third party application provider. They are transmitted over the data transmission medium [e] to the client-side processor component [h]. The server code [f] of the system for building the website passes the information of the hosting web page to the processing component [h] of the client side. The client-side processor component [h] combines these two sources of information and provides a unified application to the browser (or other client agent) [i].
Включение с помощью технологии iFrame: при таком варианте в соответствии с иллюстрацией фиг. 5, на примере которой рассмотрен данный случай, стороннее приложение [а] (включающее элементы дизайна и отображаемые элементы) и зависящие от конкретного пользователя данные [b] стороннего приложения объединяют при помощи серверного кода [с] стороннего приложения, исполняемого на сервере [d] поставщика стороннего приложения. Их передают по среде [е] передачи данных в приложение [h], базирующееся на браузере и исполняемое внутри пользовательского агента (например, веб-браузера) [i]. Серверный код [f] системы для построения веб-сайта передает информацию вмещающей вебстраницы в это приложение [h], базирующееся на браузере. Включающую веб-страницу реализуют в виде веб-страницы, которая содержит одну или более директив iFrame, включающих контент, полученный от сервера [d] сторонних приложений. Могут применяться также дополнительные или альтернативные способы.Activation using iFrame technology: with this embodiment, according to the illustration in FIG. 5, on the example of which this case is considered, the third-party application [a] (including design elements and display elements) and user-specific data [b] of the third-party application are combined using the server code [c] of the third-party application running on the server [d] third party application provider. They are transferred through the medium [e] of data transmission to the application [h], based on the browser and executed inside the user agent (for example, a web browser) [i]. The server-side code [f] of the system for building the website passes the information of the hosting web page to that browser-based application [h]. The enclosing web page is implemented as a web page that contains one or more iFrame directives that include content received from a third-party application server [d]. Additional or alternative methods can also be used.
Сущность изобретенияThe essence of the invention
В соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения предложена система, реализуемая на веб-сайте при помощи клиент-серверной системы, имеющей по меньшей мере один процессор для обработки инструкций, определяющих эту систему. Система включает по меньшей мере один концентратор для координации по меньшей мере одного сообщения об активности между веб-сайтом и по меньшей мере одним сторонним приложением, при этом упомянутое по меньшей мере одно сообщение об активности имеет стандартизованный формат. Система включает также координатор активности для прослушивания упомянутого по меньшей мере одного сообщения об активности и по меньшей мере для добавления данных, извлеченных из упомянутого по меньшей мере одного сообщения, в поток, связанный с идентифицированным контактным лицом и/или с анонимным контактным лицом, где идентифицированным контактным лицом и/или анонимным контактным лицом является пользователь веб-сайта. Система включает также координатор контактов для извлечения и анализа информации, относящейся к контактному лицу, из потока и для обогащения ранее хранимой информации по контактным лицам, а также по меньшей мере одну базу данных для хранения потоков данных об активности и информации, относящейся к контактному лицу, в целях использования веб-сайтом и контактными лицами.In accordance with one preferred embodiment of the present invention, there is provided a system implemented on a website using a client-server system having at least one processor for processing instructions defining the system. The system includes at least one hub for coordinating at least one activity message between a website and at least one third-party application, said at least one activity message having a standardized format. The system also includes an activity coordinator for listening to said at least one activity message and at least for adding data retrieved from said at least one message to a stream associated with an identified contact person and / or an anonymous contact person, where the identified the contact person and / or the anonymous contact person is the user of the website. The system also includes a contact coordinator for extracting and analyzing information related to a contact person from a stream and for enriching previously stored information on contacts, as well as at least one database for storing streams of activity data and information related to a contact person. for use by the website and contact persons.
При этом в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутый по меньшей мере один концентратор включает по меньшей мере одно из следующего: маршрутизатор и трекер для маршрутизации и отслеживания по меньшей мере одного сообщения об активности между веб-сайтом и по меньшей мере одним сторонним приложением, устройство исполнения политик конфиденциальности для исполнения политик конфиденциальности между веб-сайтом и по меньшей мере одним сторонним приложением, транслятор и адаптер для применения по меньшей мере одного заранее заданного правила трансляции и адаптации контента между веб-сайтом и по меньшей мере одним сторонним приложением, прокси-модуль конфиденциальных данных для реализацииMoreover, in accordance with one of the preferred embodiments of the present invention, said at least one hub includes at least one of the following: a router and a tracker for routing and tracking at least one activity message between the website and at least one third-party an application, a privacy policy enforcement device for enforcing privacy policies between a website and at least one third-party application, a translator and an adapter for applying at least one predetermined broadcast rule and adaptation of content between the website and at least one third-party application, proxy confidential data module for implementation
- 3 036433 представительства в отношении конфиденциальных данных и/или замены конфиденциальных данных и для наложения ограничений полей пользовательских разрешений между веб-сайтом и по меньшей мере одним сторонним приложением, а также устройство валидации и подписи для валидации и подписи упомянутого по меньшей мере одного сообщения об активности с использованием приемного ключа по меньшей мере одного стороннего приложения, для трансляции внешнего идентификатора, связанного с упомянутым по меньшей мере одним сообщением об активности, во внутренний для веб-сайта идентификатор и для подписи исходящего по меньшей мере одного сообщения об активности с использованием передающего ключа по меньшей мере одного стороннего приложения.- 3 036433 representations regarding confidential data and / or replacement of confidential data and for imposing restrictions on user permission fields between the website and at least one third-party application, as well as a validation and signature device for validating and signing said at least one message about activity using the receiving key of at least one third-party application, for broadcasting the external identifier associated with the said at least one activity message to the internal identifier for the website and for signing the outgoing at least one activity message using the transmitting key at least one third-party application.
При этом в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения координатор активности включает по меньшей мере одно из следующего: формирователь потока для идентификации контактных лиц, связанных с упомянутым по меньшей мере одним сообщением об активности, и для формирования потока данных, если соответствующих контактных лиц не существует, устройство слияния потоков для слияния данных из упомянутого по меньшей мере одного сообщения об активности с существующим потоком, а также данных по меньшей мере из двух потоков данных об активности в единый поток, а также формирователь журнала для журналирования данных об активности из потока данных об активности по меньшей мере в одну базу данных.Moreover, in accordance with one of the preferred embodiments of the present invention, the activity coordinator includes at least one of the following: a flow generator for identifying contacts associated with the at least one activity message, and for generating a data flow, if the corresponding contacts does not exist, a stream merging device for merging data from said at least one activity message with an existing stream, as well as data from at least two activity data streams into a single stream, and a log generator for logging activity data from a data stream activity in at least one database.
Также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения координатор контактов включает по меньшей мере одно из следующего: экстрактор данных для извлечения информации, относящейся к контактному лицу, из одного или более из следующего: сообщение об активности, другие контактные лица и внешние источники; устройство слияния данных для слияния по меньшей мере двух записей контактной информации, где упомянутые записи связаны с одним и тем же идентифицированным контактным лицом, и для слияния извлеченной информации, относящейся к контактному лицу, с контактной информацией существующего контактного лица согласно заранее заданным правилам слияния, обработчик контактов для создания нового идентифицированного контактного лица и/или анонимного контактного лица и для слежения за активностью контактного лица в течение сеанса работы с веб-сайтом, а также обработчик данных и разрешений для управления защитой конфиденциальности и разрешениями для извлеченной информации, относящейся к контактному лицу.Also in accordance with one preferred embodiment of the present invention, the contact coordinator includes at least one of the following: a data extractor for extracting information related to a contact from one or more of the following: an activity message, other contacts, and external sources; a data fusion device for merging at least two records of contact information, where said records are associated with the same identified contact, and for merging the extracted information related to a contact with the contact information of an existing contact according to predefined merge rules, a processor contacts to create a new identified contact and / or anonymous contact and to track the contact's activity during a website session, as well as a data and permission processor to manage privacy protection and permissions for retrieved information related to the contact.
Дополнительно в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения маршрутизатор и трекер поддерживают маршрутизацию упомянутого по меньшей мере одного сообщения об активности с использованием по меньшей мере одного запроса на прослушивание, поданного сторонним приложением.Additionally, in accordance with one preferred embodiment of the present invention, the router and tracker support routing said at least one activity message using at least one listen request submitted by a third party application.
При этом в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения устройство слияния потоков включает устройство слияния активность-поток для слияния данных с потоком, который связан с идентифицированным контактным лицом, и устройство слияния поток-поток для слияния по меньшей мере двух отдельных потоков в единый поток.Moreover, in accordance with one of the preferred embodiments of the present invention, a stream merger includes an activity-stream merger for merging data with a stream that is associated with an identified contact, and a stream-stream merger for merging at least two separate streams into a single one. flow.
Также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения устройство слияния поток-поток включает по меньшей мере одно из следующего: устройство горизонтального слияния потоков для слияния по меньшей мере двух различных потоков согласно общему идентифицированному контактному лицу и устройство вертикального слияния потоков для слияния потока, сформированного для анонимного контактного лица, с потоком, относящимся к зарегистрированному контактному лицу после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.Also in accordance with one preferred embodiment of the present invention, a stream-to-stream fusion apparatus includes at least one of the following: a horizontal stream fusion device for fusing at least two different streams according to a common identified contact, and a vertical stream fusion device for stream fusion, generated for an anonymous contact, with a flow related to the registered contact after logging into an account or registering, allowing the two contacts to be merged.
Также при этом в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения устройство слияния данных включает по меньшей мере одно из следующего: устройство идентификации контактных лиц, сконфигурированное по меньшей мере для одного из следующего: обнаружение идентичных значений поля первичного идентификатора по меньшей мере в двух записях контактной информации, обнаружение значений поля первичного ключа по меньшей мере в двух записях контактной информации, которые идентичны после нормализации, идентификация пользователя вебсайта с использованием куки-файлов, идентификация пользователя веб-сайта с использованием входа в учетную запись для зарегистрированных пользователей и идентификация пользователя веб-сайта через учетную запись социальной сети для пользователей веб-сайта, чьи учетные записи относятся к социальным сетям. Устройство слияния данных включает также устройство объединения для объединения контактной информации с использованием по меньшей мере одного из следующего: лингвистические характеристики, синтаксис, анализ текста и консультация с внешними источниками данных или сервисами, устройство разрешения противоречий для разрешения противоречий между записями контактной информации согласно заранее заданным правилам, формирователь списочных значений для формирования полей со списочными значениями, однозначно определяющих порядок следования записей контактной информации, устройство горизонтального слияния контактов для слияния двух несвязанных контактных лиц при обнаружении общего первичного идентификатора и устройство вертикального слияния контактной информации для слияния анонимного контактного лица с контактным лицом, которое связано с зарегистрированным пользователем, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.Also, in accordance with one of the preferred embodiments of the present invention, the data fusion device includes at least one of the following: a contact identification device configured for at least one of the following: detection of identical values of the primary identifier field in at least two records contact information, detecting primary key field values in at least two contact information records that are identical after normalization, identifying a website user using cookies, identifying a website user using a registered user account login, and identifying a website user site through a social network account for website users whose accounts are related to social networks. The data fusion device also includes a combiner for combining contact information using at least one of the following: linguistic characteristics, syntax, text analysis and consultation with external data sources or services, a contradiction device for resolving contradictions between contact information records according to predefined rules , a list-value generator for generating list-value fields that uniquely determine the order of contact information records, a horizontal contact merge device to merge two unrelated contacts when a common primary identifier is found, and a vertical contact information merge device to merge an anonymous contact with a contact person who associated with the registered user, after logging into an account or registering, which allows the two contacts to be combined.
- 4 036433- 4 036433
Дополнительно в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения устройство горизонтального слияния включает устройство виртуального слияния для поддержания по меньшей мере двух записей контактной информации в качестве независимых и для их сцепления между собой, в результате которого их помечают как представляющие одно и то же контактное лицо.Additionally, in accordance with one preferred embodiment of the present invention, the horizontal merge device includes a virtual merge device for maintaining at least two contact information records as independent and for concatenating them together, as a result of which they are marked as representing the same contact person ...
Дополнительно в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения устройство вертикального слияния контактов включает устройство виртуального слияния для поддержания анонимного контактного лица и контактного лица, связанного с зарегистрированным пользователем, в качестве независимых и для их сцепления между собой, в результате которого их помечают как представляющие одно и то же контактное лицо.Additionally, in accordance with one preferred embodiment of the present invention, the vertical contact merger includes a virtual merger for maintaining the anonymous contact and the contact associated with the registered user as independent and for concatenating them together so that they are marked as representing the same contact person.
Также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения поле пользовательских разрешений определено веб-сайтом и/или определено владельцем вебсайта.Also, in accordance with one preferred embodiment of the present invention, the user permission field is determined by the website and / or is determined by the owner of the website.
Также при этом в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутый стандартизованный формат представляет собой по меньшей мере одно из следующего: формат, определенный с помощью заранее заданной схемы, наследования, ссылки обратного вызова, формат, закодированный и определенный по меньшей мере одним сторонним приложением, или формат, основанный на внешнем формальном, промышленном или фактически общепринятом стандарте.Also, in accordance with one of the preferred embodiments of the present invention, said standardized format is at least one of the following: a format defined by a predefined scheme, inheritance, a callback reference, a format encoded and defined by at least one third party application, or a format based on an external formal, industrial, or de facto generally accepted standard.
В соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения предложен способ, реализуемый на веб-сайте при помощи клиент-серверной системы, имеющей по меньшей мере один процессор для обработки инструкций, определяющих этот способ. При этом в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутое согласование включает по меньшей мере одно из следующего: маршрутизацию и отслеживание по меньшей мере одного сообщения об активности между веб-сайтом и по меньшей мере одним сторонним приложением, исполнение политик конфиденциальности между веб-сайтом и по меньшей мере одним сторонним приложением, применение по меньшей мере одного заранее заданного правила трансляции и адаптации контента между веб-сайтом и по меньшей мере одним сторонним приложением, реализацию представительства в отношении конфиденциальных данных и/или замены конфиденциальных данных и наложение ограничений полей пользовательских разрешений между веб-сайтом и по меньшей мере одним сторонним приложением, а также валидацию подписи упомянутого по меньшей мере одного сообщения об активности с использованием приемного ключа по меньшей мере одного стороннего приложения, трансляцию внешнего идентификатора, связанного с упомянутым по меньшей мере одним сообщением об активности, во внутренний для веб-сайта идентификатор и подпись исходящего по меньшей мере одного сообщения об активности с использованием передающего ключа по меньшей мере одного стороннего приложения.In accordance with one of the preferred embodiments of the present invention, there is provided a method implemented on a website using a client-server system having at least one processor for processing instructions defining the method. Moreover, in accordance with one of the preferred embodiments of the present invention, said negotiation includes at least one of the following: routing and tracking at least one activity message between the website and at least one third-party application, the enforcement of privacy policies between the website site and at least one third-party application, applying at least one predefined rule for broadcasting and adapting content between the website and at least one third-party application, implementing representation with respect to confidential data and / or replacing confidential data, and imposing constraints on custom fields permissions between the website and at least one third-party application, as well as validating the signature of said at least one activity message using the receiving key of at least one third-party application, broadcasting an external identifier associated with with said at least one activity message, an identifier internal to the website, and a signature of the outgoing at least one activity message using the transmitting key of at least one third-party application.
При этом в соответствии с предпочтительным вариантом осуществления настоящего изобретения упомянутое прослушивание и по меньшей мере добавление включают по меньшей одно из следующего: идентификацию контактных лиц, связанных с упомянутым по меньшей мере одним сообщением об активности, и формирование потока данных, если соответствующих контактных лиц не существует, слияние данных из упомянутого по меньшей мере одного сообщения об активности с существующим потоком, а также данных по меньшей мере из двух потоков данных об активности в единый поток, а также журналирование данных об активности из потока данных об активности по меньшей мере в одну базу данных.Moreover, in accordance with a preferred embodiment of the present invention, said listening and at least adding comprises at least one of the following: identifying contacts associated with said at least one activity message and generating a data stream if no corresponding contacts exist. , merging data from said at least one activity message with an existing stream, as well as data from at least two activity data streams into a single stream, and logging activity data from the activity data stream into at least one database ...
Также при этом в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутые получение и анализ включают по меньшей мере одно из следующего: извлечение информации, относящейся к контактному лицу, из одного или более из следующего: сообщение об активности, другие контактные лица и внешние источники; слияние по меньшей мере двух записей контактной информации, при этом упомянутые записи связаны с одним и тем же идентифицированным контактным лицом; а также слияние извлеченной информации, относящейся к контактному лицу, с контактной информацией существующего контактного лица согласно заранее заданным правилам слияния. Упомянутые получение и анализ включают также создание нового идентифицированного контактного лица и/или анонимного контактного лица и отслеживание активности контактного лица в течение сеанса работы с веб-сайтом, а также управление защитой конфиденциальности и правами доступа к извлеченной информации, относящейся к контактному лицу.Also, in accordance with one of the preferred embodiments of the present invention, said acquisition and analysis includes at least one of the following: extracting information related to a contact from one or more of the following: an activity message, other contacts and external sources ; merging at least two records of contact information, wherein said records are associated with the same identified contact person; and merging the extracted contact information with the contact information of an existing contact according to predefined merge rules. The acquisition and analysis referred to also includes the creation of a new identified contact and / or anonymous contact and tracking the contact's activity during a website session, as well as managing privacy protection and access rights to the retrieved information related to the contact.
Дополнительно также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутые маршрутизация и отслеживание поддерживают маршрутизацию упомянутого по меньшей мере одного сообщения об активности с использованием по меньшей мере одного запроса на прослушивание, поданного сторонним приложением.Additionally, also in accordance with one preferred embodiment of the present invention, said routing and snooping supports the routing of said at least one activity message using at least one listen request submitted by a third party application.
В дополнение в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутое слияние включает слияние данных с потоком, который связан с идентифицированным контактным лицом, и слияние по меньшей мере двух отдельных потоков в единый поток.In addition, in accordance with one preferred embodiment of the present invention, said merging includes merging data with a stream that is associated with an identified contact and merging at least two separate streams into a single stream.
Также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобреAlso in accordance with one of the preferred embodiments of the present invention
- 5 036433 тения упомянутое слияние данных с потоком, связанным с идентифицированным контактным лицом, и слияние по меньшей мере двух отдельных потоков в единый поток включают по меньшей мере одно из следующего: горизонтальное слияние по меньшей мере двух отдельных потоков согласно общему идентифицированному контактному лицу и вертикальное слияние потока, сформированного для анонимного контактного лица, с потоком, связанным с зарегистрированным контактным лицом, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.- 5 036433 then said merging data with a stream associated with an identified contact and merging at least two separate streams into a single stream include at least one of the following: a horizontal merging of at least two separate streams according to a common identified contact and a vertical Merging the flow generated for the anonymous contact with the flow associated with the registered contact after logging in or registering to merge the two contacts.
При этом также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутое слияние по меньшей мере двух записей контактной информации включает по меньшей мере одно из следующего: обнаружение идентичных значений поля первичного идентификатора по меньшей мере в двух записях контактной информации, обнаружение значений поля первичного ключа по меньшей мере в двух записях контактной информации, которые идентичны после нормализации, идентификация пользователей веб-сайта с использованием куки-файлов, идентификация пользователя веб-сайта с использованием входа в учетную запись для зарегистрированных пользователей и идентификация веб-сайта через учетную записи социальной сети для пользователей веб-сайта, чьи учетные записи связаны с социальной сетью. Упомянутое слияние по меньшей мере двух записей контактной информации включает также объединение контактной информации с использованием по меньшей мере одного из следующего: лингвистические характеристики, синтаксис, анализ текста и консультация с внешними источниками данных или сервисами; разрешение противоречий между записями контактной информации согласно заранее заданным правилам, формирование полей со списочными значениями, однозначно определяющих порядок следования записей контактной информации, горизонтальное слияние двух несвязанных контактных лиц при обнаружении общего первичного идентификатора и вертикальное слияние анонимного контактного лица с контактным лицом, которое связано с зарегистрированным пользователем, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица.Moreover, in accordance with one of the preferred embodiments of the present invention, said merging of at least two contact information records includes at least one of the following: detection of identical primary identifier field values in at least two contact information records, detection of primary key field values in at least two contact information records that are identical after normalization, identifying website users using cookies, identifying a website user using an account login for registered users, and identifying a website through a social network account for website users whose accounts are associated with a social network. Said merging of at least two contact information records also includes merging contact information using at least one of the following: linguistic characteristics, syntax, text analysis and consultation with external data sources or services; resolving contradictions between contact information records according to predefined rules, generating list value fields that uniquely determine the order of contact information records, horizontally merging two unrelated contacts when a common primary identifier is found, and vertically merging an anonymous contact with a contact that is associated with the registered user, after logging in or registering, which allows the two contacts to be merged.
Также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутое горизонтальное слияние включает виртуальное слияние для поддержания по меньшей мере двух записей контактов в качестве отдельных и для их связывания между собой, в результате которого их помечают как представление одного и того же контактного лица.Also in accordance with one preferred embodiment of the present invention, said horizontal merge includes a virtual merge for maintaining at least two contact records as separate and for linking them together, thereby marking them as representing the same contact person.
Также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутое вертикальное слияние включает виртуальное слияние для поддержания анонимного контактного лица и контактного лица, связанного с зарегистрированным пользователем, в качестве независимых и их сцепление между собой, в результате которого их помечают как представляющие одно и то же контактное лицо.Also, in accordance with one preferred embodiment of the present invention, said vertical merge includes a virtual merge to maintain the anonymous contact and the contact associated with the registered user as independent and concatenate them together so that they are marked as representing the same same contact person.
Также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения поле пользовательских разрешений определено веб-сайтом и/или определено владельцем вебсайта.Also, in accordance with one preferred embodiment of the present invention, the user permission field is determined by the website and / or is determined by the owner of the website.
Также в соответствии с одним из предпочтительных вариантов осуществления настоящего изобретения упомянутый стандартизованный формат представляет собой по меньшей мере одно из следующего: формат, определенный с помощью заранее заданной схемы, наследования, ссылки обратного вызова, формат, закодированный и определенный по меньшей мере одним сторонним приложением, или формат, основанный на внешнем формальном, промышленном или фактически общепринятом стандарте.Also in accordance with one preferred embodiment of the present invention, said standardized format is at least one of the following: a format defined by a predefined scheme, inheritance, a callback link, a format encoded and defined by at least one third party application, or a format based on an external formal, industrial, or de facto generally accepted standard.
Краткое описание чертежейBrief Description of Drawings
Настоящее изобретение, являющееся предметом рассмотрения данного документа, детально описано и однозначно определено в формуле изобретения, приведенной в заключительной части заявки. Однако изобретение, в том, что касается его организации и принципа действия, вместе с его целями, элементами и преимуществами, может быть наилучшим образом понято при прочтении приведенного ниже подробного описания с обращением к приложенным чертежам, где на фиг. 1 эскизно проиллюстрированы конфигурации развертывания системы построения веб-сайта (website building system, WBS) и стороннего приложения (third party application, TPA);The present invention, which is the subject of this document, is described in detail and is uniquely defined in the claims set forth in the final part of the application. However, the invention, as regards its organization and mode of operation, together with its objects, elements and advantages, can be best understood by reading the detailed description below with reference to the accompanying drawings, where: FIG. 1 is a sketchy illustration of the deployment configurations of a website building system (WBS) and a third party application (TPA).
на фиг. 2 эскизно проиллюстрировано управление внутренним содержимым сторонних приложений;in fig. 2 sketches for managing the internal content of third-party applications;
на фиг. 3 эскизно проиллюстрировано включение стороннего приложения на вмещающую вебстраницу при помощи обработки данных на стороне сервера;in fig. 3 is a sketchy illustration of the inclusion of a third-party application on a hosting web page using data processing on the server side;
на фиг. 4 эскизно проиллюстрировано включение стороннего приложения на вмещающую вебстраницу при помощи обработки данных на стороне клиента;in fig. 4 is a sketchy illustration of the inclusion of a third-party application on a hosting web page using data processing on the client side;
на фиг. 5 эскизно проиллюстрировано включение стороннего приложения на вмещающую вебстраницу при помощи фрейма iframe;in fig. 5 is a sketchy illustration of the inclusion of a third-party application on the containing web page using an iframe;
на фиг. 6 эскизно проиллюстрировано отображение стороннего приложения при изменении верстки страницы в соответствии с существующим уровнем техники, не являющееся оптимальным;in fig. 6 is a sketchy illustration of the display of a third-party application when changing the page layout in accordance with the current state of the art, which is not optimal;
на фиг. 7А и 7В схематично проиллюстрирована система для интеграции системы для построения веб-сайта и одного или более сторонних приложений, сконструированная и функционирующая в соответствии с настоящим изобретением;in fig. 7A and 7B schematically illustrate a system for integrating a system for building a website and one or more third-party applications, constructed and operated in accordance with the present invention;
- 6 036433 на фиг. 8 схематически проиллюстрирована объектная модель документа в сравнении с компонентной моделью;- 6 036433 in Fig. 8 schematically illustrates a document object model in comparison with a component model;
на фиг. 9 эскизно проиллюстрирован пример составного стороннего приложения для ведения блога;in fig. 9 sketches an example of a composite third-party blogging application;
на фиг. 10 эскизно проиллюстрирован пример модульного стороннего приложения интернетмагазина;in fig. 10 is a sketchy illustration of an example of a modular third-party online store application;
на фиг. 11А и 11В эскизно проиллюстрированы различные варианты реализации коммуникационного концентратора, сконструированного и функционирующего в соответствии с настоящим изобретением;in fig. 11A and 11B sketchily illustrate various embodiments of a communication hub constructed and operated in accordance with the present invention;
на фиг. 11С эскизно проиллюстрированы элементы коммуникационного концентратора, показанного на фиг. 11А и 11В, сконструированного и функционирующего в соответствии с настоящим изобретением;in fig. 11C schematically illustrates the elements of the communication hub of FIG. 11A and 11B constructed and operated in accordance with the present invention;
на фиг. 12 эскизно проиллюстрирован сценарий трансляции связи при помощи концентратора, показанного на фиг. 11А и 11В, сконструированного и функционирующего в соответствии с настоящим изобретением;in fig. 12 schematically illustrates a communication broadcast scenario using the hub shown in FIG. 11A and 11B constructed and operated in accordance with the present invention;
на фиг. 13 эскизно проиллюстрирована вмещающая веб-страница, которая управляет сторонним приложением, имеющим ассоциированный шаблон, при этом вмещающая веб-страница сконструирована и функционирует в соответствии с настоящим изобретением.in fig. 13 is a thumbnail illustration of an containing web page that controls a third party application having an associated template, the containing web page being constructed and operated in accordance with the present invention.
на фиг. 14 эскизно проиллюстрирована вмещающая веб-страница, которая включает стороннее приложение, имеющее ассоциированный шаблон, внутри мини-страницы, при этом вмещающая вебстраница сконструирована и функционирует в соответствии с настоящим изобретением.in fig. 14 is a thumbnail illustration of an enclosing web page that includes a third party application having an associated template within a mini page, the containing web page being constructed and operated in accordance with the present invention.
на фиг. 15 эскизно проиллюстрирована система для координации и сбора данных из различных сообщений, переданных между системой для построения веб-сайта и одним или более встроенными сторонними приложениями, при этом система сконструирована и функционирует в соответствии с настоящим изобретением;in fig. 15 is a sketchy illustration of a system for coordinating and collecting data from various messages transmitted between a system for building a website and one or more embedded third-party applications, the system being constructed and operating in accordance with the present invention;
на фиг. 16А, 16В, 16С и 16D эскизно проиллюстрированы элементы системы, показанной на фиг. 15, построенной и функционирующей в соответствии с настоящим изобретением;in fig. 16A, 16B, 16C, and 16D schematically illustrate elements of the system shown in FIG. 15 built and operating in accordance with the present invention;
на фиг. 17 эскизно проиллюстрирован пример графического интерфейса пользователя, в котором отображают поток данных об активности, относящийся к контактному лицу, при этом показанный интерфейс сконструирован и функционирует в соответствии с настоящим изобретением;in fig. 17 is a thumbnail illustration of an example graphical user interface that displays an activity data stream related to a contact, the interface shown being constructed and operated in accordance with the present invention;
на фиг. 18 эскизно проиллюстрирован обмен сообщениями об активности стороннего приложения между клиентской и серверной сторонами; и на фиг. 19 эскизно проиллюстрировано управление входом в учетную запись и выходом из учетной записи в течение сеанса работы с веб-сайтом.in fig. 18 schematically illustrates the exchange of messages about the activity of a third-party application between the client and server sides; and in FIG. Figure 19 is a sketchy illustration of how to manage login and logout during a website session.
Нужно понимать, что в целях сохранения простоты и ясности иллюстраций, элементы на чертежах не обязательно приведены в реальном масштабе. К примеру, для упрощения понимания чертежей размеры некоторых из элементов могут быть увеличены по сравнению с другими элементами. При этом, в случае необходимости, числовые обозначения на различных чертежах могут повторяться, что указывает на соответствующие друг другу или аналогичные элементы.It should be understood that in order to maintain simplicity and clarity of illustrations, elements in the drawings are not necessarily drawn to scale. For example, to make the drawings easier to understand, some of the elements may be oversized compared to other elements. In this case, if necessary, the numeric designations in different drawings may be repeated, which indicates the corresponding or similar elements.
Подробное описание изобретенияDetailed description of the invention
В приведенном ниже подробном описании изложено множество конкретных деталей, позволяющих достичь углубленного понимания настоящего изобретения. Однако специалисты в данной области техники должны понимать, что настоящее изобретение может применяться на практике и без этих конкретных деталей. И напротив, чтобы не усложнять описание настоящего изобретения, общеизвестные способы, процедуры, компоненты, блоки и/или схемы не рассмотрены подробно.In the following detailed description, many specific details are set forth in order to achieve an in-depth understanding of the present invention. However, those skilled in the art should understand that the present invention may be practiced without these specific details. Conversely, in order not to obscure the description of the present invention, well-known methods, procedures, components, blocks and / or circuits are not discussed in detail.
Авторы настоящей заявки нашли множество недостатков в существующих методах встраивания сторонних приложений в системы для построения веб-сайтов и в методах взаимодействия сторонних приложений с системами для построения веб-сайтов.The authors of this application have found many shortcomings in existing methods of embedding third-party applications in systems for building websites and in the methods of interaction of third-party applications with systems for building websites.
Один из этих недостатков заключается в том, что отображение стороннего приложения ограничено единственной прямоугольной областью вмещающей веб-страницы, областью внутри фрейма iframe. Другие недостатки - неспособность сторонних приложений управлять размером и положением собственного окна, а также визуальных элементов, находящихся вне собственно окна отображения стороннего приложения (например, специальные рамки вокруг окна стороннего приложения).One of these drawbacks is that the display of a third-party application is limited to a single rectangular area of the containing web page, the area within the iframe. Other disadvantages are the inability of third-party applications to control the size and position of their own window, as well as visual elements that are outside the actual display window of a third-party application (for example, special frames around the window of a third-party application).
Стороннее приложение может иметь собственные стили отображения (цветовые схемы, шрифты, размер символов и т.п.). Использование этих стилей может подходить для некоторых вмещающих вебстраниц, но может визуально диссонировать с другими вмещающими веб-страницами.A third-party application can have its own display styles (color schemes, fonts, character sizes, etc.). The use of these styles may be appropriate for some containing web pages, but may visually discord with other containing web pages.
Еще один недостаток - недостаток гибкости отображения сторонних приложений с точки зрения вмещающего веб-сайта. Если внешний вид веб-сайта будет изменен (например, при развертывании на платформе с отличающимся размером экрана или в результате события динамической верстки), вмещающая веб-страница может быть вынуждена изменить размер окна, предоставленного стороннему приложению. В этом случае отображение стороннего приложения может быть обрезано, т.е. чтобы достичь некоторых подобластей стороннего приложения, может потребоваться прокрутка с помощью полос прокрутки. Обратимся к фиг. 6, на которой проиллюстрирован пример, показывающий, что может произой- 7 036433 ти при изменении размера вмещающей веб-страницы [а]: размер области, предоставленной стороннему приложению [b] интернет-магазина уменьшился, и кнопка [с] Купить не видна под содержимым корзины [d] покупок, следовательно, для совершения покупки необходимы несколько операций прокрутки, и вероятность совершения покупки, таким образом, значительно снижается.Another drawback is the lack of flexibility in displaying third-party applications in terms of the hosting website. If the appearance of the website is changed (for example, when deploying to a platform with a different screen size or as a result of a dynamic layout event), the hosting web page may be forced to resize the window provided by a third-party application. In this case, the display of the third-party application may be clipped, i.e. to reach some subareas of the third party application, it may be necessary to scroll using the scrollbars. Referring to FIG. 6, which illustrates an example showing what can happen when the containing web page is resized [a]: the size of the area provided to the third-party application [b] of the online store has decreased, and the [c] Buy button is not visible under the contents of the shopping cart [d], therefore, several scrolling operations are required to make a purchase, and the likelihood of making a purchase is thus significantly reduced.
Нужно понимать, что стороннее приложение при этом не может взаимодействовать с другими компонентами вмещающей его веб-страницы, и что такое взаимодействие, тем не менее, необходимо для реализации более сложных функций. А именно в рассмотренном примере стороннее приложение не способно выполнять различные операции в зависимости от типа компонентов на вмещающей странице и содержимого этих компонентов. Примером тому может служить веб-сайт с трансляцией обучающих онлайн-курсов кулинарии. В качестве фона при просмотре соответствующих видеороликов пользователю может быть удобно выделить небольшую область на экране для просмотра новостной ленты, а также просматривать метеосводки в некоторой другой области экрана (например, прямую трансляцию с сайта CNN). Для удобства пользователя, когда начинается метеосводка для региона его проживания, сеанс обучения пользователя может быть приостановлен.It should be understood that a third-party application cannot interact with other components of the hosting web page, and that such interaction is nevertheless necessary to implement more complex functions. Namely, in the above example, the third-party application is unable to perform different operations depending on the type of components on the containing page and the content of these components. An example of this is a website that broadcasts online cooking courses. It may be convenient for the user to select a small area on the screen to view the news feed as a background when viewing the relevant videos, and also to view weather reports in some other area of the screen (for example, a live broadcast from the CNN website). For the convenience of the user, when the weather report for the region of his residence starts, the user training session can be suspended.
Не существует однозначного стандартного метода, при помощи которого множество сторонних приложений могут взаимодействовать друг с другом, в особенности, если они предоставлены различными поставщиками. То есть у веб-дизайнера нет однозначного метода для комбинирования множества сторонних приложений от различных поставщиков. Примером может служить веб-сайт интернетмагазина, на котором запущен модуль из сторонней системы обработки заказов, а также независимый модуль для системы доставки. Было бы удобно иметь возможность пополнения склада в соответствии с расписанием доставки и т.п.There is no single, standardized method by which many third-party applications can interact with each other, especially if provided by different vendors. That is, there is no single method for a web designer to combine many third-party applications from different vendors. An example would be an online store website running a module from a third-party order processing system, as well as an independent module for a delivery system. It would be convenient to be able to replenish the warehouse in accordance with the delivery schedule, etc.
Авторы настоящей заявки нашли, что такая интеграция может быть реализована при помощи структурированных двусторонних каналов связи между системой для построения веб-сайта и экземплярами сторонних приложений, входящих в ее состав, а также между различными экземплярами сторонних приложений, которые могут быть размещены на одной вмещающей странице. По таким каналам может также передаваться информация, относящаяся к верстке, стилям, а также вспомогательная информация.The authors of this application have found that such integration can be implemented using structured two-way communication channels between the system for building a website and the instances of third-party applications that are part of it, as well as between different instances of third-party applications that can be hosted on the same containing page. ... Such channels can also transmit information related to layout, styles, and auxiliary information.
Нужно понимать, что приведенное ниже описание выполнено на основе метода включения сторонних приложений с помощью фрейма iframe, являющегося предпочтительным методом постольку, поскольку он встроен и интегрирован в современные браузеры и не требует создания специального кода для интеграции. Включение при помощи фрейма iframe обеспечивает инкапсуляцию и сэндбоксинг, поддерживаемые браузером, а также встроенную защиту от таких методов взлома, как межсайтовый скриптинг, применяемых во вредоносных сторонних приложениях.It should be understood that the description below is based on the method of including third-party applications using the iframe, which is the preferred method insofar as it is built-in and integrated into modern browsers and does not require any special integration code. Iframe included provides browser-supported encapsulation and sandboxing, and built-in protection against attacks such as cross-site scripting used by malicious third-party applications.
Обратимся к фиг. 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.Referring to FIG. 7A and 7B, illustrating a system 100 for integrating a system for building a website and one or more third-party applications, in accordance with one embodiment of the present invention. FIG. 7A, the system 100 is shown during the website design phase, and FIG. 7B, the system 100 is illustrated in operation. As illustrated in FIG. 7A, system 100 includes a client program 10, a website building system 30 installed on a website building system (WBS) server 20, and one or more third-party applications 40 installed on one or more third-party application servers 50. ... The system 30 for building a website includes a WBS coordinator 21, an application store 22, a WBS side of a third party application properties table 23, a third party application coordinator 24, and an application store 25 (which may include a search device 26). Client 10 includes a page builder 12 and a client-side third party application properties table view 23. In some embodiments of the present invention, the client 10 may also include a client-side view of the application store 25. The page builder 12 includes a linker 13, described in more detail below. The third-party application server 50 includes a third-party application 40, an external third-party application coordinator 51, and a third-party database 52 that stores components of the third-party application 40, templates, and other items for use. It should be noted that system 100 may include multiple third-party application servers belonging to multiple third-party application providers 40.
Нужно понимать, что таблица 23 свойств сторонних приложений может вызываться при назначении атрибутов заданному экземпляру стороннего приложения 40. Также нужно понимать, что при вызове таблица 23 свойств сторонних приложений может отображаться на клиентской стороне в виде представления таблицы 23 свойств сторонних приложений в клиенте 10. При этом нужно понимать, что офлайновые реализации также могут иметь собственные таблицы свойств, являющиеся частью установленного клиентского программного обеспечения, то есть таблица 23 сторонних приложений и/или хранилище сторонних приложений могут отсутствовать.It should be understood that the table 23 properties of third-party applications can be called when assigning attributes to a given instance of the third-party application 40. You also need to understand that when called, the table 23 properties of third-party applications can be displayed on the client side as a view of the table 23 of properties of third-party applications in the client 10. When It should be understood, however, that offline implementations may also have their own property tables as part of the installed client software, that is, the third party application table 23 and / or the third party application store may not be present.
Нужно понимать, что веб-дизайнер или конечный пользователь 5 за клиентской машиной 10 может создавать собственный веб-сайт (или любое другое онлайн-приложение) с помощью конструктора 12 страниц и формировать страницы веб-сайта вместе с соответствующими взаимодействиями (как внутри страницы, так и между страницами). Веб-дизайнер 5 может выбирать компоненты, шаблоны и другие элементы, являющиеся частью системы 30 для построения веб-сайта, которые хранятся в хранилище 22You need to understand that the web designer or end user 5 behind the client machine 10 can create their own website (or any other online application) using the page builder 12 and form the pages of the website along with the corresponding interactions (both within the page and and between pages). The web designer 5 can select components, templates and other elements that are part of the system 30 for building the website, which are stored in the repository 22
- 8 036433 приложений, при помощи координатора 21 WBS. Веб-дизайнер 5 может также создавать вмещающую веб-страницу 203, на которую встраивают экземпляры сторонних приложений 40 из множества сторонних приложений 40, которые были приобретены заранее, и шаблоны, компоненты и другие элементы которых могут храниться в хранилище 22 приложений. В одном из альтернативных вариантов осуществления настоящего изобретения приобретенные шаблоны, компоненты и другие элементы могут храниться в базе 52 данных сторонних приложений, а доступ к ним может осуществляться при помощи координатора 51 внешних сторонних приложений. В еще одном из вариантов осуществления настоящего изобретения шаблоны, компоненты и другие элементы стороннего приложения 40 могут быть приобретены, в соответствии с необходимостью, через магазин 25 приложений. Таблица 23 свойств может заполняться веб-дизайнером 5 и содержать, например, такую информацию об экземплярах приобретенных сторонних приложений 40, как права доступа, инструкции по установке, платежи или аналогичную информацию, в соответствии с последующим более подробным описанием. Веб-дизайнер 5 может также использовать линковщик 23 для ручного назначения при необходимости каналов связи между встраиваемыми сторонними приложениями 40. Также нужно понимать, что линковщик 23 может позволять веб-дизайнеру 5 назначать любые конкретные соединения связи и правила связи между создаваемой им вмещающей вебстраницей и экземплярами сторонних приложений 40, которые размещают на этой веб-странице, например, как в случае описанных выше видеоролика и новостной сводки CNN, отображаемых одновременно. Нужно понимать, что связи, созданные при помощи линковщика 23, могут быть изменены в течение жизненного цикла веб-сайта.- 8 036433 applications, via the 21 WBS coordinator. The web designer 5 may also create a hosting web page 203 into which instances of third-party applications 40 from a plurality of third-party applications 40 that have been purchased in advance are embedded and templates, components, and other elements of which may be stored in the application store 22. In an alternative embodiment of the present invention, purchased templates, components, and other items may be stored in a third-party application database 52 and accessed by an external third-party application coordinator 51. In yet another embodiment of the present invention, templates, components, and other elements of the third-party application 40 may be purchased as needed through the application store 25. The property table 23 may be populated by the web designer 5 and contain, for example, information about the purchased third-party application 40 instances such as access rights, installation instructions, payments, or the like, as described in more detail below. The web designer 5 can also use the linker 23 to manually assign communication channels between the embedded third-party applications 40 if necessary. It should also be understood that the linker 23 can allow the web designer 5 to assign any specific link connections and communication rules between the hosting web page he creates and the instances. 40 third-party applications that are hosted on this web page, for example, as in the case of the above video and CNN news bulletin, displayed simultaneously. It should be understood that the links created with the linker 23 can be changed during the life of the website.
Нужно понимать, что веб-дизайнер 5 может получать сторонние приложения 40 по иным каналам, внешним по отношению к магазину 25 приложений, например через внешний магазин приложений, предоставленный поставщиком сторонних приложений 40 или третьей стороной. В таком случае система 30 для построения веб-сайта может регистрировать стороннее приложение 40 и его конфигурационные данные при первоначальной установке стороннего приложения 40 на веб-сайте, создаваемом вебдизайнером 5 при помощи системы 30 для построения веб-сайта.It should be understood that the web designer 5 may receive third-party applications 40 through other channels external to the application store 25, for example, through an external application store provided by the third-party application provider 40 or a third party. In such a case, the website building system 30 may register the third party application 40 and its configuration data when the third party application 40 is initially installed on the website created by the web designer 5 using the website building system 30.
Чтобы линковщик 23 обеспечивал возможность конфигурирования потенциальных каналов связи, сторонние приложения 40 должны быть способны корректно распознавать и идентифицировать компоненты на вмещающей веб-странице 203 (с которой им необходимо осуществлять связь), включая также экземпляры других сторонних приложений 40. Идентификация компонентов, которые основаны на ассоциированных шаблонах (будут подробно рассмотрены ниже в настоящем документе), выполняется поставщиком сторонних приложений 40 заранее. Компонентам в ассоциированном шаблоне могут быть присвоены специальные ссылочные идентификаторы, и эти идентификаторы могут использоваться сторонним приложением 40 для связи с упомянутыми компонентами.For linker 23 to be able to configure potential communication channels, third-party applications 40 must be able to correctly recognize and identify components on the hosting web page 203 (with which they need to communicate), including also instances of other third-party applications 40. Identification of components that are based on associated templates (discussed in detail later in this document) is executed by the third-party application provider 40 in advance. Special reference identifiers can be assigned to the components in the associated template, and these identifiers can be used by the third party application 40 to communicate with said components.
Также нужно понимать, что в случае составных сторонних приложений 40 (которые будут более подробно рассмотрены ниже), например в случае одного стороннего приложения 40, распределенного по нескольким фреймам iframe, несколько его частей могут автоматически получать информацию, необходимую для связи друг с другом.You also need to understand that in the case of composite third-party applications 40 (which will be discussed in more detail below), for example, in the case of one third-party application 40 distributed over several iframes, several of its parts can automatically receive the information necessary to communicate with each other.
Для компонентов вмещающей страницы веб-сайта, не входящих в ассоциированный шаблон (этот случай будет более подробно рассмотрен ниже), стороннее приложение 40 может иметь список компонентов вмещающей веб-страницы 203, необходимых (обязательно или опционально) для его работы. Этот список может храниться в таблице 23 свойств и может включать уникальные идентификаторы, описание и подробную информацию о компонентах (например, требование, чтобы они были текстовыми компонентами, допускающими использование в качестве метки комментария в блоге). Этот список может быть храниться в записи магазина 25 приложений, относящейся к стороннему приложению 40, и вебдизайнер 5 может использовать линковщик 23 для задания значений компонентов (полей) на вмещающей веб-странице 203 в соответствии с требованиями стороннего приложения 40. Нужно понимать, что система 30 для построения веб-сайта может динамически создавать отсутствующие компоненты вмещающей веб-страницы 203 при создании экземпляра стороннего приложения 40 и может впоследствии предоставлять веб-дизайнеру 5 возможность их перемещения, изменения их размера и более полного их описания.For host page components of a website that are not part of an associated template (this case will be discussed in more detail below), the third-party application 40 may have a list of host web page 203 components required (required or optional) for its operation. This list may be stored in a property table 23 and may include unique identifiers, descriptions, and details about the components (eg, requiring them to be text components that can be used as a blog comment mark). This list can be stored in an application store record 25 for the third-party application 40, and the web designer 5 can use the linker 23 to set the values of the components (fields) on the hosting web page 203 in accordance with the requirements of the third-party application 40. It should be understood that the system 30 for building a website can dynamically create the missing components of the hosting web page 203 when instantiating the third-party application 40 and can subsequently provide the web designer 5 with the ability to move them, resize them, and more fully describe them.
Альтернативно, система 30 для построения веб-сайта может предоставлять полную или частичную компонентную модель вмещающей веб-страницы 203 стороннему приложению 40, включенному в вмещающую веб-страницу 203. Нужно понимать, что подобная структура может быть именно компонентной моделью, а не объектной моделью документа вмещающей веб-страницы 203. DOM-модель вмещающей веб-страницы 203 может быть значительно более сложной и подробной, чем компонентная модель, поскольку фактическая вмещающая веб-страница 203 может содержать множество HTML-элементов - как скрытых, так и отображаемых, - которые являются частью инфраструктуры системы 30 для построения веб-сайта или которые применяются для поддержки компонентов вмещающей веб-страницы 203. Компонентная модель, таким образом, является значительно более простой.Alternatively, the system 30 for building a website may provide a complete or partial component model of the hosting web page 203 to a third-party application 40 included in the hosting web page 203. It should be understood that such a structure could be a component model rather than a document object model. the containing web page 203. The DOM model of the containing web page 203 can be significantly more complex and detailed than the component model, since the actual containing web page 203 may contain many HTML elements - both hidden and displayed - that are part of the infrastructure of the system 30 for building the website, or that are used to support the components of the hosting web page 203. The component model is thus much simpler.
Обратимся к фиг. 8, где проиллюстрирован один из возможных способов реализации текстового компонента [а] с использованием набора HTML-конструкций (таких как, внешний тег div [b], внутренний тег div [с], фрейм mini widgets (мини-виджеты) [d1] ... [d5] и т.п.) DOM-модель [е] вмещающей веб- 9 036433 страницы 203 может содержать отдельные узлы дерева DOM для каждого из этих под-элементов. Компонентная модель [f| может быть значительно более простой и содержать только один узел [g] компонентов.Referring to FIG. 8, which illustrates one possible way to implement a text component [a] using a set of HTML constructs (such as outer div [b], inner div [c], mini widgets frame [d1]. .. [d5] etc.) The DOM [e] of the hosting page 203 9 036433 can contain separate DOM tree nodes for each of these sub-elements. Component Model [f | can be much simpler and contain only one [g] component node.
Нужно понимать, что система 100 может также поддерживать выборочное предоставление информации о компонентах - веб-дизайнер 5 может назначать, при помощи линковщика 23, информация о каких из компонентах должна быть предоставлена стороннему приложению 40, при этом только такие компоненты (возможно, имеющие поле путь расположения, которое указывает на них) могут быть включены в упрощенную компонентную модель, которая является видимой для стороннего приложения 40. Назначение может выполняться при помощи явной пометки соответствующих компонентов согласно их типу или по любому другому атрибуту системы 30 для построения веб-сайта. Стороннее приложение 40 может затем анализировать компонентную модель вмещающей веб-страницы 203 и находить требуемые компоненты.It should be understood that the system 100 can also support the selective provision of information about the components - the web designer 5 can designate, using the linker 23, information about which of the components should be provided to the third-party application 40, while only such components (possibly having a path location that points to them) can be included in a simplified component model that is visible to third-party application 40. Assignment can be accomplished by explicitly tagging the appropriate components according to their type or any other attribute of the system 30 for building the website. The third party application 40 can then parse the component model of the hosting web page 203 and find the required components.
Также нужно понимать, что связи (ссылки) между вмещающей веб-страницей 203 и экземплярами сторонних приложений 40 могут также формироваться автоматически, например может выполняться широковещательное линкование, при котором стороннее приложение 40 во время своего функционирования может передавать сообщения в целях записи определенных событий. Такие сообщения могут быть опциональными или обязательными (т.е. в этом случае стороннее приложение 40 не может работать или даже быть установлено, если не существует соответствующего стороннего приложения 40, которое было слинковано для приема подобных сообщений. К примеру, стороннее приложение 40 может широковещательно передавать пакеты с информацией о собственной активности, а некоторое установленное стороннее приложение 40, реализующее журналирование данных, может принимать эти информационные пакеты.It should also be understood that links (links) between the hosting web page 203 and instances of third-party applications 40 can also be generated automatically, for example, broadcast linking can be performed, in which the third-party application 40, during its operation, can transmit messages in order to record certain events. Such messages may be optional or required (i.e., in this case, the third-party application 40 cannot function or even be installed unless there is a corresponding third-party application 40 that has been linked to receive such messages. For example, the third-party application 40 may broadcast send packets with information about its own activity, and some installed third-party application 40 that implements data logging can receive these information packets.
Вновь созданные веб-страницы, все параметрам которых были присвоены соответствующие значения, могут быть сохранены в хранилище 22 приложений (при помощи координатора 221 WBS) и динамически вызываться во время функционирования веб-сайта в соответствии с последующим более подробным описанием.Newly created web pages, all parameters of which have been assigned the appropriate values, can be saved in the application store 22 (using the WBS coordinator 221) and dynamically called during the operation of the website in accordance with the following more detailed description.
Обратимся вновь к фиг. 7В. В данном варианте осуществления настоящего изобретения применяются те же элементы, что и для фиг. 7А, за исключением элементов клиента 10. При работе клиент 10 имеет в своем составе устройство 201 просмотра для отображения вмещающих веб-страниц. Нужно понимать, что устройство 201 просмотра может включать множество портов 202 отображения, в каждом из которых отображают собственный экземпляр стороннего приложения 40 (экземпляры, полученные на основе одного или более сторонних приложений 40). Клиент 10 включает также коммуникационный концентратор 205 для обеспечения связи и для обеспечения обратного канала между вмещающей вебстраницей 203 и всеми базирующимися на ней сторонними приложениями 40, а также связи, которая осуществляется непосредственно между сторонними приложениями 40, без соединения с соответствующей вмещающей их веб-страницей 203. Ниже функциональность концентратора 205 будет рассмотрена более подробно.Referring again to FIG. 7B. In this embodiment of the present invention, the same elements are used as for FIG. 7A, with the exception of the elements of the client 10. In operation, the client 10 includes a viewer 201 for displaying containing web pages. It should be understood that the viewer 201 may include a plurality of display ports 202, each displaying a native instance of the third-party application 40 (instances derived from one or more third-party applications 40). The client 10 also includes a communication hub 205 to provide communication and to provide a backhaul between the hosting web page 203 and all third-party applications 40 based on it, as well as communication that occurs directly between the third-party applications 40, without connecting to the corresponding hosting web page 203 The functionality of hub 205 will be discussed in more detail below.
Нужно понимать, что концентратор 205 может быть реализован в составе клиента 10, поскольку вмещающая веб-страница 203 и все включенные в нее сторонние приложения 40 являются одновременно интерактивными подсистемами отображаемого пользователям веб-сайта, и недопустимо, чтобы связь между ними страдала из-за задержек при пересылке данных из клиента в сервер и обратно. В одном из альтернативных вариантов осуществления настоящего изобретения концентратор 205 может быть реализован на сервере 20 системы для построения веб-сайта, что более предпочтительно для случаев, в которых серверам 40 сторонних приложений необходимо обмениваться большими объемами данных, и соответственно лучше не маршрутизировать их через клиент 10.It should be understood that the hub 205 can be implemented as part of the client 10, since the hosting web page 203 and all third-party applications 40 included in it are simultaneously interactive subsystems of the website displayed to the users, and it is unacceptable that communication between them suffers due to delays. when sending data from client to server and vice versa. In an alternative embodiment of the present invention, the hub 205 can be implemented on the server 20 of the system for building the website, which is more preferable for cases in which the third-party application servers 40 need to exchange large amounts of data, and accordingly it is better not to route them through the client 10 ...
Нужно понимать, что коммуникационный концентратор 205 может поддерживать различные комбинации связи между системой 30 для построения веб-сайта и одним или более сторонними приложениями 40, а также между множеством сторонних приложений 40. К примеру, концентратор 205 может предоставлять стороннему приложению 40 возможность передачи в систему 30 для построения веб-сайта запроса на переключение на другую страницу основного сайта. Коммуникационный концентратор 205 может также предоставлять стороннему приложению 40 возможность передачи запроса на изменение размеров собственного окна, которое, возможно, повлияет на верстку вмещающей веб-страницы. Это может выполняться при помощи управления динамической версткой, которая будет более подробно описана ниже. Альтернативно, вмещающая веб-страница 203 может, например, передавать запрос на переключение на другую версию стороннего приложения, если это необходимо для соответствия изменениям в отображении. Нужно понимать, что подобная двусторонняя связь может также быть установлена между компонентом стороннего приложения 40 и компонентом системы 30 для построения веб-сайта, относящимся к стороннему приложению 40, которое отображает вспомогательную информацию, а также между элементами составных сторонних приложений 40 или модульных сторонних приложений в соответствии с последующим более подробным описанием.It should be understood that communication hub 205 may support various combinations of communications between the website building system 30 and one or more third-party applications 40, as well as between multiple third-party applications 40. For example, the hub 205 may provide the third-party application 40 with the ability to communicate to the system. 30 to build a switch request website on the main site. Communication hub 205 may also provide third-party application 40 with the ability to submit a request to resize its own window, which may affect the layout of the hosting web page. This can be done using dynamic layout control, which will be described in more detail below. Alternatively, the hosting web page 203 can, for example, transmit a request to switch to a different version of a third-party application if necessary to accommodate changes in display. It should be understood that such a two-way communication can also be established between the third-party application component 40 and the website building system component 30 related to the third-party application 40 that displays auxiliary information, as well as between elements of composite third-party applications 40 or modular third-party applications in in accordance with the following more detailed description.
Также нужно понимать, что система 100 может быть также реализована с использованием одновременно онлайновой и офлайновой систем 30 для построения веб-сайта, и что в ней может применятьсяIt should also be understood that system 100 can also be implemented using both online and offline systems 30 to build a website, and that it can use
- 10 036433 любая комбинация вариантов размещения стороннего приложения, например элементы на стороне клиента, серверы поставщика системы 30 для построения веб-сайта, серверы поставщика 40 сторонних приложений или другие серверы, принадлежащие четвертой стороне. Нужно понимать, что в случае офлайнового варианта осуществления настоящего изобретения, описанного выше, для реализации системы 100 может тем не менее требоваться сервер.- 10 036433 any combination of options for hosting a third-party application, such as client-side elements, the servers of the system provider 30 for building the website, the servers of the third-party application provider 40, or other servers belonging to the fourth party. It should be understood that in the case of the offline embodiment of the present invention described above, a server may still be required to implement system 100.
Система 100 может быть размещена на отличающемся наборе серверов (эксплуатируемых не поставщиком системы для построения веб-сайта), например системой хостинге частных сайтов для крупных организаций.System 100 may be hosted on a different set of servers (operated by a non-system vendor to build a website), such as a private site hosting system for large organizations.
Система 100 может также поддерживать полный спектр вариантов для встраивания экземпляров сторонних приложений 40, в соответствии с предшествующим описанием. Однако система 100 может также поддерживать только подмножество подобных вариантов или может налагать ограничения на возможности встраивания экземпляров сторонних приложений 40.System 100 may also support a full range of options for embedding instances of third-party applications 40, as previously described. However, system 100 may also support only a subset of such options, or may impose restrictions on the ability to embed instances of third-party applications 40.
Система 100 может также допускать реализацию составных сторонних приложений 40. Составное стороннее приложение 40 может включать множество областей отображения, каждый из которых управляется с использованием отдельного фрейма iframe. Эти области могут также взаимодействовать между собой (при необходимости) при помощи коммуникационного концентратора 205 в соответствии с последующим более подробным описанием.System 100 may also be capable of implementing composite third-party applications 40. Composite third-party application 40 may include multiple display areas, each of which is managed using a separate iframe. These areas can also interact with each other (if necessary) using the communication hub 205 in accordance with the following more detailed description.
Обратимся к фиг. 9, на которой проиллюстрирован пример составного стороннего приложения 40. В соответствии с иллюстрацией стороннее приложение [а] для ведения блога, полученное из магазина [b] приложений, помещают на вмещающую веб-страницу 203 [с]. Стороннее приложение [а] для ведения блога включает три следующие области: область [d] записи блога; область [е] облака тегов; область [f] новостной сводки. Нужно понимать, что в составном стороннем приложении множество его областей могут применяться различным образом, включая как множество одновременно присутствующих частей одного приложения в случае приведенного выше примера для блога, так и множество опционально присутствующих частей одного приложения, когда имеется набор всегда отображаемых областей и набор опциональных областей, отображаемых только при необходимости. Управление отображением опциональных областей может осуществляться сторонним приложением 40 или веб-дизайнером 5 (который принимает решения о конфигурации стороннего приложения при включении его в страницу). Управление отображением может быть также доступно для областей вспомогательной функциональности, например конфигурационные области или области дополнительных диалогов; а также в качестве альтернативного отображения для сторонних приложений, доступных в нескольких версиях (например, имеющих малую и более крупную версию или имеющих портретно-ориентированную и горизонтальную версию).Referring to FIG. 9, which illustrates an example of a composite third-party application 40. As illustrated, the third-party blogging application [a] obtained from the application store [b] is placed on the hosting web page 203 [c]. The third-party blogging application [a] includes the following three areas: area [d] blog entries; area [e] tag cloud; area [f] of the news summary. It should be understood that in a composite third-party application, many of its areas can be applied in different ways, including both many simultaneously present parts of the same application in the case of the above example for a blog, and many optional parts of one application, when there is a set of always displayed areas and a set of optional areas displayed only when needed. The display of optional areas can be controlled by a third-party application 40 or a web designer 5 (who makes decisions about the configuration of the third-party application when it is included in the page). Display control can also be available for areas of auxiliary functionality, such as configuration areas or additional dialog areas; and as an alternative display for third-party applications that are available in multiple versions (for example, those with a small and larger version, or with a portrait-oriented and horizontal version).
Нужно понимать, что описанная выше функциональность может быть реализована с использованием фреймов iframe для отображения элементов сторонних приложений 40, что позволяет получить преимущества iframe-архитектуры, связанные с инкапсуляцией и защитой информации.It should be understood that the functionality described above can be implemented using iframes to display elements of 40 third-party applications, thus gaining the benefits of the iframe architecture in terms of encapsulation and information security.
Также нужно понимать, что реализация составных сторонних приложений 40 требует, чтобы сторонние приложения 40 (внутри своих фреймов iframe) могли управлять отображением различных фреймов iframe (например, их видимостью, размером и местоположением). Также нужно понимать, что коммуникационный концентратор 205 может обеспечивать возможность их отображения в соответствии с последующим более подробным описанием.You also need to understand that the implementation of composite third-party applications 40 requires that third-party applications 40 (inside their iframes) can control the display of various iframes (for example, their visibility, size and location). It should also be understood that the communication hub 205 may provide the ability to display them in accordance with the following more detailed description.
Также нужно понимать, что даже в случае, когда составное стороннее приложение 40 состоит (визуально) из нескольких элементов и областей, оно все-таки считается единым сторонним приложением 40 в отношении приобретения (например, в магазине 25 приложений), установки, конфигурирования и т.п.You also need to understand that even in the case where the composite third-party application 40 consists (visually) of several elements and areas, it is still considered a single third-party application 40 with respect to purchase (for example, in an app store 25), installation, configuration, etc. .P.
В существующих системах каждое из сторонних приложений 40 может рассматриваться как независимая сущность, при этом взаимодействие между двумя сторонними приложениями 40 (от одного поставщика или от сотрудничающих поставщиков) приходится реализовывать специально для каждого конкретного случая. Нужно понимать, что система 100 может также поддерживать модульные сторонние приложения 40, которые состоят из множества взаимодействующих друг с другом подмодулей, приобретаемых и устанавливаемых независимо.In existing systems, each of the third-party applications 40 can be viewed as an independent entity, and the interaction between the two third-party applications 40 (from the same vendor or from cooperating vendors) must be implemented on a case-by-case basis. It should be understood that system 100 may also support modular third-party applications 40, which are comprised of a plurality of interoperable sub-modules that are independently purchased and installed.
Обратимся к фиг. 10, на которой проиллюстрировано, каким образом модульное стороннее приложение [а] для управления продажами может быть разбито на подмодули: модуль [b] CRM; модуль [с] лид-менеджмента и модуль [d] интернет-магазина. Все необходимые модули этого стороннего приложения могут быть предоставлены одним поставщиком сторонних приложений. Альтернативно, поставщик сторонних приложений может предоставлять некоторое подмножество модулей (или функциональности) стороннего приложения 40 и давать веб-дизайнеру возможность приобретения и/или установки дополнительных модулей стороннего приложения от того же иди другого поставщика сторонних приложений. Нужно понимать, что тогда как составное стороннее приложение приобретают и устанавливают в виде единого стороннего приложения от одного поставщика, которое при этом просто занимает несколько областей экрана, модульное стороннее приложение включает множество модулей, которые могут приобретаться и устанавливаться независимо и могут включать модули от нескольких поставщиков сторонних приложений. Чтобы обеспечить возможность интеграции множества модулей сторонних приложений отReferring to FIG. 10, which illustrates how a modular third-party application [a] for sales management can be broken down into submodules: module [b] CRM; module [c] lead management and module [d] online store. All required modules of this third party application can be provided by one third party application provider. Alternatively, the third-party application provider may provide a subset of the modules (or functionality) of the third-party application 40 and allow the web designer to purchase and / or install additional third-party application modules from the same or different third-party application provider. It should be understood that while a composite third-party application is purchased and installed as a single third-party application from a single vendor, which simply occupies several screen regions, a modular third-party application includes many modules that can be purchased and installed independently and may include modules from multiple vendors. third-party applications. To enable the integration of many third-party application modules from
- 11 036433 множества поставщиков, каждый модуль стороннего приложения должен иметь список требуемых им интерфейсов и/или функций и предоставляемых интерфейсов и/или функций. Это может быть реализовано, например, с использованием списков имен интерфейсов, основанных на традиции иерархического именования с разделением точками (e.g. My_CRM_TPA.NewClient.Getlnfo), а также спецификации параметров интерфейсов.- 11 036433 multiple vendors, each third-party application module must have a list of the interfaces and / or functions it needs and the interfaces and / or functions provided. This can be implemented, for example, using lists of interface names based on the dot-separated hierarchical naming tradition (e.g. My_CRM_TPA.NewClient.Getlnfo) and interface parameter specifications.
Необходимые для модуля 40 стороннего приложения интерфейсы могут быть помечены как обязательные (т.е. без которых модуль не будет функционировать) или как опциональные (т.е. модуль будет функционировать, но его функциональность будет ограничена или будет изменена). Так параметрами, предоставляемыми для каждого из интерфейсов, могут быть: уникальное имя интерфейса; описание интерфейса - отображаемое веб-дизайнеру 5, и предоставляющее ему информацию о функциональности, обеспечиваемой отсутствующими интерфейсами; статус обязательный/опциональный; список параметров интерфейсов и их типов. Нужно понимать, что каждый из модулей стороннего приложения все равно будет находиться в отдельном фрейме iframe (или наборе фреймов iframe). Функционирование интерфейсов основано на каналах связи, описанных более подробно ниже.Interfaces required for the third-party application module 40 can be marked as required (i.e. without which the module will not function) or as optional (i.e. the module will function, but its functionality will be limited or changed). So the parameters provided for each of the interfaces can be: a unique name of the interface; interface description - displayed to the web designer 5, and providing him with information about the functionality provided by the missing interfaces; required / optional status; list of interface parameters and their types. You need to understand that each of the modules of the third-party application will still be in a separate iframe (or a set of iframe frames). The operation of the interfaces is based on the communication channels described in more detail below.
Нужно понимать, что модули 40 сторонних приложений могут быть скомпонованы на этапе конструирования веб-сайта. Система 30 для построения веб-сайта может выполнять разрешение ссылок на интерфейсы по мере добавления дополнительных модулей стороннего приложения 40, когда новые модули 40 стороннего приложения разрешают существующие требуемые интерфейсы, но также, возможно, с добавлением новых (неразрешенных) требуемых интерфейсов.It should be understood that third party application modules 40 can be compiled during the website design phase. The system 30 for building the website may resolve the links to the interfaces as additional modules of the third-party application 40 are added, when the new modules 40 of the third-party application allow existing required interfaces, but also possibly adding new (unresolved) required interfaces.
Нужно также понимать, что веб-дизайнер 5 может редактировать веб-сайт и запускать его в целом даже тогда, когда имеются неразрешенные обязательные (и опциональные) интерфейсы. Однако вебдизайнер 5 не сможет опубликовать созданный веб-сайт до тех пор, пока все обязательные интерфейсы не будут разрешены, при этом ему будет выдано соответствующее уведомление при попытке вызова функции, которая может задействования активации, концентратором 205, модуля стороннего приложения, который все еще имеет неразрешенные обязательные интерфейсы.It should also be understood that Web Designer 5 can edit a website and run it as a whole even when there are unresolved mandatory (and optional) interfaces. However, web designer 5 will not be able to publish the generated website until all required interfaces are enabled, and he will be given a corresponding notification when trying to call a function that can trigger activation by hub 205, a third-party application module that still has unresolved mandatory interfaces.
Также нужно понимать, что магазин 25 приложений может включать устройство 26 поиска, которое может предпринимать попытку нахождения модулей стороннего приложения, разрешающих интерфейсы, которые необходимы имеющимся модулям стороннего приложения. Устройство 26 поиска может осуществлять поиск, исходя из неразрешенных интерфейсов, для конкретного модуля (или модулей) стороннего приложения или для всех модулей стороннего приложения. Устройство 26 поиска может также выполнять поиск по неразрешенным на текущий момент интерфейсам или даже по уже разрешенным интерфейсам, а также по типа интерфейсов - обязательным, опциональным или обоим сразу. Нужно понимать, что устройство 26 поиска может быть ограничено только разрешением неразрешенных интерфейсом конкретных сторонних приложений, а также поиском по конкретным поставщикам сторонних приложений. Устройство поиска 26 может выполнять либо поиск первого уровня (например, поиск модулей, соответствующих неразрешенным на текущий момент интерфейсам), либо многоуровневый поиск (т.е. выполнять итеративный поиск, находя также модули, соответствующие неразрешенным на текущий момент интерфейсам с учетом модулей сторонних приложений, найденных на предыдущей итерации поиска).It will also be appreciated that the app store 25 may include a search engine 26 that may attempt to locate third-party application modules that enable interfaces that are required by existing third-party application modules. Searcher 26 may search based on unauthorized interfaces, for a particular module (s) of a third-party application, or for all modules of a third-party application. The searcher 26 can also search on currently unauthorized interfaces, or even on already allowed interfaces, as well as by the type of interfaces - mandatory, optional, or both. It should be understood that the search device 26 can be limited only by allowing specific third-party applications not allowed by the interface, as well as searching for specific providers of third-party applications. Finder 26 can perform either a first level search (e.g., searching for modules corresponding to currently unauthorized interfaces) or multilevel search (i.e., performing an iterative search, also finding modules corresponding to currently unresolved interfaces, taking into account third-party application modules. found in the previous search iteration).
В системе 100 описания интерфейсов могут применяться для предоставления веб-дизайнеру 5 информации о значимости некоторых из отсутствующих интерфейсов. Концентратор 205 может осуществлять трансляцию интерфейсов между несовместимыми сторонними приложениями, между которыми тем не менее необходима связь. Связь может быть реализована при помощи адаптерного модуля, предоставляемого поставщиком системы 30 для построения веб-сайта или внешней стороной, который преобразует заданный необходимый интерфейс в другой формат.In the system 100, the interface descriptions can be used to provide the web designer 5 with information about the significance of some of the missing interfaces. The hub 205 can translate interfaces between incompatible third-party applications that still require communication. The communication can be implemented using an adapter module provided by the vendor of the system 30 for building a website, or by an external party that converts a given desired interface to a different format.
Система 100 может также применяться в системах редактирования онлайн-приложений, где для просмотра созданных онлайн-приложений применяется Интернет (или любое другое сетевое соединение) и клиентское программное обеспечение, не основанное на браузере. В таких системах не требуется применение специальных технологий (например, связь по протоколам IP, HTTP, HTML и т.п.), которые необходимы для инфраструктуры стандартного веб-сайта.System 100 may also be used in online application editing systems where the Internet (or any other network connection) and non-browser based client software are used to view generated online applications. Such systems do not require the use of special technologies (for example, communication over IP, HTTP, HTML, etc.), which are necessary for the infrastructure of a standard website.
Нужно понимать, что для обеспечения междоменной связи могут применяться стандартные методы междоменной связи, известные на существующем уровне техники. Эти методы могут включать:It should be understood that standard cross-domain communication techniques known in the art can be used to provide inter-domain communication. These methods may include:
Метод HTML5 PostMessage. Это стандартная функция HTML5, которая может применяться для обеспечения безопасного междоменного обмена сообщениями. При помощи метода Windows.Postmessage HTML5 обеспечивается безопасная передача сообщений между окнами, фреймами iframes и основным HTML-документом, даже если они размещены на различных доменах. Метод PostMessage предоставляет фрейму iframe, которому необходимо передать данные, инструменты для указания домена, в который будет передано сообщение, а фрейму iframe, принимающему данные, инструменты верификации домена, из которого было передано сообщение.HTML5 PostMessage method. This is a standard HTML5 feature that can be used to provide secure cross-domain messaging. The Windows.Postmessage HTML5 method enables secure messaging between windows, iframes, and the main HTML document, even if they are hosted on different domains. The PostMessage method provides the iframe that needs to pass data with tools to specify the domain to which the message will be sent, and the iframe that receives the data with tools to verify the domain from which the message was sent.
Идентификатор фрагмента URL для сообщений: этот метод основан на использовании идентификатора фрагмента URL для передачи данных сообщений из одной конечной точки в другую конечную точку. Данные кодируют в виде простого текста и добавляют (в качестве идентификатора фрагмента) кMessage URL fragment identifier: This method relies on using a URL fragment identifier to pass message data from one endpoint to another endpoint. The data is encoded as plain text and added (as a fragment identifier) to
- 12 036433- 12 036433
URL, который используют для вызова сервиса на домене целевой конечной точки или скрытого фрейма iframe внутри целевого фрейма iframe конечной точки. Затем идентификатор фрагмента декодируют при помощи соответствующего кода в целевом сервисе или целевом фрейме iframe.The URL used to invoke a service on the domain of the target endpoint or hidden iframe within the target endpoint iframe. The chunk identifier is then decoded with the appropriate code in the target service or target iframe.
Специализированный коммуникационный веб-сервис. Система 30 для построения веб-сайта предоставляет специализированный веб-сервис, размещенный на сервере 20 системы для построения вебсайта. Различные конечные точки связи подключаются к этому серверу, либо для передачи сообщений, либо для проверки имеющихся для них сообщений. Это может быть реализовано при помощи известных на существующем уровне техники методов, например, наборе технологий Comet, применявшихся до появления HTML5, технологии WebSockets, основанной на стандарте HTML5, или любой другой технологии очередизации, пулл-передачи, пуш-передачи сообщений сервером или аналогичной технологии.Specialized communication web service. The website building system 30 provides a dedicated web service hosted on the website building system server 20. Various communication endpoints connect to this server, either to send messages or to check the messages available to them. This can be accomplished using methods known in the art, such as the pre-HTML5 Comet suite of technologies, HTML5-based WebSockets, or any other queuing, pull, server push, or similar technology. ...
Локальное хранение HTML5. Стандарт HTML5 предоставляет локальное структурированное хранилище, которое может применяться для хранения поставленных в очередь сообщений. Однако доступ к локальному хранилищу может быть получен только веб-контентом, принадлежащим тому же домену, что и осуществляющий хранение фрейм iframe. На сегодняшний день созданы решения (например, технология, лежащая в основе программного продукта Meebo XAuth, которая была куплена корпорацией Google), в которых относительно простой сервер обеспечивает поддержку создания необходимого промежуточного фрейма iframe, что позволяет получать доступ к локальному хранилищу, расположенному в некотором домене, из фреймов iframe, размещенных в сторонних доменах.Local HTML5 storage. The HTML5 standard provides local structured storage that can be used to store queued messages. However, local storage can only be accessed by web content in the same domain as the storing iframe. To date, solutions have been created (for example, the technology underlying the Meebo XAuth software product, which was purchased by Google), in which a relatively simple server provides support for creating the necessary intermediate iframe, which allows you to access local storage located in a certain domain , from iframes hosted on third party domains.
Прикладные программные интерфейсы (Application Programming Interface, API) HTML5 для доступа к локальной файловой системе. Аналогично применению описанного выше локального хранилища канал связи между фреймами iframe может быть сформирован с помощью локальных файлов в локальном хранилище пользовательского агента, доступ к которым осуществляют при помощи API-интерфейсов доступа к файлам HTML5. Следует, однако, отметить, что защищенная сэндбоксом локальная файловая система, созданная API-интерфейсами HTML5 для доступа к файлам, доступна исключительно для ее создателя, и значит, для преодоления этого ограничения необходим промежуточный компонент iframe или серверный компонент.HTML5 Application Programming Interface (API) for accessing the local file system. Similar to using the local storage described above, the communication channel between iframes can be formed using local files in the local user agent storage, which are accessed using the HTML5 file APIs. It should be noted, however, that the sandbox-protected local file system created by the HTML5 file-access APIs is available exclusively to its creator, and therefore an iframe middleware or server component is required to overcome this limitation.
Специальный плагин браузера. Для управления очередью сообщений, передаваемых между различными фреймами iframe, может быть создан специальный плагин для браузера (или другого пользовательского агента). Такой плагин должен быть установлен пользователями системы 30 для построения вебсайта (на всех уровнях) и предоставлять соответствующие сервисы всем фреймам iframe, а также страницам основного веб-сайта системы 30 для построения веб-сайта.Dedicated browser plugin. A special browser plugin (or other user agent) can be created to manage the queue of messages passed between different iframes. Such a plugin must be installed by the users of System 30 to build the website (at all levels) and provide the appropriate services to all iframes as well as the main website pages of System 30 to build the website.
Нужно понимать, что коммуникационный концентратор 205 может функционировать в роли координатора связи между фреймами iframe, осуществляемой с помощью любого из описанных выше методов передачи сообщений. Также нужно понимать, что концентратор 205 может иметь полную информацию о структуре вмещающей веб-страницы 203 и всю подробную информацию о стороннем приложении 40, предоставленную поставщиком стороннего приложения 40 и хранимую в таблице 23 свойств. Стороннее приложение 40 может при этом иметь отличающиеся параметры при включении в состав других приложений или в других конкретных случаях включения в то же самое приложение (в соответствии с предшествующим описанием). Такие параметры могут включать уникальное имя экземпляра, которое может использоваться для интеллектуальной адресации (в соответствии с последующим более подробным описанием). Также нужно понимать, что концентратор 205 может иметь подробную информацию о стороннем приложении 40, которая не обязательно должна храниться в таблице 23 свойств.It will be appreciated that communication hub 205 can function as a coordinator for communication between iframes using any of the messaging methods described above. It should also be understood that the hub 205 may have complete information about the structure of the hosting web page 203 and all the detailed information about the third-party application 40 provided by the provider of the third-party application 40 and stored in a property table 23. The third-party application 40 may then have different parameters when included in other applications or in other specific cases of inclusion in the same application (in accordance with the previous description). Such parameters may include a unique instance name that can be used for smart addressing (as described in more detail below). It should also be understood that the hub 205 may have detailed information about the third-party application 40 that does not need to be stored in the property table 23.
Также нужно понимать, что концентратор 205 может обеспечивать интеллектуальную адресацию и идентификацию, верификацию источника сообщения, исполнение политик связи, разрешение проблем с совместимостью сторонних приложений 40, а также перенаправление данных из сторонних приложений 40 в другие компоненты. Концентратор 205 может обеспечивать возможность динамического обновления верстки в сторонних приложениях 40 на основе изменений, внесенных во вмещающую веб-страницу 203, в соответствии с последующим более подробным описанием.It should also be understood that the hub 205 may provide smart addressing and identification, message source verification, communication policy enforcement, resolving compatibility issues with third-party applications 40, and redirecting data from third-party applications 40 to other components. The hub 205 may provide the ability to dynamically update the layout in third-party applications 40 based on changes made to the hosting web page 203 as described in more detail below.
Обратимся к фиг. 11А и 11В, на которых проиллюстрированы различные варианты реализации концентратора 205, а также к фиг. 11С, на которой проиллюстрирована функциональность различных его элементов.Referring to FIG. 11A and 11B, which illustrate various embodiments of hub 205, as well as FIG. 11C, which illustrates the functionality of its various elements.
Концентратор 205 может включать устройство 310 интеллектуальной идентификации и адресации, устройство 320 верификации источника, устройство 330 исполнения политик связи, транслятор 340 протоколов, перенаправляющее устройство 350, устройство 360 динамического обновления верстки, менеджер 370 конфигурации, устройство 380 общего обновления и обертку 390 размещаемого APIинтерфейса. Ниже функциональность этих элементов будет рассмотрена более подробно. Нужно понимать, что все причисленные функции применяются для обеспечения работы всех каналов междоменной связи, то есть канала связи между сторонним приложением 40 и системой 30 для построения веб-сайта и канала связи между одним сторонним приложением 40 и другим сторонним приложением 40.The hub 205 may include a smart identification and addressing device 310, a source verifier 320, a communication policy enforcement device 330, a protocol translator 340, a redirector 350, a dynamic layout updater 360, a configuration manager 370, a general updater 380, and a hosted API wrapper 390. Below the functionality of these elements will be discussed in more detail. It should be understood that all the listed functions are used to ensure the operation of all cross-domain communication channels, that is, the communication channel between the third-party application 40 and the system 30 for building a website and the communication channel between one third-party application 40 and another third-party application 40.
Обратимся к фиг. 11А, на которой проиллюстрирован типовой вариант осуществления концентратора 205, реализованный при помощи промежуточного фрейма [a] iframe, в котором для взаимодействия с системой 30 для построения веб-сайта используется внутренний API-интерфейс связи. Таким образом,Referring to FIG. 11A, an exemplary embodiment of a hub 205 is illustrated using an intermediate frame [a] iframe that uses an internal communication API to interact with the system 30 to build a website. In this way,
- 13 036433 сообщения [с], переданные (например) из стороннего приложения [d] в стороннее приложение [е] (для чего применяют модули [f] и [g] API-интерфейса связи соответственно), могут анализироваться, верифицироваться или изменяться при помощи способов, подразумевающих наличие информации о данном конкретном приложении.- 13 036433 messages [c] transmitted (for example) from third-party application [d] to third-party application [e] (for which modules [f] and [g] of the communication API are used, respectively) can be analyzed, verified or changed when using methods that imply the availability of information about this particular application.
Обратимся к фиг. 11В, на которой проиллюстрирован альтернативный вариант осуществления настоящего изобретения без применения промежуточного фрейма iframe. Вместо него применяют технологию междоменной связи в одном или более из модулей [а] и [b] API-интерфейса связи (встроенные в сторонние приложения [с] и [d] соответственно). Модули [а] и [b] взаимодействуют непосредственно с системой 30 для построения веб-сайта, получают информацию о конкретных применяемых приложениях и используют ее для обработки сообщения |f] связи. Данный вариант по сравнению с вариантом осуществления настоящего изобретения, показанным на фиг. 11А, обладает тем недостатком, что значительная часть информации уровня системы 30 для построения веб-сайта может быть обработана внутри модуля, входящего в состав стороннего приложения, при этом к этой информации может быть получен доступ (или даже эта информация может быть модифицирована) вредоносным сторонним приложением.Referring to FIG. 11B, which illustrates an alternative embodiment of the present invention without using an intermediate iframe. Instead, cross-domain communication technology is applied in one or more of the modules [a] and [b] of the communication API (embedded in third-party applications [c] and [d], respectively). Modules [a] and [b] interact directly with the system 30 to build the website, obtain information about specific applications in use, and use it to process the communication message | f]. This embodiment is compared to the embodiment of the present invention shown in FIG. 11A has the disadvantage that much of the system level 30 information for building a website can be processed inside a module included in a third-party application, and this information can be accessed (or even modified) by a malicious third-party. application.
В соответствии с приведенным выше описанием во всех рассмотренных выше методах междоменной связи адресация фреймов iframe основана на информации о происхождении фрейма iframe (которая включает исходный домен, протокол и порт), т.е. осуществляется с использованием прямой адресации сторонних приложений 40 как при передаче сообщений (при указании приемной стороны), так и приеме сообщений (в форме имени передающей стороны, предоставляемого приемнику). Также при этом для передачи сообщения необходимо, чтобы передающая сторона указывала целевое окно фрейма iframe (с помощью вызова метода document.getElementByld(...).contentWindow языка JavaScript или любого другого метода). Таким образом, в существующих системах каждое из сторонних приложений 40 должно хранить полную и конкретную информацию обо всех других сторонних приложениях, с которыми оно может осуществлять связь (включая домен, протокол, порт и идентификатор фрейма iframe).As described above, in all of the cross-domain communication methods discussed above, iframes are addressed based on the origin of the iframe (which includes the source domain, protocol, and port), i.e. is performed using direct addressing of third-party applications 40 both when transmitting messages (when specifying the receiving side) and receiving messages (in the form of the name of the transmitting side provided to the receiver). Also, in order to transmit the message, the transmitting side must specify the target window of the iframe (by calling the document.getElementByld (...). ContentWindow method in JavaScript or any other method). Thus, in existing systems, each of the third-party applications 40 must store complete and specific information about all other third-party applications with which it can communicate (including domain, protocol, port, and iframe id).
Очевидно, что такой тип прямой адресации может быть неудобным в окружении системы 100. Несмотря на то, что веб-дизайнер 5 имеет возможность интеграции сторонних приложений 40 от множества поставщиков сторонних приложений 40, не скоординированных между собой, поставщики сторонних приложений 40 могут предоставлять сторонние приложения 40, размещенные в некотором домене, а затем перемещать их в другой домен или поддомен. Также поставщики сторонних приложений 40 могут менять протоколы или порты, используемые для связи с некоторым заданным сторонним приложением. Веб-дизайнеру 5 в этом случае придется изменять дизайн вмещающей веб-страницы 203, которая содержит стороннее приложение 40. Все описанные события могут происходить в сторонних приложениях 40, которые используются на работающем веб-сайте, имеющем множество посетителей. При этом одна вмещающая веб-страница 203 может включать множество экземпляров стороннего приложения, служащих для различных целей. К примеру, одна из страниц на веб-сайте, созданном для поддержки некоторого коммерческого продукта, может содержать два сторонних приложения 40 чата: один для чата между пользователями и для форума и второй для общения с сотрудником службы поддержки поставщика, когда имеется такая возможность.Obviously, this type of direct addressing can be inconvenient in the environment of system 100. Although the web designer 5 has the ability to integrate third-party applications 40 from multiple third-party application providers 40 that are not coordinated with each other, third-party application providers 40 may provide third-party applications 40s hosted on some domain and then move them to another domain or subdomain. Also, third party application providers 40 may change the protocols or ports used to communicate with some given third party application. The web designer 5 would then have to change the design of the hosting web page 203 that contains the third party application 40. All of the described events can occur in the third party applications 40 that are used on a live website that has many visitors. However, a single hosting web page 203 may include multiple instances of a third-party application serving for different purposes. For example, one of the pages on a website created to support a commercial product may contain two third-party chat applications 40: one for chat between users and for a forum, and one for communicating with a vendor's support staff when available.
Нужно понимать, что устройство 310 адресации и идентификации может иметь полную информацию о структуре вмещающей веб-страницы 203, а подробное описание стороннего приложения 40 (предоставленное поставщиком 40 стороннего приложения в систему 30 для построения веб-сайта). Устройство 310 адресации и идентификации может обеспечивать адресацию сторонних приложений 40, являющихся как источниками, так и приемниками данных, для их связи друг с другом с использованием любого из следующего: уникальное имя стороннего приложения 40 (под которым оно зарегистрировано в магазине 25 приложений); дескрипторный идентификатор экземпляра стороннего приложения 40, присвоенный каждому из экземпляров стороннего приложения 40 на вмещающей веб-странице 203, что обеспечивает возможность адресации множества экземпляров одного и того стороннего приложения 40; базовый идентификатор для типа или класса целевого стороннего приложения (например, необходимо передать сообщение <х> во все экземпляры стороннего приложения 40 для журналирования на вмещающей веб-странице 203). Такой идентификатор может также указывать на конкретные сервисы, которые должны поддерживаться сторонним приложением 40. Устройство 310 адресации и идентификации может также применять указание на версию, например необходимо передать транзакцию <х> в экземпляр пакета <у> бухгалтерского учета, только если он имеет версию <z>.It should be understood that the addressing and identifying device 310 may have complete information about the structure of the hosting web page 203, but a detailed description of the third-party application 40 (provided by the third-party application provider 40 to the system 30 for building the website). The addressing and identifying device 310 may address third-party applications 40, both sources and receivers of data, to communicate with each other using any of the following: the unique name of the third-party application 40 (under which it is registered in the application store 25); a descriptor identifier for an instance of a third-party application 40 assigned to each of the instances of the third-party application 40 on the hosting web page 203 so that multiple instances of the same third-party application 40 can be addressed; a base identifier for the type or class of the target third-party application (for example, it is necessary to pass the message <x> to all instances of the third-party application 40 for logging to the hosting web page 203). Such an identifier may also indicate specific services that are to be supported by the third-party application 40. The addressing and identification device 310 may also apply a version reference, for example, it is necessary to transfer transaction <x> to the accounting package instance <y> only if it has version < z>.
Нужно понимать, что во время своего функционирования сторонние приложения 40 взаимодействуют только с концентратором 205 и, следовательно, им должен быть известен только прямой адрес концентратора 205, а не адреса всех остальных сторонних приложений 40. Этот единственный прямой адрес может быть инкапсулирован при помощи обертки API-интерфейса связи (например, модулей f и g связи, показанный на фиг. 11 А, а также модулей а и b, проиллюстрированных на фиг. 11В), предоставленных системой 30 для построения веб-сайта поставщику сторонних приложений 40. Стороннее приложение 40, осуществляющее вызов, может предоставлять дескриптивные адреса сторонних приложений 40, зависящие от конкретного приложения (в соответствии с предшествующим описанием), а устройство 310 адресации и идентификации может транслировать их в прямые адреса 40 сторонних приложений и выполнятьIt should be understood that during their operation, third-party applications 40 interact only with the hub 205 and, therefore, they should only know the direct address of the hub 205, and not the addresses of all other third-party applications 40. This single direct address can be encapsulated using an API wrapper - a communication interface (eg, communication modules f and g shown in FIG. 11A, and modules a and b illustrated in FIG. 11B) provided by the system 30 for building a website to a third-party application provider 40. The third-party application 40, the caller can provide descriptive addresses of third-party applications 40, depending on the specific application (in accordance with the previous description), and the addressing and identification device 310 can translate them into direct addresses 40 of third-party applications and execute
- 14 036433 маршрутизацию. Таким образом, сторонним приложениям 40 не нужно поддерживать таблицу абсолютных адресов всех сторонних приложений, с которыми оно потенциально может осуществлять связь.- 14 036433 routing. Thus, third-party applications 40 do not need to maintain a table of absolute addresses of all third-party applications with which it can potentially communicate.
Нужно, понимать, что верификация источника сообщения является критичной, т.к. в противном случае приемное стороннее приложение 40 потенциально может принять сообщение от вредоносного стороннего приложения 40. Поскольку вся связь может осуществляться через концентратор 205, устройство 320 верификации источника может проверять аутентичность всех входящих сообщений от всех сторонних приложений. Устройство 320 верификации источника может также предоставлять дополнительную информацию, которая может добавляться к сообщению и может использоваться для дополнительной верификации. Нужно понимать, что поскольку все сторонние приложения 40 в магазине 25 приложений, применяемые в системе 100, зарегистрированы в системе 30 для построения веб-сайта, концентратор 205 может проверять с помощью системы 30 для построения веб-сайта, соответствует ли уникальный идентификатор источника, который может быть включен в сообщение, ожидаемому источнику сообщения (домен, порт и т.п.).You need to understand that verification of the message source is critical, since otherwise, the receiving third-party application 40 could potentially receive a message from the malicious third-party application 40. Since all communication can take place through the hub 205, the source verifier 320 can authenticate all incoming messages from all third-party applications. The source verifier 320 can also provide additional information that can be added to the message and can be used for additional verification. It should be understood that since all third-party applications 40 in the app store 25 used on the system 100 are registered with the system 30 to build the website, the hub 205 can check with the system 30 to build the website whether the unique source identifier that can be included in the message, the expected source of the message (domain, port, etc.).
Стороннее приложение 40 может задавать общую политику связи, которая может зависеть от внешней информации, информации о вмещающей веб-странице 203 и т.п. Устройство 330 исполнения политик связи может обеспечивать применение соответствующей политики связи без необходимости обработки связи, не соответствующей требованиям. К примеру, на веб-сайте, где выполняют обработку секретной информации, сторонние приложения в их профилях могут быть помечены полем уровень секретности. Стороннее приложение 40, обеспечивающее внутреннюю базу данных для журналирования событий и сертифицированное как имеющее уровень секретности X, может соответственно определять политику, согласно которой оно не будет принимать для журналирования события, уровень секретности которых больше X. Устройство 330 исполнения политик связи в этой ситуации может выполнять необходимую предварительную фильтрацию и не допускать, чтобы сообщения с более высоким уровнем секретности вообще попадали в приложения с менее высоким уровнем секретности.The third party application 40 may define a general communication policy, which may depend on external information, information about the hosting web page 203, or the like. The communication policy executor 330 can enforce the appropriate communication policy without having to process out-of-compliance communication. For example, on a website that handles sensitive information, third-party applications in their profiles may be flagged with a privacy level field. A third-party application 40 providing an internal database for event logging and certified as having a security level of X may appropriately determine the policy that it will not accept events for logging whose security level is greater than X. The communications policy enforcement device 330 may execute necessary pre-filtering and prevent messages with a higher security level from ever reaching applications with a lower security level.
Также нужно понимать, что веб-дизайнеру 5 может быть необходимо включить в один создаваемый им веб-сайт два (или более) сторонних приложения, которые могли бы взаимодействовать между собой, однако фактически это может быть не осуществимо из-за несовместимости протоколов. К примеру, в соответствии с иллюстрацией фиг. 12, о которой пойдет речь далее, стороннее приложение [а] интернетмагазина может иметь возможность отправки сообщений о заказах товара в стороннее приложение исполнения заказов и их доставки, например стороннее приложение [b] (предоставленное другим поставщиком). Однако в информации, предоставляемой сторонним приложением [а], могут отсутствовать некоторые поля, необходимые для стороннего приложения [b]. Подобная проблема, как правило, требует вмешательства поставщиков сторонних приложений, однако в некоторых случаях такое решение неприемлемо (например, одно из двух сторонних приложений в текущий момент по каким-либо причинам более не обновляется). Транслятор 340 протоколов может транслировать соответствующие сообщения из приложения [а] в приложение [b] (например, добавляя необходимые отсутствующие поля). Трансляция может выполняться транслятором 340 протокола или может, в некоторых случаях, подразумевать взаимодействие с основным веб-сайтом и вмещающей веб-страницей 203 (например, если требуется дополнительная информация).You also need to understand that a web designer 5 may need to include two (or more) third-party applications in one website he creates that could interact with each other, but in fact this may not be feasible due to incompatibility of protocols. For example, as illustrated in FIG. 12, which will be discussed below, the third-party app [a] of the online store may be able to send messages about goods orders to the third-party application of order fulfillment and their delivery, for example, the third-party app [b] (provided by another supplier). However, the information provided by the third-party application [a] may be missing some of the fields required by the third-party application [b]. Such a problem, as a rule, requires the intervention of third-party application providers, but in some cases such a solution is unacceptable (for example, one of the two third-party applications is no longer updated for some reason at the moment). The protocol translator 340 can translate the appropriate messages from application [a] to application [b] (eg, adding the required missing fields). The broadcast may be performed by the protocol translator 340, or may, in some cases, involve interaction with the main website and the hosting web page 203 (eg, if additional information is required).
Также нужно понимать, что стороннее приложение 40 может иметь функциональность, требующую передачи или приема сообщений из другого стороннего приложения 40 (к примеру, как в случае описанной выше пары сторонних приложений интернет-магазина и исполнения заказов).It should also be understood that the third party application 40 may have functionality requiring the sending or receiving of messages from another third party application 40 (eg, as in the case of the above pair of third party online store and order fulfillment applications).
Однако в некоторых случаях часть решения может отсутствовать, так в описанном выше примере может оказаться, что подходящего приложения 40 для исполнения заказов не существует. В таком случае перенаправляющее устройство 350 может давать веб-дизайнеру 5 возможность указать, что требуемые сообщения могут быть маршрутизированы в некоторый компонент вмещающей веб-страницы 203 или из него, и что требуемая функциональность может быть разрешена этим компонентом вмещающей вебстраницы 203 с использованием функциональности, которую могут обеспечить ее компоненты. Это позволяет конструировать веб-сайт в целом без необходимости создания узкоцелевых специализированных сторонних приложений 40. Соответственно транзакции могут пересылаться в компонент системы 30 для построения веб-сайта, который может выполнять журналирование транзакций в базе данных, и эта база данных может использоваться впоследствии (другим приложением) для исполнения заказов и доставки в режиме офлайн.However, in some cases, part of the solution may be missing, as in the example described above, it may turn out that a suitable application 40 for order fulfillment does not exist. In such a case, the redirector 350 may allow the web designer 5 to indicate that the required messages can be routed to or from some component of the hosting web page 203, and that the required functionality can be resolved by that component of the hosting web page 203 using functionality that can provide its components. This allows the entire website to be constructed without the need to create highly specialized third-party applications 40. Accordingly, transactions can be forwarded to a system component 30 to build a website that can log transactions to a database and that database can subsequently be used (by another application ) for order fulfillment and delivery offline.
Сторонние приложения 40 могут иметь множество различных конфигураций и различные возможности и быть при этом основанными на одном базовом коде, но с различной активируемой функциональностью. К примеру, стороннее приложение 40 может предоставлять базовую функциональность в бесплатной версии и дополнительную функциональность в платной премиум-версии, наборе различных платных версий или дополнительно приобретаемых функциях стороннего приложения 40.Third-party applications 40 can have many different configurations and different capabilities, and still be based on the same underlying code, but with different activatable functionality. For example, the third-party application 40 may provide basic functionality in the free version and additional functionality in the paid premium version, a set of different paid versions, or additionally purchased features of the third-party application 40.
Нужно понимать, что система 100 может включать управление состоянием приобретенных сторонних приложений 40 при помощи системы 30 для построения веб-сайта для каждого отдельного пользователя (или, фактически, для каждого отдельного веб-дизайнера). Также нужно понимать, что все вебдизайнеры могут быть зарегистрированными пользователями системы 30 для построения веб-сайта, иIt will be appreciated that system 100 may include managing the state of purchased third-party applications 40 using system 30 to build a website for each individual user (or, in fact, each individual web designer). You also need to understand that all web designers can be registered users of the 30 system to build a website, and
- 15 036433 таким образом, система 30 для построения веб-сайта может администрировать базу данных приобретенных сторонних приложений 40 для каждого из веб-дизайнеров 5. Эта информация может храниться в таблице 23 свойств, координатором 24 сторонних приложений на этапе конструирования веб-сайта или менеджером 370 конфигураций во время его эксплуатации. К примеру, стороннее приложение 40 может передавать в элемент системы 30 для построения веб-сайта, расположенный на стороне клиента, сообщение запроса версии. Клиентский элемент системы 30 для построения веб-сайта может сверяться с хранилищем 22 или его локально кэшированной копией и возвращать в стороннее приложение 40 ответное сообщение с информацией о функциональности, которой оно должно обладать.- 15 036433 in this way, the system 30 for building the website can administer a database of purchased third-party applications 40 for each of the web designers 5. This information can be stored in a property table 23, by the third-party application coordinator 24 during the website design phase or by a manager 370 configurations during its operation. For example, the third-party application 40 may send a version request message to the client-side web site element 30. The client element of the system 30 for building the website can check with the store 22 or its locally cached copy and return a response message to the third-party application 40 with information about the functionality that it should have.
В одном из альтернативных вариантов осуществления настоящего изобретения система 30 для построения веб-сайта может предоставлять в стороннее приложение 40 конфигурационную информацию стороннего приложения 40 по альтернативным каналам, например через зашифрованный параметр фрейма iframe, без необходимости описанного выше сообщения запроса.In an alternate embodiment of the present invention, the website building system 30 may provide the third party application 40 with the configuration information of the third party application 40 via alternative channels, such as an encrypted iframe parameter, without the need for the request message described above.
В соответствии с предшествующим описанием стороннее приложение 40 может осуществлять связь непосредственно с конкретными компонентами вмещающей веб-страницы 203. Стороннее приложение 40 может идентифицировать компоненты для связи с использованием нескольких различных методов: непосредственно для компонентов, основанных на ассоциированных шаблонах (в соответствии с последующим более подробным описанием); при помощи идентификатора доступа, явно предоставленного веб-дизайнером 5 непосредственно для конкретных компонентов вмещающей веб-страницы 203; при помощи передачи (возможно, выборочной) компонентной модели, соответствующей вмещающей вебстранице 203 в стороннее приложение 40.As previously described, third-party application 40 can communicate directly with specific components of the hosting web page 203. Third-party application 40 can identify components to communicate using several different methods: directly for components based on associated templates (in accordance with the following more detailed description); by using an access identifier explicitly provided by the web designer 5 directly for specific components of the hosting web page 203; by passing a (possibly selective) component model corresponding to the hosting web page 203 to the third party application 40.
Нужно понимать, что при функционировании системы обмен сообщениями и ответами между компонентами вмещающей веб-страницы 203 может быть реализован при помощи устройства 380 обновления. Например, стороннее приложение 40 может оказывать влияние на визуальные атрибуты и атрибуты отображения компонентов вмещающей веб-страницы 203 или запрашивать информацию о них (такую как информацию об их положении, размерах, цвете, прозрачности и т.п.) Устройство 380 обновления может также обеспечивать возможность в стороннем приложении 40 считывания или записи содержимого компонентов вмещающей веб-страницы 203, а также позволять ему управлять компонентами с мультимедийными функциями, например передавать заданный аудио- или видеофрагмент в компонент воспроизведения мультимедийных данных, или запрашивать у него приостановку воспроизведения на заданный период времени.It will be appreciated that in the operation of the system, the exchange of messages and responses between the components of the hosting web page 203 may be implemented using the updater 380. For example, the third-party application 40 may influence or request information about the visual and display attributes of the components of the hosting web page 203 (such as information about their position, size, color, transparency, etc.). The updater 380 may also provide the ability in the third-party application 40 to read or write the contents of the components of the hosting web page 203, and also allow it to control the components with multimedia functions, for example, send a given audio or video fragment to the multimedia playback component, or request it to pause playback for a given period of time.
Устройство 380 может также упрощать для компонентов системы 30 для построения веб-сайта определение типа доступа, предоставляемого ими для сторонних приложений 40, аналогично тому, как в современных операционных системах, с целью защиты файлов, функционируют биты разрешения доступа или списки управления доступом (access control list, ACL). Такие разрешения могут быть определены для каждого и компонентов и применяться для всех сторонних приложений 40 от конкретного поставщика или для конкретных сторонних приложений 40. К примеру, стороннему приложению 40 может быть разрешено получать доступ к текстовому полю, являющемуся частью вмещающей веб-страницы 203 снаружи стороннего приложения 40. Это текстовое поле может применяться для редактирования записи блога в случае стороннего приложения 40 для ведения блога, чтобы обеспечить большую площадь экрана, нежели доступна непосредственно внутри области стороннего приложения 40. Нужно понимать, что в случае сторонних приложений 40, встраиваемых на конкретные мини-страницы в многостраничном контейнере, система 30 для построения веб-сайта может ограничивать доступ стороннего приложения 40 только компонентами на этой конкретной мини-странице.The device 380 may also make it easier for the components of the system 30 to build a website to determine the type of access they grant to third-party applications 40, in a similar way to how modern operating systems use permission bits or access control lists to protect files. list, ACL). Such permissions may be specific to each and every component and apply to all third-party applications 40 from a particular vendor or specific third-party applications 40. For example, a third-party application 40 may be allowed to access a text field that is part of the hosting web page 203 from outside the third-party application 40. This text box can be used to edit a blog entry in the case of a third party blogging application 40 to provide more screen real estate than is available directly inside the area of the third party application 40. It should be understood that in the case of third party applications 40 embedded on specific mini -pages in a multi-page container, the system 30 for building the website can restrict the access of the third-party application 40 to only the components on that particular mini-page.
Также нужно понимать, что устройство 380 обновления может разрешать стороннему приложению 40 влиять на глобальные элементы сайта. Это может включать получение и задание таких атрибутов, как текущая страница веб-сайта, текущая мини-страница в контейнере, который содержит стороннее приложение 40, а также история просмотра страниц. Устройство 380 обновления может при этом фильтровать или ограничивать подобные запросы.It should also be understood that the updater 380 may allow third-party application 40 to affect global site elements. This can include getting and setting attributes such as the website's current page, the current mini-page in a container that contains 40 third-party app, and page browsing history. Updater 380 may thereby filter or limit such requests.
Устройство 380 обновления может также обеспечивать возможность для системы 30 для построения веб-сайта влиять на визуальный облик и отображение стороннего приложения 40. Устройство 380 обновления может совершать вызовы, при помощи которых система 30 для построения веб-сайта может предоставлять указания по форматированию и стилям в стороннее приложение 40. Они могут включать следующие свойства: цвета и цветовые схемы; шрифты; размер символов; прозрачность; анимация и спецэффекты (например, размытие). В частности, цветовая схема может включать стандартную цветовую схему (например, использование следующих х цветов) или цвета высокого уровня (например, использование цвета х для текста и цвета у для рамок).The updater 380 may also allow the website building system 30 to influence the visual appearance and display of the third-party application 40. The updater 380 can make calls with which the website building system 30 can provide formatting and style guidance to third-party application 40. These may include the following properties: colors and color schemes; fonts; size of characters; transparency; animation and special effects (for example, blur). In particular, a color scheme can include a standard color scheme (for example, using the following x colors) or high-level colors (for example, using x for text and y for borders).
Нужно понимать, что одним из предпочтительных способов представления составной информации о стилях является применение каскадных таблиц стилей (Cascading Style Sheets, CSS), позволяющих представить комбинацию из множества указаний по стилю, включающих шрифты, размеры, цвета и т.п. Устройство 380 может передавать подобные сообщения, основанные на CSS, в стороннее приложение 40. Таблицы стилей могут быть общими по своему характеру или могут включать конкретные имена типов, определенных в стороннем приложении 40, благодаря чему система 30 для построения веб-сайтаIt should be understood that one of the preferred ways of presenting composite style information is through the use of Cascading Style Sheets (CSS), which allows you to represent a combination of a variety of style hints including fonts, sizes, colors, and the like. The device 380 may send similar CSS based messages to the third party application 40. The style sheets may be generic in nature, or may include specific names of types defined in the third party application 40, whereby the system 30 for building a website
- 16 036433 может предоставлять в стороннее приложение 40 более точные указания (например, таблица стилей может относиться к конкретным элементам 40 стороннего приложения 40 и содержать указания именно для них).- 16 036433 can provide more precise instructions to the third-party application 40 (for example, the style sheet may refer to specific elements 40 of the third-party application 40 and contain instructions specifically for them).
Стороннее приложение 40 может затем применять эти указания для более эффективной адаптации собственного визуального облика к вмещающей веб-странице 203. Это особенно важно для сторонних приложений 40, входящих состав или отображаемых на множестве вмещающих веб-страниц 203 на одном веб-сайте (упомянутое выше многопортовое включение). В подобном множестве вмещающих страниц могут применяться различные цветовые схемы или общий дизайн. Стороннее приложение 40 может использовать информацию, предоставленную ему при помощи таких сообщений о стиле, и адаптировать цвета и стили своего отображения, чтобы лучше подходить для каждой из вмещающих страниц, что позволяет исключить отображения несогласующихся цветовых схем или оформления интерфейса.The third-party application 40 can then apply these guidelines to more efficiently adapt its own visual appearance to the hosting web page 203. This is especially important for third-party applications 40 that are included in or displayed on multiple hosting web pages 203 on a single website (the above-mentioned multiport inclusion). Such a plurality of enclosing pages may have different color schemes or general designs. The third party application 40 may use the information provided by such style messages and adapt its colors and styles to better suit each of the containing pages, thereby avoiding displaying inconsistent color schemes or interface designs.
Нужно понимать, что устройство 360 обновления динамической верстки может обеспечивать возможность взаимодействия между системой для построения веб-сайта и сторонним приложением 40 или между двумя сторонними приложениями при управлении изменениями в отображении в результате события динамической верстки. Система 30 для построения веб-сайта может изменять размер и положение компонентов на странице, чтобы сохранить дизайн страницы в случае наступления событий, модифицирующих некоторые из компонентов страницы. Такие события динамической верстки могут включать, например, просмотр веб-сайта на экранах различных размеров; поворот дисплейного устройства и переход его из портретного в горизонтальный режим; изменение размера или положения некоторых из компонентов и изменение содержимого заданных компонентов (если это требует изменения их размера). Событие динамической верстки может также включать обновление компонента в результате обновления серверного контента, например, при отображении информации из интернет-канала, или в результате изменения содержимого, выполненного другими пользователями, также использующими данный веб-сайт в текущий момент. Также нужно понимать, что события динамической верстки могут происходить как в окружении проектирования веб-сайта, так и в его рабочем окружении. А именно некоторые компоненты и сторонние приложения 40 могут допускать изменение содержимого или изменение размера/положения при его фактической работе (т.е. конечными пользователями), а не только веб-дизайнером.It will be appreciated that the dynamic layout updater 360 may provide interoperability between the system for building the website and the third-party application 40, or between two third-party applications, while managing display changes as a result of a dynamic layout event. The website building system 30 can resize and position the components on the page to preserve the page design in the event of events that modify some of the page components. Such dynamic layout events can include, for example, viewing the website on different screen sizes; rotation of the display device and its transition from portrait to horizontal mode; resizing or positioning some of the components and changing the content of the specified components (if this requires resizing them). A dynamic layout event can also include updating a component as a result of server content updates, such as displaying information from an Internet feed, or as a result of content changes made by other users who are also currently using the website. You also need to understand that dynamic layout events can occur both in the design environment of a website, and in its working environment. Namely, some of the components and third-party applications 40 may be capable of changing content or resizing / positioning as it actually operates (i.e., end users), not just a web designer.
Также нужно понимать, что событие динамической верстки может быть также вызвано сторонним приложением 40. К примеру, стороннее приложение 40 интернет-магазина может требовать изменения размера, когда пользователь переходит от отображения каталога продукции к просмотру корзины покупок (имеющей отличающийся размер). В качестве другого примера стороннее приложение 40, реализующее каталог товаров, может включать опцию выделения товаров, которая может включать отображения для них более крупной страницы каталога с расширенным содержанием. Третьим примером является многообластное стороннее приложение 40, которое может включать и отключать отображение дополнительных областей.It should also be understood that a dynamic layout event may also be triggered by a third-party application 40. For example, a third-party online store application 40 may require resizing when a user navigates from displaying a product catalog to viewing a shopping cart (having a different size). As another example, third-party product catalog application 40 may include an option to highlight products, which may include displaying a larger catalog page with extended content for them. A third example is a multi-area third party application 40 that can enable and disable the display of additional areas.
В существующих системах такие ситуации (если они вообще возможны) обрабатывают, урезая отображение сторонних приложений, добавляя к нему полосы прокрутки или простым изменением его размера, с отображением в качестве плавающего окна, которое перекрывает остальные компоненты страницы, в соответствии с иллюстрацией фиг. 6, о которой пойдет речь далее. Устройство 360 обновления динамической верстки может реализовывать совместную динамическую верстку, при которой система 30 для построения веб-сайта и сторонние приложения 40 взаимодействуют при выполнении динамической верстки, сохраняя общий дизайн вмещающей веб-страницы 203. Функциональность динамической верстки более подробно описана в заявке на патент США № 13/771119, зарегистрированной 20 февраля 2013, также за авторством создателей настоящей заявки. Однако даже в системах с поддержкой совместной динамической вертки механизм динамической верстки на вмещающей веб-странице 203 не обладает полным контролем над внутренней версткой стороннего приложения 40. При этом виджеты системы 30 для построения веб-сайта могут проектироваться таким образом, чтобы допускать изменение их размеров произвольным образом (в заданном диапазоне), однако сторонние приложения 40 могут не поддерживать произвольное изменение размеров. Стороннее приложение 40 может обеспечивать, например, любую комбинацию следующего: набор конфигураций отображения, имеющих различных размер (например, с отображением большего или меньшего количества деталей); возможность изменения размера его внутренних элементов, а также возможность отображения некоторых из его внутренних текстовых элементов с использованием множества размеров шрифтов.In existing systems, such situations (if they are possible at all) are handled by trimming the display of third-party applications, adding scrollbars to it, or simply resizing it, and displaying it as a floating window that overlaps the rest of the page, as illustrated in FIG. 6, which will be discussed below. The dynamic layout updater 360 may implement a collaborative dynamic layout in which the website building system 30 and third-party applications 40 interact to perform dynamic layout while maintaining the overall design of the hosting web page 203. The dynamic layout functionality is described in more detail in the US patent application No. 13/771119, registered on February 20, 2013, also by the authors of this application. However, even in systems that support dynamic collaborative layout, the dynamic layout engine on the hosting web page 203 does not have complete control over the internal layout of the third-party application 40. However, the widgets of the system 30 for building the website can be designed to be resized arbitrarily. way (within a given range), however, third-party applications 40 may not support arbitrary resizing. The third party application 40 may provide, for example, any combination of the following: a set of display configurations having different sizes (eg, displaying more or less detail); the ability to resize its internal elements; and the ability to display some of its internal text elements using a variety of font sizes.
Стороннее приложение 40 может при этом обеспечивать ограниченный набор размеров отображения или может иметь полный диапазон возможных размеров. Соответственно запрос на изменение размера в направлении от вмещающей веб-страницы 203 в стороннее приложение 40 может быть разрешен переключением стороннего приложения 40 к ближайшему доступному размеру или предоставлением списка возможных размеров стороннего приложения 40 (что позволяет системе 30 для построения вебсайта выбрать подходящий размер для использования).Third party application 40 may provide a limited set of display sizes, or may have the full range of possible sizes. Accordingly, a request to resize in the direction from the hosting web page 203 to the third party application 40 can be resolved by switching the third party application 40 to the closest available size, or by providing a list of possible sizes for the third party application 40 (allowing the system 30 to build the website to select the appropriate size for use) ...
Устройство 360 обновления динамической верстки может реализовывать в направлении от вмещающей веб-страницы 203 к стороннему приложению 40 совместную динамическую верстку с использованием описанной ниже последовательности операций:The dynamic layout updater 360 may implement dynamic layout collaboratively from the hosting web page 203 to the third-party application 40 using the following sequence of operations:
- 17 036433- 17 036433
Например, может быть необходимо изменить размер стороннего приложения 40, встроенного на вмещающую веб-страницу 203, до заданного (например, X1*Y1 пикселей). Устройство 360 обновления динамической верстки может передавать в стороннее приложение 40 сообщение с запросом на изменение, сторонним приложением 40, своего содержимого до заданного размера (X1*Y1). Стороннее приложение 40 может адаптироваться к этому размеру с помощью альтернативной конфигурации отображения, изменения внутреннего размера, внутреннего управления динамической версткой или другими средствами. Также нужно понимать, что вмещающая веб-страница 203 может менять размер внешнего окна фрейма iframe, которое содержит стороннее приложение 40, на новый размер (X1*Y1).For example, it may be necessary to resize the third-party application 40 embedded in the containing web page 203 to a specified size (eg, X1 * Y1 pixels). The dynamic layout updater 360 can send to the third-party application 40 a message with a request to change, by the third-party application 40, its content to a predetermined size (X1 * Y1). The third party application 40 can adapt to this size through an alternate display configuration, internal resizing, internal dynamic layout control, or other means. It should also be understood that the hosting web page 203 can resize the outer iframe that contains the third-party application 40 to a new size (X1 * Y1).
Также нужно понимать, что стороннее приложение 40 может допускать изменение размера только с ограниченным набором возможных размеров (например, конкретными конфигурациями пользовательского интерфейса). Соответственно устройство 360 обновления динамической верстки может использовать описанный ниже альтернативный алгоритм, который позволяет стороннему приложению 40 предоставлять набор возможных размеров.It should also be understood that the third party application 40 may only be resizable with a limited set of possible sizes (eg, specific user interface configurations). Accordingly, the dynamic layout updater 360 may use an alternative algorithm described below that allows the third-party application 40 to provide a set of possible sizes.
Если размер вмещающей веб-страницы 203 изменяют, устройство 360 обновления динамической верстки передает в стороннее приложение 40 сообщение с запросом на изменение, сторонним приложением 40, своего содержимого до заданного размера (X1*Y1). Стороннее приложение 40 после этого определяет ближайший доступный размер (например, X2*Y2 пикселей) и изменяет свой размер соответствующим образом, применяя альтернативную конфигурацию отображения, изменение внутреннего размера, внутреннее управление динамической версткой или другими средствами. Затем устройство 380 обновления может передавать во вмещающую веб-страницу 203 ответное сообщение, подтверждающее изменение размера и содержащее фактический новый размер (X2*Y2). Также нужно понимать, что вмещающая веб-страница 203 может менять размер внешнего окна фрейма iframe, которое содержит стороннее приложение 40, на фактический новый размер (X2*Y2). Вмещающая веб-страница 203 может затем выполнять дальнейшее управление внутренней версткой, исходя из фактического нового размера (X2*Y2).If the hosting web page 203 is resized, the dynamic layout updater 360 sends to the third-party application 40 a message requesting that the third-party application 40 change its content to a predetermined size (X1 * Y1). The third-party application 40 then determines the closest available size (for example, X2 * Y2 pixels) and resizes itself accordingly by applying an alternate display configuration, internal resizing, internal dynamic layout control, or other means. The updater 380 may then transmit to the hosting web page 203 a response message confirming the resize and containing the actual new size (X2 * Y2). It should also be understood that the hosting web page 203 can resize the outer iframe that contains the third-party application 40 to the actual new size (X2 * Y2). The hosting web page 203 can then further control the internal layout based on the actual new size (X2 * Y2).
Нужно понимать, что может также применяться другой вариант осуществления настоящего изобретения, а именно если на вмещающей веб-странице 203 размещены несколько сторонних приложений 40 (или многообластное стороннее приложение 40). В данном варианте осуществления настоящего изобретения вмещающая веб-страница 203 может запрашивать у размещенных на ней сторонних приложений 40 список размеров отображения, благодаря чему впоследствии они могут пытаться оптимизировать внешний облик с учетом множества опций, доступных во множестве сторонних приложений 40. Данный вариант осуществления настоящего изобретения может быть также применим в случае, когда сторонние приложения 40 отображают во множестве различных областей.It should be understood that another embodiment of the present invention may also apply, namely if the hosting web page 203 hosts multiple third-party applications 40 (or a multi-domain third-party application 40). In this embodiment of the present invention, the hosting web page 203 can query hosted third-party applications 40 for a list of display sizes, so that they can subsequently attempt to optimize the appearance based on the many options available in the plurality of third-party applications 40. This embodiment of the present invention may also be applicable in the case where third-party applications 40 are displayed in many different areas.
Вмещающая веб-страница 203 может выполнять управление динамической версткой, обнаруживать, что одно или более сторонних приложений 40 (ТРА[1] ... ТРА[п]) размещены на вмещающей вебстранице 203 и что их размер должен быть изменен с использованием следующего алгоритма:The hosting web page 203 may perform dynamic layout control, detect that one or more third-party applications 40 (TPA [1] ... TPA [n]) are hosted on the hosting web page 203 and that their size should be resized using the following algorithm:
Цикл по i от 1 до n:Loop on i from 1 to n:
Для каждого TPA[i] определить минимальный размер Xmin[i]*Ymin[i];For each TPA [i], determine the minimum size Xmin [i] * Ymin [i];
максимальный размер Xmax[i]*Ymax[i];maximum size Xmax [i] * Ymax [i];
оптимальный размер Xopt [i]*Yopt [i].optimal size Xopt [i] * Yopt [i].
Устройство 360 динамического обновления верстки может передавать сообщение в стороннее приложение TPA[i] с информацией о минимальном, максимальном и оптимальном размерах, описанных выше, и запрашивать информацию о возможных размерах стороннего приложения 40.The dynamic layout updater 360 can send a message to the third party TPA [i] application with information on the minimum, maximum and optimal sizes described above, and request information about the possible sizes of the third party application 40.
Стороннее приложение 40 может предоставлять в устройство 380 динамического обновления массив возможных вариантов своего размера, Xposs[i][j]*Yposs[i][j].The third-party application 40 may provide to the dynamic update device 380 an array of possible size variations, Xposs [i] [j] * Yposs [i] [j].
На основе полученной описанным выше образом информации Xposs[][]/Yposs[][] вмещающая вебстраница может вычислять решение для вычисления динамической верстки с использованием (например) полного анализа всех возможных размеров сторонних приложений, методов линейного программирования или любых других методов, применяемых в алгоритме динамической верстки.Based on the information obtained in the manner described above, Xposs [] [] / Yposs [] [] the hosting web page can compute a solution for calculating dynamic layout using (for example) a full analysis of all possible sizes of third-party applications, linear programming methods or any other methods used in dynamic layout algorithm.
Сохранение результатов в массиве Xfinal[i]/Yfinal[i] для всех сторонних приложений.Saving results in array Xfinal [i] / Yfinal [i] for all third-party applications.
Цикл по i от 1 до n:Loop on i from 1 to n:
Вмещающая веб-страница 203 может затем передавать сообщение об изменении размера в TPA[i], которое содержит окончательный размер Xfinal[i]/Yfinal[i];The hosting web page 203 can then send a resize message to TPA [i] that contains the final size Xfinal [i] / Yfinal [i];
Вмещающая веб-страница 203 изменяет размер внешнего окна фрейма iframe, который содержит стороннее приложение TPA[i], на Xfinal[i]/Yfinal[i];The hosting web page 203 resizes the outer iframe that contains the third party TPA [i] to Xfinal [i] / Yfinal [i];
Вмещающая веб-страница 203 осуществляет дальнейшее управление внутренней версткой, исходя из фактических новых размеров.The hosting web page 203 further controls the internal layout based on the actual new dimensions.
Нужно понимать, что управление динамической версткой может, как правило, требовать, изменения местоположения сторонних приложений 40, а не только изменения их размеров. Однако стороннее приложение 40 должно быть инвариантно к конкретному местоположению его фрейма на вмещающей веб-странице 203.It should be understood that managing dynamic layout can generally require changing the location of 40 third-party applications, not just resizing them. However, the third-party application 40 must be invariant to the specific location of its frame on the hosting web page 203.
- 18 036433- 18 036433
В соответствии с предшествующим описанием стороннему приложению может также быть необходимо время от времени изменять размер окна своего отображения. Поскольку размером окна, в котором отображается фрейм iframe, управляет основная страница (т.е. вмещающая веб-страница 203), изменение размера окна стороннего приложения 40 должно выполняться вмещающей веб-страницей 203 с запросом от стороннего приложения 40 (через устройство 360 динамического обновления) к вмещающей вебстранице 203 на изменение размера окна.As previously described, the third party application may also need to resize its display window from time to time. Since the size of the window in which the iframe is displayed is controlled by the main page (i.e., the containing web page 203), the window resizing of the third-party application 40 must be performed by the hosting web page 203 with a request from the third-party application 40 (via the dynamic update device 360 ) to the hosting web page 203 to resize the window.
Также нужно понимать, что стороннее приложение 40 может также запрашивать (через устройство 360 обновления динамической верстки) изменение своего местоположения на вмещающей веб-странице 203. Это может не оказывать влияния на внутреннюю структуру стороннего приложения 40 (в отличие от изменения размера), однако требует изменения отображения на вмещающей веб-странице 203. Устройство 360 обновления динамической верстки может интегрировать этот запрос с динамической версткой. Вмещающая веб-страница 203 может задействовать устройство 360 обновления динамической верстки для изменения размера окна стороннего приложения 40 (и, возможно, его местоположения) и для передачи подтверждения размера и местоположения обратно в стороннее приложение 40.It should also be understood that the third-party application 40 may also request (via the dynamic layout update device 360) to change its location on the hosting web page 203. This may not affect the internal structure of the third-party application 40 (as opposed to resizing), but requires display changes on the hosting web page 203. The dynamic layout updater 360 can integrate this request with the dynamic layout. The hosting web page 203 may employ the dynamic layout updater 360 to resize the window of the third-party application 40 (and possibly its location) and to transmit the size and location confirmation back to the third-party application 40.
Нужно понимать, что концентратор 205 может также реализовывать дополнительные специальные сообщения, зависящие от класса стороннего приложения 40 или конкретного стороннего приложения 40, при помощи которых собственно система 30 для построения веб-сайта, конкретная вмещающая вебстраница 203 или другое стороннее приложение 40 может влиять на стороннее приложение 40. К примеру, стороннее приложение 40 для ведения блога может определять входящее сообщение, обеспечивающее публикацию новой записи блога, или нового комментария к текущей записи блога. Такое сообщение может применяться вмещающей веб-страницей 203 (например, в качестве метода публикации записей блога из более крупного поля для редактирования текста, расположенного вне области стороннего приложения). Они могут также использоваться для связки между приложениями на более высоким уровне, например, позволять публиковать записи блога в стороннее приложение для ведения блога при помощи вспомогательного стороннего приложения.It should be understood that the hub 205 may also implement additional custom messages, depending on the class of the third-party application 40 or the particular third-party application 40, by which the actual system 30 for building the website, the particular hosting web page 203, or another third-party application 40 can influence the third-party application 40. For example, third-party blogging application 40 may determine an incoming message to publish a new blog post, or a new comment on a current blog post. Such a message can be used by the hosting web page 203 (for example, as a method of publishing blog posts from a larger text editing field outside the scope of a third-party application). They can also be used for higher-level communication between applications, for example, allow blog posts to be published to a third-party blogging application using a third-party helper application.
Нужно понимать, что сторонним приложениям 40 часто необходимы множество различных сложных сервисов либо для внутреннего использования в стороннем приложении 40, либо для использование в дальнейших звеньях цепи обработки данных веб-дизайнерами, которые применяют стороннее приложение 40 на своих веб-сайтах. Подобные сервисы могут включать администрирование пользователей, тарификацию и управление доставкой. Поставщик системы 30 для построения веб-сайта не всегда имеет возможность предоставить все подобные сервисы в составе системы для построения веб-сайта (например, по техническим или экономическим причинам). Также невозможным может быть предоставление подобных сервисов в виде пакетов сторонних приложений 40. В дополнение поставщику 40 сторонних приложений может быть необходима возможность предоставления множества подобных сервисов вебдизайнерам с использованием стороннего приложения 40 (например, нескольких сторонних APIинтерфейсов тарификации), с возможностью выбора, веб-дизайнером 5, подходящего для использования. К примеру, в системе 30 для построения веб-сайта может быть предоставлен встроенный API-интерфейс платежной системы Paypal™, который может использоваться непосредственно сторонним приложением 40 или может быть предложен сторонним приложением 40 веб-дизайнеру для использования. Стороннее приложение 40 может также предоставлять на выбор собственные варианты (т.е. использование конкретного типа тарификации, например, однократные платежи, периодические платежи или разделение доходов) и реализовывать эти варианты при помощи вызова встроенного API-интерфейса Paypal.It should be understood that third-party applications 40 often require many different complex services, either internally in the third-party application 40, or for use downstream of the data chain by web designers who use the third-party application 40 on their websites. Such services may include user administration, billing, and delivery management. The provider of the website building system 30 is not always able to provide all such services as part of the website building system (for example, for technical or economic reasons). It may also not be possible to provide such services in the form of bundles of third party applications 40. In addition, the third party application provider 40 may need to be able to provide many such services to web designers using a third party application 40 (e.g., multiple third party charging APIs), selectable by a web designer 5 suitable for use. For example, the system 30 may provide a built-in Paypal ™ payment system API for building a website, which may be used directly by a third party application 40, or may be offered by a third party application 40 to a web designer for use. The third-party application 40 may also provide its own options to choose from (ie, use a specific billing type, such as one-time payments, recurring payments, or revenue sharing) and implement those options by calling the native Paypal API.
Таким образом, веб-дизайнер 5, использующий систему 30 для построения веб-сайта, может формировать конкретные предложения (например, интернет-магазин музыкальных композиций), в которых применяется более сложная тарификация. Веб-дизайнер 5 в таком случае может избежать необходимости формировать конкретное клиринговое соглашение или соглашение о торгово-сервисном обслуживании с поставщиком API-интерфейса тарификации путем использования встроенного API тарификации, либо непосредственно, либо при помощи стороннего приложения 40, предоставляющего дополнительный уровень абстракции. В этом смысле система 30 для построения веб-сайта может функционировать как дистрибьютор услуг для поставщиков встроенных API-интерфейсов.Thus, the web designer 5, using the system 30 to build the website, can generate specific proposals (for example, an online music store) that apply more complex billing. The web designer 5 can then avoid having to form a specific clearing or merchant service agreement with the charging API provider by using the built-in charging API, either directly or through a third party application 40 providing an additional layer of abstraction. In this sense, the system 30 for building a website can function as a service distributor for embedded API providers.
Обертка 390 встроенного API-интерфейса может обеспечивать подобную связь между различными частями системы (например, системой 30 для построения веб-сайта, кодом встроенного API-интерфейса и включенными сторонними приложениями 40). Нужно понимать, что уровень обертки API-интерфейса и фактическая реализация API-интерфейса могут быть размещены непосредственно в системе 30 для построения веб-сайта или в другом стороннем приложении 40. Поставщик стороннего приложения 40 (или веб-дизайнер 5) может использовать встроенный API-интерфейс при помощи обертки 390 встроенного API-интерфейса, не будучи осведомленным о методе, которым фактически реализован базовый APIинтерфейс.The embedded API wrapper 390 can provide similar communication between various parts of the system (eg, the system 30 for building a website, the embedded API code, and included third-party applications 40). It should be understood that the API wrapper layer and the actual implementation of the API can be hosted directly in the system 30 to build the website, or in another third-party application 40. The provider of the third-party application 40 (or web designer 5) can use the built-in API. an interface by wrapping the 390 built-in API without being aware of the method that the underlying API actually implements.
В одном из альтернативных дополнительных вариантов осуществления настоящего изобретения авторы настоящей заявки нашли, что интеллектуальная интеграция между системой 30 для построения вебсайта и одним или более сторонними приложениями 40 может быть достигнута при помощи модели интеграции, в которой дополнительные шаблоны и компоненты системы для построения веб-сайта связаныIn one alternative additional embodiments of the present invention, the authors of the present application have found that intelligent integration between the system 30 for building a website and one or more third-party applications 40 can be achieved using an integration model in which additional templates and system components for building a website connected
- 19 036433 (ассоциированы) со сторонними приложениями на уровне магазина 25 приложений, что относится также к соответствующим экземплярам сторонних приложений. Стороннее приложение 40 может также взаимодействовать с этими компонентами (а также с неассоциированными компонентами), обмениваясь с ними информационными и управляющими сообщениями. В соответствии с предшествующим описанием области стороннего приложения 40 на вмещающей веб-странице являются отдельными фреймами iframe, содержимое которых может быть размещено в а различных доменах (поставщика сторонних приложений или других доменах), отличающихся от домена размещения основного веб-сайта. Соответственно связь между различными фреймами iframe ограничена политикой браузера, требующей происхождения данных из одного источника (same origin policy), и значит, необходимо применение описанных выше методов.- 19 036433 (associated) with third-party applications at the 25 application store level, which also applies to the corresponding instances of third-party applications. The third-party application 40 may also interact with these components (as well as non-associated components), exchanging informational and control messages with them. As previously described, the third party application regions 40 on the hosting web page are separate iframes, the content of which may be hosted in different domains (third party application provider or other domains) other than the host domain of the main website. Accordingly, communication between different iframes is limited by the browser's same origin policy, which means that the methods described above must be applied.
В существующих системах сторонние приложения 40 реализуют как монолитные негибкие объекты, которые могут быть помещены на вмещающую веб-страницу 203, однако не могут каким-либо иным образом влиять на внешний облик самой вмещающей веб-страницы 203. Экземпляры сторонних приложений 40 размещают в области (как правило, прямоугольной), при этом стороннее приложение выполняет все свои операции в этой области.In existing systems, third-party applications 40 are implemented as monolithic inflexible objects that can be placed on the containing web page 203, but cannot otherwise affect the appearance of the containing web page 203 itself. Instances of third-party applications 40 are placed in the area ( usually rectangular), while the third-party application performs all its operations in this area.
Авторы настоящей заявки нашли, что такой принцип может быть расширен за счет наличия (опционального) дополнительного шаблона в системе 30 для построения веб-сайта, который связан, или ассоциирован, со сторонним приложением 40 и называется ассоциированным шаблоном в соответствии с одним из вариантов осуществления настоящего изобретения. Нужно понимать, что такое связывание может выполняться на этапе разработки и публикации стороннего приложения 40, а также может быть представлено веб-дизайнеру 5 как часть процедуры приобретения и/или выбора стороннего приложения 40 (из магазина 25 приложений) и процедуры создания экземпляра стороннего приложения 40. Координатор 24 сторонних приложений может извлекать шаблон, связанный со сторонним приложением 40 (в качестве части хранилища приложений, поддерживаемого магазином приложений 25, или иным образом предоставленным поставщиком сторонних приложений 40), а также может сохранять шаблон в хранилище 22 для дальнейшего использования в соответствии с последующим более подробным описанием.The authors of the present application have found that this principle can be extended by the presence of an (optional) additional template in the system 30 for building a website that is associated with, or associated, with a third-party application 40 and is called an associated template in accordance with one embodiment of the present inventions. It should be understood that such linking can be performed during the development and publication of the third-party application 40, and can also be presented to the web designer 5 as part of the procedure for purchasing and / or selecting a third-party application 40 (from the app store 25) and the procedure for creating an instance of the third-party application 40 The third party application coordinator 24 may retrieve the template associated with the third party application 40 (as part of an app store maintained by the app store 25 or otherwise provided by the third party application provider 40), and may also store the template in the store 22 for later use in accordance with following a more detailed description.
Нужно понимать, что система 100 может поддерживать публикацию сторонних приложений 40, имеющих множество ассоциированных шаблонов, что дает веб-дизайнеру 5 возможность выбирать наиболее подходящий шаблон.It will be appreciated that system 100 can support the publication of third-party applications 40 having a plurality of associated templates, allowing the web designer 5 to select the most appropriate template.
Нужно понимать, что при создании экземпляра стороннего приложения 40 на любой вмещающей веб-странице 203 компоненты ассоциированного шаблона могут быть объединены с компонентами вмещающей веб-страницы 203 и могут отображаться совместно с остальными компонентами на вмещающей веб-странице 203.It should be understood that when instantiating a third-party application 40 on any hosting web page 203, the components of the associated template can be combined with the components of the hosting web page 203 and can be displayed in conjunction with the rest of the components on the hosting web page 203.
Обратимся к фиг. 13, на которой проиллюстрирован пример использования ассоциированного шаблона в соответствии с одним из вариантов осуществления настоящего изобретения. В соответствии с иллюстрацией стороннее приложение [а] находится в магазине [b] приложений вместе с ассоциированным шаблоном [с], который включает компоненты [d] и [е]. Нужно понимать, что когда стороннее приложение [а] помещают на вмещающую веб-страницу 203 [f], стороннее приложение [а] может отображаться в выделенной для него области [g] на странице [f], a экземпляры [d'] и [е'] компонентов [d] и [е] могут отображаться на странице [f] вместе с присутствующими исходно компонентами [h] и [i].Referring to FIG. 13, which illustrates an example of using an associated template in accordance with one embodiment of the present invention. As illustrated, the third-party app [a] resides in the app store [b] along with an associated template [c], which includes components [d] and [e]. It should be understood that when a third-party application [a] is placed on the hosting web page 203 [f], the third-party application [a] may appear in its dedicated area [g] on page [f], and instances [d '] and [ e '] components [d] and [e] can be displayed on page [f] along with the originally present components [h] and [i].
Нужно понимать, что система 100 может поддерживать множество различных способов, которыми экземпляры компонентов из ассоциированного шаблона (например, описанные выше компоненты [d'] b [е']) размещают на вмещающей веб-странице 203 [f]. Эти способы могут включать: абсолютное размещение (т.е. использование размера и позиции, заданных в ассоциированном шаблоне [с] для приложений [d] и [е]); размещение относительно целевого компонента (т.е. коррекция размера и местоположения новых экземпляров [d'] и [е'] согласно вмещающей веб-странице 203 [f]) и размещение относительно стороннего приложения 40 (т.е. коррекция размера и местоположения новых экземпляров [d'] и [е'] относительно размера и местоположения, заданных для экземпляра стороннего приложения [g] на вмещающей вебстранице 203 [f]). Выбор конкретного способа размещения может осуществляться на основе настроечных параметров, входящих в состав ассоциированного шаблона [с], при этом, опционально, веб-дизайнер 5 может их переопределять.It should be understood that system 100 can support many different ways in which component instances from an associated template (eg, components [d '] b [e'] described above) are placed on the hosting web page 203 [f]. These methods may include: absolute placement (ie, using the size and position specified in the associated template [c] for applications [d] and [e]); placement relative to the target component (i.e. adjusting the size and location of new instances [d '] and [e'] according to the hosting web page 203 [f]) and placement relative to the third-party application 40 (i.e. adjusting the size and location of new instances [d '] and [e'] relative to the size and location specified for the third party application instance [g] on the hosting web page 203 [f]). The choice of a specific placement method can be based on the settings included in the associated template [c], while, optionally, the web designer 5 can override them.
Нужно также понимать, что веб-дизайнер 5 может изменять экземпляры [d] и [е], наследованные от шаблона [с] и размещенные на странице [f]. Изменения могут относиться только к использованию экземпляров [d] и [е] именно на странице [f] (а также, возможно, наследованных от нее страницах в системах 30 для построения веб-сайтов, поддерживающих межстраничное наследование) и не влиять на исходный шаблон [с], ассоциированный со сторонним приложением [а] в магазине [b] приложений.You should also understand that the web designer 5 can modify the instances [d] and [e] inherited from the template [c] and placed on the page [f]. Changes can only relate to the use of instances [d] and [e] specifically on page [f] (and possibly also pages inherited from it in 30 systems for building websites that support cross-page inheritance) and not affect the original template [ с] associated with a third-party application [a] in the application store [b].
Нужно понимать, что упомянутые выше изменения в экземплярах [d] и [е] могут включать, в частности, присваивание конкретного содержимого (текстового, визуального и т.п.) экземплярам полей, а также обычные изменения атрибутов. Также нужно понимать, что если стороннее приложение 40 встраивают на мини-страницу, ассоциированный шаблон применяют к конкретной мини-странице, на которую помещают стороннее приложение 40 в соответствии с иллюстрацией фиг. 14, о которой пойдет речь далее. В соответствии с иллюстрацией стороннее приложение 40 включают на мини-страницу [х], и со- 20 036433 ответственно компоненты [с] и [d] будут добавлены на мини-страницу [х], но не на дополнительные мини-страницы [у] и [z] того же многостраничного контейнера [g].It should be understood that the above changes to instances [d] and [e] may include, but are not limited to, the assignment of specific content (text, visual, etc.) to the field instances, as well as normal attribute changes. It should also be understood that if the third-party application 40 is embedded in a mini-page, the associated template is applied to the specific mini-page on which the third-party application 40 is placed in accordance with the illustration of FIG. 14, which will be discussed below. As illustrated, the third-party application 40 is included on the mini-page [x], and the components [c] and [d] will be added to the mini-page [x], but not to additional mini-pages [y] and [z] of the same multi-page container [g].
Также нужно понимать, что для мини-страниц, представляющих собой разделы веб-сайта, ассоциированные шаблоны (если они имеются) применяют к виртуальной (и пустой) вмещающей веб-страницеYou also need to understand that for mini-pages that are sections of a website, the associated templates (if any) are applied to the virtual (and blank) containing web page
203, созданной для размещения стороннего приложения 40.203 file created to host the 40 third party app.
В одном из альтернативных вариантов осуществления настоящего изобретения заранее созданный ассоциированный шаблон может применяться к заново формируемой странице или мини-странице, которая является параллельной для вмещающей веб-страницы 203. Эта заново созданная страница или мини-страница может быть инициализирована с использованием шаблона, который впоследствии может быть изменен согласно требованиям.In an alternative embodiment of the present invention, a pre-created associated template may be applied to a newly generated page or mini-page that is parallel to the containing web page 203. This newly created page or mini-page can be initialized using a template that is subsequently can be changed according to requirements.
Система 30 для построения веб-сайта может также допускать многопортовое включение, при котором один экземпляр стороннего приложения 40 отображается или располагается на нескольких страницах основного веб-сайта. Это отличается от множественного включения некоторого стороннего приложения 40 на основной веб-сайт, при котором создаются множество экземпляров стороннего приложения 40. Содержимое стороннего приложения 40, которое зависит от конкретного экземпляра, является общим для множества представлений (видов) одного многопортового стороннего приложения 40.The system 30 for building a website can also be multiportable, in which one instance of a third-party application 40 is displayed or located on multiple pages of the main website. This is in contrast to the multiple inclusion of some third-party application 40 on the main website, in which multiple instances of the third-party application 40 are created. The content of the third-party application 40, which depends on a particular instance, is common to multiple views of one multi-port third-party application 40.
При подобном многопортовом включении ассоциированный шаблон может применяться независимо для каждой из страниц и мини-страниц, куда добавлен экземпляр стороннего приложения 40.With this kind of multiport enablement, the associated template can be applied independently for each of the pages and minipages to which the third party application instance 40 is added.
В соответствии с предшествующим описанием система 100 может обеспечивать двустороннюю линию связи между сторонним приложением 40 и компонентами на вмещающей веб-странице 203. Нужно понимать, что это упомянутые компоненты включают компоненты вмещающей веб-страницы 203, полученные в результате слияния с ассоциированным шаблоном стороннего приложения, а также компоненты, не относящиеся ни к какому из ассоциированных шаблонов.In accordance with the foregoing description, system 100 may provide a two-way communication link between a third-party application 40 and components on the hosting web page 203. It should be understood that these components include components of the hosting web page 203 resulting from a merge with the associated template of the third-party application. as well as components that do not belong to any of the associated templates.
Следовательно, нужно понимать, что поставщик сторонних приложений 40 может, как правило, создавать набор шаблонов, ассоциированных со сторонними приложениями 40, предоставляемыми этим поставщиком. Эти шаблоны, помимо фактических шаблонов для дистрибуции (т.е. ассоциированных с текущими версиями распространяемых сторонних приложений), могут включать тестовые шаблоны, шаблоны проектирования и другие шаблоны.Therefore, it should be understood that a third party application provider 40 may typically create a set of templates associated with third party applications 40 provided by that provider. These patterns, in addition to the actual distribution patterns (that is, associated with current versions of third-party applications being distributed), may include test patterns, design patterns, and other patterns.
В соответствии с предшествующим описанием стороннее приложение 40 может распространяться через магазин 25 приложений или может распространяться также по альтернативным каналам, не относящимся к поставщику системы 30 для построения веб-сайта или не контролируемыми им. Однако ассоциированные шаблоны, распространяемые совместно со сторонним приложением 40, могут быть тесно связаны и интегрированы с хранилищем 22 приложений, поскольку их конструируют с использованием компонентов, базовых шаблонов и других элементов, администрируемых системой 30 для построения веб-сайта.As previously described, the third-party application 40 may be distributed through the application store 25, or may also be distributed through alternative channels outside of or outside the control of the provider of the website building system 30. However, the associated templates distributed with the third-party application 40 can be tightly coupled and integrated with the application repository 22 as they are constructed using components, base templates, and other elements administered by the system 30 to build a website.
При этом может возникать необходимость модификации или удаления независимо распространяемых элементов системы 30 для построения веб-сайта, лежащих в основе ассоциированного шаблона, которые могут противоречить ассоциированному шаблону. Для решения этой проблемы в системе 100 такие ассоциированные шаблоны могут быть реализованы в отдельной области (возможно, для каждого поставщика 40) хранилища 22 приложений. Система 30 для построения веб-сайта может администрировать эти шаблоны аналогично всем другим шаблонам системы 30 для построения веб-сайта.This may necessitate the modification or removal of independently redistributable elements of the system 30 to build a website, underlying the associated template, which may conflict with the associated template. To address this problem, in system 100, such associated templates may be implemented in a separate area (possibly for each vendor 40) of the application store 22. System 30 for building a website can administer these templates in a similar way to all other templates for system 30 for building a website.
Также нужно понимать, что каждому поставщику сторонних приложений 40 может быть выделен уникальный идентификатор (проектировочный идентификатор), присваиваемый каждому создаваемому шаблону, и этот идентификатор может применяться в процессе проектирования и тестирования стороннего приложения 40. Когда стороннее приложение 40 будет готово к публикации или распространению, поставщику стороннего приложения 40 нужно будет запросить и получить альтернативный уникальный идентификатор (издательский идентификатор), который будет идентифицировать опубликованное стороннее приложение 40. После выдачи издательского идентификатора создают отдельную заблокированную версию шаблона. На эту копию ссылается стороннее приложение 40, и она используется при создании экземпляров стороннего приложения 40. Таким образом, поставщик стороннего приложения 40 не сможет по ошибке изменить шаблон, ассоциированный с публичным сторонним приложением 40 (которое размещают веб-дизайнеры) и гарантируется целостность ссылок. Также при этом система 100 может формировать перекрестные ссылки на основе отношения между блокированными шаблонами и лежащими в их основами компонентами, а также базовыми шаблонами. Эти перекрестные ссылки могут использоваться, например, для выдачи предупреждений пользователям системы 30 для построения вебсайта, если компоненты системы 30 для построения веб-сайта или базовый шаблон, входящий в состав подобного блокированного шаблона, будет изменен (и такое изменение может каким-либо образом повредить шаблон или стороннее приложение 40).It should also be understood that each third-party application provider 40 can be assigned a unique identifier (design identifier) assigned to each template that is created, and this identifier can be used in the design and testing process of the third-party application 40. When the third-party application 40 is ready for publication or distribution, the provider of the third-party application 40 will need to request and obtain an alternate unique identifier (publisher ID) that will identify the published third-party application 40. Once the publisher ID is issued, a separate locked version of the template is created. This copy is referenced by the third party application 40 and is used when instantiating the third party application 40. Thus, the provider of the third party application 40 cannot mistakenly change the template associated with the public third party application 40 (hosted by web designers) and the link integrity is guaranteed. Also, in this case, the system 100 can generate cross-references based on the relationship between the locked templates and their underlying components, as well as the base templates. These cross-references can be used, for example, to alert users of the system 30 for building a website if the components of the system 30 for building a website, or the underlying template included in such a blocked template, is changed (and such a change could in some way damage template or third party app 40).
Соответственно система 100 может обеспечивать каналы двусторонней связи между сторонними приложениями 40, компонентами на вмещающей веб-странице 203 и системой 30 для построения вебсайта. Компоненты вмещающей веб-страницы 203 могут быть основаны на шаблоне (или шаблонах), ассоциированных со сторонними приложениями, основаны на других шаблонах системы 30 для построе- 21 036433 ния веб-сайта или не зависеть ни от каких шаблонов.Accordingly, system 100 can provide two-way communication channels between third-party applications 40, components on the hosting web page 203, and system 30 for building a website. The components of the hosting web page 203 may be based on a template (or templates) associated with third party applications, based on other templates in the system 30 for building a website, or not depend on any templates.
В соответствии с предшествующим описанием коммуникационный концентратор 205 может поддерживать эту связь и может обеспечивать обратный канал между вмещающей веб-страницей и любым из сторонних приложений 40. Авторы настоящей заявки нашли, что данные, проходящие в обоих направлениях между вмещающей веб-страницей и любыми из сторонних приложений 40, если их собрать, обработать и интегрировать (объединить), могут иметь полезное применение.In accordance with the foregoing description, communication hub 205 can support this communication and can provide a back channel between the hosting web page and any of the third-party applications 40. The authors of this application have found that data traveling in both directions between the hosting web page and any of the third parties 40 applications, if collected, processed and integrated (merged), can have useful applications.
К примеру, владельцу веб-сайта может быть необходимо вести учет контингента пользователей или участников веб-сайта, которые могут отличаться от базы зарегистрированных пользователей соответствующей системы 30 для построения веб-сайта. Пользователи веб-сайта могут быть зарегистрированными или незарегистрированными (анонимными), при этом сайт может предоставлять различные уровни функциональности для пользователей различных уровней. При этом пользователи часто предоставляют персональную или контактную информацию (даже будучи анонимными), например данные в форме контакта, при запуске программного обеспечения мгновенного обмена сообщениями для вызова владельца веб-сайта или при входе в социальную сеть, сотрудничающую с данным веб-сайтом. Нужно понимать, что такая информация может быть введена непосредственно на конструируемом веб-сайте или может быть предоставлена в ходе взаимодействия со сторонними приложениями 40, встроенными на данный веб-сайт.For example, a website owner may need to keep a record of the contingent of users or members of the website, which may differ from the registered user base of the corresponding system 30 for building the website. Website users can be registered or unregistered (anonymous), and the site can provide different levels of functionality for different levels of users. However, users often provide personal or contact information (even if they are anonymous), such as data in a contact form, when launching instant messaging software to call the owner of a website, or when logging into a social network that cooperates with the website. It should be understood that such information may be entered directly on a constructed website or may be provided in the course of interaction with third-party applications 40 embedded in this website.
Также нужно понимать, что фрагменты подобной информации могут быть не организованы, не связаны между собой, возможно, противоречивы, и во многих случаях их не сохраняют для дальнейшего использования. К примеру, некоторый пользователь может вводить адрес персональной электронной почты в форму контакта (функционирующую непосредственно на веб-сайте) и адрес рабочей электронной почты в другую форму, форму подписки (которой управляет стороннее приложение 40) в течение одного и того же сеанса.You also need to understand that fragments of such information may not be organized, not related to each other, possibly contradictory, and in many cases they are not saved for future use. For example, some user may enter a personal email address into a contact form (running directly on the website) and a work email address into another form, a subscription form (operated by third-party application 40), during the same session.
При этом подобные блуждающие фрагменты информации могут иметь различные разрешения, ограничивающие их использование. К примеру, пользователи, вводящие адрес своей электронной почты в форме подписки понимают, что для них будет сформирована подписка на основе этого адреса электронной почты, а также, вероятно, что они будут получать соответствующую новостную рассылку. С другой стороны, пользователи, предоставляющие адрес своей электронной почты в качестве идентификатора при регистрации, не желают получать по нему никаких сообщений, помимо писем, относящихся к управлению учетной записью, предупреждений об угрозах безопасности и т.п.Moreover, such wandering pieces of information can have different permissions that restrict their use. For example, users who enter their email address in the subscription form understand that they will be subscribed to that email address and are likely to receive the relevant newsletter. On the other hand, users who provide their email address as an identifier during registration do not want to receive any messages from it, other than emails related to account management, security alerts, etc.
Обратимся вновь к фиг. 15, где проиллюстрирована система 200 для координации и сбора данных из различных сообщений, которыми обмениваются система 30 для построения веб-сайта и одно или более встроенных сторонних приложений 40. Система 200 включает клиентский концентратор 210, установленный на стороне клиента 220, и серверный концентратор 230, координатор 240 контактов, координатор 250 активности, базу 245 данных контактов и базу 255 данных активности, установленную на сервер 260. Нужно понимать, что концентраторы 210 и 230 могут обеспечивать связь между системой 30 для построения веб-сайта и множеством сторонних приложений 40, установленных на серверах 270, а также между различными сторонними приложениями 40 в соответствии с предшествующим описанием в отношении концентратора 205. База 245 данных контактов и база 255 данных активности могут содержать контактную информацию и/или информацию об активности, извлеченную из потоков сообщений в соответствии с последующим более подробным описанием.Referring again to FIG. 15, which illustrates a system 200 for coordinating and collecting data from various messages exchanged between the system 30 for building a website and one or more embedded third-party applications 40. System 200 includes a client hub 210 installed on the client side 220 and a server hub 230 , contact coordinator 240, activity coordinator 250, contacts database 245, and activity database 255 installed on server 260. It should be understood that hubs 210 and 230 can provide communication between system 30 for building a website and a variety of third-party applications 40 installed on servers 270, as well as between various third-party applications 40 in accordance with the previous description with respect to hub 205. Contact database 245 and activity database 255 may contain contact information and / or activity information extracted from message streams in accordance with the following detailed description.
Обратимся вновь к фиг 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 журнала. Функционирование этих элементов будет более подробно рассмотрено ниже.Referring again to FIG. 16A, the elements of the client hub 210 are illustrated, and to FIG. 16B, which illustrates the elements of the server hub 230, contact coordinator 240, and activity coordinator 250. The client hub 210 includes a router 211, a translator and adapter 212, and a privacy policy enforcer 213. The server hub 230 includes a router and tracker 231, a translator and adapter 232, a privacy policy enforcer 233, a confidential data proxy 234, and a validator and signature 235. Contact coordinator 240 includes a data extractor 241, a contact handler 242, a data merger 243, and a data and permission handler 244. Activity coordinator 250 includes a stream generator 251, a stream merger 252, and a log generator 253. The operation of these elements will be discussed in more detail below.
Обратимся вновь к фиг. 16С, где проиллюстрированы элементы устройства 252 слияния потоков, и к фиг. 16D, где проиллюстрированы элементы устройства 243 слияния данных. Устройство 252 слияния данных включает устройство 261 слияния активность-поток и устройство 262 слияния поток-поток. Устройство 262 слияния поток-поток при этом включает устройство 263 горизонтального слияния потоков и устройство 264 вертикального слияния потоков. Устройство 243 слияния данных включает устройство 272 идентификации контактов, устройство 273 объединения, устройство 274 разрешения противоречий, формирователь 275 списочных значений, устройство 276 вертикального слияния контактов и устройство 277 горизонтального контактов. Устройство 277 горизонтального слияния контактов включает при этом устройство 278 виртуального горизонтального слияния. Устройство 276 вертикального слияния контактов включает при этом устройство 279 виртуального вертикального слияния. Ниже функцио- 22 036433 нирование этих элементов будет рассмотрено более подробно.Referring again to FIG. 16C, where elements of the stream merger 252 are illustrated, and FIG. 16D, which illustrates the elements of the data merger 243. Data merger 252 includes an activity-stream merger 261 and a stream-stream merger 262. The stream-to-stream merger 262 includes a horizontal stream merger 263 and a vertical stream merger 264. The data merger 243 includes a contact identifier 272, a merger 273, a contradiction resolver 274, a list value generator 275, a vertical contact merger 276, and a horizontal contact 277. The horizontal contact merger 277 includes a horizontal virtual merger 278. The vertical contact merger 276 includes a virtual vertical merger 279. Below the operation of these elements will be discussed in more detail.
Нужно понимать, что система 200 может обеспечивать возможность передачи сообщений между системой 200 и множеством сторонних приложений 40, а также обеспечивать другую функциональность, включая организацию сообщений об активности в потоки, хранение истории сообщений об активности, многоуровневую передачу сообщений об активности, использование побочных каналов для сообщений об активности, трансляцию сообщений об активности и адаптацию их содержимого, валидацию и подпись сообщений об активности, а также динамическую маршрутизацию сообщений об активности с использованием запросов на прослушивание в соответствии с приведенным ниже более подробным описанием.It should be appreciated that system 200 can provide the ability to transfer messages between system 200 and multiple third-party applications 40, as well as provide other functionality, including organizing activity messages into streams, storing the history of activity messages, multi-leveling activity messages, using side channels for activity messages, broadcasting and adapting activity messages, validating and signing activity messages, and dynamically routing activity messages using listen requests, as described in more detail below.
При этом система 200 может извлекать информацию о пользователях и выполнять ее слияние, объединяя информацию из различных источников, а также информацию, уже присутствующую в системе 200. Это может выполняться при помощи правил слияния, позволяющих согласовать различную и, возможно, противоречивую информацию. Объединенная информация может храниться в базе 245 данных контактов. Эта информация может также включать поля разрешений на использование, при помощи которых управляют допуском к использованию собранной информации, в соответствии с последующим более подробным описанием.In doing so, system 200 can extract user information and merge it by combining information from different sources as well as information already present in system 200. This can be done using merge rules to reconcile different and possibly conflicting information. The combined information can be stored in a contact database 245. This information may also include permission-to-use fields, which control the permission to use the collected information, as described in more detail below.
В альтернативных вариантах осуществления настоящего изобретения и клиентский концентратор 210, и серверный концентратор 230, по отдельности, могут применяться для связи с множеством сторонних приложений 40, установленных на серверах 270. Нужно понимать, что в случае, когда применяют только клиентский концентратор 210, координатор 240 контактов, координатор 250 активности и базы 245 и 255 данных могут быть установлены локально на стороне соответствующего клиента.In alternative embodiments of the present invention, both the client hub 210 and the server hub 230, separately, can be used to communicate with a plurality of third-party applications 40 installed on the servers 270. It should be understood that in the case where only the client hub 210 is used, the coordinator 240 contacts, activity coordinator 250 and databases 245 and 255 data can be installed locally on the side of the corresponding client.
Также нужно понимать, что система 200 может включать дополнительные компоненты, дающие сторонним приложениям 40 возможность администрировать операции по контактам с пользователями (например, массовые новостные рассылки) с наложением ограничений, заданных собственно пользователями. Такие компоненты могут даже изолировать конфиденциальные пользовательские данные от стороннего приложения 40, в результате чего сторонние приложения 40 могут выполнять свои операции без фактического доступа к конфиденциальным пользовательским данным. Такая функциональность может быть реализована, например, с использованием прокси-модуля 234 конфиденциальных данных, более подробно рассмотренного ниже.It should also be understood that system 200 may include additional components that allow third-party applications 40 to administer user contact operations (eg, bulk newsletters) with user-defined restrictions. Such components can even isolate sensitive user data from third-party application 40 so that third-party applications 40 can perform their operations without actually accessing sensitive user data. Such functionality can be implemented, for example, using the proxy module 234 confidential data, discussed in more detail below.
Также нужно понимать, что база 245 данных контактов может зависеть от конкретного веб-сайта. Однако в системе 30 для построения веб-сайта может быть определен мета-сайтовый, или проектный, уровень, включающий набор веб-сайтов (принадлежащих одному владельцу) и позволяющий указать, что контакты должны храниться, обрабатываться и объединяться на мета-сайтовом уровне, а не на уровне одного веб-сайта. Другие элементы веб-сайта (например, встроенные сторонние приложения 40) могут также быть определены на мета-сайтовом уровне, а не на уровне одного веб-сайта. Помимо поддержки мета-сайтового уровня система 200, в общем, не предоставляет контактную информацию в совместный доступ (за описанными ниже исключениями) и не интегрирует контактную информацию различных веб-сайтов или различных владельцев веб-сайтов (чтобы исключить утечку данных, предоставленных конечными пользователями одного сайта, на другие веб-сайты).It should also be understood that the contact database 245 may be website specific. However, the system 30 for building a website can define a meta-site, or design, level that includes a set of websites (owned by the same owner) and allows you to specify that contacts are to be stored, processed and combined at the meta-site level, and not at the level of a single website. Other elements of a website (such as 40 built-in third-party applications) can also be defined at the meta-site level, rather than at the single website level. In addition to supporting the meta-site level, system 200 generally does not share contact information (with the exceptions described below) and does not integrate contact information from different websites or different website owners (to avoid leaking data provided by end users of the same website, to other websites).
В соответствии с предшествующим описанием система 200 может поддерживать множественные взаимодействия между системой 30 для построения веб-сайта и одним или более сторонними приложениями 40. Такие взаимодействия могут представлять заранее заданные операции, например совершение покупки, добавление объекта в корзину, ввод контактной информации и т.п. Стороннее приложение 40 может указывать, какие операции оно поддерживает, а остальные сторонние приложения 40 могут прослушивать конкретные операции и действовать в ответ на принятые операции и связанную с ними информацию. Нужно понимать, что список прослушиваемой активности для заданного стороннего приложения 40 может быть назначен явно и включать одну или более операций или может быть определен при помощи запроса прослушивания активности в соответствии с последующим более подробным описанием.As previously described, system 200 can support multiple interactions between the system 30 for building a website and one or more third-party applications 40. Such interactions can represent predetermined operations, such as making a purchase, adding an item to a cart, entering contact information, etc. P. The third-party application 40 may indicate which operations it supports, and the remaining third-party applications 40 may listen for specific operations and act in response to the received operations and associated information. It will be appreciated that the activity listener list for a given third-party application 40 may be explicitly assigned and include one or more operations, or may be determined by an activity listener request as described in more detail below.
Нужно понимать, что каждая операция может рассматриваться как сообщение, при этом каждое сообщение может включать структуру данных активности. Структуры данных активности -это заранее определенные типы данных, однако они могут также определяться при помощи наследования между ними и при помощи сторонних приложений 40, которые могут давать возможность их расширения с добавлением новых полей. Они могут зависеть от конкретной системы, или быть основаны на стандартизованных структурах данных, или включать в себя стандартизованные структуры данных. Они могут кодироваться также, как данные XML или JSON, или могут кодироваться с использованием схемы кодирования двоичных объектов.It should be understood that each operation can be considered a message, and each message can include an activity data structure. Activity data structures are predefined data types, but they can also be defined by inheritance between them and using 40 third party applications that can extend them with new fields. They can be system-specific, or based on standardized data structures, or include standardized data structures. They can be encoded in the same way as XML or JSON data, or they can be encoded using a binary object encoding scheme.
Структура данных активности может также включать поле описание, предоставляемое сторонним приложением 40. Оно представляет собой описание активности, основанное на стороннем приложении 40 (которое может быть более детальным, чем информация, имеющаяся в системе 30 для построения вебсайта). К примеру, стороннее приложение 40 IP-телефонии может предоставлять следующий текст описания активности: Позвоните Джону Смиту по номеру 999-555-1234 -01:15.The activity data structure may also include a description field provided by the third party application 40. This is a description of the activity based on the third party application 40 (which may be more detailed than the information available on the website building system 30). For example, third-party IP telephony application 40 may provide the following activity description text: Call John Smith at 999-555-1234-01: 15.
- 23 036433- 23 036433
Структура данных активности может включать также возвратную ссылку, например дополнительная информация, которая ведет обратно к структуре данных активности. Она может применяться для предоставления дополнительной важной информации, например, для структуры данных активности в приложении интернет-магазина: полная информация по отслеживанию заказа, история заказов и т.п.; для структуры данных активности в приложении чата: полная запись переговоров чате, а для структуры данных активности в приложении телефонии: запись вызова. Таким образом, полная структура данных активности может включать следующие поля: отметка о времени создания; тип активности; источник активности (идентификатор стороннего приложения или компонента); идентификатор потока данных об активности; информация, зависящая от типа активности (различная для каждого типа активности); идентификатор исходного веб-сайта; идентификатор базы данных участников веб-сайта; идентификатор или URL страницы веб-сайта, на которой произошла данная активность; описание активности, предоставленное сторонним приложением 40; ссылка на более подробную информацию для использования сторонним приложением 40 и захваченная информация о пользователях и т.п.The activity data structure can also include a return link, such as additional information that leads back to the activity data structure. It can be used to provide additional important information, for example, for the structure of activity data in an online store application: complete information on order tracking, order history, etc.; for the activity data structure in the chat application: a complete recording of the chat conversations, and for the activity data structure in the telephony application: a call recording. Thus, the complete activity data structure can include the following fields: creation time stamp; type of activity; source of activity (identifier of a third-party application or component); activity data stream identifier; activity-specific information (different for each activity type); source website identifier; website member database ID; the identifier or URL of the website page on which this activity occurred; a description of the activity provided by a third-party application 40; link to more detailed information for use by third party application 40 and captured user information and the like.
Координатор 250 активности может рассматриваться как журналирующий элемент, который может принимать данные из пропускаемых сообщений от концентратора 230. Формирователь 251 потока может создавать исходный поток, который может рассматриваться как журналоподобная или спископодобная структура, а устройство 252 слияния потоков может добавлять в нее любую дополнительную входную информацию об активности, причем каждый поток является уникальным для отдельного контактного лица. Нужно понимать, что формирователь 251 потока не может создавать новый поток для всех отдельных операций, информация о которых содержится в различных сообщениях об активности. Также нужно понимать, что информация об активности в потоке может иметь неправильную последовательность (например, стороннее приложение 40 может сообщать об активности с задержкой). Устройство 252 слияния потоков может при функционировании выполнять слияние потоков, если они принадлежат одному и тому же одиночному контактному лицу, а формирователь 253 журнала может сохранять журнальный файл в базу данных 255 потока данных об активности все ранее созданных потоков данных об активности.Activity coordinator 250 can be viewed as a logging element that can receive data from skipped messages from hub 230. Stream generator 251 can create an original stream, which can be considered a log-like or list-like structure, and stream merger 252 can add any additional input information to it. activity, with each stream being unique to an individual contact. It should be understood that the thread builder 251 cannot create a new thread for all the individual operations that are reported in the various activity messages. You also need to understand that the information about the activity in the stream may be in the wrong sequence (for example, third-party application 40 may report activity with a delay). The stream merger 252 may functionally merge streams if they are owned by the same single contact, and the log generator 253 may save a log file to the activity stream database 255 of all previously generated activity streams.
В соответствии с предшествующим описанием в отношении фиг. 16С устройство 252 слияния потоков включает устройство 261 слияния активность-поток и устройство 262 слияния поток-поток. Устройство 261 слияния активность-поток может связывать данные об активности с потоком, который относится к идентифицированному контактному лицу, а устройство 262 слияния поток-поток может преобразовывать два отдельных потока в один поток. Устройство 263 горизонтального слияния может выполнять слияние двух несвязанных потоков на основе обнаруженных одинаковых первичных идентификаторов, а устройство 264 вертикального слияния может выполнять слияние потока, созданного для анонимного контактного лица, с потоком, связанным с зарегистрированным пользователем, после входа в учетную запись или регистрации, что позволяет объединить эти два контактных лица. Нужно понимать, что устройство 252 слияния потоков может при необходимости выполнять доступ к ранее созданным потокам в базе 255 данных.As previously described with respect to FIG. 16C, the stream merger 252 includes an activity-stream merger 261 and a stream-stream merger 262. Activity-to-stream merger 261 may associate activity data with a stream that relates to an identified contact, and stream-to-stream merger 262 may convert two separate streams into one stream. Horizontal merger 263 can merge two unrelated streams based on identical primary identifiers found, and vertical merger 264 can merge a stream created for an anonymous contact with a stream associated with a registered user after logging into an account or registering. allows you to combine these two contacts. It will be appreciated that the stream merger 252 can optionally access previously created streams in the database 255.
К примеру, анонимный пользователь может заполнить на веб-сайте форму обратной связи. Формирователь 251 потока может создать новый поток данных об активности (с идентификатором аноним 1), а обработчик 242 контактов может создать новое контактное лицо (с идентификатором аноним 1 в соответствии с последующим более подробным описанием). Затем тот же самый пользователь может использовать чат для общения с владельцем веб-сайта. Устройство 252 слияния потоков может объединить эту активность с потоком данных об активности аноним 1, а контактное лицо аноним 1 может быть обновлено (в соответствии с последующим более подробным описанием). Затем тот же пользователь с помощью другого браузера может заполнить форму планирования. Поскольку корреляции с исходным пользователем нет, формирователь 251 может создать новый поток активности с идентификатором аноним 2, а обработчик 242 контактов может создать новое контактное лицо с идентификатором аноним 2.For example, an anonymous user might fill out a contact form on a website. The stream builder 251 can create a new activity data stream (with anonymous identifier 1), and the contact processor 242 can create a new contact person (with anonymous identifier 1, according to the following more detailed description). The same user can then use chat to communicate with the owner of the website. The stream merger 252 can merge this activity with the anonymous 1 activity data stream, and the anonymous 1 contact can be updated (in accordance with the following more detailed description). The same user can then fill out the planning form using a different browser. Since there is no correlation with the original user, the originator 251 can create a new activity stream with anonymous identifier 2, and the contact handler 242 can create a new contact with anonymous identifier 2.
Затем тот же пользователь может совершить покупку с веб-сайта. Устройство 252 слияния потоков объединяет новую активность с потоком данных об активности аноним 2, при этом также может быть обновлено контактное лицо аноним 2 (например, может быть добавлен тег покупатель).The same user can then make a purchase from the website. The stream merger 252 merges the new activity with the activity data stream Anonymous 2, and the contact person Anonymous 2 can also be updated (for example, a buyer tag can be added).
Пользователь с помощью еще одного браузера может зарегистрироваться на данном веб-сайте. При регистрации все пользователи получают идентификатор пользователь х от устройства управления зарегистрированными пользователями на данном веб-сайте. В этот момент времени формирователь 251 потока может создать новый поток данных об активности (с идентификатором пользователь х), а обработчик 252 контактов может создать новое контактное лицо (с тем же идентификатором пользователь х).The user can register on this website using another browser. Upon registration, all users receive a user ID x from the registered user manager on this website. At this point in time, the stream generator 251 can create a new activity data stream (with the id user x), and the contact handler 252 can create a new contact person (with the same id user x).
Затем пользователь возвращается к предыдущему браузеру и продолжает чат с владельцем вебсайта. Поскольку на веб-сайте нет куки-файла, формирователь 251 потока может создать еще один новый поток с идентификатором аноним 3, а обработчик 242 контактов может создать новое контактное лицо аноним 3.The user then returns to the previous browser and continues to chat with the owner of the website. Since there is no cookie on the website, the flow builder 251 can create another new flow with the ID anonymous 3, and the contact processor 242 can create a new contact anonymous 3.
Затем пользователь может выполнить вход в учетную запись веб-сайта. В этот момент будут существовать контактные лица с идентификаторами аноним 3 и пользователь х. Устройство 243 слиянияThe user can then log in to the website account. At this moment, there will be contact persons with identifiers anonymous 3 and user x. Merge device 243
- 24 036433 данных может выполнять слияние контактных лиц аноним 3 и пользователь х, в результате чего операция входа в учетную запись в потоке пользователь х и операция входа в учетную запись для контактного лица пользователь х будут указывать одновременно на потоки пользователь х и аноним 3. Устройство 252 слияния потоков может выполнить объединение всей дополнительной активности, совершенной в текущем сеансе пользователем, в поток данных об активности пользователь х. Формирователь 253 журнала может журналировать все данные об активности из потоков и сохранять копию журнала в базу 255 данных активности.- 24 036433 data can merge contacts anonym 3 and user x, as a result of which the account login operation in the user x stream and the account login operation for the contact person user x will simultaneously point to the user x and anonymous 3 streams. 252, merge streams can merge any additional activity done in the current session by the user into a stream of activity data for user x. The log generator 253 can log all activity data from threads and save a copy of the log to the activity database 255.
Нужно понимать, что владелец веб-сайта может иметь доступ к истории потоков данных об активности для заданных контактных лиц через соответствующий пользовательский интерфейс, предоставляемой системой 30 для построения веб-сайта, в соответствии с иллюстрацией фиг. 17, о которой пойдет речь далее. Для одного из контактных лиц, Дэни Бронштейна, без труда может быть получена история его работы с веб-сайтом. При этом нужно понимать, что система 30 для построения веб-сайта или стороннее приложение 40 могут также предоставлять API-интерфейс для доступа к журналированной информации. Нужно понимать, что журнал активности может применяться для оптимизации, усовершенствования пользовательского интерфейса, таргетирования рекламы и т.п.It is to be understood that the website owner can access the history of the activity data streams for designated contacts via the appropriate user interface provided by the system 30 for building the website as illustrated in FIG. 17, which will be discussed below. For one of the contact persons, Dani Bronstein, the history of his work with the website can be easily obtained. It should be understood, however, that the website building system 30 or the third-party application 40 may also provide an API for accessing the logged information. You need to understand that the activity log can be used for optimization, improving the user interface, targeting ads, etc.
Также нужно понимать, что параллельно с этим координатор 240 контактов может отбирать информацию из данных, предоставляемых в потоках (или сообщениях) об активности и формировать профиль контактного лица для каждого конкретного пользователя. Экстрактор 241 данных может извлекать данные из сообщений об активности и потоков данных об активности, устройство 243 слияния данных может объединять соответствующие данные с конкретным контактным лицом, информация о котором может храниться в базе 245 данных или может быть получена из нее. Обработчик 242 контактов может создавать новые контактные лица, обрабатывать идентификаторы пользователей веб-сайта, анонимных пользователей или других пользователей, а обработчик 244 данных и разрешений может управлять защитой конфиденциальности и правами доступа к соответствующим данным. В соответствии с предшествующим описанием устройство 243 слияния данных может включать устройство 277 горизонтального слияния контактов и устройство 276 вертикального слияния контактов. Устройство 277 горизонтального слияния может выполнять слияние двух несвязанных контактных лиц на основе обнаруженных одинаковых первичных идентификаторов, а устройство 276 вертикального слияния контактов может выполнять слияние анонимного контактного лица с контактным лицом, которое связано с зарегистрированным пользователем, после входа в учетную запись или регистрации, позволяющих объединить эти два контактных лица. Устройство 277 слияния контактов может также включать устройство 278 виртуального горизонтального слияния контактов для поддержания двух контактных лиц в качестве отдельных, однако с их сцеплением между собой, при котором их помечают, как представляющие одно и то же контактное лицо, со слиянием фактической контактной информации или без него. Устройство 275 вертикального слияния контактов может при этом включать устройство 279 виртуального вертикального слияния контактов для поддержания анонимного контактного лица и контактного лица, связанного с зарегистрированным пользователем, в качестве отдельных, однако с их сцеплением между собой, при котором их помечают, как представляющие одно и то же контактное лицо, со слиянием фактической контактной информации или без него. Устройство 243 слияния данных может также выполнять слияние контактной информации (как правило, извлеченной экстрактором 241 данных) с существующим контактным лицом. Нужно понимать, что устройство 272 идентификации контактов может отслеживать пользовательские идентификаторы с использованием куки-файлов и может распознавать контактные лица для слияния в соответствии с последующим более подробным описанием.You also need to understand that in parallel with this, the contact coordinator 240 can select information from the data provided in the streams (or messages) about activity and form a contact profile for each specific user. The data extractor 241 can extract data from activity messages and activity data streams, the data fusion device 243 can combine the corresponding data with a specific contact, information about which can be stored in the database 245, or can be obtained from it. Contact handler 242 can create new contacts, handle website user IDs, anonymous users, or other users, and data and permission processor 244 can manage privacy protection and access rights to the associated data. As previously described, data merger 243 may include a horizontal contact merger 277 and a vertical contact merger 276. Horizontal merge device 277 can merge two unrelated contacts based on identical primary identifiers found, and vertical merge device 276 can merge an anonymous contact with a contact that is associated with a registered user after logging into an account or registering to merge these two contact persons. The contact merger 277 may also include a virtual horizontal contact merger 278 for maintaining two contacts as separate, but concatenating them together, in which they are marked as representing the same contact, with or without merging the actual contact information. him. The vertical contact merger 275 may then include a virtual vertical contact merger 279 for maintaining the anonymous contact and the contact associated with the registered user as separate, but concatenating them together, in which they are marked as representing the same same contact person, with or without merger of actual contact information. The data merger 243 may also merge contact information (typically retrieved by the data extractor 241) with an existing contact. It should be understood that the contact identification device 272 can track user IDs using cookies and can recognize merge contacts as described in more detail below.
Обратимся снова к фиг. 15, 16А и 16В. Передача сообщений может выполняться на стороне клиента 220, на стороне сервера 260 или на обеих сторонах. Нужно понимать, что сторонние приложения 40 могут, в общем случае, иметь элемент клиентской стороны, а также элемент серверной стороны или по меньшей мере соединение со стороной сервера, например соединение с сервером 270 поставщика стороннего приложения 40. Концентратор 210 может обрабатывать все сообщения между клиентом 220 и сторонними приложениями 40, а концентратор 230 - между сервером 260 и сторонними приложениями 40. Нужно понимать, что данные, принятые концентратором 210, могут быть обработаны и перенаправлены в концентратор 230 для дальнейшей обработки в соответствии с последующим более подробным описанием.Referring again to FIG. 15, 16A and 16B. Messaging can be performed on the client 220 side, on the server 260 side, or on both sides. It should be understood that third-party applications 40 may generally have a client-side element as well as a server-side element, or at least a server-side connection, such as a connection to the server 270 of the provider of the third-party application 40. The hub 210 can handle all messages between the client 220 and third party applications 40, and hub 230 between server 260 and third party applications 40. It should be understood that data received by hub 210 can be processed and redirected to hub 230 for further processing as described in more detail below.
Обратимся к фиг. 18, на которой проиллюстрирован один из возможных сценариев передачи сообщений между различными платформами. Клиентская машина X пользователя может быть соединена (t) с системой 30 для построения веб-сайта на сервере Y. Система 30 для построения веб-сайта может быть реализована с использованием клиентского компонента А' системы 30 для построения веб-сайта и серверного компонента А системы 30 для построения веб-сайта. При отображении конструируемого вебсайта он может включать элементы клиентской стороны (данные и/или код) В' и элемент В серверной стороны. Конструируемый веб-сайт может также включать три сторонних приложения 40 - ТРА1, ТРА2 и ЕТРА3.Referring to FIG. 18, which illustrates one possible scenario for the transfer of messages between different platforms. The user's client machine X can be connected (t) to the system 30 for building a website on the server Y. The system 30 for building a website can be implemented using the client component A 'of the website building system 30 and the server component A of the system 30 for building a website. When displaying a constructed website, it may include client-side elements (data and / or code) B 'and a server-side B element. The website being constructed may also include three third party applications 40 - TPA1, TPA2 and ETPA3.
Стороннее приложение ТРА1 может быть реализовано с использованием компонента D' на стороне клиента и компонента D на стороне сервера, который имеет соединение с поставщиком Н стороннегоA third party TPA1 application can be implemented using the D 'component on the client side and the D component on the server side, which has a connection to the third party provider H
- 25 036433 приложения ТРА1. Стороннее приложение ТРА2 может быть реализовано с использованием компонента Е' на стороне клиента и компонента Е на стороне сервера, который имеет соединение с поставщиком I стороннего приложения ТРА1. Стороннее приложение ЕТРА3, однако, может быть сторонним приложением 40, размещенным исключительно на стороне сервера и реализованным с использованием компонента G серверной стороны, который имеет соединение с внутренним интерфейсом F поддержки сторонних приложений 40 в системе 30 для построения веб-сайта. И упомянутый компонент, и система могут осуществлять связь с сервером J поставщика стороннего приложения 40.- 25 036433 appendix TPA1. The third party TPA2 application can be implemented using the E 'component on the client side and the E component on the server side, which has a connection to the provider I of the third party TPA1 application. The third-party application ETPA3, however, may be a third-party application 40 hosted exclusively on the server side and implemented using a server-side component G that has a connection to the internal interface F for supporting third-party applications 40 in the system 30 to build a website. Both said component and the system can communicate with the server J of the third-party application provider 40.
Нужно понимать, что сторонние приложения ТРА1 и ТРА2 могут обмениваться сообщениями на стороне клиента (между компонентами D' и Е'), на сервере (между компонентами D и Е), или на обеих сторонах одновременно. Однако связь со сторонним приложением ЕТРА3 возможна только на стороне сервера. Также нужно понимать, что каждый из этих методов имеет собственные преимущества и недостатки. Передача сообщений об активности на стороне клиента может обеспечивать большую степень интерактивности и более быстрый пользовательский отклик.It should be understood that third-party applications TPA1 and TPA2 can exchange messages on the client side (between components D 'and E'), on the server (between components D and E), or on both sides at the same time. However, communication with a third-party ETPA3 application is only possible on the server side. You also need to understand that each of these methods has its own advantages and disadvantages. Sending activity messages on the client side can provide more interactivity and faster user response.
Передача сообщений об активности на стороне сервера может быть более эффективной, надежной (например, пользователь не сможет закрыть окно браузера в ходе процедуры), гарантировать правильный порядок приема сообщений и обеспечивать возможность передачи сообщений об активности в бэкендовые сторонние приложения 40, установленные на сервере или в панели управления приложениями. Нужно понимать, что подобные бэкендовые сторонние приложения 40 вообще не представлены на стороне клиента.Server-side activity messages can be more efficient, reliable (for example, the user will not be able to close the browser window during the procedure), ensure that messages are received correctly, and provide the ability to transmit activity messages to 40 backend third-party applications installed on the server or in application control panels. It should be understood that 40 such backend third-party applications are not presented at all on the client side.
Примером использования множества сторонних приложений 40 может служить сценарий, в котором пользователь добавляет товар в корзину в стороннем приложении А (такая активность имеет тип изменение корзины). Стороннее приложение А может затем передавать сообщение об активности, с информацией о добавленном товаре, в систему 30 для построения веб-сайта. Система 30 для построения веб-сайта может затем пересылать информацию об активности во все сторонние приложения 40, зарегистрированные для прослушивания изменений корзины. Поскольку стороннее приложение В зарегистрировано, оно принимает данную информацию об активности. Стороннее приложение В может затем отображать пользователю сообщение, например Если вы добавите в корзину товар X, вы получите скидку или Расскажите о данном сайте друзьям и получите скидку.An example of the use of many third-party applications 40 would be a scenario in which a user adds an item to the cart in a third-party application A (such activity is of the type change cart). Third party application A may then transmit an activity message with information about the added product to the system 30 to build the website. The website building system 30 can then send activity information to all third-party applications 40 registered to listen for bucket changes. Since third party application B is registered, it accepts this activity information. Third-party application B may then display a message to the user, for example, if you add item X to your cart, you will get a discount, or Share this site with your friends and get a discount.
Другой пример - это когда пользователь выбирает опцию мне нравится (например, через социальную сеть Facebook) для некоторого элемента в стороннем приложении А. Стороннее приложение А может затем передавать сообщение об активности в систему 30 для построения веб-сайта, типом активности которого будет мне нравится для Facebook. Система 30 для построения веб-сайта может затем пересылать информацию об активности во все сторонние приложения 40, зарегистрированные для прослушивания операций типа мне нравится. Поскольку стороннее приложение В зарегистрировано, оно принимает данную информацию об активности. Стороннее приложение В может отображать пользователю виджет с повторным приглашением для пользователя и отображать соответствующее сообщение, например если вам нравится этот веб-сайт, может быть, вы хотите связаться с его владельцем? или Не хотите ли получить купон на скидку?.Another example is when a user selects an option I like (for example, via the social network Facebook) for some item in third-party application A. Third-party application A can then send an activity message to system 30 to build a website whose type of activity I like for Facebook. The system 30 for building a website can then send activity information to all third party applications 40 registered to listen for operations of the type I like. Since third party application B is registered, it accepts this activity information. Third-party application B might display a re-invite widget to the user and display a message accordingly, for example, if you like this website, maybe you want to contact the owner? or would you like to get a discount coupon ?.
В соответствии с предшествующим описанием вся связь может осуществляться через концентраторы 210 и 230.In accordance with the foregoing description, all communication can occur through the hubs 210 and 230.
Маршрутизатор 211 может обеспечивать маршрутизацию сообщений на стороне клиента между веб-сайтом и всеми сторонними приложениями 40. Маршрутизатор 211 может также обеспечивать маршрутизацию сообщений между концентратором 210 и концентратором 230 для дальнейшей обработки в соответствии с последующим более подробным описанием.Router 211 may provide client-side message routing between the website and all third-party applications 40. Router 211 may also route messages between hub 210 and hub 230 for further processing as described in more detail below.
Маршрутизатор и трекер 231 могут обеспечивать маршрутизацию сообщений между веб-сайтом и любыми из сторонних приложений 40, а также могут отслеживать сообщения. Нужно понимать, что сторонние приложения 40 могут также прослушивать сообщения как на стороне клиента, так и на стороне сервера. Также нужно понимать, что стороннее приложение 40 явно указывать один или более типов активности для прослушивания, например прослушивать все операции типа добавление товара в корзину покупок. Стороннее приложение 40 может также явно указывать классы активности для прослушивания, например прослушивать всю активность, связанную с Facebook. Также стороннее приложение может включать выражение с подстановочными знаками (применяемое к наименованию активности), которое может применяться для определения, следует ли передавать информацию об активности в стороннее приложение или нет.The router and tracker 231 can route messages between the website and any of the third party applications 40, and can also track messages. It should be understood that third party applications 40 can also listen for messages on both the client side and the server side. You also need to understand that the third party application 40 explicitly specify one or more types of activity to listen, for example, listen for all operations such as adding an item to the shopping cart. The third party application 40 can also explicitly specify the activity classes to listen to, such as listening for all Facebook related activity. Also, the third party application can include a wildcard expression (applied to the name of the activity) that can be used to determine whether or not the activity information should be passed to the third party application.
Также нужно понимать, что в стороннем приложении 40 может применяться запрос на прослушивание активности. Такой запрос может относиться к дополнительной системной информации, включающей информацию, обычно недоступную собственно стороннему приложению, например: атрибуты пользователя (например, только зарегистрированные пользователи, только пользователи из Европы и т.п.), атрибуты или информация о структуре веб-сайта (например, прослушивание заданной активности только на страницах, наследованных от заданного шаблона страницы), истории пользовательских операций (например, прослушивание операций по платежам, связанным с корзиной покупок, только если пользователь ранее совершил покупки на общую сумму, превышающую X) и т.п. Такой запрос может формиро- 26 036433 ваться сторонним приложением 40, однако может также допускать редактирование веб-дизайнером.You also need to understand that a request to listen for an activity may be applied in a third-party application 40. Such a request may refer to additional system information, including information that is usually not available to the actual third-party application, for example: user attributes (for example, only registered users, only users from Europe, etc.), attributes or information about the structure of the website (for example , listening to a given activity only on pages inherited from a given page template), history of user operations (for example, listening to payment transactions associated with a shopping cart only if the user has previously made purchases for a total amount exceeding X), etc. Such a request may be generated by a third party application 40, but may also be editable by a web designer.
Таким образом, маршрутизатор и трекер 231 могут также отслеживать сообщения, которые прослушиваются сторонним приложением 40. Нужно понимать, что подобная архитектура запросов на прослушивание активности может быть наиболее эффективно реализована на уровне маршрутизации сообщений об активности (вместо реализации с помощью API-вызова внутри стороннего приложения 40), поскольку тогда веб-дизайнер будет иметь возможность подстройки и персонализации, без того, чтобы сторонние приложения 40 обеспечивали высокую степень программируемости и персонализации. Маршрутизатор и трекер 231 могут также способствовать сохранению конфиденциальности пользовательских данных, поскольку от веб-дизайнера не требуется предоставление дополнительной информации (нужной для принятия решений по маршрутизации) в задействованные сторонние приложения 40. Это также позволяет исключить излишние обращения к сторонним приложениям 40, которые зачастую размещаются на различных серверах.Thus, the router and tracker 231 can also track messages that are being listened to by the third-party application 40. It should be understood that such an architecture for listening to activity requests can be most efficiently implemented at the level of routing activity messages (instead of using an API call within the 40), because then the web designer will be able to customize and personalize without the third party applications 40 providing a high degree of programmability and personalization. Router and tracker 231 can also help maintain the privacy of user data, since the web designer is not required to provide additional information (needed to make routing decisions) to the involved third-party applications 40. This also avoids unnecessary calls to third-party applications 40 that are often hosted on different servers.
Нужно понимать, что пользователем (посетителем веб-сайта) является лицо, которое заходит на веб-сайт, регистрируется на нем и передает на него информацию. Пользователь может быть не осведомлен о том, что веб-сайт, к которому он или она осуществляет доступ, построен с использованием комбинации системы 30 для построения веб-сайта, компонентов, созданных веб-сайтов и сторонних приложений 40. Таким образом, ответственность за конфиденциальность пользовательских данных в конечном счете лежит на плечах владельца веб-сайта (который также отвечает за действия сторонних приложений 40, включенных в состав его или ее веб-сайта).It should be understood that a user (website visitor) is a person who visits a website, registers on it and transmits information to it. The user may not be aware that the website that he or she is accessing is built using a combination of the system 30 for building the website, components generated by the websites and 40 third party applications. Thus, the responsibility for privacy of user data ultimately rests on the shoulders of the website owner (who is also responsible for the actions of the 40 third party applications included in his or her website).
Также нужно понимать, что доступ к информации пользовательских профилей сторонними приложениями 40 (или другими компонентами системы 30 для построения веб-сайта) может осуществляться на основе правил конфиденциальности, определенных системой 30 для построения веб-сайта, через APIинтерфейс, предоставленный системой 30 для построения веб-сайта. При этом также вмещающий вебсайт, как и размещенные на нем сторонние приложения 40 могут использовать полученную контактную информацию для связи с пользователем (по электронной почте или иным образом).It should also be understood that access to user profile information by third-party applications 40 (or other components of the system 30 for building a website) may be based on the privacy rules defined by the system 30 for building a website, through the API provided by system 30 for building a web. -site. At the same time, the hosting website, as well as the third-party applications 40 placed on it, can use the received contact information to communicate with the user (by e-mail or otherwise).
Нужно понимать, что возможны три следующие основные угрозы конфиденциальности данных. Первая - взаимодействие веб-сайта и системы 30 для построения веб-сайта с поставщиком сторонних приложений 40. Веб-сайт и система 30 для построения веб-сайта не могут полностью доверять стороннему приложению 40 обработку пользовательских данных, например, нельзя гарантировать, что стороннее приложение 40 не будет осуществлять массовую почтовую рассылку (с использованием предоставленных веб-сайтом адресов электронной почты), рассылать нежелательные сообщения (спам) пользователям, запросившим удаление из списка рассылки, или не передаст персональную информацию пользователей посторонним лицам. Однако подобные проблемы могут быть решены описанными ниже способами.It should be understood that there are three possible major data privacy threats. The first is the interaction of the website and the system 30 for building the website with the third-party application provider 40. The website and the system 30 for building the website cannot fully trust the third-party application 40 to process user data, for example, it cannot be guaranteed that the third-party application 40 will not send bulk mail (using the email addresses provided by the website), send unsolicited messages (spam) to users who have requested deletion from the mailing list, or transfer users' personal information to third parties. However, such problems can be solved by the methods described below.
Поставщик системы 30 для построения веб-сайта может требовать, чтобы поставщики 40 сторонних приложений подписывали соглашение об условиях использования информации (Terms of Use, Toll) перед тем, как им будет предоставлен доступ к рынку приложений для системы 30 для построения вебсайта. В подобном соглашении может быть указано, что стороннее приложение 40 (и поставщик стороннего приложения 40) обязуется неправомерно не использовать и не распространять пользовательскую информацию. Поставщик системы 30 для построения веб-сайта может затем налагать на поставщика стороннего приложения штрафные санкции в случае неправомерного использования им информации (например, блокировать стороннее приложение 40, удалять стороннее приложение 40 с рынка приложений системы 30 для построения веб-сайта и т.п.) Устройства 213 и 233 исполнения политик конфиденциальности, а также прокси-модуль 234 конфиденциальных данных могут обеспечивать исполнение политик конфиденциальности сторонними приложениями 40 в соответствии с последующим более подробным описанием.The provider of the system 30 for building a website may require the providers of the 40 third party applications to sign a Terms of Use (Toll) agreement before they are given access to the application market for the system 30 to build the website. Such an agreement may state that the third party application 40 (and the provider of the third party application 40) will not misuse or distribute user information. The provider of the website building system 30 may then impose penalties on the third party application provider for misuse of information (e.g., block the third party application 40, remove the third party application 40 from the application market of the website building system 30, etc.) ) Appliances 213 and 233 of the enforcement of privacy policies, as well as the proxy module 234 confidential data can enforce the privacy policies of third-party applications 40 in accordance with the following more detailed description.
Второй угрозой конфиденциальности является взаимодействие веб-сайта и системы 30 для построения веб-сайта с пользователем (посетителем сайта). Веб-сайт должен обеспечить пользователю четкое понимание того, как его или ее персональные данные могут использоваться, получить согласие пользователя и выполнять, со своей стороны, соответствующее соглашение. Система 30 для построения вебсайта требует, чтобы все публичные веб-сайты предоставляли пользователю документ соглашения об условиях использования (Toll), в котором определены допустимые операции с конфиденциальной пользовательской информацией, при этом от пользователя требуется электронная подпись этого документа. Затем веб-сайт должен выполнять требования соглашения и использовать данные соответственно. Система 30 для построения веб-сайта может дополнительно включать пример страницы с соглашением Toll в каждом предоставляемом ей шаблоне веб-сайта. Устройства 213 и 233 исполнения политик конфиденциальности могут обеспечивать исполнение условий, перечисленных в документе соглашения Toll. Устройства 213 и 233 исполнения политик конфиденциальности могут также гарантировать при помощи удаления или переконфигурирования соответствующих данных, что в сторонние приложения будет передаваться только разрешенная информация.A second privacy threat is the interaction of the website and the system 30 for building the website with the user (site visitor). The website must provide the user with a clear understanding of how his or her personal data may be used, obtain the user's consent and, for its part, comply with the relevant agreement. System 30 for building a website requires all public websites to provide the user with a Terms of Use Agreement (Toll) document that defines the permissible operations with sensitive user information, and the user is required to electronically sign this document. The website must then comply with the terms of the agreement and use the data accordingly. System 30 for building a website may further include a sample Toll Agreement page in each website template provided to it. The privacy policy enforcers 213 and 233 may enforce the terms listed in the Toll document. Privacy policy enforcement devices 213 and 233 can also ensure, by deleting or reconfiguring relevant data, that only authorized information is passed to third-party applications.
Третьей угрозой конфиденциальности является поддержка запросов на отмену подписки. Веб-сайт должен предоставлять пользователю опцию для отмены подписки на рекламную почтовую рассылку.The third privacy threat is support for unsubscribe requests. The website should provide the user with the option to unsubscribe from the promotional mailing list.
- 27 036433- 27 036433
Это может обеспечиваться обработчиком 244 данных и разрешений в соответствии с последующим более подробным описанием.This can be provided by the data and permission processor 244 as described in more detail below.
Обработчик 244 данных и разрешений может также обрабатывать различные пользовательские разрешения, заданные различными пользователями, в соответствии с последующим более подробным описанием.The data and permission handler 244 may also handle different user permissions set by different users, as described in more detail below.
Прокси-модуль 234 конфиденциальных данных может обеспечивать для системы 30 для построения веб-сайта (и веб-сайтов, созданных с ее помощью) хранение всех конфиденциальных данных или их части в защищенном хранилище, которое администрируется системой 30 для построения веб-сайта, и может присваивать сторонним приложениям альтернативные уникальные идентификаторы (для использования вместо конфиденциальных данных), при помощи которых скрытые конфиденциальные данные могут быть получены системой 30 для построения веб-сайта). Например, адрес электронной почты может быть заменен на альтернативный идентификатор адреса электронной почты, который передают в стороннее приложение 40, чтобы стороннее приложение 40 не имело доступа к реальному адресу электронной почты.The sensitive data proxy module 234 may provide for the website building system 30 (and websites built with it) to store all or part of the sensitive data in a secure storage that is administered by the website building system 30, and may provide third-party applications with alternative unique identifiers (for use instead of confidential data) with which hidden confidential data can be retrieved by the system 30 to build a website). For example, the email address can be replaced with an alternate email address identifier that is passed to the third party application 40 so that the third party application 40 does not have access to the real email address.
Прокси-модуль 234 конфиденциальных данных может при этом обеспечивать набор интерфейсов для различных методов связи (например, электронная почта, сообщения социальных сетей и т.п.), которые могут применяться сторонними приложениями 40 для связи, или передачи сообщений, пользователю без фактического доступа сторонних приложений 40 к конфиденциальным данным, связанным с этим пользователем. Такие конфиденциальные данные могут включать любую идентификационную информацию, позволяющую связаться с пользователем, включая, например, имя, адрес, электронная почта, телефон (включая SMS/MMS), унифицированный идентификатор связи (Skype и т.п.) или идентификатор социальной сети.The sensitive data proxy module 234 may still provide a set of interfaces for various communication methods (e.g., email, social media messages, etc.) that can be used by third-party applications 40 to communicate, or send messages, to a user without actually having third-party access. attachments 40 to sensitive data associated with that user. Such sensitive data may include any identification information that allows you to contact the user, including, for example, name, address, email, telephone (including SMS / MMS), uniform communication identifier (Skype, etc.) or social network ID.
Прокси-модуль 234 конфиденциальных данных может, таким образом, исполнять ограничения, заданные в поле пользовательских разрешений, обеспечивать исполнение пользовательских запросов на отмену подписки и регулировать передачу сообщений пользователям, например пропускать не более 100 сообщений электронной почты в день для заданного стороннего приложения 40, функционирующего на заданном веб-сайте. Прокси-модуль 234 конфиденциальных данных может определять параметры представительства в отношении конфиденциальных данных, а также, какие конфиденциальные данные могут быть открыты стороннему приложению, а какие скрыты, для каждого из сторонних приложений 40 или для каждого отдельного поля данных.The sensitive data proxy 234 can thus enforce the restrictions set in the user permission field, enforce user unsubscribe requests, and regulate the transmission of messages to users, such as no more than 100 email messages per day for a given third party application 40 running. on a given website. The proxy module 234 sensitive data can determine the parameters of representation with respect to sensitive data, as well as which sensitive data can be exposed to a third-party application, and which are hidden, for each of the third-party applications 40 or for each individual data field.
Для сторонних приложений 40, размещенных на серверах системы 30 для построения веб-сайта, прокси-модуль 234 конфиденциальных данных может выдавать альтернативный уникальный идентификатор, аналогичный по форме исходным конфиденциальным данным (например, предоставлять альтернативный фиктивный адрес электронной почты вместо исходного адреса персональной электронной почты) и затем перехватывать вызовы, требующие применения этой информации, и перенаправлять сообщение электронной почты (в этом примере) на правильный адрес. Тот же метод может применяться для выявления нарушений сторонними приложениями 40, предоставленных им прав.For third-party applications 40 hosted on the servers of the website building system 30, the confidential data proxy 234 may issue an alternative unique identifier similar in form to the original confidential data (e.g., provide an alternative bogus email address instead of the original personal email address) and then intercept calls requiring this information and forward the email message (in this example) to the correct address. The same method can be applied to detect violations by 40 third-party applications of the rights granted to them.
Нужно понимать, что владельцу веб-сайта может быть необходимо предоставлять ограниченную или модифицированную информацию в любое из конкретных сторонних приложений 40. Причинами тому могут быть общие соображения безопасности, конкретные обязательства по конфиденциальности в отношении каких-либо элементов пользовательских данных или регулятивные требования, относящиеся к конкретной отрасли или к конкретному приложению. Устройства 213 и 233 исполнения политик конфиденциальности могут реализовывать подобные изменения, внесенные владельцем веб-сайта, а также замещать текущие настройки.It should be understood that the website owner may need to provide limited or modified information to any of the specific third party applications 40. This may be due to general security considerations, specific privacy obligations regarding any user data element, or regulatory requirements related to specific industry or specific application. Privacy policy enforcement devices 213 and 233 may implement similar changes made by the owner of the website, as well as override the current settings.
Одним из примеров может быть веб-сайт, работающий с медицинской информацией, для которого может быть необходимо блокировать некоторые персональные данные в контактной информации при передачи ее в стороннее приложение 40, выполняющее общий анализ географического распределения пользователей. В другом примере стороннее приложение 40 может некорректно работать с некоторыми типами контактной информации. Владельцу сайта, которому необходимо далее использовать такое стороннее приложение 40 (несмотря на известную ошибку), может потребоваться фильтрация контактов, вызывающих известную ошибку, или изменение этих данных таким образом, чтобы исключить появление этой ошибки.One example would be a health information website that may need to block some personal information in contact information when transferring it to a third-party application 40 that performs a general analysis of the geographic distribution of users. In another example, third-party application 40 may not work correctly with some types of contact information. A site owner who wants to continue to use such a third-party application 40 (despite a known bug) may need to filter the contacts that are causing the known error, or change this data to avoid this error.
Трансляторы и адаптеры 212 и 232 могут применять заранее заданные правила трансляции сообщений и адаптации контента. Каждое такое правило может включать условия, например стороннее приложение (или приложения) 40, к которым оно применимо, критерии фильтрации для отбора сообщений, к которым оно применимо, правило трансформации (например, отбрасывание заданного сообщения, если оно относится к заданному стороннему приложению 40) или применение трансформации к заданному полю (или полям) в структуре данных активности.Translators and adapters 212 and 232 may apply predefined rules for broadcasting messages and adapting content. Each such rule can include conditions, for example, the third-party application (or applications) 40 to which it applies, filter criteria for selecting messages to which it applies, a transformation rule (for example, discarding a given message if it relates to a given third-party application 40) or applying a transformation to the specified field (or fields) in the activity data structure.
Таким образом, концентраторы 210 и 230 могут предоставлять различные версии структур данных активности в различные сторонние приложения 40 (или не предоставлять их вовсе) согласно с указаниями, предоставленными владельцем веб-сайта.Thus, hubs 210 and 230 can provide different versions of activity data structures to different third-party applications 40 (or not at all) as directed by the owner of the website.
Соответствующая система 30 для построения веб-сайта может также поддерживать валидацию иAn appropriate system 30 for building a website may also support validation and
- 28 036433 подпись сообщений для защиты системы от ошибок и попыток взлома (например, от атак типа человек посередине, направленных на подмену данных полезной нагрузки сообщений стороннего приложения 40). Для этого каждое стороннее приложение 40, зарегистрированное в системе 30 для построения вебсайта, может иметь два набора публичных/частных ключей: один, используемый для декодирования сообщений, переданных из стороннего приложения 40 в систему 30 для построения веб-сайта (приемный ключ), и другой, используемый для кодирования сообщений, переданных из системы 30 для построения веб-сайта в стороннее приложение 40 (передающий ключ).- 28 036433 Signing messages to protect the system from errors and hacking attempts (for example, from man-in-the-middle attacks aimed at spoofing the payload data of third-party application 40 messages). To this end, each third-party application 40 registered with the website building system 30 may have two sets of public / private keys: one used to decode messages sent from the third-party application 40 to the website building system 30 (receive key), and another, used to encode messages sent from the website building system 30 to the third party application 40 (transmitting key).
К примеру, стороннее приложение А может передавать сообщение в систему 30 для построения веб-сайта. Это сообщение может быть передано с использованием идентификатора стороннего приложения, используемого на веб-сайте, т.е. внешнего идентификатора стороннего приложения (из диапазона идентификаторов сторонних приложений), и может быть подписано сторонним приложением. Система 30 для построения веб-сайта может принимать это сообщение. Устройство 235 валидации и подписи может выполнять валидацию подписи с использованием приемного ключа стороннего приложения А. Если валидация неуспешна, устройство 235 валидации и подписи может передавать отчет о том, что поступившее сообщение является некорректным, и сообщение не будет передано далее.For example, third party application A can send a message to system 30 to build a website. This message can be transmitted using the third party application identifier used on the website, i.e. an external third-party application identifier (from the third-party application identifier range), and can be signed by a third-party application. System 30 for building a website can receive this message. The validator and signature device 235 may validate the signature using the third party application A receive key. If the validation fails, the validator and signature device 235 may report that the received message is invalid and the message will not be forwarded.
Устройство 235 валидации и подписи может транслировать внешний идентификатор, связанный с сообщением, во внутренний идентификатор веб-сайта. Устройство 235 валидации и подписи позволяет гарантировать, что каждое сообщение будет получено только нужным сторонним приложением (или приложениями) 40.The validator and signature device 235 may translate the external identifier associated with the message to the internal website identifier. The validator and signature device 235 ensures that each message is received only by the desired third-party application (or applications) 40.
К примеру, для каждого из сторонних приложений В1...Вп устройство 235 валидации и подписи может находить внешний идентификатор стороннего приложения В. Затем устройство 235 валидации и подписи может формировать сообщение для стороннего приложения В и передавать в трансляторы и адаптеры 212/232 инструкцию о необходимости применения всех применимых правил фильтрации и трансформации в соответствии с предшествующим описанием. Устройство 235 валидации и подписи может затем подписывать сообщение с использованием передающего ключа для стороннего приложения В и передавать это сообщение в стороннее приложение В через маршрутизатор и трекер 231 (или маршрутизатор 211). Стороннее приложение В может затем принимать это сообщение и выполнять валидацию подписи. Если текущая валидация завершается неуспешно, формируют отчет о том, что данное сообщение является не корректным, и оно более не обрабатывается. Нужно понимать, что устройство 235 валидации и подписи может обрабатывать данные только на стороне сервера, а не на стороне клиента, чтобы исключить передачу секретных данных валидации недоверенному клиенту.For example, for each of the third-party applications B1 ... Bp, the validator and signature device 235 can find the external identifier of the third-party application B. Then, the validator and signature device 235 can generate a message for the third-party application B and transmit an instruction to translators and adapters 212/232. the need to apply all applicable filtering and transformation rules in accordance with the previous description. The validator and signature device 235 may then sign the message using the transmission key for third-party application B and transmit this message to third-party application B via router and tracker 231 (or router 211). Third party application B can then receive this message and validate the signature. If the current validation is unsuccessful, a report is generated that this message is not correct, and it is no longer processed. It should be understood that the validator and signature device 235 can only process data on the server side, and not on the client side, in order to prevent the transmission of the secret validation data to an untrusted client.
В соответствии с предшествующим описанием в системе 200 может применяться множество типов связи между системой 30 для построения веб-сайта и сторонними приложениями 40. Связь может включать, например, управляющую связь, например, выдачу, системой 30 для построения веб-сайта команды на отключение стороннего приложения 40, функциональную связь, например, передачу из стороннего приложения 40, представляющего собой корзину покупок, общей суммы покупок через систему 30 для построения веб-сайта в биллинговое стороннее приложение 40 для совершения платежа или передачу информации об активности, пример которой рассмотрен в настоящей заявке. Нужно понимать, что все эти различные типы связи имеют различные профили и требования, например, в отношении объема передаваемых сообщений, приоритетности, надежности, требованиям к временам отклика и т.п.In accordance with the foregoing description, the system 200 may employ a variety of types of communication between the website building system 30 and third party applications 40. The communication may include, for example, control communication, such as issuing, by the website building system 30, a command to disconnect the third party. applications 40, functional communication, for example, transfer from third-party shopping cart application 40 of the total amount of purchases through system 30 for building a website to billing third-party application 40 for making a payment, or transferring activity information, an example of which is discussed in this application ... It should be understood that all these different types of communication have different profiles and requirements, for example, in terms of the volume of transmitted messages, priority, reliability, response time requirements, etc.
А именно система 200 может включать отчеты об активности, передаваемые очень часто (например, если события графического пользовательского интерфейса (graphical user interface, GUI) стороннего приложения 40 рассматриваются как активность стороннего приложения 40, о которой необходимо передавать отчеты). Подобные множественные отчеты об активности могут перегружать части системы, обрабатывающие более критичные сообщения. Соответственно в системе 200 могут быть реализованы множество каналов связи (например, с использованием различных портов, множества одновременных сеансов и т.п.), так что каждый класс сообщений может передаваться в отдельном канале. Таким образом, для отчетов об активности может использоваться побочный канал, т.е. параллельный канал, который не влияет на функционирование управляющей и функциональной связи.Namely, system 200 may include activity reports that are reported very frequently (for example, if graphical user interface (GUI) events of the third party application 40 are considered as activity of the third party application 40 that needs to be reported). Multiple activity reports like these can overwhelm the parts of the system that handle more critical messages. Accordingly, multiple communication channels can be implemented in system 200 (eg, using different ports, multiple concurrent sessions, and the like) such that each class of messages can be transmitted on a separate channel. Thus, a side channel can be used for activity reporting, i.e. a parallel channel that does not affect the functioning of the control and functional communication.
В соответствии с предшествующим описанием система 200 может собирать информацию об активности в целях формирования и обогащения контактной информации при помощи координатора 240 контактов и координатора 250 активности, а также объединять события активности, связанные с конкретными контактными лицами. Для каждого сообщения об активности, маршрутизируемого через концентраторы 210 и 230, координатор 240 контактов и координатор 250 активности могут обрабатывать эту информацию. Формирователь 251 потока может формировать поток данных для каждого конкретного контактного лица из сообщений об активности, а элементы координатора 240 контактов могут извлекать данные и обрабатывать их перед сохранением в базу 245 данных контактов.In accordance with the foregoing description, system 200 can collect activity information for the purpose of generating and enriching contact information using the contact coordinator 240 and the activity coordinator 250, and also aggregate activity events associated with specific contacts. For each activity message routed through hubs 210 and 230, contact coordinator 240 and activity coordinator 250 may process this information. The stream generator 251 can generate a data stream for each specific contact from the activity messages, and the contact coordinator elements 240 can retrieve the data and process it before being stored in the contact database 245.
Соответственно каждый поток данных об активности может иметь связанное с ним сформированное контактное лицо, контактная информация которого может постепенно обогащаться данными, извлеченными из информации об активности, проходящей по данному потоку. Нужно понимать, что координатор 240 контактов может также обнаруживать присутствие родственных контактных лиц, т.е. множество записей контактной информации, описывающих одно и то же лицо. Устройство 272 идентификацииAccordingly, each activity data stream can have an associated formed contact, whose contact information can be gradually enriched with data extracted from the information about the activity passing through the given stream. It should be understood that the contact coordinator 240 can also detect the presence of related contacts, i.e. multiple contact information records describing the same person. Identification device 272
- 29 036433 контактов может распознавать подобные записи при помощи сопоставления поля первичного идентификатора, например адреса электронной почты, номера телефона, номера социального страхования, идентификатора Facebook и т.п. Нужно понимать, что некоторые поля первичного идентификатора могут быть многозначными (например, некоторое лицо может иметь несколько идентифицирующих его адресов электронной почты), тогда как другие могут быть строго однозначными полями (например, номер социального страхования).- 29 036433 contacts can recognize such records by matching a primary identifier field, such as email address, phone number, social security number, Facebook ID, etc. It should be understood that some of the primary identifier fields may be ambiguous (for example, a person may have more than one email address that identifies them), while others may be strictly unambiguous fields (for example, a social security number).
Соответственно устройство 243 слияния данных может выполнять слияние полей контактной информации, извлеченных из новой информации об активности, с текущим сформированным контактным лицом, а также может выполнять слияние контактного лица, созданного для анонимного пользователя при использовании им веб-сайта, с заранее определенным хранимым контактным лицом после выполнения этим анонимным пользователем операции входа в учетную запись и превращения его в идентифицированного пользователя (такая процедура может быть названа вертикальным слиянием). Устройство 277 горизонтального слияния контактов может при этом выполнять горизонтальное слияние двух различных контактных лиц (созданных или хранимых), когда оно обнаруживает, что они являются родственными и ссылаются на одного и того же пользователя. В соответствии с предшествующим описанием подобное слияние может быть реальным (при котором два отдельных контактных лица преобразуют в одно контактное лицо) или слияние двух контактных лиц друг с другом может выполняться при помощи виртуального слияния (т.е. два контактных лица остаются отдельными, однако при этом их связывают друг с другом, помечая, что они представляют одного и того же пользователя - со слиянием фактической контактной информации и потоков данных об активности или без него). Также нужно понимать, что и при виртуальном слиянии к множеству связанных виртуально объединенных контактных лиц может быть добавлена дополнительная информация.Accordingly, the data fusion device 243 can merge the contact information fields extracted from the new activity information with the currently generated contact, and can also merge the contact created for the anonymous user while using the website with a predefined stored contact. after that anonymous user has logged in to the account and turned into an authenticated user (this can be called a vertical merge). The horizontal contact merger 277 can thereby horizontally merge two different contacts (created or stored) when it detects that they are related and refer to the same user. As previously described, such a merge can be real (where two separate contacts are converted to one contact) or the merging of two contacts to each other can be done using a virtual merge (i.e. the two contacts remain separate, but they are then linked to each other by marking that they represent the same user - with or without merging actual contact information and activity streams). You also need to understand that in a virtual merge, additional information may be added to the set of related virtually merged contacts.
Таким образом, экстрактор 241 данных может извлекать информацию о типе контактного лица из соответствующей структуры данных активности, а устройство 243 слияния данных может объединять эту информацию с информацией контактного лица, связанного с потоками данных об активности (анонимного или идентифицированного). Если информация I о типе контактного лица содержит поле первичного идентификатора, то устройство 243 слияния может проверять наличие родственных контактных лиц на основе значения этого поля первичного идентификатора, и если они будут найдены, выполнять слияние этих контактных лиц. Устройство 243 слияния данных может также проверять, соответствует ли данная активность установлению идентичности пользователя на веб-сайте (например, является ли она операций входа в учетную запись веб-сайта), и если этот так, выполнять слияние анонимного контактного лица с существующей записью контактной информации, хранимой для этого пользователя, и в дальнейшем работать с ним, как с идентифицированным контактным лицом.Thus, the data extractor 241 can extract contact type information from the corresponding activity data structure, and the data fusion device 243 can combine this information with the contact information associated with the activity data streams (anonymous or identified). If the contact type information I contains a primary identifier field, then the merger 243 can check for related contacts based on the value of that primary identifier field, and if found, merge those contacts. The data fusion device 243 may also check if the activity is consistent with the establishment of the user's identity on the website (for example, whether it is a login to a website account), and if so, merge the anonymous contact with the existing contact information record. stored for this user, and in the future to work with him as an identified contact person.
Нужно понимать, что в устройстве 272 идентификации контактов могут применяться множество различных методов идентификации пользователей веб-сайта, например, с использованием куки-файлов для отслеживания сеанса отдельного анонимного пользователя (не выполнившего вход в учетную запись веб-сайта), с использованием входа в учетную запись веб-сайта для зарегистрированных пользователей, при помощи входа в учетную запись социальной сети для пользователей веб-сайта, чья учетная запись связана с социальной сетью, или при помощи сопоставления полей первичного идентификатора (например, адреса электронной почти или номера телефона) для установления того, что два пользовательских профиля описывают одного и того же пользователя.It should be understood that the contact ID device 272 may employ many different methods to identify users of a website, for example, using cookies to track the session of an individual anonymous user (not logged into the website account), using the account login. a website record for registered users, by logging into a social network account for website users whose account is associated with a social network, or by mapping primary identifier fields (such as email almost or phone number) to determine whether that two user profiles describe the same user.
Также нужно понимать, что пользователи веб-сайта, информацию о которых хранят в базе 245 данных контактов, могут быть классифицированы как анонимные пользователи, не зарегистрированные на веб-сайте, зарегистрированные пользователи и потенциальные пользователи, при этом записи о потенциальных пользователях, официально еще не зарегистрированных на веб-сайте, могут быть импортированы из внешних источников.You also need to understand that website users who are stored in the contact database 245 may be classified as anonymous users, not registered on the website, registered users and potential users, while the records of potential users are not yet officially registered. registered on the website can be imported from external sources.
Поскольку соответствующий веб-сайт может устанавливать постоянные куки-файлы, которые сохраняются от сеанса к сеансу, то на одном компьютере и в одном браузере могут существовать несколько анонимных сеансов, остающихся источниками новой информации для одной и той же записи контактной информации. Соответственно даже анонимный пользователь может иметь значительный объем контекстной и контактной информации.Since the respective website may set persistent cookies that persist from session to session, multiple anonymous sessions may exist on the same computer and in the same browser, remaining sources of new information for the same contact record. Accordingly, even an anonymous user can have a significant amount of contextual and contact information.
Зарегистрированные пользователи должны предоставлять идентификатор, являющийся уникальным для данного конкретного веб-сайта. В качестве отдельного идентификатора (например, имени пользователя), зависящего от конкретного веб-сайта, могут применяться множество типов идентификаторов, таких как адрес электронной почты, номер телефона или номер социального страхования, или же внешний идентификатор, предоставленный другой системой, например идентификатор социальной сети, идентификатор Google, идентификатор OpenID и т.п.Registered users must provide an identifier that is unique to that particular website. Many types of identifiers, such as an email address, telephone number, or social security number, or an external identifier provided by another system, such as a social network ID can be used as a separate identifier (such as a username) depending on a particular website. , Google ID, OpenID, etc.
Пользователь, регистрирующийся через учетную запись социальной сети, может разрешать данному сайту использовать персональную информацию, доступную в социальной сети, для заполнения его пользовательского профиля на этом веб-сайте. Экстрактор 241 данных может повторно обращаться к профилю социальной сети для обнаружения изменений в персональной информации и возможно, обновлять пользовательский профиль на веб-сайте.A user registering through a social network account may authorize this site to use personal information available on the social network to complete his user profile on this website. The data extractor 241 may revisit the social network profile to detect changes in personal information and optionally update the user profile on the website.
- 30 036433- 30 036433
Зарегистрированный пользователь, в общем случае, должен выполнять вход в учетную запись вебсайта, чтобы идентифицировать себя, но система при этом может также предоставлять опцию сохранить вход в систему. Процедура входа в учетную запись может быть явной, т.е. пользователю может быть отображен диалог входа в учетную запись, неявной, т.е. у пользователя могут быть запрошена идентифицирующая информация, например, при добавлении комментария к блогу, или может быть основана на внешней учетной записи, т.е. система может вызывать процедуру входа в учетную запись, связанную с другой системой, например вход в учетную запись социальной сети или системы OpenID. Процедура входа в учетную запись может также исполняться при помощи физического устройства (например, токена безопасности, подключенного к системе напрямую или через беспроводной интерфейс) или с использованием биометрической информации (включая как биометрические параметры пользователя, например, сканирование отпечатков пальцев или радужной оболочки глаза, так и распознавание поведения пользователя, например, распознавание стиля печати на клавиатуре), или же с помощью комбинации перечисленных выше методов.A registered user generally needs to log in to a website account to identify himself, but the system may also provide the option to keep the login. The login procedure can be explicit, i.e. the user can be presented with an implicit login dialog, i.e. the user may be prompted for identifying information, for example when adding a comment to a blog, or may be based on an external account, i.e. the system can invoke a procedure to log into an account associated with another system, such as logging into an account on a social network or OpenID. The account login procedure can also be performed using a physical device (for example, a security token connected to the system directly or via a wireless interface) or using biometric information (including both biometric parameters of the user, for example, scanning of fingerprints or iris of the eye, as well as and recognizing user behavior, such as recognizing the typing style on the keyboard), or using a combination of the above methods.
Также нужно понимать, что процедура входа в учетную запись социальной сети может взаимодействовать с процедурой обычного входа в учетную запись в обоих направлениях. К примеру, с идентификатором подписчика веб-сайта может быть связан идентификатор социальной сети, то есть вход в учетную запись социальной сети будет подразумевать вход в учетную запись веб-сайта, или идентификатор подписчика веб-сайта может быть связан с идентификаторами социальных сетей, то есть вход в учетную запись веб-сайта может также идентифицировать пользователя в одной или более социальных сетях.You also need to understand that the procedure for logging into a social network account can interact with the procedure for regular logging into an account in both directions. For example, a website subscriber ID might have a social network ID associated with it, that is, logging into a social network account would imply a website account login, or a website subscriber ID might be associated with social network IDs, that is logging into a website account can also identify a user on one or more social networks.
Когда пользователь выполняет явный выход из учетной записи, обработчик 242 контактов может формировать новый куки-файл анонимного пользователя и соответственно формировать новый анонимный сеанс (или серию сеансов), информация об активности которых будет сохраняться в этом новом анонимном контактном лице. Новое анонимное контактное лицо может потенциально быть объединено с идентифицированным контактным лицом в случае последующего входа в учетную запись.When the user explicitly logs out of the account, the contact handler 242 can generate a new anonymous user's cookie and accordingly generate a new anonymous session (or series of sessions) whose activity information will be stored in this new anonymous contact. A new anonymous contact could potentially be merged with an identified contact if subsequently logged into the account.
Обратимся к фиг. 19, на которой проиллюстрированы процедуры входа и выхода из учетной записи, выполняемые анонимным пользователем. Пользователь может приступать к использованию системы, являясь анонимным. Обработчик 242 контактов может формировать новое контактное лицо, а формирователь 251 потока может автоматически формировать поток данных об активности с идентификатором аноним 1, когда пользователь выполняет первую операцию, операция 1, в стороннем приложении. Устройство 252 слияния потоков может выполнять слияние информации из операции 1 и дальнейших операций операция 2 и операция 3 в контактное лицо аноним 1.Referring to FIG. 19, which illustrates the login and logout procedures for an anonymous user. The user can start using the system being anonymous. Contact handler 242 can generate a new contact, and flow builder 251 can automatically generate anonymous 1 activity data stream when the user performs the first operation, operation 1, in a third-party application. The stream merger 252 may merge information from step 1 and further steps 2 and 3 into anonymous contact 1.
После того как тот же пользователь выполнит вход в учетную запись в качестве пользователя X, устройство 243 слияния данных может выполнять слияние контактного лица аноним 1 (и всех других соответствующих контактных данных, полученных из потока данных об активности), объединяя его с контактной информацией пользователя X. Нужно понимать, что устройство 252 слияния потоков может также объединять информацию, извлеченную из дополнительных операций, операция 4 и операция 5, в один поток, а экстрактор 241 данных может затем создавать новый куки-файл, позволяющий выделить последующую активность пользователя X. Таким образом, если будет выполнена новая операция, операция 6, обработчик 242 контактов может создать новое анонимное контактное лицо аноним 2, а экстрактор 241 данных может сохранить извлеченную контактную информацию (и информацию об активности) во вновь созданном анонимном контактном лице аноним 2.After the same user logs into the account as user X, the data fusion device 243 can merge the contact person anonymous 1 (and all other relevant contact information obtained from the activity data stream), combining it with the contact information of user X It should be understood that the stream merger 252 can also merge information extracted from additional operations, operation 4 and operation 5, into a single stream, and the data extractor 241 can then create a new cookie to highlight the subsequent activity of user X. Thus if a new operation is performed, operation 6, the contact handler 242 can create a new anonymous contact anonymous 2, and the data extractor 241 can store the extracted contact information (and activity information) in the newly created anonymous contact anonymous 2.
Если (как в сценарии А) пользователь аноним 2 выполнит второй вход в учетную запись как пользователь Y, устройство 243 слияния данных может выполнять слияние контактного лица аноним 2 (обновленного после операции 6 и операции 7), добавляя его информацию в контактную информацию идентифицированного пользователя Y, куда будет также добавляться информация о всей последующей активности.If (as in scenario A) user anonymous 2 logs into the account a second time as user Y, the data fusion device 243 can merge contact anonymous 2 (updated after step 6 and step 7) by adding his information to the contact information of identified user Y , where information about all subsequent activity will also be added.
Если (как в сценарии В) пользователь аноним 2 выполнит повторный вход в учетную запись как пользователь X, устройство 243 слияния данных может выполнять слияние контактной информации для пользователя аноним 2 (обновленной после операции 6 и операции 7), добавляя ее в контактную информацию пользователя X (уже обновленную и отражающую операции 1-6), куда будет также добавляться информация о всей последующей активности.If (as in scenario B) user anonymous 2 re-logs into the account as user X, the data merge device 243 can merge the contact information for user anonymous 2 (updated after step 6 and step 7) by adding it to the contact information for user X (already updated and reflecting operations 1-6), where information about all subsequent activities will also be added.
Нужно понимать, что структура данных об активности, связанная с выполненными операциями, может также включать контактные данные. Экстрактор 241 данных может извлекать эту информацию и пересылать ее в устройство 243 слияния данных, которое может объединять ее с существующей контактной информацией в базе 245 данных контактов, возможно, обогащая эту информацию. Также нужно понимать, что экстрактор 241 данных может извлекать данные из конкретных сообщений об активности, из потоков в целом, из других контактных лиц или из внешних источников, например сервисов преобразования IP-адресов в географические, в соответствии с последующим более подробным описанием. В соответствии с предшествующим описанием контактная информация в базе 245 данных контактов может также включать контактные данные, явно предоставленные пользователем в ходе процедуры регистрации или подписки на веб-сайте, данные, извлеченные из учетной записи социальной сети, использованной пользователем при регистрации на веб-сайте (если была использована функция входа или регистра- 31 036433 ции через социальную сеть), или предоставленные пользователем при обновлении собственного пользовательского профиля. Экстрактор 241 данных может также извлекать информацию из внешних источников (например, пользователь может вводить только почтовый код США, который может использоваться веб-сайтом для получения полной информации об адресе от внешнего веб-сервиса, декодирующего почтовые коды).It should be understood that the activity data structure associated with the operations performed may also include contact information. A data extractor 241 can extract this information and forward it to a data merger 243, which can combine it with existing contact information in the contacts database 245, possibly enriching this information. It should also be understood that data extractor 241 can extract data from specific activity messages, from streams in general, from other contacts, or from external sources, such as IP-to-geographic services, as described in more detail below. In accordance with the foregoing description, the contact information in the contact database 245 may also include contact information explicitly provided by the user during the registration or subscription process on the website, information retrieved from the social network account used by the user when registering on the website ( if the login or registration function was used - 31 036433 tions via social network), or provided by the user when updating his own user profile. The data extractor 241 can also extract information from external sources (for example, the user can only enter the US postal code, which can be used by a website to obtain complete address information from an external web service that decodes postal codes).
В соответствии с предшествующим описанием устройство 272 идентификации контактов может обнаруживать, что два контактных лица являются родственными, или связанными, на основе поля основного идентификатора, например имени пользователя, адреса электронной почты или номера телефона. После обнаружения того, что контактные лица А (новое) и В (существующее) являются родственными, устройство 243 слияния данных может объединять контактные лица А и В (контактное лицо В при этом будет главным, куда будут добавлены данные контактного лица А). Объединение выполняют с использованием следующих правил слияния:As previously described, the contact identifier 272 can detect that two contacts are related, or related, based on a primary identifier field such as a username, email address, or phone number. After detecting that contacts A (new) and B (existing) are related, the data fusion device 243 can merge contacts A and B (contact person B will be the main one, where the data of contact person A will be added). The merge is performed using the following merge rules:
В1=В или А (т.е. В||А); вернуть В, и если В имеет значение null или пусто, вернуть А;B1 = B or A (i.e. B || A); return B, and if B is null or empty, return A;
В1=math-func(A, В) (функция согласования); при этом имеются важные частные случаи:B1 = math-func (A, B) (matching function); there are important special cases:
В1=А+В; например, количество посещений, общая сумма покупок;B1 = A + B; for example, the number of visits, the total amount of purchases;
В1=min(A, В); например, дата регистрации на веб-сайте;B1 = min (A, B); for example, the date of registration on the website;
В1=max(А, В); например, дата последней активности;B1 = max (A, B); for example, the date of the last activity;
E1=list-umte (В, А) (функция объединения списков); добавление А в конец В с удалением элементов А, которые дублируют элементы в В (т.е. В1=В & (А-В)). Устройство 243 слияния данных может определять дублирование элементов в списках согласно следующим правилам:E1 = list-umte (B, A) (function of combining lists); adding A to the end of B deleting elements of A that duplicate elements in B (i.e. B1 = B & (AB)). The data merger 243 can detect duplicate items in lists according to the following rules:
для списка, состоящего из регулярных значений (например, скалярных), используют сравнение регулярных значений;for a list consisting of regular values (for example, scalar values), a comparison of regular values is used;
для списка, состоящего из структур, в качестве ключа сравнения используют конкретное под-поле структуры. К примеру, тип адреса (домашний, рабочий, адрес доставки, ...) в системе 30 для построения веб-сайта, поддерживающей множественные адреса; сравнение нормализованных значений. Примером подобного сравнения является обработка телефонных номеров, описанная ниже:for a list of structures, a specific structure sub-field is used as the comparison key. For example, the type of address (home, work, shipping address, ...) in the system 30 for building a website that supports multiple addresses; comparison of normalized values. An example of such a comparison is the handling of phone numbers, described below:
добавление структуры А в структуру В, если структура А является более детальной версией структуры В (в соответствии с последующим более подробным описанием), и более высокий показатель достоверности - значения могут иметь прикрепленные к ним показатели достоверности (например, информация, полученная непосредственно от пользователя, и информация о пользователе, полученная с помощью логического вывода, могут иметь различные показатели достоверности). Устройство 243 слияния данных может выбирать значение с более высоким показателем достоверности.adding structure A to structure B if structure A is a more detailed version of structure B (in accordance with the following more detailed description), and a higher confidence score - values may have confidence indicators attached to them (for example, information obtained directly from the user, and the inference information about the user may have different confidence values). The data merger 243 may select a value with a higher confidence factor.
Нужно понимать, что поля некоторых типов имеют нормализованный формат. К примеру, телефонные номера могут быть нормализованы в стандартный формат телефонных номеров США (например, (999)555-1234) или международный формат (например, +1-999-555-1234). Устройство 243 слияния данных может преобразовывать значение поля в нормализованный формат для сравнения, например, при сравнении первичных контактных идентификаторов (таких как телефонные номера) или при проверке объединяемых списков на наличие дубликатов.You need to understand that some types of fields have a normalized format. For example, phone numbers can be normalized to the standard US phone number format (for example, (999) 555-1234) or international format (for example, + 1-999-555-1234). The data fusion device 243 can convert the field value to a normalized format for comparison, for example, when comparing primary contact identifiers (such as phone numbers) or when checking merged lists for duplicates.
Устройство 243 слияния данных может сравнивать два структурированных значения, имеющих одинаковую базовую структуру, к примеру, значение адреса, состоящее из нескольких под-полей (страна, регион, почтовый код, улица, номер дома и т.п.). Структуру Y считают детализированной версией структуры X, если каждое из непустых полей в X имеет значение, равное тому же полю в Y, т.е. Y все включает все значение непустых полей X, а также, возможно значения некоторых дополнительных полей. Соответственно устройство 243 слияния данных может объединять А и В с внесением данных из А в В, если А является детализированной версией В, и А не идентично В.The data merger 243 may compare two structured values having the same basic structure, such as an address value made up of several sub-fields (country, region, postal code, street, house number, etc.). A structure Y is considered a detailed version of a structure X if each of the non-empty fields in X has a value equal to the same field in Y, i.e. Y all includes all the value of non-empty X fields, as well as possibly the values of some additional fields. Accordingly, the data merger 243 may merge A and B into A to B, if A is a detailed version of B and A is not identical to B.
Нужно понимать, что экстрактор 241 данных может получать контактный адрес на основе IPадреса, с использованием которого осуществляется соответствующая активность. Это выполняют, только если данные об активности поступили из сеанса браузера, и адрес данного пользователя неизвестен. Соответственно экстрактор 241 данных может извлекать информацию о регионе, или стране, согласно географической информации, соответствующей IP-адресу. В этом случае адрес помечают как предполагаемые географический IP-адрес. Это необходимо, чтобы не создать помеху для будущего слияния адресов из-за наличия адресного поля, содержащего существующий (и возможно неточный) адрес, который основан на анализе IP-адреса, что может препятствовать сохранению полученного позднее более полного (но, по существу, отличающегося) адреса в базе 245 контактов.It should be understood that the data extractor 241 can obtain a contact address based on the IP address using which the corresponding activity is performed. This is done only if the activity data came from a browser session and the user's address is unknown. Accordingly, the data extractor 241 can extract information about a region, or a country, according to the geographic information corresponding to the IP address. In this case, the address is tagged as the intended geographic IP address. This is necessary in order not to interfere with future address merging due to the presence of an address field containing an existing (and possibly inaccurate) address, which is based on the analysis of the IP address, which may prevent the later obtained more complete (but essentially different ) addresses in the database of 245 contacts.
Устройство 243 слияния данных может также обрабатывать противоречия тегов для объединяемых списков. Нужно понимать, что в случае слияния списков возможна ситуация, когда имеются два различных объекта: один из контактного лица А, а другой из контактного лица В, которые различаются, однако имеют одинаковый тег. В таком случае устройство 243 слияния данных может объединять списки, помещая в результирующий список оба объекта с одинаковым тегом.The data merger 243 may also handle tag inconsistencies for merged lists. It should be understood that in the case of merging lists, it is possible that there are two different objects: one from contact person A, and the other from contact person B, which are different, but have the same tag. In such a case, the data merger 243 can merge the lists by placing both objects with the same tag in the resulting list.
Так, объединение [{тег:home, электронная почта: а@b.сот}]+[{тег:home, электронная почта: с@d.com}] может давать [{тег:home, электронная почта: а@b.com}, {тег:home, электронная поч- 32 036433 та: c@d.com}]. Такая процедура может применяться, если объединяемые поля помечены как допускающие неуникальные теги списка.So, the concatenation [{tag: home, email: a@b.center}] + [{tag: home, email: c@d.com}] can give [{tag: home, email: a @ b .com}, {tag: home, e-mail 32 036433 ta: c@d.com}]. This procedure can be used if the fields to be combined are marked as allowing non-unique list tags.
В устройстве 243 могут также применяться лингвистические, синтаксические или иные методы анализа текста, а также консультация со внешними источниками данных или сервисами при попытке объединения контактной информации. К примеру, пользователь может записывать название своей улицы двумя различными способами в двух записях активности, однако указывать при этом один и тот же номер дома, город и почтовый индекс. Устройство 273 объединения может применять анализ текста (например, алгоритмы саундекс) при сравнении этих двух записей и может также сравнивать два варианта названия улицы с внешним источником названий улиц для заданного города и индекса. В таком случае устройство 273 объединения может выбирать общепринятое название улицы, если оба адреса являются сходными (но возможно, не идентичными) с этим общепринятым названием, а остальные поля данных адреса имеют соответствующие значения.The 243 may also use linguistic, syntactic, or other text analysis techniques, as well as consult with external data sources or services when attempting to combine contact information. For example, a user can write their street name in two different ways in two activity records, but use the same house number, city, and zip code. The combiner 273 can apply text analysis (eg, soundtex algorithms) when comparing the two records, and can also compare the two street names with an external source of street names for a given city and zip code. In such a case, the combiner 273 may select a common street name if both addresses are similar (but possibly not identical) to that common name and the remaining address data fields have corresponding values.
Устройство 243 слияния данных может также выполнять слияние контактной информации согласно информации учетной записи или сеанса. Пользователь может использовать веб-сайт без совершения входа в учетную запись или регистрации, начинать сеанс, выполнять некоторые операции как часть этого сеанса и впоследствии регистрироваться или входить в учетную запись, в результате чего текущий сеанс может быть связан с вновь созданным или существующим профилем зарегистрированного пользователя (который содержит контактную информацию).The data merger 243 can also merge the contact information according to the account or session information. The user can use the website without logging into an account or registering, start a session, perform some operations as part of that session and subsequently register or log into an account, whereby the current session can be associated with a newly created or existing profile of the registered user (which contains contact information).
После начала сеанса работы пользователя с веб-сайтом (в качестве анонимного пользователя) устройство 272 идентификации контактов может отслеживать активность пользователя в ходе этого сеанса (с использованием куки-файлов, идентификатора сеанса и т.п.), а обработчик 242 контактов может создавать для данного конкретного анонимного пользователя сформированное контактное лицо, основанное на активности пользователя в течение анонимного сеанса. Маршрутизатор и трекер 231 может также продолжать отслеживать активность анонимного пользователя в множестве различных сеансов на одном компьютере. Это может быть реализовано при помощи постоянного куки-файла (в отличие от сеансового куки-файла).After the user starts a session with the website (as an anonymous user), the contact ID device 272 can track the user's activity during that session (using cookies, session ID, etc.), and the contact handler 242 can create for of this specific anonymous user, a formed contact person based on the user's activity during the anonymous session. Router and tracker 231 may also continue to track the activity of the anonymous user in many different sessions on the same computer. This can be done with a persistent cookie (as opposed to a session cookie).
После регистрации пользователя устройство 243 слияния данных может использовать созданную контактную информацию для предварительного заполнения пользовательского профиля. Если пользователь выполнит вход в учетную запись, устройство 243 слияния данных может объединять исходно сформированную контактную информацию с существующим пользовательским профилем. Нужно понимать, что сформированную контактную информацию объединяют согласно пользовательскому идентификатору на данном веб-сайте, поскольку устройство 243 слияния данных может не иметь каких-либо других первичных идентификаторов (электронная почта и т.п.), чтобы использовать их в созданной контактной информации для слияния. Также нужно понимать, что подобное слияние может выявлять противоречия в собранной информации. При слиянии контактной информации, созданной для анонимного пользователя, с существующими данными профиля неизбежно могут возникать противоречия. К примеру, анонимный пользователь может заполнять форму ввода данных (отображаемую некоторым сторонним приложением 40) под именем Джон Смит, а затем может войти в учетную запись под именем Джон Доу (с использованием одного браузерного сеанса или различных сеансов). Возможно (например), что более поздний вход в учетную запись был на самом деле выполнен вторым лицом, использующим тот же компьютер, или что пользователь ввел в контактную форму псевдоним, чтобы сохранить свою конфиденциальность. Аналогичное возможно при слиянии устройством 243 слияния данных множества анонимных структур контактной информации.After the user is registered, the data fusion device 243 can use the generated contact information to pre-populate the user profile. If the user logs in to the account, the data fusion device 243 can merge the originally generated contact information with the existing user profile. It should be understood that the generated contact information is merged according to the user ID on this website, since the data fusion device 243 may not have any other primary identifiers (email, etc.) to use in the generated merge contact information ... You also need to understand that such a merger can reveal inconsistencies in the collected information. When merging contact information created for an anonymous user with existing profile data, conflicts can inevitably arise. For example, an anonymous user can fill out a data entry form (displayed by some third-party application 40) as John Smith, and then can log into an account as John Doe (using the same browser session or different sessions). It is possible (for example) that the later login to the account was actually done by a second person using the same computer, or that the user entered an alias in the contact form to maintain their privacy. The same is possible when the data fusion device 243 merges multiple anonymous contact information structures.
Устройство 264 разрешения противоречий может, в общем случае, разрешать противоречия автоматически, поскольку большинство полей (включая поля первичных ключей, таких как электронная почта или номер телефона) являются списочными полями, способными содержать множественные значения. Это может относиться только к множественному использованию одного и того же базового веб-сайта. Все подобные противоречия, которые не могут быть разрешены (например, при помощи слияния множество значений в списочное значение) могут быть помечены флагом для возможности ручной обработки владельцем веб-сайта, конечным пользователем (который может указать, какое из значений следует использовать) или при помощи других технологий.Conflict resolver 264 can generally resolve inconsistencies automatically because most fields (including primary key fields such as email or phone number) are list fields capable of containing multiple values. This can only apply to multiple uses of the same underlying website. Any such inconsistencies that cannot be resolved (for example, by merging multiple values into a list value) can be flagged so that they can be handled manually by the website owner, the end user (who can specify which value to use), or other technologies.
Таким образом, возможно, что сконструированная контактная информация может отражать не одно лицо, а комбинированный набор пользователей, осуществляющих доступ к одному и тому же веб-сайту с одного компьютера.Thus, it is possible that the constructed contact information may reflect not one person, but a combined set of users accessing the same website from one computer.
В соответствии с предшествующим описанием устройство 243 слияния данных в общем случае объединяет контактные лица согласно полям первичного идентификатора (например, электронная почта и номер телефона) всякий раз, когда их создают или изменяют.As previously described, data fusion device 243 generally combines contacts according to primary identifier fields (eg, email and phone number) whenever they are created or modified.
Входными данными такой процедуры является запись контактной информации (входное контактное лицо С) с одним или более полями первичного идентификатора, имеющими одно или более значений (например, запись контактной информации с двумя адресами электронной почты и тремя номерами телефона). Множество полей первичного идентификатора могут быть необходимы, поскольку пользователь может иметь (например) номера домашнего/рабочего/сотового телефона, а также домашний и рабо- 33 036433 чий адреса электронной почты, при этом пользователь может их использовать в форме контакта взаимозаменяемо.The input to this procedure is a contact information record (input contact C) with one or more primary identifier fields that have one or more values (eg, a contact information record with two email addresses and three phone numbers). Multiple primary identifier fields may be required since the user can have (for example) home / work / cell phone numbers and home and work e-mail addresses, and the user can use them interchangeably in the contact form.
Устройство 243 слияния данных может выполнять нормализацию значений первичного ключа формировать запрос на запись контактной информации, содержащую любое из нормализованных значений первичного ключа, например (телефон=Р1 или телефон=Р2) или (электронная почта=Е1 или электронная почта=Е2). Устройство 243 слияния данных может при этом ограничивать запрос базой 245 данных контактов для конкретного веб-сайта. Устройство 243 слияния данных может также выполнять запрос к базе 245 данных контактов и получать список L совпадающих контактных лиц (который включает входное контактное лицо С).The data fusion device 243 may normalize the primary key values to generate a contact record request containing any of the normalized primary key values, such as (phone = P1 or phone = P2) or (email = E1 or email = E2). The data fusion device 243 may thereby restrict the request to the contacts database 245 for a particular website. The data fusion device 243 may also query the contact database 245 and obtain a list of L matching contacts (which includes the input contact C).
Если входное контактное лицо соответствует зарегистрированному участнику веб-сайта (для конкретного веб-сайта), устройство 243 слияния данных может удалять контактное лицо С из списка L и выполнять слияние всех остальных контактных лиц в списке L в контакте С. Устройство 243 слияния данных может затем сохранять обновленное контактное лицо С обратно в базу 245 данных контактов и удалять все остальные контакты, присутствующие в списке L, из базы 245 данных контактов. В соответствии с предшествующим описанием устройство 234 слияния данных, альтернативно, может выполнять виртуальное слияние, объединять всю контактную информацию (т.е. обновлять все записи контактной информации, чтобы они содержали всю доступную информацию) и помечать совпадающие записи контактной информации как принадлежащие одному лицу (вместо удаления дубликатов записей контактной информации). Это может быть необходимо, например, если сторонние приложения 40 хранят или используют внутренние идентификаторы, относящиеся к записям контактной информации, и удаление записей контактной информации может приводить к ошибкам сторонних приложений 40. Аналогичная обработка (т.е. пометка контактных лиц как связанных, вместо их удаления) может применяться и в других случаях в соответствии с последующим более подробным описанием.If the input contact matches a registered website member (for a specific website), the data fusion device 243 can remove contact C from list L and merge all other contacts in list L into contact C. The data fusion device 243 can then save the updated contact C back to the contact database 245; and delete all other contacts present in the L list from the contact database 245. As previously described, the data merger 234 may alternatively perform a virtual merge, merge all contact information (i.e., update all contact information records to contain all available information), and mark the matched contact information records as belonging to the same person ( instead of removing duplicate contact information records). This may be necessary, for example, if third-party applications 40 store or use internal identifiers related to contact records, and deleting contact records could lead to errors in third-party applications 40. Similar processing (i.e. marking contacts as linked instead of their removal) can be applied in other cases in accordance with the following more detailed description.
Если входное контактное лицо НЕ является зарегистрированным подписчиком веб-сайта, устройство 243 слияния данных может выполнять проверку, сколько контактных лиц, являющихся участниками веб-сайта, находятся в списке L. Если в нем находится 0 участников веб-сайта, устройство может удалять контактное лицо С из списка L и объединять все остальные контактные лица из списка L в контактное лицо С. Устройство 243 слияния данных может затем сохранят обновленное контактное лицо С обратно в базу 245 данных и удалять все контакты, оставшиеся в списке L базы 245 данных контактов.If the input contact is NOT a registered subscriber to the website, the data fusion device 243 can verify how many contacts that are members of the website are in the L list. If there are 0 website members, the device can remove the contact. C from list L and merge all other contacts from list L into contact person C. Data fusion device 243 may then save the updated contact C back to database 245 and delete all contacts remaining in list L of contact database 245.
Если имеется один участник веб-сайта (контактное лицо D), устройство 243 слияния данных может удалять контактное лицо D из списка L и объединять все контактные лица, оставшиеся в списке L (включая контактное лицо С), в контактном лице С. Устройство 243 может затем сохранять обновленное контактное лицо D обратно в базу 245 данных и удалять все контактные лица, оставшиеся в списке L базы 245 данных контактов.If there is one member of the website (contact D), the data fusion device 243 can remove contact D from the list L and combine all contacts remaining in the list L (including contact C) into contact C. The device 243 can then save the updated contact D back to database 245, and delete all contacts remaining in list L of contact database 245.
Если имеются два или более контактных лица (D, D1, D2, ...) участников веб-сайта, устройство 243 слияния данных может выбирать контактное лицо D из найденных контактных лиц (D, D1, D2, ...) участников веб-сайта и удалять контактное лицо D из списка L. Затем устройство может формировать подсписок LL, который основан на списке L и содержит все контактные лица из списка L, не являющиеся участниками веб-сайта. Устройство 243 слияния данных может затем объединять все контакты, оставшиеся в списке LL, в контактном лице D. Устройство 243 слияния данных может затем сохранять обновленное контактное лицо D обратно в базу 245 данных и удалять все контакты, оставшиеся в списке LL базы 245 данных контактов.If there are two or more contact persons (D, D1, D2, ...) of the participants of the website, the data fusion device 243 can select the contact person D from the found contacts (D, D1, D2, ...) of the participants of the web site and remove contact D from list L. The device can then generate a sublist LL that is based on list L and contains all contacts from list L that are not members of the website. The data merger 243 can then merge all contacts remaining in the LL into contact D. The data merger 243 can then store the updated contact D back into the database 245 and delete all contacts remaining in the LL of the contact database 245.
В соответствии с предшествующим описанием, касающимся слияния данных после входа в учетную запись, в данных могут возникать противоречия. Однако поскольку формирователь 275 списочных значений может формировать поля со списочными (т.е. множественными) значениями и может определять однозначный порядок следования контактов, в большинстве случаев подобной проблемы не возникает.Consistent with the preceding description for post-login data fusion, data inconsistencies may arise. However, since the list value generator 275 can generate list (ie, multiple) value fields and can determine an unambiguous contact order, in most cases this problem does not arise.
К примеру, когда устройство 243 слияния контактов выполняет слияние следующих контактов:For example, when the contact merge device 243 merges the following contacts:
Контакт 1=[Телефон 1,ЭлектроннаяПочта1];Contact 1 = [Phone 1, Email1];
Контакт2=[Телефон2,ЭлектроннаяПочта2];Contact2 = [Phone2, Email2];
Контакт3=[Т елефон3,ЭлектроннаяПочта3 ].Contact3 = [Telephone3, Email3].
Он может формировать комбинированную контактную информациюIt can generate combined contact information
КомбинированныйКонтакт= [Т елефон= [Телефон1,Т елефон2],Combined Contact = [Telephone = [Telephone1, Telephone2],
ЭлектроннаяПочта=[ЭлектроннаяПочта1,ЭлектроннаяПочта2].E-Mail = [E-Mail1, E-Mail2].
Нужно понимать, что база 245 данных контактов может включать контактную информацию из множества источников, имеющую различные уровни прав доступа для ее использования. Описанное ниже касается электронной почты, однако рассмотренная технология применима к информации любого из упомянутых выше типов (телефон, факс, идентификатор Skype, идентификатор системы мгновенного обмена сообщениями, идентификатор социальной сети и т.п.), используемой для контакта с пользователем.It should be understood that the contact database 245 may include contact information from a variety of sources, having varying levels of access rights for its use. What is described below concerns e-mail, however, the discussed technology is applicable to any of the types mentioned above (telephone, fax, Skype ID, IM ID, social network ID, etc.) used to contact the user.
Например, способ, которым адрес электронной почты был предоставлен на веб-сайте, может указывать на допустимые пути его использования. Возможными источниками адреса электронной почты могутFor example, the way in which an email address was provided on a website may indicate acceptable uses for it. Possible sources of the email address could
- 34 036433 быть: идентификатор, использованный при регистрации; форма контакта, подписка на новостную рассылку и запрос на отмену рассылки. Адреса электронной почты могут дополнительно различаться согласно условиям соглашения о допустимом использовании, которое электронно подписывает пользователь.- 34 036433 be: identifier used during registration; contact form, newsletter subscription and unsubscribe request. Email addresses may further vary according to the terms of an acceptable use agreement that the user electronically signs.
Нужно понимать, что система 30 для построения веб-сайта, в общем случае, имеет информацию о допустимых путях использования каждого заданного адреса электронный почты. Однако владелец вебсайта может обладать отличающейся, независимой или дополнительной информацией. К примеру, она может быть получена вследствие характера различных форм регистрации на веб-сайте или благодаря наличию в системе контактной информации, которая была импортирована веб-сайтом из другого источника, включающего дополнительную информацию о разрешениях на использование.It will be appreciated that the system 30 for building a website generally has information about acceptable uses for each given email address. However, the website owner may have different, independent or additional information. For example, it may be due to the nature of the various forms of registration on the website, or due to the presence of contact information in the system that was imported by the website from another source that includes additional information on permissions to use.
Обработчик 244 данных и разрешений может обеспечивать исполнение правильной политики использования сторонними приложениями 40, применяемыми на веб-сайте, помогая владельцу веб-сайта администрировать эту информацию.The data and permission processor 244 can enforce the correct usage policy for third-party applications 40 applied on the website, helping the website owner to administer this information.
Соответственно запись контактной информации для соответствующего контактного лица может включать два информационных поля. Первое поле - это поле разрешений веб-сайта, содержащее производные или предполагаемые разрешение, вычисленные веб-сайтом на основе активности пользователя. Форма контакта подразумевает только функциональные письма, тогда как форма подписки может подразумевать периодическую рассылку. Второе поле - это разрешения владельца веб-сайта, основанные на значении поля разрешений веб-сайта. Владелец веб-сайта может изменять рекомендации веб-сайта и поступать в соответствии с собственными соображениями, но при этом он или она несет ответственность за использование, выходящее за рамки разрешений, которые заданы в поле разрешений веб-сайта.Accordingly, the contact information record for the corresponding contact person can include two information fields. The first field is a website permissions field that contains derivatives or inferred resolutions calculated by the website based on user activity. The contact form implies only functional emails, while the subscription form may imply periodic mailings. The second field is the website owner's permissions based on the website's permission field. The website owner can change the website's recommendations and act according to his or her own judgment, but he or she is responsible for any use outside the permissions set in the website's permission field.
Нужно понимать, что значение в поле разрешений веб-сайта может представлять собой наиболее полную информацию касательно намерений пользователя, которой владеет веб-сайт. Значение разрешений владельца веб-сайта назначается веб-сайтом и используется сторонними приложениями 40, а также другими частями системы (например, сторонним приложением 40, обеспечивающим новостную рассылку).It should be understood that the value in the website permissions field may represent the most complete information about the user's intent that the website owns. The website owner permission value is assigned by the website and used by 40 third party applications as well as other parts of the system (for example, 40 third party newsletter application).
Обработчик 244 данных и разрешений может использовать эти поля разрешений для определения фактических разрешений несколькими различными способами. Например, в обработчике 244 данных и разрешений могут быть реализованы любые из следующих кодов, а также их комбинации и варианты (как для адресов электронной почты, так и для других идентификаторов контактных лиц):Data and permission processor 244 can use these permission fields to determine actual permissions in several different ways. For example, data and permission handler 244 may implement any of the following codes, as well as combinations and variations thereof (for both email addresses and other contact identifiers):
Неизвестный - адрес электронной почты был получен из неизвестного источника и не может быть использован для отправки каких-либо электронных писем.Unknown - The email address was obtained from an unknown source and cannot be used to send any emails.
Адрес электронной почты, являющийся идентификатором, - адрес электронной почты, предоставленный в целях регистрации. Он не может быть использован для отправки каких-либо писем, за исключением вопросов, связанных с регистрацией, например подтверждение, забытый пароль или предупреждение о потенциальных угрозах безопасности.Identifier email address is the email address provided for registration purposes. It cannot be used to send any emails, except for questions related to registration, such as confirmation, forgotten password or warning of potential security threats.
Функциональный адрес электронный почты предоставлен для конкретной цели и подразумевает однократную отправку письма. К примеру, письмо с подтверждением покупки или письмо, отправляемое для конкретной формы контакта.A functional email address is provided for a specific purpose and is a one-time email. For example, a purchase confirmation email or an email sent for a specific contact form.
Рекуррентный адрес электронной почты, - допускает отправку периодических рассылок и рекламных писем с конкретного веб-сайта. В данном случае необходимо явная подписка и/или разрешение.Recurrent email address - allows the sending of periodic mailings and promotional emails from a specific website. In this case, an explicit subscription and / or permission is required.
Совместно используемый адрес электронной почты допускает передачу множественных и периодических рассылок и рекламных писем данным веб-сайтом, а также его партнерами (сторонними приложениями 40 или четвертой стороной). Это требует явной подписки и/или разрешения и может включать детальную информацию о разрешенном совместном использовании.The shared email address allows for the transmission of multiple and recurring mailings and promotional emails by this website as well as its partners (40 third party applications or a fourth party). This requires an explicit subscription and / or permission and may include details of the permitted sharing.
Отказ - пользователь явным образом отказался от подписки. Не допускается отправка пользователю никаких писем (за исключением, возможно, уведомления об отмене подписки).Unsubscribe - The user has explicitly unsubscribed. No emails are allowed to be sent to the user (with the possible exception of a cancellation notice).
Нужно понимать, что в обработчике 244 данных и разрешений могут применяться альтернативные методы, например битовая маска разрешений (аналогичная применяемым в системах UNIX или Linux) или механизм списков контроля доступа ACL. В обработчике 244 данных и разрешений могут быть также реализованы отдельные поля разрешений для отдельных частей контактной информации (например, адреса электронной почты, адреса системы мгновенного обмена сообщениями, идентификатора социальной сети и т.п.)Be aware that the data and permission handler 244 can use alternative methods, such as a bitmap of permissions (similar to those used on UNIX or Linux systems) or ACLs. Data and permission handler 244 may also implement separate permission fields for individual pieces of contact information (e.g., email address, instant messaging address, social network ID, etc.)
В одном из типовых сценариев применения база 245 данных содержит первый набор адресов электронной почты, собранных из форм контакта, и второй набор адресов электронной почты, полученных из запросов на подписку. Веб-сайт может вызывать стороннее приложение 40 новостной рассылки, зная, что стороннее приложение 40 будет отправлять письма только пользователям из второго набора (подавшим запрос на подписку).In one typical use case, database 245 contains a first set of email addresses collected from contact forms and a second set of email addresses derived from subscription requests. The website can call the third-party newsletter application 40, knowing that the third-party application 40 will only send letters to users in the second set (who submitted a subscription request).
Преимущества подобной системы включают более высокий уровень защиты (как технической, так и правовой), как для владельца веб-сайта, так и для веб-сайта, от непроизвольной рассылки спама или неправомерного использования конфиденциальной информации, а также способность реально исполнять политики конфиденциальности при использовании системы в сочетании с прокси-модулем 234 конфи- 35 036433 денциальных данных, описанным выше. Также подобная система позволяет гарантировать более строгое исполнение запросов на отмену подписки.The advantages of such a system include a higher level of protection (both technical and legal), for both the website owner and the website, from inadvertent spam or misuse of confidential information, as well as the ability to effectively enforce privacy policies when using systems in conjunction with the proxy module 234 confidential data 35 036433 described above. It also allows for stricter enforcement of unsubscribe requests.
Соответственно пользователь может формировать потоки с информацией об активности между соответствующей системой 30 для построения веб-сайта и любыми соответствующими сторонними приложениями 40. Эти потоки может быть названы потоками данных об активности. Каждый поток данных об активности может использоваться в качестве источника информации об отдельном контактном лице. Структуры данных активности из отдельных потоков могут быть при этом объединены и формировать единую контактную информацию, если будет определено, что различные потоки данных об активности поступают из одного источника. К примеру, один пользователь может работать анонимно с использованием двух устройств, например мобильного устройства и персонального компьютера. Такой пользователь может формировать два анонимных потока, сообщения из которых могут быть сохранены. После того как будет установлено, что оба этих потока связаны с одним пользователем, они могут быть объединены.Accordingly, the user can generate activity streams between the respective website building system 30 and any appropriate third-party applications 40. These streams may be referred to as activity streams. Each activity data stream can be used as a source of information about an individual contact. Activity data structures from separate streams can be combined to form a single contact information if it is determined that the different activity data streams come from the same source. For example, one user can work anonymously using two devices, such as a mobile device and a personal computer. Such a user can form two anonymous streams, messages from which can be saved. Once it is established that both of these streams are associated with the same user, they can be merged.
Процедуры и отображаемая информация, представленная в настоящем документе, не является неотъемлемо присущей какому-либо конкретному вычислительному устройству или устройству иного типа. Может применяться множество различных систем общего назначения, имеющих программы, которые соответствуют замыслу настоящего изобретения, или более удобным для исполнения соответствующего способа может оказаться построение более специализированного устройства. Структура, которая должна присутствовать в этих различных системах, будет представлена в приведенном ниже описании. При этом варианты осуществления настоящего изобретения не описаны на примере какого-либо конкретного языка программирования. Нужно понимать, что для реализации замысла настоящего изобретения, описанного в данном документе, может использоваться множество различных языков программирования.The procedures and information displayed in this document are not inherently specific to any particular computing device or other type of device. Many different general-purpose systems can be used having programs that are consistent with the spirit of the present invention, or it may be more convenient to construct a more specialized device to execute the corresponding method. The structure that must be present in these various systems will be presented in the description below. However, the embodiments of the present invention are not described using any particular programming language as an example. It should be understood that many different programming languages may be used to implement the concept of the present invention described herein.
Если не указано обратно, то, как следует из предшествующего рассмотрения, предполагается, что в настоящем описании такие термины, как, например, обработка, расчет, вычисление, определение, или аналогичные термины, которые могут относиться к операции и/или процедуре компьютера, компьютерной системы или иного электронного вычислительного устройства, которое манипулирует данными и/или преобразует данные, представленные в виде физических (например, электрических) величин в регистрах и/или памяти компьютерной системы, в другие данные, также представленные в виде физических величин в памяти компьютерной системе, ее регистрах или на другом аналогичном носителе для хранения информации или же в устройствах передачи или отображения.Unless otherwise indicated, as follows from the foregoing discussion, it is assumed that in the present description such terms as, for example, processing, calculation, calculation, definition, or similar terms that may refer to an operation and / or procedure of a computer, computer a system or other electronic computing device that manipulates data and / or converts data presented in the form of physical (for example, electrical) quantities in registers and / or memory of a computer system into other data, also represented as physical quantities in the memory of a computer system, its registers or on another similar medium for storing information or in transmission or display devices.
Варианты осуществления настоящего изобретения могут включать устройство для выполнения описанных в настоящем документе операций. Такое устройство может быть специально сконструировано для соответствующих целей или может включать компьютер общего назначения, избирательно приводимый в действие или реконфигурируемый компьютерной программой, хранимой в компьютере. Подобная компьютерная программа может храниться на машиночитаемом носителе, например, без ограничения перечисленным, на диске любого типа, включая гибкие диски, оптические диски, магнитнооптические диски, в памяти только для чтения (ROM), в памяти только для чтения на компакт-дисках (CDROM), в памяти с произвольным доступом (RAM), в электрически программируемой памяти только для чтения (EPROM), в электрически перепрограммируемой памяти только для чтения (EEPROM), на магнитных или оптических картах, в флэш-памяти или на носителе любого другого типа, подходящем для хранения электронных инструкций и допускающем подключение к шине компьютерной системы.Embodiments of the present invention may include an apparatus for performing the operations described herein. Such a device may be specially designed for a specific purpose, or may include a general purpose computer selectively actuated or reconfigurable by a computer program stored in the computer. Such a computer program may be stored on a computer-readable medium, such as but not limited to, any type of disc, including floppy disks, optical disks, magneto-optical disks, read-only memory (ROM), read-only memory on compact discs (CDROM ), random access memory (RAM), electrically programmable read-only memory (EPROM), electrically programmable read-only memory (EEPROM), magnetic or optical cards, flash memory, or any other type of media, suitable for storing electronic instructions and allowing connection to the bus of a computer system.
В настоящем документе проиллюстрированы и описаны конкретные отличительные признаки настоящего изобретения, однако специалисты в данной области техники могут найти множество модификаций, замен, изменений и эквивалентных элементов. Соответственно нужно понимать, что приложенная формула изобретения призвана охватить все такие модификации, замены, изменения и эквивалентные элементы, как соответствующие сущности настоящего изобретения и попадающие в объем его правовой защиты.Specific features of the present invention are illustrated and described herein, however, those skilled in the art will find many modifications, replacements, alterations, and equivalent elements. Accordingly, it is to be understood that the appended claims are intended to cover all such modifications, substitutions, alterations and equivalent elements as consistent with the spirit of the present invention and falling within the scope of its legal protection.
Claims (25)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361911485P | 2013-12-04 | 2013-12-04 | |
PCT/IB2014/066589 WO2015083115A2 (en) | 2013-12-04 | 2014-12-04 | Third party application activity data collection |
Publications (2)
Publication Number | Publication Date |
---|---|
EA201691088A1 EA201691088A1 (en) | 2016-11-30 |
EA036433B1 true EA036433B1 (en) | 2020-11-10 |
Family
ID=53274235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EA201691088A EA036433B1 (en) | 2013-12-04 | 2014-12-04 | System and method for third party application activity data collection |
Country Status (11)
Country | Link |
---|---|
EP (1) | EP3077920A4 (en) |
JP (5) | JP6506762B2 (en) |
KR (3) | KR102361002B1 (en) |
CN (2) | CN111859128B (en) |
AU (4) | AU2014358700B2 (en) |
BR (1) | BR112016012695A8 (en) |
CA (1) | CA2932286C (en) |
EA (1) | EA036433B1 (en) |
IL (3) | IL292474A (en) |
MX (2) | MX359477B (en) |
WO (1) | WO2015083115A2 (en) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10558998B2 (en) | 2015-05-31 | 2020-02-11 | Wix.Com Ltd. | System and method for capability packages offering based on analysis of edited websites and their use |
US10419455B2 (en) | 2016-05-10 | 2019-09-17 | Allstate Insurance Company | Cyber-security presence monitoring and assessment |
US9906541B2 (en) | 2016-05-10 | 2018-02-27 | Allstate Insurance Company | Digital safety and account discovery |
US10320821B2 (en) | 2016-05-10 | 2019-06-11 | Allstate Insurance Company | Digital safety and account discovery |
EP3955551B1 (en) * | 2016-10-21 | 2023-03-08 | Allstate Insurance Company | Digital safety and account discovery |
US11281785B2 (en) | 2017-05-17 | 2022-03-22 | Google Llc | Preventing data leakage |
JP7040124B2 (en) * | 2018-02-28 | 2022-03-23 | トヨタ自動車株式会社 | Vehicle movement notification device and notification method |
AU2019378243A1 (en) * | 2018-11-14 | 2021-06-03 | Wix.Com Ltd. | System and method for creation and handling of configurable applications for website building systems |
CN110007979A (en) * | 2018-12-13 | 2019-07-12 | 平安普惠企业管理有限公司 | Browser information application method, device, computer equipment and storage medium |
US20210004481A1 (en) * | 2019-07-05 | 2021-01-07 | Google Llc | Systems and methods for privacy preserving determination of intersections of sets of user identifiers |
US12101349B2 (en) | 2019-09-16 | 2024-09-24 | The Toronto-Dominion Bank | Systems and methods for detecting changes in data access pattern of third-party applications |
US11275842B2 (en) | 2019-09-20 | 2022-03-15 | The Toronto-Dominion Bank | Systems and methods for evaluating security of third-party applications |
US11436336B2 (en) | 2019-09-23 | 2022-09-06 | The Toronto-Dominion Bank | Systems and methods for evaluating data access signature of third-party applications |
CN113934482A (en) * | 2020-07-14 | 2022-01-14 | 北京奇虎科技有限公司 | Page display method, equipment, storage medium and device |
KR102557919B1 (en) * | 2021-07-09 | 2023-07-21 | 주식회사 티지360테크놀로지스 | Method and System for Generating Unified ID by Integrating Multiple Digital IDs |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030220812A1 (en) * | 2002-04-09 | 2003-11-27 | Jones Michael B. | Method of coordinating business transactions between repair service participants |
US20080294515A1 (en) * | 2007-05-23 | 2008-11-27 | Yahoo! Inc. | Incentive-Based System and Method for Third-Party Web Application Development and Publication |
US20100057834A1 (en) * | 2008-08-29 | 2010-03-04 | Macken Luke J | Method and System for Facilitating Client Server Interaction |
US20120297065A1 (en) * | 2001-12-18 | 2012-11-22 | Ebay Inc. | Prioritization of third party access to an online commerce site |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000008823A1 (en) * | 1998-08-07 | 2000-02-17 | E2 Software Corporation | Load balance and fault tolerance in a network system |
JP5525673B2 (en) * | 2000-09-28 | 2014-06-18 | オラクル・インターナショナル・コーポレイション | Enterprise web mining system and method |
US20020198943A1 (en) * | 2001-06-20 | 2002-12-26 | David Zhuang | Web-enabled two-way remote messaging facility |
US7565313B2 (en) * | 2001-12-05 | 2009-07-21 | Pipeline Financial Group, Inc. | Method and system for managing distributed trading data |
US7281202B2 (en) * | 2003-06-19 | 2007-10-09 | Microsoft Corporation | Framework for creating modular web applications |
US20120150888A1 (en) * | 2003-09-10 | 2012-06-14 | Geoffrey Hyatt | Method and system for relationship management and intelligent agent |
JP3892877B2 (en) * | 2005-03-28 | 2007-03-14 | 株式会社コナミデジタルエンタテインメント | Message character string output system, control method and program for message character string output system |
JP5073974B2 (en) * | 2006-06-23 | 2012-11-14 | 公栄 中嶋 | Web site construction system |
US8583772B2 (en) | 2008-08-14 | 2013-11-12 | International Business Machines Corporation | Dynamically configurable session agent |
US10007895B2 (en) * | 2007-01-30 | 2018-06-26 | Jonathan Brian Vanasco | System and method for indexing, correlating, managing, referencing and syndicating identities and relationships across systems |
US7958516B2 (en) * | 2007-04-18 | 2011-06-07 | Google Inc | Controlling communication within a container document |
US8774374B2 (en) * | 2007-12-13 | 2014-07-08 | Verizon Patent And Licensing Inc. | Managing visual voicemail from multiple devices |
US20090209286A1 (en) * | 2008-02-19 | 2009-08-20 | Motorola, Inc. | Aggregated view of local and remote social information |
CN101556669A (en) * | 2008-04-11 | 2009-10-14 | 上海赢思软件技术有限公司 | Method and device for conducting personalized marketing with user by using human-computer interaction technology |
US20100057560A1 (en) * | 2008-09-04 | 2010-03-04 | At&T Labs, Inc. | Methods and Apparatus for Individualized Content Delivery |
US8869256B2 (en) * | 2008-10-21 | 2014-10-21 | Yahoo! Inc. | Network aggregator |
US8683554B2 (en) * | 2009-03-27 | 2014-03-25 | Wavemarket, Inc. | System and method for managing third party application program access to user information via a native application program interface (API) |
US8549072B2 (en) * | 2009-07-23 | 2013-10-01 | Facebook, Inc. | Markup language for incorporating social networking system information by an external website |
US8589326B2 (en) * | 2009-08-21 | 2013-11-19 | Avaya Inc. | Utilizing presence in conjunction with other information to determine an appropriate communications modality |
US20120084151A1 (en) * | 2009-12-30 | 2012-04-05 | Kozak Frank J | Facilitation of user management of unsolicited server operations and extensions thereto |
EP2534632B1 (en) * | 2010-02-08 | 2017-01-18 | Facebook, Inc. | Communicating information in a social network system about activities from another domain |
US8244848B1 (en) * | 2010-04-19 | 2012-08-14 | Facebook, Inc. | Integrated social network environment |
CA2704866A1 (en) * | 2010-05-19 | 2011-11-19 | Vendasta Technologies Inc. | Unifying social graphs across multiple social networks |
AU2010341423B1 (en) * | 2010-06-13 | 2011-10-20 | QDEGA Loyality Souloutions GmbH | Method and system for managing customer relationships |
US9553878B2 (en) * | 2010-08-16 | 2017-01-24 | Facebook, Inc. | People directory with social privacy and contact association features |
JP2012120041A (en) * | 2010-12-02 | 2012-06-21 | Ntt Docomo Inc | Telephone-directory-data integrating apparatus and method, and computer program therefor |
CN102307210B (en) * | 2011-01-13 | 2014-12-10 | 国云科技股份有限公司 | Data downloading system and data management and downloading method thereof |
US20120197967A1 (en) * | 2011-01-27 | 2012-08-02 | Sivapathalingham Sivavakeesar | Socializing System, Framework and Methods thereof |
US9547626B2 (en) * | 2011-01-29 | 2017-01-17 | Sdl Plc | Systems, methods, and media for managing ambient adaptability of web applications and web services |
JP5758693B2 (en) * | 2011-04-28 | 2015-08-05 | 株式会社日立国際電気 | Customer service management system |
JP2013008345A (en) * | 2011-06-24 | 2013-01-10 | Argyle Inc | Coupon issuance system associated with social media |
US9384101B2 (en) * | 2011-07-26 | 2016-07-05 | Apple Inc. | Web application architecture |
US10217117B2 (en) * | 2011-09-15 | 2019-02-26 | Stephan HEATH | System and method for social networking interactions using online consumer browsing behavior, buying patterns, advertisements and affiliate advertising, for promotions, online coupons, mobile services, products, goods and services, entertainment and auctions, with geospatial mapping technology |
CN103095663B (en) * | 2011-11-04 | 2016-08-03 | 阿里巴巴集团控股有限公司 | Information interacting method between a kind of A non logged-on user and device |
CN103167444B (en) * | 2011-12-19 | 2015-09-30 | 中国电信股份有限公司 | Website obtains the method for subscriber phone number, system, client and server |
US20130217416A1 (en) * | 2011-12-23 | 2013-08-22 | Microsoft Corporation | Client check-in |
CN102624728B (en) * | 2012-03-09 | 2015-04-15 | 浙江大学城市学院 | Method and system for carrying out whole-network login authentication by utilizing registered website user information |
JP2013196063A (en) * | 2012-03-16 | 2013-09-30 | Cellant Corp | Cookie sharing program, web server with cookie sharing function, cookie sharing system and cookie sharing method |
US8898766B2 (en) * | 2012-04-10 | 2014-11-25 | Spotify Ab | Systems and methods for controlling a local application through a web page |
US9141957B2 (en) * | 2012-04-11 | 2015-09-22 | Netgear, Inc. | System and method for filtering advertising in a networking device |
JP5175402B1 (en) * | 2012-06-21 | 2013-04-03 | 株式会社 ディー・エヌ・エー | COMMUNICATION METHOD, COMMUNICATION DEVICE, AND PROGRAM |
JP5510690B2 (en) * | 2013-06-03 | 2014-06-04 | 豊 塚本 | Personal information protection device |
-
2014
- 2014-12-04 EA EA201691088A patent/EA036433B1/en not_active IP Right Cessation
- 2014-12-04 AU AU2014358700A patent/AU2014358700B2/en active Active
- 2014-12-04 KR KR1020217013915A patent/KR102361002B1/en active IP Right Grant
- 2014-12-04 CN CN202010671229.3A patent/CN111859128B/en active Active
- 2014-12-04 KR KR1020227003986A patent/KR102433089B1/en active IP Right Grant
- 2014-12-04 KR KR1020167017946A patent/KR102251844B1/en active IP Right Grant
- 2014-12-04 WO PCT/IB2014/066589 patent/WO2015083115A2/en active Application Filing
- 2014-12-04 EP EP14868000.2A patent/EP3077920A4/en not_active Ceased
- 2014-12-04 JP JP2016536678A patent/JP6506762B2/en active Active
- 2014-12-04 CN CN201480074482.3A patent/CN105940391B/en active Active
- 2014-12-04 CA CA2932286A patent/CA2932286C/en active Active
- 2014-12-04 BR BR112016012695A patent/BR112016012695A8/en not_active Application Discontinuation
- 2014-12-04 MX MX2016007301A patent/MX359477B/en active IP Right Grant
- 2014-12-04 IL IL292474A patent/IL292474A/en unknown
-
2016
- 2016-06-01 IL IL245992A patent/IL245992B/en active IP Right Grant
- 2016-06-03 MX MX2018011867A patent/MX2018011867A/en unknown
-
2019
- 2019-03-29 JP JP2019066780A patent/JP6746746B2/en active Active
- 2019-11-12 AU AU2019264558A patent/AU2019264558A1/en not_active Abandoned
-
2020
- 2020-03-04 IL IL273052A patent/IL273052B/en unknown
- 2020-08-05 JP JP2020133242A patent/JP7032492B2/en active Active
-
2021
- 2021-09-29 AU AU2021240187A patent/AU2021240187A1/en not_active Abandoned
-
2022
- 2022-02-24 JP JP2022027082A patent/JP7387779B2/en active Active
-
2023
- 2023-11-15 JP JP2023194539A patent/JP2024023313A/en active Pending
- 2023-12-22 AU AU2023285951A patent/AU2023285951A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120297065A1 (en) * | 2001-12-18 | 2012-11-22 | Ebay Inc. | Prioritization of third party access to an online commerce site |
US20030220812A1 (en) * | 2002-04-09 | 2003-11-27 | Jones Michael B. | Method of coordinating business transactions between repair service participants |
US20080294515A1 (en) * | 2007-05-23 | 2008-11-27 | Yahoo! Inc. | Incentive-Based System and Method for Third-Party Web Application Development and Publication |
US20100057834A1 (en) * | 2008-08-29 | 2010-03-04 | Macken Luke J | Method and System for Facilitating Client Server Interaction |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230273971A1 (en) | System and method for third party application activity data collection | |
JP7387779B2 (en) | Systems and methods for websites | |
AU2019283841B2 (en) | Third party application communication API |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Lapse of a eurasian patent due to non-payment of renewal fees within the time limit in the following designated state(s) |
Designated state(s): AM AZ BY KZ KG TJ TM |