Способ и электронное устройство управления разрешениями для объектов

Иллюстрации

Показать все

Изобретение относится к способу и устройству управления разрешениями для объектов. Технический результат заключается в обеспечении управления разрешениями для объектов. В способе выполняют получение первого запроса на первый объект от первого запросчика на выполнение первого действия над первым объектом, требующего первого разрешения, в ответ на первый запрос центральным менеджером разрешений дается первое разрешение на выполнение первого действия первому запросчику, и первый запросчик контролирует первый объект, получение второго запроса на первый объект от второго запросчика на выполнение второго действия над первым объектом, требующего второго разрешения, в ответ на второй запрос осуществляют передачу второго запроса первому запросчику, контролирующему первый объект, и либо, в ответ на то, что первый запросчик дает второе разрешение второму запросчику, разрешают выполнять второму запросчику второе действие, второй запросчик получает контроль над первым объектом, и выполняют завершение первого разрешения и выполнения первого действия первым запросчиком, либо, в ответ на то, что первый запросчик не дает второе разрешение второму запросчику и не позволяет выполнять второе действие вторым запросчиком, первый запросчик продолжает контролировать объект. 2 н. и 13 з.п. ф-лы, 3 ил.

Реферат

Перекрестная ссылка

[01] Отсутствует.

Область техники, к которой относится изобретение

[02] Настоящее техническое решение относится к интерфейсам программирования приложений (API) в целом, и, конкретнее, к системе и способу управления объектами в различных вариантах реализации API.

Уровень техники

[03] Различные глобальные или локальные сети связи (Интернет, Всемирная Паутина, локальные сети и подобные им) предлагают пользователю большой объем информации. Информация включает в себя контекстуальные разделы, такие как, среди прочего, новости и текущие события, карты, информация о компаниях, финансовая информация и ресурсы, информация о трафике, игры и информация развлекательного характера. Пользователи используют множество электронных устройств (настольный компьютер, портативный компьютер, ноутбук, смартфон, планшеты и подобные им) для получения доступа к богатому информационному контенту (например, изображениям, аудио- и видеофайлам, анимированным изображениям и прочему мультимедийному контенту подобных сетей). Подобные электронные устройства становятся все более популярными в повседневной жизни благодаря их все возрастающей функциональности. Таким образом, программное обеспечение становится все более обширным по размеру и количеству, и, следовательно, возрастает необходимость в совместной работе различных программ.

[04] Интерфейс программирования приложений (API) представляет собой набор процедур, протоколов и инструментов для создания программных приложений. API указывает на то, как именно должны взаимодействовать различные программные компоненты. API используются, например, при разработке компонентов графического пользовательского интерфейса (GUI). API помогает разрабатывать программное обеспечение путем предоставления всех строительных блоков, которые программист далее составляет вместе. Существуют различные типы API для операционных систем, приложений и веб-сайтов.

[05] Многие API используют объектно-ориентированное программирование, в которых программисты определяют не только тип данных в структуре данных, но также типы операций (функций), которые будут применяться к структуре данных. Поэтому структура данных становится объектом, который включает в себя данные и функции. В общем случае, «объект» является элементом, который может индивидуально выбираться и управляться. Он может включать в себя формы и изображения, которые появляются на экране монитора, а также менее осязаемые объекты. В объектно-ориентированном программировании, например, объект представляет собой автономный элемент, который состоит из данных и процедур для управления данными. Объектно-ориентированные способы программирования позволяют программистам создавать модули, которые нет необходимости менять в тот момент, когда добавлен новый объект, поскольку программист может легко создавать новый объект, который наследует многие из характеристик существующих объектов, что делает объектно-ориентированные объекты более удобными для модификации. Дополнительно, программисты могут создавать связи между объектами. Например, объекты могут наследовать характеристики от других объектов.

[06] Поскольку число компьютерных программ (например, браузеры, приложения, апплеты и так далее), которые используются электронными устройствами, растет, возрастает и необходимость совместного управления объектами. В общем случае, объекты управляются центральным менеджером разрешений, который способствует определению и/или выдаче разрешений, которые необходимы для работы. Тем не менее, существует необходимость в улучшенных способах и системах для управления объектами в пределах программной среды, например, API.

[07] Патент США №US 6993665, опубл. 31.01.2006 описывает способы и устройство для предоставления менеджера разрешений, который способен помогать апплету, например, определять и/или давать разрешения, которые необходимы для работы. Описано устройство для управления разрешениями, устройство включает в себя программное приложение, менеджер разрешений, который связан с программным приложением и получает запрос, отправленный программным приложением, и программную среду, связанную с менеджером разрешений. Запрос может указывать на разрешение, которое может быть запрошено менеджером разрешений. Менеджер разрешений может получать доступ к программной среде для определения необходимого разрешения, соответствующего разрешению, и для определения того, как именно следует давать запрашиваемое разрешение.

[08] Международная заявка WO 1994023362 опубл. 13.10.1994 описывает объектно-ориентированную программную среду. Среда включает в себя множество классов и объектов. Каждый объект связывается с другими объектами в среде путем передачи сообщений, которые выполняют способы в этих других объектах. Среда содержит по меньшей мере один целевой объект, который содержит один или несколько универсальных способов, которые используются для связи с другим объектом. Эти универсальные способы обычно включены во все целевые объекты в среде, одновременно с соответствующими универсальными экземплярами переменных, которые использовались универсальными способами, тем самым формируя универсальный протокол или интерфейс для целевых объектов. Поведенческие объекты, объекты, которые реализуют поведение других объектов, получают и модифицируют свойства целевого объекта путем прямого применения универсальных способов, находящихся в целевом объекте. Связь между поведенческим объектом и целевым объектом осуществляется по универсальному протоколу (способ и экземпляры переменных).

[09] Известны шаблоны посредников для определения объекта, в котором заключается описание того, как именно взаимодействуют объекты. С учетом шаблона посредника, связь между объектами описывается с помощью объекта-посредника. Объекты больше не взаимодействуют друг с другом, они взаимодействуют через посредника. Это уменьшает зависимость между связанными объектами, что снижает связанность (см. «Посредник (шаблон проектирования)» в Википедии. Фонд Википедии, 28 ноября 2014 года. Web. https://ru.wikipedia.org/wiki/Посредник_(шаблон_проектирования))

Раскрытие изобретения

[10] Задачей предлагаемого технического решения является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники. Варианты осуществления настоящего технического решения были разработаны на основе предположений изобретателей о том, что существует необходимость в способах и системах для управления объектами в программной среде, например, API.

[11] Одним объектом настоящего технического решения является способ управления разрешениями для объектов, объекты выполняются сервером как часть программных процедур, способ выполняется на электронном устройстве (например, клиентском устройстве или сервере). Способ включает в себя получение первого запроса на первый объект от первого элемента запроса, первый запрос включает запрос на выполнение первого действия над первым объектом, выполнение первого действия требует первого разрешения. В ответ на первый запрос, дается первое разрешение на выполнение первого действия первому запросчику, и первый запросчик, следовательно, контролирует первый объект. Получают второй запрос на первый объект от второго запросчика, второй запрос включает запрос на выполнение второго действия над первым объектом, выполнение второго действия требует второго разрешения. В ответ на указанный второй запрос, второй запрос передается первому запросчику, первый запросчик контролирует первый объект. Выполняется одно из следующего: первый запросчик дает второе разрешение второму запросчику, что позволяет выполнять второе действие вторым запросчиком, второй запросчик, следовательно, контролирует первый объект, и завершение первого разрешения и выполнения первого действия первым запросчиком; или первый запросчик не дает второе разрешение второму запросчику, тем самым не позволяя выполнять второе действие вторым запросчиком, первый запросчик продолжает контролировать первый объект.

[12] В некоторых вариантах осуществления настоящего технического решения, в ответ на то, что первый запросчик дает второе разрешение второму запросчику и позволяет выполнять второе действие вторым запросчиком, первый запросчик, тем не менее, продолжает контролировать первый объект.

[13] В некоторых вариантах осуществления настоящего технического решения, первое действие и второе действие являются одним и тем же действием. В альтернативных вариантах осуществления настоящего технического решения, первое действие и второе действие являются различными действиями. В некоторых вариантах осуществления настоящего технического решения, второе действие включает в себя первое действие и дополнительное действие. В подобных вариантах осуществления первый запросчик может частично давать второе разрешение второму запросчику, что позволяет выполнять часть второго действия вторым запросчиком. Например, первый запросчик может частично давать второе разрешение второму запросчику, что позволяет выполнять первое действие вторым запросчиком и не позволяет выполнять дополнительное действие вторым запросчиком. В альтернативных вариантах осуществления настоящего технического решения, первый запросчик может позволить выполнение дополнительного действия вторым запросчиком и не позволить выполнение первого действия вторым запросчиком. В тех вариантах осуществления настоящего технического решения, где разрешение было частично дано второму запросчику, первый запросчик продолжает частично контролировать первый объект, второй запросчик контролирует часть второго действия, для которого было дано разрешение и выполнение которого было разрешено.

[14] В некоторых вариантах осуществления настоящего технического решения, первый объект включает в себя элемент пользовательского интерфейса, указатель, аудио-объект, объект изображения, видео-объект или текстовый объект. Неограничивающие примеры элементов пользовательского интерфейса включают в себя текстовые поля, панели инструментов, строки меню и кнопки. В некоторых вариантах осуществления настоящего технического решения, первый объект может представлять собой всплывающий объект.

[15] В некоторых вариантах осуществления настоящего технического решения, первое действие, второе действие и дополнительное действие включают в себя, независимо, одно или несколько из: демонстрацию первого объекта, что позволяет первому объекту появляться, ввод текста в первый объект, ввод данных или информации в первый объект, нажатие на первый объект, выбор первого объекта, выбор части первого объекта, удаление первого объекта.

[16] Другим объектом настоящего технического решения является электронное устройство, связанное с пользователем, электронное устройство включает в себя интерфейс связи для установления связи с сервером через интерфейс связи, сервер выполнен с возможностью выполнять объекты как часть программных процедур; и процессор, функционально связанный с интерфейсом связи. Процессор дополнительно выполнен с возможностью осуществлять получение первого запроса на первый объект от первого элемента запроса, первый запрос включает запрос на выполнение первого действия над первым объектом, выполнение первого действия требует первого разрешения. В ответ на указанный первый запрос, процессор выполнен с возможностью давать первое разрешение на выполнение первого действия первому запросчику, и первый запросчик, следовательно, контролирует первый объект. Процессор дополнительно выполнен с возможностью осуществлять получение второго запроса на первый объект от второго запросчика, второй запрос включает запрос на выполнение второго действия над первым объектом, выполнение второго действия требует второго разрешения. В ответ на указанный второй запрос, процессор выполнен с возможностью осуществлять передачу второго запроса первому запросчику, причем первый запросчик контролирует первый объект, и выполнять одно из следующего: 1) в ответ на то, что первый запросчик дает второе разрешение второму запросчику, процессор выполнен с возможностью выполнять второе действие вторым запросчиком, второй запросчик, следовательно, контролирует первый объект, и завершение первого разрешения и выполнения первого действия первым запросчиком; или 2) в ответ на то, что первый запросчик не дает второе разрешение второму запросчику, процессор выполнен с возможностью не позволить выполнять второе действие вторым запросчиком, первый запросчик продолжает контролировать первый объект.

[17] В некоторых вариантах осуществления электронного устройства, в ответ на то, что первый запросчик дает второе разрешение второму запросчику и позволяет выполнять второе действие вторым элементом, первый запросчик, тем не менее, продолжает контролировать первый объект.

[18] В некоторых вариантах осуществления электронного устройства, первое действие и второе действие являются одним и тем же действием. В альтернативных вариантах осуществления электронного устройства, первое действие и второе действие являются разными действиями. В некоторых вариантах осуществления электронного устройства, второе действие включает в себя и первое действие и дополнительное действие, и первый запросчик частично дает второе разрешение второму запросчику, таким образом, выполнение части второго действия разрешено вторым запросчиком. Например, в некоторых вариантах осуществления настоящего технического решения, первый запросчик частично дает второе разрешение второму запросчику, что позволяет выполнить первое действие вторым запросчиком и не позволяет выполнить дополнительное действие вторым запросчиком. В альтернативных вариантах осуществления настоящего технического решения, первый запросчик частично дает второе разрешение второму запросчику, что позволяет выполнить дополнительное действие вторым запросчиком и не позволяет выполнять первое действие вторым запросчиком. В подобных вариантах осуществления настоящего технического решения, первый запросчик продолжает частично контролировать первый объект, второй запросчик контролирует часть второго действия, для которого было дано разрешение и выполнение которого было разрешено.

[19] В некоторых вариантах осуществления электронного устройства, первый объект включает в себя элемент пользовательского интерфейса, указатель, аудио-объект, объект изображения, видео-объект или текстовый объект. Неограничивающие примеры элементов пользовательского интерфейса включают в себя текстовые поля, панели инструментов, строки меню, гиперссылки и кнопки. В некоторых вариантах осуществления электронного устройства первый объект является всплывающим объектом.

[20] В некоторых вариантах осуществления электронного устройства, первое действие, второе действие и дополнительное действие включают в себя, независимо, одно или несколько из: демонстрацию первого объекта, что позволяет первому объекту появляться, и ввод текста в первый объект, и ввод данных или информации в первый объект, и нажатие на первый объект, и выбор первого объекта, и выбор части первого объекта, и удаление первого объекта.

[21] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от электронных устройств) по сети (например, сети передачи данных) и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для настоящего технического решения. В контексте настоящего технического решения использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».

[22] В контексте настоящего описания «электронное устройство» подразумевает под собой вычислительное устройство или компьютерное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, некоторыми примерами электронных устройств (среди прочего) могут служить универсальные персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), мобильные компьютерные устройства, смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что электронное устройство в настоящем контексте может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода. В контексте настоящего описания термин «клиентское устройство» относится к любому из ряда клиентских электронных устройств, связанных с пользователем, например, персональные компьютеры, планшеты, смартфоны и тому подобное.

[23] В контексте настоящего описания «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.

[24] В контексте настоящего описания термин «данные» включает в себя любую информацию, которая может храниться, например, в базе данных, или может быть передана в электронной форме, например, потоком. Таким образом, данные включают в себя, среди прочего, аудиовизуальные произведения (изображения, видео, звукозаписи, презентации и т.д.), данные о местоположении, цифровые данные и т.д., текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.

[25] В контексте настоящего описания термин «машиночитаемый носитель информации» подразумевает носитель абсолютно любого типа. Машиночитаемый носитель информации может включать в себя энергозависимые и энергонезависимые, переносные и не переносные носители, которые реализованы в соответствии с любым способом или технологией, для хранения информации, например, машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные носители могут включать в себя ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ, флэш-память или любая другая архитектура памяти, компакт диски, DVD-диски или другие оптические носители, дискеты, жесткие диски, магнитные кассеты, накопители на магнитной ленте, USB ключи, твердотельные накопители, ленточные накопители или любые другие носители, которые могут быть использованы для хранения желаемой информации, которая может быть доступна для извлечения

[26] В контексте настоящего описания термин «сеть передачи данных» означает любую сеть передачи данных, например, компьютерную сеть, Интернет, телефонную сеть, систему телексной связи, сеть TCP/IP (например, сеть WAN, сеть LAN) и тому подобное. Термин «сеть передачи данных» включает в себя проводную сеть или напрямую соединенную сеть, а также беспроводную связь, например, акустическую, радиочастотную, инфракрасную и другие типы беспроводной связи, а также комбинации любых из вышеперечисленных.

[27] Специалисты в данной области техники поймут, что в настоящем описании выражение «получение данных» от пользователя или программы подразумевает получение электронным устройством данных от пользователя или программы в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя или GUI (например, экран компьютерного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя. Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Важно иметь в виду, что варианты осуществления сигналов никак конкретно не ограничены. Например, сигналы могут быть переданы и получены, без установления ограничений, с помощью оптических средств (например, оптического соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).

[28] В контексте настоящего описания термин «сервис облачного хранения» представляет собой вычислительные средства, в которых множество клиентов, клиентских устройств, обществ, IT доменов, и/или приложений управляются или контролируются по отдельности в среде со множеством управляющих элементов. «Облачная» среда относится к структуре, в которой множество независимых пользователей используют общую инфраструктуру, платформы, сервисы/приложения или ресурсы таким образом, что каждая из них изолирована друг от друга. Пользователь/клиент может представлять собой компанию, организацию, индивидуального человека, а клиентское устройство может относиться к любому из клиентских устройств пользователя, как описано здесь. Такие облачные сервисы обеспечивают связь для использования, например, персональными компьютерами, планшетами, смартфонами или другим пользовательскими устройствами (домашние развлечения и так далее). Известны многие типы облачных сервисов. Например, облачный сервис может включать в себя отдельные административные модели, которые применяются к блейд-серверам в дата центре, или любое распределение соединенных устройств. Общая инфраструктура, платформы, сервисы/приложения или ресурсы обычно управляются администратором, который поддерживает работу облачного сервиса. Облачные ресурсы могут быть личными или публичными.

[29] В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первый пользователь» и «третий пользователь» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) пользователей/между пользователями, равно как и их использование (само по себе) не предполагает, что некий «второй пользователь» обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.

[30] Каждый вариант осуществления настоящего технического решения преследует по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты настоящего технического решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.

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

Краткое описание чертежей

[32] Для лучшего понимания настоящего технического решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:

[33] На Фиг. 1 представлена принципиальная схема системы, выполненной в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.

[34] На Фиг. 2 представлен снимок экрана, на котором показан графический пользовательский интерфейс, отображающий карту улиц и связанные программные объекты.

[35] На Фиг. 3 представлена блок-схема способа, выполняемого в рамках системы, изображенной на Фиг. 1, и выполненного с вариантами осуществления настоящего технического решения, не ограничивающими его объем.

Осуществление изобретения

[36] На Фиг. 1 представлена принципиальная схема системы 100, выполненной в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание иллюстративных вариантов осуществления настоящего технического решения. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящего технического решения. Это описание не предназначено для определения объема или установления границ настоящего технического решения. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящего технического решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого экземпляра настоящего технического решения. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящего технического решения, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящего технического решения будут обладать гораздо большей сложностью.

[37] Система 100 включает в себя сеть 50 передачи данных. Сеть 50 передачи данных обычно связана с электронным устройством 20 и сервером 40, сервер 40 связан с устройством 30 хранения данных, которое хранит программный код для программ 10, 15.

[38] Варианты осуществления сервера 40 никак конкретно не ограничены, и, например, сервер 40 может быть реализован как одиночный сервер. Альтернативно, сервер 40 может представлять собой множество серверов.

[39] Варианты осуществления устройства 30 хранения данных никак конкретно не ограничены. Например, устройство 30 хранения данных может является таким устройством памяти как жесткий диск (не показано), встроенный в электронное устройство 20, или устройство 30 хранения данных может быть соединено с электронным устройством 20 по сети 50 передачи данных или по любому подходящему проводному или беспроводному соединению. Устройство 30 хранения данных обычно представляет собой элемент, способный хранить файлы и данные, например, программный код для программ 10, 15. Аналогично серверу 40, устройство 30 хранения данных может быть реализовано как одиночный элемент, или, альтернативно, как множество элементов. В рамках последнего варианта, каждое из множества устройств хранения данных, реализующих устройство 30 хранения данных, может отвечать за сохранение файлов для пользователей в конкретном регионе; или конкретного типа пользователей; или конкретного типа или размера файлов. Альтернативно, каждое из множества устройств хранения данных, реализующих устройство 30 хранения данных, может быть выполнено с возможностью сохранять файлы в соответствии с принципом распределения нагрузки, который выполняется контролирующим элементом (который может быть, например, сервером 40, или одним из множества серверов).

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

[41] Варианты осуществления электронного устройства 20 никак конкретно не ограничены. Электронное устройство может представлять собой любое вычислительное устройство, которое способно работать с подходящим программным обеспечением для заданной задачи, например, без установления ограничений: персональные компьютеры общего назначения (настольные компьютеры, ноутбуки, нетбуки и так далее), мобильные вычислительные устройства, смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Электронное устройство 20 включает в себя процессор или центральный процессор (CPU) 22 и блок 25 памяти. Несмотря на то, на иллюстративном примере на Фиг. 1 представлено одиночное электронное устройство 20, множество электронных устройств может быть использовано для получения/передачи, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.

[42] Следует иметь в виду, что электронное устройство 20 может вести себя как сервер 40 по отношению к другим электронным устройствам (не показаны). Другими словами, несмотря на то, что вариант осуществления, представленный на Фиг. 1, представляет электронное устройство 20 и сервер 40 как отдельные аппаратные компоненты, в некоторых вариантах осуществления настоящего технического решения сервер 40 может быть физически смежен с электронным устройством 20, т.е. они не обязательно являются отдельными элементами аппаратного обеспечения, как показано, хотя это может быть и так.

[43] Экземпляр 11 программы 10 загружен в адресное пространство памяти 25 электронного устройства 20. Варианты осуществления памяти 25 никак конкретно не ограничены. Память 25 может содержать в себе систему виртуальной памяти с физической памятью, отдельной от адресного пространства, но с целью упрощения память показана на Фиг. 1 как простой блок 25.

[44] Экземпляр 11 программы конкретно выполнен, в свою очередь, для инстанцирования ряда программных объектов от 121 до 122 (указаны вместе как программные объекты 12). Программные объекты могут представлять собой сочетание выполняемого кода и данных, и, следовательно, могут выполнять обработку самостоятельно и/или предоставлять данные для обработки другими программными объектами. Например, программный объект, такой как функция или подпрограмма, может быть создан родительским объектом или даже основной программой для выполнения некоторой обработки от имени вызывающего родительского объекта или основной программы. Данные объекта могут быть различных типов, например: примитивные типы данных, такие как целые числа, вещественные числа, булевы числа, знаки; и структурированные или абстрактные типы данных, такие как, массивы или списки, а также определенные типы данных, каждый из которых включает в себя множество экземпляров данных или комбинаций типов данных.

[45] Как было описано выше программные объекты могут содержать в себе примеры функций, созданных в течение выполнения экземпляра 11 программы или простых или структурированных объектов данных, некоторые из которых могут содержать значения указателей, которые указывают на другие функции или данные. Программные объекты 12 обычно расположены в иерархическом порядке, с родительскими объектами вызывающими инстанцирование одного или нескольких дочерних объектов. Для простоты понимания, только один уровень дочерних объектов показан на Фиг. 1 с объектами 121-122, которые инстанцированы экземпляром программы 10. Однако, будет понятно, что даже в программе средней сложности иерархия объектов может содержать множество уровней объектов.

[46] Программные объекты 12 могут быть выполнены сервером 40 как часть программных процедур, например, как часть программ 10, 15. Важно иметь в виду, что варианты осуществления программных объектов никак конкретно не ограничены. Неограничивающие примеры программных объектов 12 включают в себя элементы пользовательского интерфейса (например, текстовые поля, панели инструментов, строки меню и кнопки и тому подобное), указатели, аудио объекты, объекты изображений, видео объекты и текстовые объекты. В некоторых вариантах осуществления настоящего технического решения, программные объекты 12 могут представлять собой всплывающие объекты. Неограничивающие примеры всплывающих объектов включают в себя объекты, которые появляются поверх или над окном браузера с веб-сайтом. Например, всплывающий объект может появляться в тот момент, когда опция была выбрана путем нажатия или какого-либо другого указания на выбор пользователя. В некоторых вариантах осуществления настоящего технического решения, всплывающий объект может появляться когда пользователь располагает курсор (например, наводит курсор) на часть браузерного окна или веб-сайта. Многие варианты осуществления всплывающих объектов могут быть использованы, что хорошо известно в данной области техники.

[47] Реализация сети 50 передачи данных никак конкретно не ограничена, и будет зависеть от того, как именно реализовано электронное устройство 20, сервер 40 и устройство 30 беспроводной связи. В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть 50 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения, сеть передачи данных 50 может быть реализована иначе - в виде глобальной сети связи, локальной сети связи, частной сети связи и т.п.В качестве примера, но не ограничения, в данных вариантах осуществления настоящего технического решения в случаях, когда электронное устройство 20 представляет собой клиентское устройство, например, беспроводное устройство связи (например, смартфон), сеть 50 передачи данных представляет собой беспроводной канал передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех примерах, где электронное устройство 20 представляет собой портативный компьютер, сеть 50 передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п) так и проводной (соединение на основе сети Ethernet). Различные электронные устройства и различные сети передачи данных могут быть реализованы независимо друг от друга.

[48] Для дальнейшего понимания и иллюстрации системы 100 будет сделана ссылка на Фиг. 2, на которой представлен снимок 200 экрана графического пользовательского интерфейса, который отображает карту 260 улиц пользователю (не показа