Устройство мониторинга, использующее множество серверов, оптимизированных для разных типов связи

Иллюстрации

Показать все

Изобретение относится к системе мониторинга электронного устройства. Технический результат – уменьшение времени, требуемого для администратора или владельца устройства для активации меры безопасности на удаленном устройстве. Для этого используются два разных типа серверов для осуществления связи с электронными устройствами пользователей. Один тип сервера, которым может быть сервер быстрого контакта, оптимизирован или сконфигурирован для относительно короткой и частой связи с электронными устройствами. Другой тип сервера оптимизирован или сконфигурирован для менее частой, но (обычно) более длительной связи с электронными устройствами. В некоторых вариантах осуществления электронные устройства выполнены с возможностью относительно частого осуществления связи (например, каждые несколько минут) с сервером быстрого контакта. Когда электронное устройство объявлено как потерянное или украденное, сервер быстрого контакта может дать инструкцию электронному устройству осуществить контакт с другим типом сервера, чтобы получить соответствующие безопасности инструкции. 3 н. и 28 з.п. ф-лы, 20 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

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

УРОВЕНЬ ТЕХНИКИ

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

Переносные компьютеры, и в возрастающей степени другие электронные устройства, такие как сотовые телефоны, PDA, интеллектуальные телефоны (например Blackberry™, iPhone™), flash-накопители, персональные медиаустройства (например iPod™), игровые устройства, планшетные компьютеры, электронные книги и персональные компьютеры, часто удаленно отслеживаются, так чтобы они могли быть возвращены при событии кражи. Такое отслеживание может быть осуществлено посредством отправки информации о местоположении на сайт удаленного хранилища, сервер электронной почты или персональное мобильное электронное устройство.

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

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

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

Фиг. 1 является базовой блок-схемой системы быстрого контакта в соответствии с вариантами осуществления раскрытого объекта изобретения.

Фиг. 2 является принципиальной схемой пакета быстрого контакта, отправленного устройством на сервер быстрого контакта.

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

Фиг. 4 является схемой последовательности операций процесса, выполняемого устройством в системе быстрого контакта в соответствии с вариантами осуществления раскрытого объекта изобретения.

Фиг. 5 является схемой последовательности операций процесса, выполняемого сервером быстрого контакта.

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

Фиг. 7 является диаграммой последовательностей для обеспечения возможности осуществления быстрого вызова устройства.

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

Фиг. 10 является диаграммой последовательностей для обновления настройки осуществления быстрого вызова.

Фиг. 11 является диаграммой последовательностей для принудительного осуществления агентского вызова на главный сервер.

Фиг. 12 является диаграммой последовательностей для активации действий по обеспечению безопасности.

Фиг. 13 является базовой блок-схемой альтернативного варианта осуществления системы быстрого контакта со службой консолидации.

Фиг. 14 является диаграммой последовательностей для конфигурации устройства.

Фиг. 15 является диаграммой последовательностей для обновления параметров устройства.

Фиг. 16 является диаграммой последовательностей для запуска сервера быстрого контакта.

Фиг. 17 является диаграммой последовательностей для опроса на предмет ожидающих обновлений параметров устройства или на предмет принудительных вызовов.

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

Фиг. 19 является диаграммой последовательностей для быстрого вызова, когда есть ожидающее обработки обновление параметров или принудительный вызов.

Фиг. 20 является базовой блок-схемой альтернативного варианта осуществления системы быстрого контакта с многочисленными серверами консолидации.

ПОДРОБНОЕ ОПИСАНИЕ КОНКРЕТНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

A. Терминология

Агент. Как используется в настоящем документе, агент является программным, аппаратным или программно-аппаратным агентом, который в идеале постоянен и незаметен. Обычно, агент включает в себя или состоит из исполняемых инструкций, которые находятся в читаемой процессором памяти в компьютере или другом электронном устройстве. Агент обычно предоставляет функции обслуживания, которые требуют связь с удаленным сервером. Предпочтительно, агент является устойчивым к взлому, и может иметь возможность поддержки и/или предоставления различных услуг, таких как удаление данных, защита межсетевым экраном, шифрование данных, отслеживание местоположения, уведомление сообщением, развертывание программного обеспечения и обновлений. Иллюстративный вариант осуществления агента обнаружен в коммерчески доступном продукте Computrace Agent™. Технология, лежащая в основе Computrace Agent™, была раскрыта и запатентована в США и других странах, чьи патенты были в общем присвоены Absolute Software Corporation. См., например, патенты США №5715174; 5764892; 5802280; 6244758; 6269392; 6300863; 6507914; 7818803; 7945709 и родственные иностранные патенты. Подробности постоянной функции агента раскрыты в публикациях патентных заявок США № US 2005/0216757 и US 2006/0272020. Технические раскрытия этих документов полностью включены в настоящий документ посредством ссылки в полном объеме. Допустимо использовать эквивалентный агент для Computrace Agent™, или менее предпочтительно может быть использован альтернативный агент с меньшей функциональностью. В целях настоящего раскрытия, минимальным функциональным атрибутом агента является способствование связи между электронным устройством и центром мониторинга или другим удаленным компьютером или сервером. Связь в основном инициируется агентом.

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

Электронный серийный номер (ESN). Уникальный номер, который идентифицирует устройство или агента внутри устройства. ESN может храниться в памяти и/или в регистре в устройстве.

Жетон, публичный жетон или жетон аутентификации. Это зашифрованный ESN, и он может быть защищен посредством хэша.

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

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

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

Быстрый вызов. Связь между устройством и RCS, которая может быть односторонней связью от устройства к RCS. Быстрый вызов может приводить или может не приводить к ответу от RCS. Он может приводить к сеансу быстрого контакта, который является коротким сеансом между устройством и RCS. Быстрый вызов может также называться скоростным вызовом, или FC.

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

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

Запланированный обычный вызов. Обычный вызов, который происходит в запланированное время.

Немедленный обычный вызов, или принудительный вызов. Обычный вызов, который запрашивается во время связи с RCS и происходит во время, отличное от времени для запланированного обычного вызова.

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

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

B. Примерный вариант осуществления

Условная блок-схема предпочтительного варианта осуществления системы 10 быстрого контакта показана на Фиг. 1. Система 10 предназначена для защиты электронных устройств, таких как устройства 12 посредством предоставления эффективных средств для своевременного контактирования с ними и управления ими удаленно. На практике, в системе может быть до нескольких миллионов или более таких устройств 12. Устройства 12 соединяются посредством сети 18 с RCS 30 и главным сервером 52. Сеть 18 может быть Интернетом, или включать в себя Интернет, или она может быть, или включать в себя, телекоммуникационной сетью. Соединения между устройствами 12 и сетью 18 могут быть проводными или беспроводными, и устройства могут быть соединены с сетью постоянно или соединяться периодически.

Агент 14 в каждом электронном устройстве 12 предписывает устройствам вызывать RCS 30 регулярно, или почти так. RCS 30 содержит процессор 32, который может содержать одно или более процессорных ядер 34, соединенный с базой данных 35 и памятью 36, и выполненный с возможностью обработки машиночитаемых инструкций в фиксированном, относительно небольшом пуле 40 потоков 42. В этом примере число потоков в два раза больше ядер процессора. В системе с 24-ядерным процессором, например, может быть 48 потоков в пуле 40 потоков. В других вариантах осуществления, возможны другие соотношения. Вызовы могут совершаться примерно каждые 30 минут, например, или при другом соответствующем временном цикле. Вызов в некоторых вариантах осуществления состоит из отправки одиночного, небольшого пакета 20, содержащего электронный серийный номер (ESN) 16 устройства, в порт 24 завершения ввода/вывода RCS 30. ESN 16 может быть включен в небольшой пакет 20 в зашифрованном виде, например, в виде жетона 17. Каждый из одиночных пакетов данных, отправленных в RCS 30, обычно содержит в общем 10-100 байтов. Небольшой пакет 20 становится задачей 44, которая должна быть обработана каждым потоком 42.

Когда задача 44 обработана посредством RCS 30 в потоке 42, любые остающиеся заголовки и контрольные суммы и т.д. выделяются из небольшого пакета 20, и HTTP-команда интерпретируется процессором 32 для выявления ESN 16 устройства 12, которое отправило пакет, что может предусматривать расшифровку жетона 17, если ESN 16 был отправлен в нем зашифрованным. Процессор 32 затем предпринимает действие, или нет, в зависимости от ESN 16, который был выявлен. ESN и соответствующие ожидающие действия могут храниться в базе данных 35. Таким действием, например, может быть осуществление запроса установления сеанса, в случае чего он будет коротким сеансом. В таком сеансе быстрого контакта, в котором может обмениваться около 700 байтов или менее данных, RCS 30 может отправить инструкцию устройству 12 вызвать главный сервер 52, который настроен для относительно продолжительной связи с устройствами. Агент может использовать разные соответствующие протоколы связи для осуществления связи с RCS 30 в противоположность главному серверу 52. Например, протокол, используемый для RCS-связи может быть оптимизирован (например, посредством сокращенного опознания и меньших размеров сообщений) для относительно короткой, частой связи относительно протокола, используемого для связи с главным сервером.

Например, устройство 12 может быть помечено в системе 10 как украденное. Владелец устройства 12 может сделать это с использованием компьютера 61 или другого электронного устройства, чтобы осуществить доступ к главному серверу 52 для ввода статуса устройства 12 как украденного. Такой статус устройства хранится в базе данных 55 на главном сервере 52, или к которой он имеет доступ, и в базе данных 35, к которой имеет доступ RCS 30. В этом случае устройству, при осуществлении вызова RCS 30, будет дана инструкция вызвать главный сервер 52, который затем даст инструкцию устройству предоставить свое местоположение главному серверу, вызывать главный сервер более часто, или войти в приостановленное состояние. В качестве другого примера, сеанс быстрого контакта может быть использован для отправки обновленных параметров из RCS 30 на устройство 12, таких как обновленный интервал быстрых вызовов. В качестве альтернативы, устройство 12 может быть помечено в системе 10 для отправки сообщения, которое может быть отправлено во время вызова с главным сервером 52. Если устройство 12 не было помечено как украденное, и не помечено для чего-либо еще, что потребовало бы обычный вызов, RCS 30 может не отправлять какой-либо ответ на устройство, так как это было бы необязательно и излишне занимало бы полосу пропускания сети. Однако, система 10 может в качестве альтернативы быть сконфигурирована для RCS 30 для отправки ответа "HTTP Status" 200 (т.е. "сообщение принято") на устройство, или другого подходящего подтверждения. Еще в качестве альтернативы, если нет ожидающего действия для устройства 12, RCS 30 может отправить сообщение отсоединения обратно на устройство, или просто отсоединиться.

Сеансы быстрого контакта между устройством 12 и RCS 30 могут также быть использованы для задания нового жетона авторизации, где устройство или агент 14 в устройстве еще не имеет жетона авторизации, имеет недействительный жетон авторизации, или должен иметь жетон авторизации, замененный из-за содержимого политики безопасности. Сеанс быстрого контакта может также быть использован для задания времени для следующего запланированного обычного вызова на главный сервер 52. Сеанс быстрого контакта может быть использован для перенаправления обычных агентских вызовов на другой главный сервер, такой как главный сервер специально для управления операциями удаления данных, или главный сервер для управления шифрованием. Если устройство 12 было украдено, сеанс быстрого контакта может перенаправить агентский вызов на другой главный сервер, который имеет дело конкретно с украденными устройствами. Сеансы быстрого контакта могут также быть использованы для изменения временного интервала между быстрыми вызовами, или для перенаправления быстрых вызовов в другую RCS. Сеансы быстрого контакта могут также быть использованы для сообщения содержимого полей в агенте 14 или устройстве 12. В некоторых случаях, может быть переслано примерно до 4 КБ данных. Другие процессы могут также быть реализованы во время сеанса быстрого контакта, причем главным требованием является то, чтобы сеанс являлся достаточно коротким, чтобы не требовать выделенных потоков обработки, и достаточно коротким, чтобы существенно не нарушать эффективное функционирование RCS 30 относительно других устройств 12, которые совершают в нее быстрые вызовы. Большинство времени устройства 12 совершают вызовы в RCS 30, на которые не отвечают, или для которых не требуется действие.

Электронные устройства 12 могут осуществить вызов главного сервера 52 после получения команды сделать так от RCS 30. Устройства 12 могут также вызывать главный сервер 52 регулярно, почти регулярно, полупериодически, полуслучайно или в результате обнаружения пускового сигнала, или согласно любой желаемой программируемой схеме. Главный сервер 52 содержит процессор 54, соединенный с базой данных 55 и памятью 56, и может быть выполнен с возможностью обработки машиночитаемых инструкций при относительно большом числе потоков 58. Потоки 58 предпочтительно не образуют часть пула. В отличие от RCS 30, есть предпочтительно по меньшей мере один поток 58, выделенный каждому сеансу 60. Вызовы могут совершаться примерно каждые 24,5 часа, например, или при любом другом соответствующем временном цикле. Связь 50 от устройства 12 с главным сервером 52 обычно по меньшей мере в 10-10000 раз (т.е. на 1-4 порядка величины) дольше, чем связь с RCS 30. Такой сеанс связи содержит обычно между 10-500 пакетов 51, каждый до 1500 байтов в длину. Задачи 62 в каждом сеансе 60, обрабатываемые соответствующим потоком 58, обычно являются большими по сравнению с задачами 44, обрабатываемыми в RCS 30. В обычной системе, в главном сервере 52 могут поддерживаться не менее 8000 или более сеансов, каждый по меньшей мере с одним выделенным потоком. Число сеансов ограничено объемом RAM, или памятью 56.

База данных 55 хранит задачи, обновления и команды и т.д., которые должны быть переданы на каждое устройство 12. Всегда, когда владельцу или администратору устройства 12 нужно изменить запись статуса устройства, принудительно осуществить немедленный обычный вызов, или получить текущие параметры устройства, и т.д., это все может быть сделано с использованием компьютера 61 или другого соответствующего устройства, соединенного с сетью 18. Если данные должны быть удалены с устройства 12, или устройство должно быть заблокировано, эти команды тоже могут быть переданы на главный сервер 52 через компьютер 61. Устройства могут быть сгруппированы, и коллективно может быть запрошено включение и отключение осуществления быстрого вызова администратором такой группы устройств, через компьютер 61, например. Главный сервер 52 может передать информацию о статусе осуществления быстрого вызова для устройства 12, о котором идет речь, на компьютер 61. Такой информацией может быть, обеспечена ли в настоящее время устройству 12 возможность осуществления быстрого вызова, осуществляет ли устройство в настоящее время вызов или находится в режиме "оффлайн", и время последнего быстрого вызова. Главный сервер 52 осуществляет связь с RCS 30 время от времени, так чтобы база данных 35 в RCS могла быть обновлена с использованием действий для устройства во время ее последующего быстрого вызова. Например, база данных 35 RCS может быть обновлена для предписания RCS дать инструкцию устройству 12 вызвать главный сервер 52; устройство может ответить на такую инструкцию немедленным вызовом главного сервера, или в другой момент до его следующего регулярно-запланированного вызова на главный сервер.

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

Главный сервер 52 отвечает за главную связь с устройствами 12, которая может включать в себя сообщения от сервера, чтобы дать команду устройству предоставить свое местоположение серверу, удалить данные, отправить идентификационную информацию некоторых или всех из его компонентов, или предпринять какой-либо вид действия по обеспечению безопасности. Главный сервер 52 может также передать обновления на устройства 12. Так как главный сервер 52 допускает относительно длительную связь и выполняет относительно продолжительные задачи, при которых сеанс 60 удерживается активным и поддерживается его контекст или состояние, для каждого сеанса связи используется один или более выделенных потоков. В отличие от этого, RCS 30 не отслеживает или очень минимально отслеживает состояние, и так невыделенные потоки могут быть использованы в RCS. Это также верно как для быстрых вызовов, так и для сеансов быстрого контакта, которые могут быть запрошены посредством RCS 30, и последовательные пакеты, отправленные устройствами 12 в RCS, в таком сеансе быстрого контакта, могут быть обработаны любым из потоков 42.

Для того чтобы сеанс быстрого контакта имел предварительно определенные состояния, должны поддерживаться, например, чтение и запись всего массива из 516 байтов, со всеми необходимыми изменениями, проводимыми внутри RCS 30. Агент 14 может обеспечить возможность такого изменения настроек во время защищенных сеансов быстрого контакта, или RtlCopyMemory Windows™ API (интерфейс программирования приложений) может быть использован для того, чтобы записывать настройки в память и затем копировать их в адрес настроек. Первый подход быстрее, так как он требует только одну транзакцию. При втором подходе, агент должен обнаружить адрес стандартной программы RtlCopyMemory до начала сеанса быстрого контакта.

Быстрые вызовы от устройства 12 в RCS 30 и сеансы быстрого контакта между ними гораздо короче, чем обычные вызовы на главный сервер 52, и могут быть короче на несколько порядков величины. Целью этих быстрых вызовов является дать RCS 30 знать о сетевой доступности устройств и обеспечить систему быстрого контакта 10 средством для своевременного создания обычного вызова между устройствами 12 и главным сервером 52, если необходимо. Например, украденное электронное устройство может быть помечено в качестве такового в системе быстрого контакта 10, и более конкретно в RCS 30 и главном сервере 52. Когда устройство 12, которое украдено, вызывает RCS 30, ему будет дана инструкция посредством RCS немедленно вызвать главный сервер 52 для более исчерпывающих инструкций, которые могут включать в себя команду удаления данных, команду блокировки, и т.д. Это предотвращает забивание RCS 30 продолжительными задачами, в то же время устраняя период ожидания, которым обычно руководствуется устройство, если ему приходится ждать до его следующего запланированного времени для осуществления вызова главного сервера 52. Относительно низкое число потоков 42 в пуле 40 потоков предназначено для работы с относительно большим числом небольших задач 44 от большого числа устройств 12, для связи, для которой не нужно поддержание состояния, или для которой есть несколько предсказываемых значений состояния, которые могут быть отслежены без необходимости потоков, которые выделены сеансу.

Пул 40 потоков используется в RCS 30, так как создание потока не особенно дешевое в том, что касается использования процессора, и наличие пула уже ожидающих потоков делает распределение и обработку входящих задач 44 более эффективными, особенно если число потоков оптимизировано. Для того чтобы максимизировать эффективность процессора 32 в RCS 30, код для обработки небольших пакетов 20 должен в идеале удерживаться в минимальном количестве, и должен быть отдельным от кода в главном сервере 52, который используется для обработки обычной связи. Это обеспечивает RCS 30 возможность обработки стольких одновременных вызовов, сколько возможно, в зависимости от ресурсов операционной системы и пропускной способности сети.

Связь между устройствами 12 и RCS 30 использует порт 24 завершения, который обеспечивает потокам возможность пробуждения для обработки любой операции I/O. Контекст каждого сеанса удерживается в поточно-ориентированном словаре и становится активным как только завершается соответствующая операция I/O. Контекст сеанса поддерживает состояние текущего сеанса, который обеспечивает RCS 30 возможность продолжения текущего сеанса. Во время обработки текущего сеанса, все блокирующие операции, включающие в себя связь с базой данных 55, должны быть предотвращены или выгружены в другие, специальные потоки или пулы потоков в RCS 30 для того, чтобы гарантировать, что поток 40, используемый для сеанса быстрого контакта, станет доступным для другой завершенной операции I/O как только возможно.

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

Помимо потоков обработки I/O и сеанса быстрого контакта, RCS 30 должна иметь интерфейс обратного вызова, доступный для вызова из внешней базы данных (например базы данных 35, если она осуществлена в отдельном от RCS 30 сервере) в отношении специального потока с использованием TCP-связи на конкретном порту. RCS 30 может также иметь поддержку счетчиков эксплуатационных характеристик, создание отчетов, осуществление запроса к внешней базе данных во время запуска, вхождения в систему, и т.д.

Обращаясь к Фиг. 2, показан пример небольшого пакета 20, отправленного из устройства 12 в RCS 30. Небольшой пакет 20 имеет участок 63 заголовка, который может, например, включать в себя заголовок протокола Интернета, TCP-заголовок и различные контрольные суммы. В зависимости от протоколов, используемых для передачи, участок 63 заголовка может быть 20 байтов в длину. Вслед за участком 63 заголовка идет участок данных, который образован из HTTP-запроса 64, такого как POST-запрос, и участок 65 идентификации, который может содержать ESN 16 устройства 12. В зависимости от конкретного случая, HTTP-запрос 64 может быть 156 байтов в длину, например, и участок 65 идентификации может быть 24 байта в длину. В итоге, пакет 20 может вследствие этого быть 200 байтов в длину. В зависимости от выбранной конфигурации, небольшой пакет в других вариантах осуществления может иметь разные длины участков и разную итоговую длину. Главным требованием является то, что пакет 20 является небольшим пакетом, особенно при сравнении с пакетами 51 связи с главным сервером 52, и содержит минимальную информацию, обычно только достаточную для идентификации устройства 12, которое осуществляет вызов.

Участок 65 идентификации может быть публичным жетоном, который сгенерирован на основе ESN для устройства 12 и хранится в RCS 30. RCS 30 хранит ключ для подтверждения достоверности жетона и преобразования его в ESN.

Например, участок данных (т.е. HTTP-запрос 64 и участок 65 идентификации) небольшом пакете 20 может быть таким, как следует ниже:

POST/HTTP/1.1..User-Agent: Moxilla/5.0 (compatible; MSIE 8.0;)..

Host: a.fc.namequery.com..Content-Length: 24..Connection: Keep-Alive.. Pragma:

no-cache...1.Δ.Λ©..^Esè¾dO¼..μGuö..

Обращаясь к Фиг. 3, показан пример обычного пакета 51, отправленного из устройства 12 на главный сервер 52, или наоборот. Обычный пакет 51 имеет участок 67 заголовка, который может, например, включать в себя заголовок протокола Интернета, TCP-заголовок и различные контрольные суммы. В зависимости от протоколов, используемых для передачи участка 67 заголовка, может быть 20 байтов в длину. Следом за участком 67 заголовка идет участок 68 данных, который может содержать подробную идентификационную информацию компонентов в устройстве 12, местоположение устройства, файлы, хранящиеся на устройстве, статусы устройства, сведения о программном обеспечении, установленном на устройстве, и т.д., так же как и ESN 16 устройства. В зависимости от конкретного случая, участок 68 данных пакета 51 может быть почти до 1500 байтов в длину, например. Главным моментом является то, что пакеты 51 могут быть, и в общем таковыми являются, большими, особенно, при сравнении с пакетами 20 связи для RCS 30, и могут содержать исчерпывающую информацию и команды.

Обращаясь к Фиг. 4, показана функциональная схема последовательности операций, представляющая процесс, который может быть начат системой 10 для настройки центра осуществления быстрого вызова для устройства 12, для случаев, когда устройство еще не настроено для совершения быстрых вызовов в RCS 30, но настроено для совершения вызовов на главный сервер 52. Элемент действия по настройке устройства 12 для быстрого контакта помечается заранее в базе данных 55 в главном сервере 52. На этапе 70, обычный вызов на главный сервер 52 совершается устройством 12. На этапе 72, устройство 12 принимает команду от главного сервера начать осуществление вызова RCS 30, чей URL также предоставляется устройству, также как необходимый код обновления для агента 14. Частота осуществления быстрого вызова может также быть предоставлена устройству 12, в виде временного интервала, который должен пройти между последовательными быстрыми вызовами. Агент 14 устройстве 12 затем, на этапе 74, обеспечивает устройству возможность совершения быстрых вызовов в RCS 30. Например, это может быть реализовано посредством задания битового флага в агенте для указания, что оно должно совершать быстрые вызовы. На этапе 76, устройство 12 совершает быстрый вызов в RCS 30. На этапе 78, RCS 30 определяет, должен ли быть открыт сеанс быстрого контакта с устройством 12. Если сеанс быстрого контакта должен быть открыт, например, если нет срочной необходимости совершения обычного вызова, то, на этапе 80, агент 14 в устройстве 12 определяет, наступило ли время для запланированного обычного вызова на главный сервер 52. Если не наступило время для такого запланированного обычного вызова, то процесс возвращается на этап 76, на котором последующий быстрый вызов RCS 30 совершается после прошествия заданного интервала времени для осуществления быстрого вызова. Если наступило время для запланированного обычного вызова, то обычный вызов главного сервера совершается на этапе 82. Возвращаясь на этап 78, если должен быть открыт сеанс быстрого контакта с RCS 30, то, на этапе 84, RCS запрашивает, чтобы устройство 12 открыло сеанс. Если, во время сеанса быстрого контакта, на этапе 86, немедленный обычный вызов не должен быть совершен, то процесс возвращается на этап 80, на котором агент определяет, должен ли запланированный обычный вызов быть совершенным в любом случае. Однако, если на этапе 86, во время сеанса быстрого контакта, устройство 12 должно вызвать главный сервер 52, то процесс переходит к этапу 82, на котором устройство совершает немедленный вызов на главный сервер.

Напротив, владелец или администратор устройства 12 могут проинформировать главный сервер 52, что функциональная возможность быстрого контакта должна бы