Распределенные вычисления на основе идентичности для ресурсов устройств

Иллюстрации

Показать все

Изобретения относится к средствам для обнаружения и описания вычислительных ресурсов, имеющихся в различных вычислительных устройствах, а также для открытия этих ресурсов в качестве служб, которые адресуются программными приложениями. Техническим результатом является повышение эффективности обработки. В способе данные, описывающие ресурсы, компонуются на основе идентичности. Вычислительные ресурсы включают в себя: емкость запоминающего устройства, полосу пропускания, вычислительную мощность, механизм ввода и механизм воспроизведения. Система основана на идентичности вычислительных устройств, в результате чего пользователь получает доступ к распределенным ресурсам, соответствующим этой идентичности. 4 н. и 25 з.п. ф-лы, 7 ил., 1 табл.

Реферат

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

Настоящее изобретение относится в целом к вычислительным системам и, в частности, касается вычислительных ресурсов.

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

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

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

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

При использовании технологии.NET средства контроля идентичности пользователя (либо другого объекта) обращаются к централизованно поддерживаемым данным, например, пользователь может использовать сервис.NET Inbox, поддерживающий его (или ее) централизованно хранящихся данных электронной почты (например, в сети Интернет или в интрасети), а затем обратиться к этим данным через сервис.NET Inbox в любой момент с любого устройства, способного подсоединиться к сети Интернет или к интрасети и имеющего программу, способную взаимодействовать с сервисом.Net Inbox. Идентичность пользователя используется для надежной привязки пользователя к соответствующим данным. Пользователям может также быть разрешен доступ к данным под контролем других пользователей, например, пользователь может избирательно создать определенную информацию для деловых контактов, доступную только его деловым партнерам, создать информацию для личных контактов, доступную только его друзьям, и т.п. на основе идентичности других пользователей.

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

Вычислительные ресурсы могут представлять собой, например, емкость памяти устройств, полосу пропускания, вычислительную мощность (например, возможности центрального процессора (ЦП) и ОЗУ), механизмы и способы ввода, механизмы и способы визуального воспроизведения и другие средства вывода (например, экраны, принтеры и акустические устройства) и программы. Таким образом, устройство абстрагируется от своих ресурсов, после чего их адресация может выполняться программным путем от других устройств по составной схеме (например, удаленные ресурсы могут быть заданы таким образом, что они, в свою очередь, включают в себя более мелкие ресурсы, входящие в более полное описание ресурса). Другими словами, для того чтобы устройства принимали участие в функционировании интеллектуальной модели распределенных вычислений, необходимо абстрагироваться от различных аспектов каждого участвующего устройства и предоставить возможность программной адресации со стороны других устройств. Унифицированный механизм на основе идентичности находит список удаленных ресурсов в устройстве. Набор из одной или нескольких схем унифицировано описывает удаленные ресурсы в устройстве, а унифицированная модель защиты позволяет владельцу устройства обеспечивать управление (выделением ресурсов), указывая, кто и к каким ресурсам имеет доступ, а также до какой степени он разрешен.

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

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

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

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

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

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

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

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

Фиг. 7 - блок-схема, представляющая в общем виде пример реализации изобретения, включая ресурсы, распределенные согласно одному аспекту настоящего изобретения.

Примеры вариантов операционной среды

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

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

Обратимся к Фиг. 1А, на которой представлен пример системы для реализации изобретения, причем система включает в себя вычислительное устройство общего назначения в виде компьютера 110. Компоненты компьютера 110 могут включать в себя, но не только: блок 120 обработки, системную память 130 и системную шину 121, которая соединяет различные системные компоненты, включая системную память, с блоком 120 обработки. Системная шина 121 может представлять собой шинную структуру любого из нескольких типов, в том числе: шину памяти или контроллер памяти, периферийную шину и локальную шину с использованием любой из различных шинных архитектур. Как пример, но не ограничение, указанные архитектуры включают в себя: архитектуру шины промышленного стандарта (ISA), микроканальную архитектуру шины (МСА), расширенную архитектуру шины промышленного стандарта (EISA), архитектуру локальной видеошины для ПК (VESA) и архитектуру межсоединений периферийных компонентов (PCI), известную также, как шина Mezzanin. Заметим, что любой из элементов, показанных в компьютере 110, может быть соединен с любым другим элементом через стандартные высокоскоростные компьютерные сети, включая сети, распределенные по обширному географическому региону. Например, системная память 130 может быть локализована не в том месте, где находится блок 120 обработки, но определена как составная часть логического компьютера 110.

Компьютер 110 обычно включает в себя множество различных машинно-считываемых сред. Машинно-считываемая среда может представлять собой любые имеющиеся носители, которые могут быть доступны компьютеру 110, причем эти носители включают в себя: энергозависимые и энергонезависимые носители, а также съемные и несъемные носители. Как пример, но не ограничение, машинно-считываемые носители могут включать в себя компьютерные носители для сохранения (запоминания) и среду для связи. Компьютерные носители для запоминания включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым методом или по любой технологии сохранения информации, такой как машинно-считываемые команды, структуры данных, программные модули или другие данные. Компьютерная запоминающая среда включает в себя, но не только: ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ (ЭСППЗУ), флэш-память, либо память, реализованную по другой технологии, ПЗУ на компакт диске, цифровые многофункциональные диски (DVD), либо другое оптическое дисковое запоминающее устройство, магнитные кассеты, магнитную ленту, запоминающие устройства на магнитных дисках или другие магнитные запоминающие устройства, либо любые другие носители, которые можно использовать для сохранения требуемой информации и которые могут быть доступны компьютеру 110. Среда для связи обычно содержит машинно-считываемые команды, структуры данных, программные модули либо другие данные в модулированном сигнале данных, таком как сигнал несущей, или другой механизм транспортировки и содержит любую среду для доставки информации. Термин "модулированный сигнал данных" означает сигнал, одна или несколько характеристик которого устанавливаются или изменяются таким образом, чтобы закодировать информацию в этом сигнале. Как пример, но не ограничение, среда для связи включает в себя проводную среду, такую как проводная сеть или прямое проводное соединение, и беспроводную среду, такую как акустическая, радиочастотная, инфракрасная и другие беспроводные среды. К машинно-считываемой среде также следует отнести любые комбинации вышеописанных носителей.

Системная память 130 содержит компьютерную запоминающую среду в виде энергозависимой и/или энергонезависимой памяти, такой как память 131 только для считывания (ПЗУ) и память 132 с произвольной выборкой (ОЗУ). Базовая система 133 ввода/вывода (BIOS), содержащая базовые подпрограммы, которые помогают пересылать информацию между элементами в компьютере 110, к примеру, во время запуска, обычно хранится в ПЗУ 131. ОЗУ 132 обычно содержит данные и/или программные модули, которые непосредственно доступны блоку 120 обработки и/или с которыми в данный момент работает блок 120. К примеру, но не как ограничение, на Фиг. 1А показана операционная система 134, прикладные программы 135, другие программные модули 136 и программные данные 137.

Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители. К примеру, но не как ограничение, на Фиг. 1А показан накопитель 141 на жестких дисках, который выполняет считывание с либо запись на несъемные энергонезависимые магнитные носители, накопитель 151 на магнитном диске, который осуществляет считывание с и запись на съемный энергонезависимый магнитный диск 152, и накопитель 155 на оптическом диске, который выполняет считывание с и запись на съемный энергонезависимый оптический диск 156, к примеру, ПЗУ на компакт-диске, или другой оптический носитель. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители, которые можно использовать в типовой операционной среде, включают в себя, но не только: кассеты с магнитной лентой, платы флэш-памяти, цифровые многофункциональные диски, цифровые видеоленты, твердотельные ОЗУ, твердотельные ПЗУ и т.п. Накопитель 141 на жестких дисках обычно подсоединен к системной шине 121 через несъемный интерфейс памяти, такой как интерфейс 140, а накопитель 151 на магнитных дисках и накопитель 155 на оптическом диске обычно подсоединены к системной шине 121 через съемный интерфейс памяти, такой как интерфейс 150.

Указанные выше и представленные на Фиг. 1А накопители и связанные с ними соответствующие компьютерные носители обеспечивают хранение машинно-считываемых команд, структур данных, программных модулей и других данных для компьютера 110. На Фиг. 1А, например, показан накопитель 141 на жестких дисках, на котором хранится операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147. Заметим, что эти компоненты могут совпадать с либо отличаться от операционной системы 134, прикладных программ 135, других программных модулей 136 и программных данных 137. Операционная система 144, прикладные программы 145, другие программные модули 146 и программные данные 147 указаны здесь с другими ссылочными номерами, чтобы показать, что они, как минимум, являются разными копиями. Пользователь может вводить команды и информацию в компьютер 110 через устройства ввода, такие как: планшет, или электронный кодирующий преобразователь, 164; микрофон 163; клавиатуру 162; указательное устройство 161, обычно называемое "мышью"; шаровой манипулятор или сенсорную клавиатуру. Другими устройствами ввода, не показанными на Фиг. 1А, могут быть джойстик, игровая панель, спутниковая тарелка, сканер или т.п. Эти и другие устройства ввода часто подсоединяют к блоку 120 обработки через пользовательский интерфейс 160 ввода, который соединен с системной шиной, но может быть подсоединен через другой интерфейс и шинные структуры, такие как параллельный порт, игровой порт или универсальную последовательную шину (USB). К системной шине 121 через интерфейс, к примеру, видеоинтерфейс 190, также подсоединен монитор 191 либо устройство отображения другого типа. Монитор 191 может также быть объединен с панелью с сенсорным экраном или подобным средством. Заметим, что монитор и/или панель с сенсорным экраном могут быть физически соединены с корпусом, в котором находится вычислительное устройство 110, такое как персональный компьютер планшетного типа. Кроме того, компьютеры, такие как вычислительное устройство 110, могут также включать в себя другие периферийные устройства вывода, такие как громкоговорители 195 и принтер 196, которые могут быть подсоединены через периферийный интерфейс вывода 194 или т.п.

Компьютер 110 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, такими как удаленный компьютер 180. Удаленный компьютер 180 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, равноправное устройство или другой общий сетевой узел, причем компьютер 180 обычно содержит многие либо все элементы, описанные выше в связи с компьютером 110, хотя на Фиг. 1А представлено только запоминающее устройство 181. Логические соединения, изображенные на Фиг. 1А, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, а также могут включать в себя другие сети. Такие сетевые среды распространены в офисах, корпоративных компьютерных сетях, интрасетях и в сети Интернет. Например, в настоящем изобретении компьютерная система 110 может включать в себя машину-источник, которая выдает данные, а удаленный компьютер 180 может включать в себя машину-адресат. Однако следует заметить, что машина-источник и машина-адресат не обязательно должны быть соединены через сеть либо другие средства, а вместо этого данные могут передаваться посредством любых носителей, на которые платформа источника может записывать данные, а платформа или платформы адресатов могут с них эти данные считывать.

При использовании сетевой среды LAN компьютер 110 подсоединен к LAN 171 через сетевой интерфейс или адаптер 170. При использовании сетевой среды WAN компьютер 110 обычно включает в себя модем 172 или другое средство для установления связи через сеть WAN 173, к примеру, Интернет. Модем 172, который может быть встроенным или внешним, можно подсоединить к системной шине 121 через пользовательский интерфейс 160 ввода либо другой подходящий механизм. В сетевой среде программные модули, изображенные применительно к компьютеру 110, либо их части могут храниться в удаленном запоминающем устройстве. Например, но не как ограничение, на Фиг. 1А показано, что удаленные прикладные программы 185 находятся в устройстве 181 памяти. Очевидно, что показанные сетевые соединения являются лишь примерами и можно использовать другие средства установления связи между компьютерами.

На Фиг. 1В показан пример другой подходящей операционной среды (компьютерное устройство 188), в которой можно реализовать по меньшей мере часть настоящего изобретения. Как и в случае с Фиг. 1А, операционная среда, показанная на Фиг. 1В, является лишь еще одним примером подходящей операционной среды, и этот пример не претендует на какое-либо ограничение сферы использования или функциональных возможностей изобретения. Другое компьютерное устройство 188 на Фиг. 1В обычно включает в себя по меньшей мере какой-то вариант машинно-считываемой среды. Машинно-считываемая среда может представлять собой любую доступную среду (определенную в целом выше), к которой может иметь доступ вычислительное устройство 188.

На Фиг. 1В показаны функциональные компоненты вычислительного устройства 188, такого как переносной (карманный или планшетный) персональный цифровой "секретарь", в том числе: процессор 189, память 190, дисплей 192 и клавиатура 193 (которая может быть реальной или виртуальной). Память 190 обычно включает в себя как энергозависимую память (например, ОЗУ), так и энергонезависимую память (например, ПЗУ, платы PCMCIA (Международная ассоциация производителей плат памяти для персональных компьютеров IBM PC) и т.д.). Операционная система 194, к примеру, операционная система Windows CE от Microsoft Corporation, либо другая операционная система, хранится в памяти 190 и выполняется в процессоре 189.

В память 190 загружены одна или несколько прикладных программ 195, которые выполняются в операционной системе 194. Примерами прикладных программ являются программы электронной почты, программы планирования, программы организации личной информации (PIM), программы текстовой обработки, программы электронных таблиц, поисковые программы для сети Интернет и т.д.

Карманный персональный компьютер 188 может также содержать администратор 196 уведомлений, загруженный в память 190, который выполняется в процессоре 189. Администратор 196 уведомлений обрабатывает запросы уведомлений, например, от прикладных программ 195.

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

На Фиг. 1В приведенный в качестве примера карманный персональный компьютер 188 имеет внешние механизмы уведомления трех типов: один или несколько светодиодов (LED) 198 и генератор 199 акустических сигналов. Эти устройства могут быть напрямую соединены с источником 197 питания, так что при их активизации они остаются включенными в течение временного интервала, заданного механизмом уведомления, даже если процессор 189 и другие компоненты карманного персонального компьютера возможно отключены для экономии энергии батареи. LED 198 предпочтительно остается включенным на неопределенное время, пока пользователь не предпримет какое-либо действие. Заметим, что современные версии генератора 199 акустических сигналов потребляют слишком большую мощность батарей существующих на сегодня карманных персональных компьютеров, и поэтому генератор 199 сконфигурирован таким образом, что он выключается, когда вступают в действие остальные компоненты системы либо по истечении определенного конечного интервала времени после активизации.

РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ

НА ОСНОВЕ ИДЕНТИЧНОСТИ ДЛЯ РЕСУРСОВ УСТРОЙСТВ

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

Настоящее изобретение в целом направлено на обеспечение распределенных вычислений между устройствами пользователя, где пользователь (или владелец/распорядитель) представляет собой лицо, уполномоченное осуществлять управление и/или использование этих устройств. Однако, поскольку нарастает процесс разукрупнения устройств, описанные здесь способы и системы более точно можно определить как распределенные вычисления, выполняемые на множестве ресурсов. Например, одно распределенное устройство может быть представлено в виде множества ресурсов, причем оно может предоставить для совместного использования, как минимум, один свой ресурс (например, только свою энергонезависимую память), участвуя в работе (вычислительной среды) как поставщик ресурсов. Тем не менее, используемые здесь термины "устройство" и "ресурс" обычно являются взаимозаменяемыми за исключением тех случаев, когда иное оговаривается отдельно; например, выражения "использование другого устройства" или "использование ресурса другого устройства" для выполнения определенной вычислительной задачи обычно считаются одинаковыми по смыслу. Ресурсом устройства является также используемый здесь термин "полоса пропускания", хотя обычно полосу пропускания нельзя рассматривать в связи с каким-либо конкретным устройством.

На Фиг. 2 в общем виде представлена распределенная вычислительная среда 200, построенная в соответствии с различными аспектами настоящего изобретения, причем среда 200 включает в себя первое устройство 202 (устройство А, к примеру, компьютерная система 110 по Фиг. 1А) и второе устройство 212 (устройство В, такое как компьютерная система 188 по Фиг. 1В) вместе с множеством других устройств (не показаны). Каждое устройство, участвующее в работе распределенной вычислительной среды 200, включает в себя администратор 204 и 214 распределенных вычислений. В общем случае, и как описано ниже, администраторы 204 и 214 распределенных вычислений могут включать в себя определенное количество программных кодов, которые осуществляют связь друг с другом через некоторую среду, например: беспроводную ЧМ-радиосвязь; связь в пределах прямой видимости, такую как связь в инфракрасном диапазоне, спутниковую связь; связь на основе прямого соединения; связь через Интернет или интрасеть. В действительности может использоваться более одного из указанных видов связи, и администраторы 204 и 214 распределенных вычислений могут выбирать, какой один или несколько видов связи лучше всего подходят для данного случая.

Администраторы 204 и 214 распределенных вычислений изначально предназначены для определения местоположения друг друга. Указанное определение местоположения может выполняться автоматически, к примеру, путем периодической трансляции каждым устройством информации о своем присутствии другим устройствам и/или путем опроса наличия других устройств, либо, в альтернативном варианте, определение местоположения может осуществляться в ответ на какой-либо конкретный запрос от программы (или пользователя) для соединения с другим устройством. Как представлено на Фиг. 2, каждый из администраторов 204 и 214 распределенных вычислений содержит механизмы 206 и 216 защиты соответственно, которые осуществляют обмен верификационными данными 207, 217 или т.п. (например, полученными от службы 220 аутентификации), чтобы гарантировать, что пользователь, эксплуатирующий в данный момент устройство, которое с ним связано, (и/или само это устройство) имеет право работать в распределенной вычислительной среде; и подобным же образом, если это необходимо, механизмы защиты гарантируют, что устройство, с которым установлен контакт, имеет право работать в этой среде. Заметим, что используемая программа также может оказывать влияние на управление защитой/доступом, например, первая программа, выполняемая на одном устройстве, может иметь полномочия на использование ресурса или ресурсов другого устройства, но не другой программы, независимо от, или дополнительно, к идентичности пользователя и/или идентичности устройства. Далее заметим, что механизм защиты может действовать применительно к идентичности или применительно к ресурсу, например, один объект может быть авторизован для использования дисплея устройства, но не его памяти, в то время как другой объект может использовать любой из имеющихся ресурсов этого же устройства, в том числе, его память. Сказанное похоже на модель защиты.NET, в которой сервисы обеспечивают способы управления доступом к данным пользователей на основе идентичности запрашивающего пользователя, заданной роли и области действия этой роли. Таким путем данные могут быть доступны их владельцу и совместно использоваться другими в той степени, которую определил владелец. В настоящем изобретении вместо данных доступ осуществляется к ресурсу устройства, тем самым степень доступности ресурса определяется идентификацией пользователя, заданной ролью и областью действия этой роли.

Действительно, механизмы защиты по настоящему изобретению основаны фактически на тех механизмах, которые используются для управления защитой/доступом в сервисах.NET, описанных в общих чертах в заявках на выдачу патентов США № 10/003754 "IDENTITY-CENTRIC DATA ACCESS" и № 10/003767 "AUTHORIZING A REQUESTING ENTITY TO OPERATE UPON DATA STRUCTURES", поданных 22 октября 2001 года, причем права на них принадлежат владельцу прав на настоящее изобретение, а их содержание включено в настоящее описание посредством ссылки. С этой целью в каждом устройстве, которое предполагает объявить о вычислительных ресурсах или совместно использовать вычислительные ресурсы в среде 200, реализуется по меньшей мере ограниченный поднабор сервисов.NET. Кроме того, в этих устройствах может быть реализована локализованная внутренняя унифицированная модель защиты, так что локальная защита обеспечивается даже тогда, когда два локальных равноправных устройства возможно отсоединены от централизованного сервиса (например, Passport) 220 (смотри фиг. 2).

Настоящее изобретение не ограничивается какой-либо конкретной средой передачи, но обеспечивает возможность непосредственной адресации распределенных услуг ресурсов к намеченному устройству, либо возможность запроса через Интернет или интрасеть, к примеру, через централизованный набор сервисов.NET во "всемирной паутине". При соединении через Интернет или интрасеть программа может запросить последние известные вычислительные ресурсы, имеющиеся в любом устройстве, соответствующем идентичности пользователя, даже тогда, когда устройство работает автономно или недоступно по иным причинам. Полоса пропускания также является ресурсом и может влиять на то, как совместно используются ресурсы устройства; например, может оказаться, что более эффективно использовать ресурсы персонального компьютера, когда тот имеет высокоскоростное соединение с сетью Интернет, а не тогда, когда этот персональный компьютер имеет только низкоскоростное соединение, к примеру, если другое устройство имеет высокоскоростное соединение. Фактически, персональный компьютер может захотеть более эффективно использовать высокоскоростное соединение другого устройства; в этом случае другое устройство может тогда использовать ресурс этого персонального компьютера, то есть эти устройства будут осуществлять обмен ресурсами для обеспечения более оптимальных вычислительных возможностей для пользователя.

Согласно одному аспекту настоящего изобретения каждый из администраторов 204 и 214 распределенных вычислений также содержит соответствующий механизм 208 и 218 обнаружения, который позволяет устройствам обнаруживать совместно используемые ресурсы/возможности другого устройства, участвующего в работе операционной среды, то есть, когда это другое устройство сконфигурировано для обеспечения совместного использования его ресурсов. Соответствующие данные 209 и 219 ресурсов форматируются (например, в формате XML) и выполняется обмен этими данными в соответствии с заданной схемой, как описано ниже. Как показано на Фиг. 2, благодаря обмену схематизированными данными 209 и 219 оба устройства 202 и 204 сконфигурированы для совместного использования своих ресурсов (RA1 - RAm и RB1 - RBn) вместе с другими устройствами в распределенной вычислительной среде. Однако, как можно видеть из чертежа, в данной среде конкретное устройство (например, мобильный телефон) может быть лишь потребителем ресурсов, а не поставщиком какого-либо ресурса, либо, в ином случае, может быть только поставщиком, но не потребителем ресурсов.

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

В последующих таблицах показаны некоторые типовые схемы, которые можно использовать (например, с данными в формате XML) для обмена информацией о ресурсах (память и вычислительная мощность), касающейся устройств пользователя, причем в этом примере используется рабочий и домашний персональные компьютеры и сотовый телефон:

<myStorage>
<device name="Work PC" uuid="7a733d84-b394-4ba1-56b5c0d">
<driveSize/>
<freeSpace/>
<transferSpeed/>
<seekLatency/>
</device>
<device name="Home PC" uuid="6d733d84-b3f4-4ba1-56b5c0f">
<driveSize/>
<freeSpace/>
<transferSpeed/>
<seekLatency/>