Кэширование в памяти совместно используемых настраиваемых данных множества арендаторов

Иллюстрации

Показать все

Изобретение относится к области совместного использования данных множества арендаторов. Техническим результатом является оптимизация памяти и производительности в среде совместного использования данных множества арендаторов. В среде совместного использования данных множества арендаторов с совместно используемыми настраиваемыми данными атрибуты назначают запрошенным данным и сохраняют в кэш-памяти вместе с запрошенными данными. Для ненастроенных данных, обозначенных как системные данные, одну копию сохраняют в кэш-памяти для использования множеством арендаторов, позволяя оптимизацию памяти и производительности для каждой операции запроса/выборки данных. Атрибут "сигнальная метка удаления" может быть назначен несуществующим данным в кэш-памяти, давая возможность уведомления запрашивающего арендатора (арендаторов) без необходимости осуществлять доступ к памяти данных арендатора каждый раз, когда принимают запрос несуществующих данных. 3 н. и 17 з.п. ф-лы, 7 ил.

Реферат

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

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

Таким образом, типичная система CRM размещает множество организаций (“арендаторов”). Каждому арендатору может быть дана возможность настраивать свою систему CRM с помощью добавления/удаления/модификации объектов, атрибутов, соотношений, форм, видов, дополнительных модулей расширяемости уровня кода и тому подобных. Для того чтобы различать настройки, осуществленные разными арендаторами, настройки могут быть разделены на отдельные таблицы, которые существуют либо в одной базе данных, либо во множестве баз данных. Несмотря на разделение данных, может быть желательным совместно использовать как можно больше ненастроенной, но настраиваемой информации во время выполнения, чтобы минимизировать требования к памяти и улучшить производительность.

Сущность изобретения

Эта сущность изобретения предоставлена для того, чтобы представить выбор концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Эта сущность изобретения не предназначена для того, чтобы идентифицировать ключевые признаки или существенные признаки заявленного предмета изобретения, а также не предназначена в качестве помощи при определении рамок объема заявленного предмета изобретения.

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

Эти и другие признаки и преимущества будут понятными из чтения следующего подробного описания и обзора связанных чертежей. Следует понимать, что как предыдущее общее описание, так и следующее подробное описание являются только объяснительными, а не ограничительными для аспектов, которые заявлены.

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

Фиг.1 иллюстрирует иллюстративную архитектуру системы CRM,

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

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

фиг.4 - иллюстративная сетевая среда, в которой могут быть осуществлены варианты осуществления,

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

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

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

Подробное описание изобретения

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

Несмотря на то что варианты осуществления будут описаны в общем контексте программных модулей, которые выполняются совместно с прикладной программой, которая выполняется в операционной системе персонального компьютера, специалисты в данной области техники поймут, что аспекты также могут быть осуществлены в комбинации с другими программными модулями.

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

Варианты осуществления могут быть осуществлены как компьютерный процесс (способ), вычислительная система или как изделие производства, такое как компьютерный программный продукт или среда, доступная для чтения с помощью компьютера. Компьютерный программный продукт может быть средой компьютерной памяти, доступной для чтения с помощью компьютерной системы и кодирующей компьютерную программу инструкций, предназначенных для выполнения компьютерного процесса. Компьютерный программный продукт также может быть распространяемым сигналом в канале связи, доступным для чтения с помощью компьютерной системы и кодирующим компьютерную программу инструкций, предназначенных для выполнения компьютерного процесса.

Ссылаясь на фиг.1, проиллюстрирована иллюстративная архитектура системы 100 CRM. Система 100 CRM может быть осуществлена с помощью четырех физических уровней в архитектурном “комплекте” CRM. Уровни включают в себя уровень 102 представления, предназначенный для представления данных и интерфейсов пользователя пользователям (например, представление, основанное на web), и прикладной уровень 104, предназначенный для взаимодействия с приложениями, такими как приложение электронной почты, приложение планирования, приложение ведения календаря и тому подобные. Уровни дополнительно включают в себя платформу 106 CRM, которая оперирует логикой коммерческой деятельности и сферы деятельности, и уровень 108 доступа к данным, предназначенный для управления взаимодействием с сервером (серверами) 114 базы данных.

Один или более уровней могут быть объединены, или каждый уровень может содержать отдельные подуровни, такие как уровень управления данными и уровень хранения данных, которые существуют в отдельном месте процесса для доступа к данным. Сервер (серверы) 112 каталога может предоставлять услугу каталога для идентификации принципов защиты, ролей и групп в продукте. Сервер (серверы) 116 приложений может предоставлять дополнительные услуги, такие как услуги, описанные выше.

Фиг.2 иллюстрирует иллюстративную таблицу 200 атрибутов для модели кэширования совместно используемых настраиваемых данных множества арендаторов. Каждый тип настраиваемых данных в системе CRM (например, объекты, атрибуты или соотношения) имеет свои собственные характеристики, и, вследствие этого, их сохраняют в их собственной таблице (например, таблице объектов, таблице атрибутов или таблице соотношений). В системе CRM множества арендаторов каждый арендатор может иметь свою собственную таблицу для каждого типа настраиваемых данных. Например, каждый арендатор может иметь таблицу объектов, таблицу атрибутов и таблицу соотношений.

Система CRM, в соответствии с вариантами осуществления, также может предоставлять первоначальное множество настраиваемых данных (“системных” или “ненастроенных” данных), которое является множеством, с которого может начинать каждый арендатор в системе CRM после инсталляции и конфигурирования. Поскольку к данным настройки часто осуществляют доступ, они могут быть кэшированы в оперативной памяти эффективным способом для каждой организации. Большая часть этих данных может оставаться одной и той же среди множества арендаторов. Вследствие этого, варианты осуществления предоставляют подход для того, чтобы совместно использовать системные данные, в то же время поддерживая частную копию данных, которая настроена с помощью конкретного арендатора.

В системе CRM кэширование в оперативной памяти может применяться к:

настройкам метаданных (объектов, атрибутов, соотношений и т.д.),

настройкам интерфейса пользователя (форм, видов и т.д.),

настройкам набора инструментальных средств разработки программ (SDK) (запросов/ответов SDK и т.д.),

настойкам уровня кода (дополнительных модулей расширяемости и т.д.).

В соответствии с некоторыми вариантами осуществления совместно используемые и настраиваемые данные множества арендаторов могут быть обработаны с помощью отслеживания “уровня настройки” строки данных. Эта информация определяет, является ли строка совместно используемой строкой, новой строкой от потребителя, совместно используемой строкой, которая настроена, или совместно используемой строкой, которая удалена. Затем эту информацию используют для того, чтобы определять, какая информация может быть совместно используемой или нет. Таблица 200 на фиг.2 иллюстрирует эту концепцию “уровня настройки”.

Таблица 200 включает в себя идентификатор 221 атрибута в первой колонке, имя 222 для атрибута во второй колонке, длину 223 данных в третьей колонке. Идентификатор 224 объекта и два атрибута, обнуляемое 225 и настраиваемое 226 поле находятся в следующих колонках. Последняя колонка включает в себя распечатку атрибута 227 уровня настройки. “Уровень настройки”, равный 0, означает “системные” (данные системного уровня), 1 означает “специальные” (данные являются новыми для конкретного арендатора или являются модификацией системных данных), и 2 означает “удаленные”.

В иллюстративной таблице 200 атрибут с именем “доход” удален (оригинал указан с помощью строки 231, обновленная версия перечислена с помощью строки 232), атрибут с именем “имя” настроен (оригинал указан с помощью строки 233, обновленная версия перечислена с помощью строки 234), и атрибут с именем “новое_поле” создан с помощью арендатора (как перечислен в строке 235). Данные с “уровнем настройки”, равным 0, являются данными, которые не настроены и, вследствие этого, являются “совместно используемыми” среди арендаторов.

Когда система CDM должна извлечь часть настроенных данных из кэша, кэш сначала определяет, извлечена ли уже часть данных из базы данных для конкретного арендатора. Если данные ранее не извлечены, кэш извлекает часть данных. Затем кэш просматривает “уровень настройки” части извлеченных данных. Если “уровень настройки” равен 0, кэш проверяет, чтобы определить, находятся ли уже системные данные в кэше, и если нет, добавляет их в кэш. Затем кэш вставляет “системную сигнальную метку”, которая указывает в кэш, что если данные запросят опять для этого арендатора, то он вместо этого должен извлечь системные данные из кэш-памяти. Если “уровень настройки” части данных равен 1, кэш вставляет данные в кэш-память для конкретного арендатора. Если “уровень настройки” части данных равен 2, данные не добавляют в кэш. Вместо этого добавляют “сигнальную метку удаления”, которая указывает в кэш, что если эту часть данных запросят опять для этого арендатора, кэш должен возвратить уведомление о том, что данные не существуют.

Фиг.3 иллюстрирует иллюстративные сценарии обработки запроса клиента в системе, осуществляющей кэширование совместно используемых настраиваемых данных множества арендаторов. Иллюстративные сценарии таблицы 370 изображены совместно с иллюстративной системой 300 кэширования совместно используемых данных.

Работа, в соответствии с вариантами осуществления, начинается с запроса данных (354), принимаемых в системе CRM от клиента 342, связанного с арендатором. Клиент может быть пользователем (внутренним или внешним) системы CRM, осуществляющим доступ к системе через устройство клиента или приложение. Как упомянуто ранее, каждый арендатор может быть связан с настраиваемыми совместно используемыми данными, часть которых может быть ненастроенной (системный уровень), а другая часть - настроенной с помощью конкретного арендатора. Кроме того, часть данных для арендатора может быть удалена в системе. Система CRM может включать в себя отдельные базы данных для каждого арендатора, такие как база 346 данных (А) для арендатора А, база 348 данных (В) для арендатора В и база 350 данных (С) для арендатора С. Система CRM также может включать в себя единую базу данных с частями базы данных, назначенных отдельным арендаторам.

Когда принимают запрос в кэше 344 системы CRM, кэш 344 определяет, были ли запрошенные данные ранее извлечены из базы данных запрашивающего арендатора, и если были извлечены, что является атрибутом уровня настойки для запрошенных данных. Кэш 344 определяет, извлечены ли уже данные, с помощью сверки с кэш-памятью 362 (как указано с помощью ссылочного номера 360).

Если данные ранее не извлечены, кэш 344 осуществляет доступ к соответственной базе данных и извлекает данные или определяет, что данные больше не существуют в базе данных (например, связи 356, 358). Если данные были ранее извлечены и сохранены в кэше как атрибут “системная сигнальная метка” для этого арендатора, тогда этот арендатор требует данные системного уровня (ненастроенные), таким образом, кэш извлечет данные системного уровня (ненастроенные) из кэш-памяти и предоставит их запрашивающему арендатору. Если данные извлечены в первый раз и уровень настройки данных указывает, что данные для этого арендатора являются данными системного уровня (ненастроенными), кэш 344 добавит данные системного уровня в кэш-память 362 при условии, что данные уже не сохранены в ней. Кроме того, атрибут “системная сигнальная метка” вставляют в кэш-память 362 для этого арендатора. Атрибут “системная сигнальная метка” дает возможность кэшу предоставлять данные системного уровня (ненастроенные) любому клиенту, запрашивающему эти конкретные данные, без необходимости сохранять множество их копий для каждого арендатора. Если данные являются настроенными, кэш сохраняет эти специальные данные непосредственно для этого арендатора, таким образом давая возможность кэшу распознавать настроенные данные и предоставлять их запрашивающему арендатору. Кроме того, если запрошенные данные больше не существуют в базе данных арендатора, атрибут “сигнальная метка удаления” может быть вставлен в кэш-память, чтобы указывать запрашивающему клиенту в будущих запросах, что эти данные не существуют для этого арендатора, без необходимости проверки сначала базы данных арендатора.

Кроме того, система может распознавать и назначать атрибуты для конкретного типа настройки (в случае множества арендаторов, использующих один и тот же тип настройки). Затем кэш может сохранять в своей локальной памяти одну копию каждых настроенных данных и предоставлять ее запрашивающим арендаторам на основании атрибута типа настройки.

Теперь, ссылаясь на иллюстративные сценарии таблицы 370, в соответствии с первым сценарием в первой строке, арендатор А запрашивает данные с помощью ключа 1. Кэш 344 осуществляет доступ к кэш-памяти (362) и обнаруживает, что в кэше нет объекта для этого арендатора для элемента с ключом 1. Таким образом, кэш 344 осуществляет доступ (356) к базе 346 данных (А), извлекает данные, уведомляет, что уровень настройки данных равен 1 (настроенные), и сохраняет данные непосредственно в кэш-памяти 362 для запрашивающего арендатора, а затем предоставляет извлеченные данные запрашивающему арендатору А.

В соответствии с вторым сценарием во второй строке, арендатор А запрашивает другую часть данных с помощью ключа 2. Данные были ранее извлечены, и их обнаруживают в кэш-памяти 362, однако данные в кэше являются “системной сигнальной меткой” для этого арендатора. Таким образом, кэш извлекает системные (ненастроенные) данные из кэш-памяти и возвращает их арендатору А без необходимости извлекать их из базы 346 данных (А).

В соответствии с третьим сценарием во второй строке, арендатор А запрашивает другую часть данных с помощью ключа 3. Данные ранее удалены из базы 346 данных (А), и указание об этом сохраняют в кэш-памяти 362 с использованием атрибута “сигнальная метка удаления”. Таким образом, кэш 344 предоставляет уведомление арендатору А о том, что запрошенные данные больше не существуют, без необходимости сверки с базой 346 данных (А).

В соответствии с четвертым сценарием в четвертой строке, арендатор В запрашивает данные с помощью ключа 3. Эти данные не извлечены арендатором В, следовательно, кэш 344 осуществляет доступ (358) к базе 348 данных (В), извлекает и сохраняет данные в кэш-памяти 362, поскольку он видит, что уровень настройки данных в базе 348 данных (В) равен 1, и следовательно, арендатор В настроил данные, а затем предоставляет их запрашивающему арендатору В.

В соответствии с пятым сценарием в пятой строке, арендатор С запрашивает данные с помощью ключа 2. Арендатор С запросил эти данные ранее, и кэш извлекает данные из базы 350 данных (С), уведомляет, что уровень настройки был равен 0 (для системных данных), и вставляет системную сигнальную метку для этого элемента. Ненастроенные данные ранее были извлечены для арендатора А, и их обнаруживают в кэш-памяти 362. Поскольку данные являются данными системного уровня, их совместно используют с помощью всех арендаторов, и поскольку кэш-память имеет “системную сигнальную метку” для арендатора С для данных с ключом 2, системные данные, извлеченные арендатором А, могут быть предоставлены арендатору С без необходимости извлекать их из базы 350 данных (С).

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

Фиг.4 является иллюстративной сетевой средой, в которой могут быть осуществлены варианты осуществления. Системы/приложения CRM и кэширование совместно используемых настраиваемых данных могут быть осуществлены локально в одном вычислительном устройстве или распределенным способом через некоторое число физических и виртуальных клиентов и серверов. Они также могут быть осуществлены в некластерных системах или кластерных системах, использующих некоторое число узлов, взаимодействующих через одну или более сетей (например, сеть (сети) 490).

Такая система может содержать любую топологию серверов, клиентов, провайдеров услуг Internet и среды связи. Также система может иметь статическую или динамическую топологию. Понятие “клиент” может относиться к клиентскому приложению или клиентскому устройству. Несмотря на то что сетевая система, осуществляющая кэширование совместно используемых настраиваемых данных, может включать в себя значительно больше компонентов, необходимые компоненты обсуждены в связи с этой фигурой.

Приложения, связанные с системой CRM, могут быть осуществлены в отдельных клиентских устройствах 481-483 или могут быть выполнены в сервере 492, и доступ к ним может быть осуществлен из любого из клиентских устройств (или приложений). Подобным образом услуга кэширования совместно используемых настраиваемых данных, связанная с системой CRM, может быть выполнена локально в одном из клиентских устройств или, более типично, в одном или более серверов (например, сервере 492), и доступ к ней может быть осуществлен с помощью клиентского устройства (или приложений).

Памяти данных, связанные с кэшированием совместно используемых настраиваемых данных в системе CRM, могут быть осуществлены в одной памяти данных, такой как память 496 данных, или могут быть распределены через некоторое число памятей данных, связанных с отдельными клиентскими устройствам, серверами и тому подобными. Специализированные серверы баз данных (например, сервер 494 базы данных) могут быть использованы для того, чтобы координировать извлечение и сохранение данных в одной или более таких памятей данных.

Сеть (сети) 490 может включать в себя защищенную сеть, такую как сеть предприятия, незащищенную сеть, такую как беспроводная открытая сеть, или Internet. Сеть (сети) 490 обеспечивает связь между узлами, описанными выше. В качестве примера, а не ограничения, сеть (сети) 490 может включать в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, RF, инфракрасная и другие беспроводные среды.

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

Фиг.5 и связанное обсуждение предназначены для того, чтобы предоставить краткое общее описание подходящей вычислительной среды, в которой могут быть осуществлены варианты осуществления. Со ссылкой на фиг.5 проиллюстрирована блок-схема иллюстративной вычислительной операционной среды, такой как вычислительное устройство 500. В базовой конфигурации вычислительное устройство 500 может быть сервером или клиентским устройством, обеспечивающим кэширование совместно используемых настраиваемых данных совместно с услугой CRM, и обычно включает в себя, по меньшей мере, одно устройство 502 обработки и системную память 504. Вычислительное устройство 500 также может включать в себя множество устройств обработки, которые взаимодействуют с программами выполнения. В зависимости от точной конфигурации и типа вычислительного устройства системная память 504 может быть энергозависимой (такой как RAM), энергонезависимой (такой как ROM, флэш-память и т.д.) или некоторой их комбинацией. Системная память 504 обычно включает в себя операционную систему 505, подходящую для управления работой сетевого персонального компьютера, такую как операционная система WINDOWS® от MICROSOFT CORPORATION, Редмонд, Вашингтон. Системная память 504 также может включать в себя одно или более приложений программного обеспечения, такие как программные модули 506, приложение 522 CRM и модуль 524 кэширования.

Приложение 522 CRM может быть отдельным приложением или интегральным модулем услуги CRM, который предоставляет услуги управления взаимоотношением с потребителями в клиентские приложения, связанные с вычислительным устройством 500. Модуль 524 кэширования может предоставлять услуги, связанные с определением атрибута уровня настройки запрошенных данных, кэшированием извлеченных данных и предоставлением запрошенных данных или уведомлением о данных в приложение CRM, как описано ранее. Эта базовая конфигурация проиллюстрирована на фиг.5 с помощью компонентов, которые находятся внутри пунктирной линии 508.

Вычислительное устройство 500 может иметь дополнительные признаки или функциональные возможности. Например, вычислительное устройство 500 также может включать в себя дополнительные устройства памяти (сменные и/или несменные), такие как, например, магнитные диски, оптические диски или лента. Такая дополнительная память проиллюстрирована на фиг.5 с помощью сменной памяти 509 и несменной памяти 510. Среда компьютерной памяти может включать в себя энергозависимую и энергонезависимую сменную и несменную среду, осуществленную любым способом или с помощью любой технологии для сохранения информации, например инструкций, доступных для чтения с помощью компьютера, структур данных, программных модулей или других данных. Системная память 504, сменная память 509 и несменная память 510 все являются примерами среды компьютерной памяти. Носители хранения включает в себя RAM, ROM, EEPROM, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другую оптическую память, магнитные кассеты, магнитную ленту, магнитную дисковую память или другие магнитные устройства памяти, но не ограничены этим, или любой другой носитель, который может быть использован для того, чтобы сохранять требуемую информацию, и доступ к которому может быть осуществлен с помощью вычислительного устройства 500. Любой такой носитель хранения может быть частью устройства 500. Вычислительное устройство 500 также может иметь устройство (устройства) 512 ввода, такое как клавиатура, мышь, перо, устройство ввода речи, сенсорное устройство ввода и т.д. Также может быть включено устройство (устройства) 514 вывода, такое как дисплей, громкоговорители, принтер и т.д. Эти устройства широко известны в данной области техники и не требуют подробного обсуждения.

Вычислительное устройство 500 также может содержать соединения 516 связи, которые позволяют устройству взаимодействовать с другими вычислительными устройствами 518 таким способом, как через беспроводную сеть в распределенной вычислительной среде, например внутреннюю сеть или Internet. Другие вычислительные устройства 518 могут включать в себя сервер (серверы), который выполняет приложения, связанные с доступом к данным и обслуживанием каталога. Соединение 516 связи является одним примером среды связи. Среда связи обычно может быть осуществлена с помощью инструкций, доступных для чтения с помощью компьютера, структур данных, программных модулей или других данных в модулированном сигнале данных, таком как сигнал несущей или другой транспортный механизм, и включает в себя любую среду доставки информации. Понятие “модулированный сигнал данных” означает сигнал, который имеет одну или более своих характеристик, установленных или измененных таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, беспроводную среду, такую как акустическая, RF, инфракрасная и другие беспроводные среды. Понятие носителя, доступного для чтения с помощью компьютера, как использовано в настоящей заявке, включает в себя как носители хранения, так и среду связи.

Заявленный предмет изобретения также включает в себя способы. Эти способы могут быть осуществлены любым числом способов, включая структуры, описанные в этом документе. Одним таким способом являются машинные операции устройств типа, описанного в этом документе.

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

Фиг.6 иллюстрирует логическую блок-схему последовательности операций для процесса кэширования совместно используемых настраиваемых данных множества арендаторов. Процесс 600 может быть осуществлен как часть услуги CRM.

Процесс 600 начинается с операции 602, в которой ключ данных и ID арендатора принимают с помощью кэша системы CRM, указывающего запрос данных от арендатора. Обработка переходит от операции 602 к операции 604 принятия решения.

В операции 604 принятия решения выполняют определение, находится ли элемент, связанный с запрошенными данными, в кэше. Элемент может включать в себя список атрибутов для запрошенных данных, определяющий данные, или он может быть “системной сигнальной меткой” или “сигнальной меткой удаления”, указывающими, что элемент выбран для этого арендатора, но либо эквивалентен совместно используемой версии системы, уже находящейся в кэше, либо данные удалены для этого элемента. Если элемент не существует в кэше, обработка переходит к операции 720 процесса 700 на фиг.7.

Если в операции 604 принятия решения элемент обнаруживают в кэше, обработка переходит к операции 606, в которой элемент извлекают из кэш-памяти. Обработка переходит к операции 608 принятия решения от операции 606.

В операции 608 принятия решения выполняют определение, является ли кэшированный элемент “системной сигнальной меткой”. Если является, обработка переходит к операции 610, в которой системные данные, указанные с помощью элемента, извлекают из кэш-памяти. Обработка переходит от операции 610 к операции 612, в которой системные данные предоставляют запрашивающему арендатору. После операции 612 обработка переходит к процессу вызова дополнительных действий.

Если определение в операции 608 принятия решения является отрицательным, обработка переходит к операции 614 принятия решения, в которой выполняют определение, является ли элемент “сигнальной меткой удаления”. Если это справедливо, обработка переходит к операции 616, в которой уведомление, указывающее несуществующие данные, предоставляют запрашивающему арендатору. После операции 616 обработка переходит к процессу вызова дополнительных действий.

Если определение в операции 614 принятия решения является отрицательным, это указывает, что данные, извлеченные из кэш-памяти, представляют настройки, специфические для арендатора с данным ID. Обработка переходит к операции 618, в которой извлеченные данные предоставляют запрашивающему арендатору. После операции 618 обработка переходит к процессу вызова дополнительных действий.

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

Процесс 700 начинается с операции 720 после отрицательного определения в операции 604 принятия решения процесса 600. В операции 720 запрошенные данные извлекают из базы данных, связанной с запрашивающим арендатором. Обработка переходит от операции 720 к операции 722 принятия решения.

В операции 722 принятия решения выполняют определение, равен ли уровень настройки для запрошенных данных 0, указывающему системный уровень, ненастроенные данные. Если уровень настройки равен 0, обработка переходит в точку 724 принятия решения.

В точке 724 принятия решения кэш определяет, содержит ли уже кэш-память копию системных (ненастроенных) данных для элемента с данным ключом. Если системные данные уже не существуют в кэш-памяти, обработка переходит к операции 725.

В операции 725 данные, извлеченные для этого арендатора, вставляют в кэш-память как системные (ненастроенные) данные, где они могут быть извлечены для этого или других арендаторов, требующих системных (ненастроенных) данных в будущем. Обработка переходит от операции 725 к операции 726.

Если определение в операции 724 принятия решения является положительным, это означает, что системные (ненастроенные) данные для данного ключа уже существуют в кэш-памяти. Обработка переходит к операции 726. В операции 726 “системную сигнальную метку” вставляют в кэш-память для извлеченных данных и запрашивающего арендатора. Обработка переходит к операции 728 от операции 726.

В операции 728 системные данные предоставляют запрашивающему арендатору. После операции 728 обработка переходит к процессу вызова дополнительных действий.

Если определение в операции 722 принятия решения является отрицательным, обработка переходит к операции 730 принятия решения, в которой выполняют определение, равен ли уровень настройки для запрошенных данных 2, указывающей несуществующие данные. Если уровень настройки равен 2, обработка переходит к операции 736.

В операции 736 “сигнальную метку удаления” вставляют в кэш-память для извлеченных данных и запрашивающего арендатора, указывающую, что данные удалены в базе данных арендатора. Обработка переходит к операции 738 от операции 736.

В операции 738 уведомление о том, что данные больше не существуют, предоставляют запрашивающему арендатору. После операции 738 обработка переходит к процессу вызова дополнительных действий.

Если определение в операции 730 принятия решения является отрицательным, обработка переходит к операции 732, в которой данные с данным ключом и ID арендатора вставляют в кэш-память, поскольку известно, что они являются данными, которые являются специальными для запрашивающего арендатора. Обработка переходит к операции 734 от операции 732.

В операции 734 извлеченные настроенные данные предоставляют запрашивающему абоненту. После операции 734 обработка переходит к процессу вызова дополнительных действий.

Операции, включенные в процессы 600 и 700, предоставлены только с целью иллюстрации. Кэширование совместно используемых настраиваемых данных множества арендаторов может быть осуществлено с помощью подобных процессов с меньшим числом этапов или дополнительными этапами, а также в разной последовательности операций с использованием принципов, описанных в настоящей заявке.

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

1. Способ, выполняемый, по меньшей мере, частично в вычислительном устройстве, предназначенный для обработки настраиваемых данных в среде множества арендаторов, причем способ содержит этапы, на которыхпринимают запрос данных от арендатора (602),определяют, сохранен ли объект, связанный с запрошенными данными, в кэш-памяти (604),если объект сохранен и является сигнальной меткой удаления, предоставляют уведомление о несуществующих данных запрашивающему арендатору (616),если объект сохранен и является системной сигнальной меткой, извлекают запрошенные данные из кэш-памяти и предоставляют данные запрашивающему арендатору (610, 612), и,если объект сохранен и является запрошенными данными, которые настроены для арендатора, предоставляют настроенные запрошенные данные запрашивающему арендатору (618).

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