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

Изобретения относится к средствам для обнаружения и описания вычислительных ресурсов, имеющихся в различных вычислительных устройствах, а также для открытия этих ресурсов в качестве служб, которые адресуются программными приложениями. Техническим результатом является повышение эффективности обработки. В способе данные, описывающие ресурсы, компонуются на основе идентичности. Вычислительные ресурсы включают в себя: емкость запоминающего устройства, полосу пропускания, вычислительную мощность, механизм ввода и механизм воспроизведения. Система основана на идентичности вычислительных устройств, в результате чего пользователь получает доступ к распределенным ресурсам, соответствующим этой идентичности. 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/>

</device>
<device name="Cell Phone" uuid="5f733d84-b3f4-4ba1-56b5c0f">
<driveSize/>
<freeSpace/>
<transferSpeed/>
<seekLatency/>
</device>
</myStorage>
<myProcessingPower>
<device name="Work PC" uuid="7a733d84-b394-4ba1-56b5c0d">
<cpuSpeed/>
<cpuUsage/>
<memorySize/>
<memoryUsage/>
</device>
<device name="Home PC" uuid="6d733d84-b3f4-4ba1-56b5c0f">
<cpuSpeed/>
<cpuUsage/>
<memorySize/>
<memoryUsage/>
</device>
<device name="Cell Phone" uuid="5f733d84-b3f4-4ba1-56b5c0f">
<cpuSpeed/>
<cpuUsage/>
<memorySize/>
<memoryUsage/>
</device>
</myProcessingPower>

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

Как показано в общем виде на Фиг. 3, архитектура 300 предусмотрена для того, чтобы устройства участвовали в интеллектуальной модели распределенных вычислений, которая абстрагирована от различных аспектов участвующих устройств и в которой выполняется программная адресация от другого устройства. В качестве базового механизма 302 нижнего уровня для обнаружения этих ресурсов можно использовать универсальную инфраструктуру "plug-and-play" ("подключи и работай") (UPnP 2.0). В альтернативном варианте перечень ресурсов для различных вычислительных устройств может хранится в определенном хорошо известном месте, таком как память Active Directory, чтобы давать возможность запрашивать удаленные ресурсы даже в том случае, если устройство доступно только через какое-либо промежуточное средство, к примеру, брандмауэр или беспроводный концентратор. Над механизмом обнаружения показаны схемы 304, например, одна схема, связанная с каждым конкретным типом вычислительного ресурса, причем каждая их этих схем открыта для использования, например, как в архитектуре.NET.

Заметим, что, хотя инфраструктура UPnP обеспечивает подходящий механизм 304 обнаружения, это только часть процесса действительного использования удаленных вычислительных ресурсов. Так, технологии UPnP и.NET используются для облегчения совместного использования ресурсов, но их не применяют для действительного использования ресурсов, имеющихся в устройстве. Вернее, коль скоро ресурсы известны, используют специальные протоколы для этой конкретной области ресурсов. Например, UPnP в сочетании c семантикой протокола SOAP: IdentityHeader (заголовок идентичности), EndPointHeader (заголовок конечной точки) и RequestHeader (заголовок запроса), - хорошо подходит для получения характеристик видеоэкрана удаленного устройства, однако для пересылки видеоданных, после того как произошло обнаружение устройства и подтверждение связи между устройствами, используется такой протокол, как RDP (протокол для удаленных дисплеев). Заметим, что этот подход аналогичен современным подходам.NET; например,.NET обеспечивает механизм для подсоединения к электронной конечной точке, представляющей собственный протокол (например, Messenger), но, как только эта конечная точка подсоединена, точка.NET позволяет клиенту использовать существующий протокол режима реального времени. Используют и другие протоколы, подходящие для других типов ресурсов, например, CIFS+ для памяти, который хорошо подходит для корпоративных и для домашних сценариев памяти и позволяет файловой системе пользователя непрерывно расширяться на другие запоминающие устройства, без необходимости для пользователя иметь дело с именами дисководов, пространствами имен и т.д. Суммируя вышесказанное, можно констатировать, что настоящее изобретение обеспечивает подход на основе идентичности к обнаружению тех дополнительных ресурсов, которые доступны для использования, но после этого не имеет непосредственного отношения к использованию найденных ресурсов.

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

На шаге 602 выполняется оценка верификационных данных, к примеру, предлагаемых сервисом аутентификации Microsoft.NET Passport. Запрос может содержать верификационные данные, либо обмен верификационными данными может быть выполнен отдельно, например, перед шагом 600, как часть шага 600 либо после этого шага. Если на шаге 602 верификационные данные не подтверждаются, то выполняется переход к шагу 604, где запрос отвергается (отклоняется). Заметим, что в зависимости от заданной среды запрос без правильных верификационных данных может быть проигнорирован, а не специально отвергнут.

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

Заметим, что доступ к ресурсам может быть динамическим, например, могут быть предоставлены для совместного использования неиспользованные циклы процессора, однако загрузка центрального процессора постоянно изменяется, и запрашивающему "гостевому" устройству может быть присвоен приоритет наряду с другими устройствами и/или процессами в устройстве, которое делит ресурс ЦП. Например, гостевые пользователи могут использовать только регулируемую долю ресурсов, когда собственник устройства не использует их по иному, к примеру, полосу пропускания или вычислительную мощность. Как ЦП, так и полоса пропускания, являются примерами ресурсов, которые планируются в соответствии с временными ограничениями (например, циклы или биты в секунду), в отличие от таких ресурсов, как коэффициент загрузки диска или памяти, которые не связаны с временными параметрами. В результате механизмы планирования для ресурсов с временными параметрами в общем случае фундаментально отличаются от механизмов планирования ресурсов с не временными параметрами. Заметим, что места размещения киосков допускают множество сценариев, которые могут быть полезны для указанных запросов. Такой ресурс, как монитор, используемый для отображения, может быть либо целиком, либо частично доступен для совместного использования в зависимости от того, используется он в данный момент либо нет. Таким образом, хотя это не представлено на Фиг. 6, на шаге 606 запрос может также отбрасываться (или игнорироваться, если это целесообразно), когда нет объема запрашиваемого ресурса, доступного для совместного использования. На шаге 608 запрашивающему объекту посылают ответ, предпочтительно основанный на определенной схеме, в котором запрашивающему объекту предоставляются данные о возможностях ресурса.

На шаге 610 разрешается совместное использование запрошенного ресурса, при этом шаг включает в себя, например, обмен данными между запрашивающим устройством и совместно используемым устройством, так чтобы при совместном использовании выполнялась соответствующая задача для запрашивающего устройства. На шаге 612 проверяется, был ли исчерпан ресурс, т.е. простаивает он, либо больше недоступен. Заметим, что в целях упрощения на Фиг. 6 это показано в виде цикла, однако очевидно, что эти действия могут управляться событиями. Кроме того, шаг (такой как шаг 606) может быть включен в цикл/использоваться для порождения события; например, для конкретного запроса можно динамически контролировать загрузку ресурса для определения момента, когда он будет исчерпан. Заметим, что ресурс может быть непосредственно исчерпан, когда запрашивающий объект информирует устройство о том, что ресурс больше не нужен.

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

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

В первом примере, представленном на Фиг. 4, небольшое мобильное устройство 400 (к примеру, мобильный телефон) хочет выполнить распечатку на принтере 402, однако это устройство 400 не имеет подходящего драйвера для принтера. Причина этого может быть в том, что у мобильного устройства 400 не хватает памяти для установки и поддержки драйвера, необходимого для указанного принтера 402, и/или у этого мобильного устройства нет простого способа установки необходимого драйвера принтера, и/или по другим причинам. Заметим, что это реальный сценарий, и одним из предлагаемых решений является выдача XHTML-PRINT в качестве упрощенного языка PDL (язык описания страниц) из мобильного устройства 400 на принтер 402, например, через какое-либо сетевое соединение (на Фиг. 4 показано пунктирной линией). Хотя XHTML-PRINT достаточно адекватен для указанной цели, это решение имеет ряд недостатков, например, XHTML-PRINT не работает в режиме WYSIWYG, не может управлять обрывами строк и обычно сужает возможности пользователя.

Однако, если использовать настоящее изобретение, мобильное устройство 400 сначала динамически отыскивает персональный компьютер 404, снабженный соответствующим драйвером 406 для принтера (причем пользователь мобильного устройства имеет полномочия на его использование), а затем мобильное устройство 400 подает данные для распечатки через персональный компьютер 404 на драйвер 406 принтера, который, в свою очередь, создает выходные сигналы в режиме WYSIWYG, используя язык PCL, язык Postscript или растеризацию. Как упоминалось выше, настоящее изобретение обеспечивает механизм обнаружения, и после этого мобильное устройство 400 может каким-либо образом установить связь с персональным компьютером 404, к примеру, с помощью облегченного языка PDL, который имеет гораздо более высокую точность воспроизведения (по сравнению с XHTML-PRINT). В результате очень быстро получается высококачественный выходной сигнал путем использования более быстрого процессора и соответствующего драйвера 406 принтера в персональном компьютере 404.

На Фиг. 5 показан второй пример, имеющей своей целью расширение возможностей пользователя при работе с PDA (персональный цифровой секретарь, ПЦС) 500, который должен выполнять управляемую программу дистанционно на сервере 502 (например, на сервере ASP.NET). Одним из путей выполнения этого является соединение PDA с сервером для выполнения автоматически управляемой программы (например, путем использования поддержки Mobile Controls в ASP.NET), причем результаты передаются на языке HTML, как показано пунктирной линией на Фиг. 5. Сервер 502 динамически масштабирует содержание HTML в соответствии с размером экрана устройства 500 без создания специализированной ISV (независимый поставщик программного обеспечения) программы для каждого устройства 500. Однако это требует выполнения множества передач и подтверждений приема с сервером 500, сопровождающихся миганием экрана во время обновлений, и обычно приводит к сужению возможностей пользователя.

Настоящее изобретение обеспечивает улучшенное решение благодаря тому, что PDA динамически обнаруживает, что персональный компьютер 504, связанный с идентичностью пользователя, может быть посредником для нескольких вычислительных ресурсов, как показано на Фиг. 5. В этом случае PDA выдает запрос HTML на удаленную страницу через персональный компьютер-посредник 504. Персональный компьютер 504 перехватывает запрос и инициирует сеанс с удаленным сервером 502 для выгрузки автоматически управляемой программы воспроизведения для интерфейса пользователя, например, с использованием WSDL в качестве протокола для сервера 502. Обычно полоса пропускания при передаче от персонального компьютера-посредника 504 на сервер 502 меньше, чем полоса пропускания при передаче от устройства PDA 500 на персональный компьютер-посредник 504, в результате чего меньший объем данных, передаваемых по более медленной линии связи на сервера 502 и от него, приведет к увеличению быстродействия интерфейса пользователя при отображении в PDA 500, что расширяет возможности пользователя. Конечно, чтобы убедиться, что вариант с компьютером-посредником является более оптимальным, надо сначала оценить обе полосы пропускания.

Заметим также, что если PDA 500 был оборудован локально выполняемыми элементами управления, которые сервер способен эффективно использовать, можно еще более расширить возможности пользователя. Например, ASP.NET автоматически эффективно использует любые локальные элементы управления (например, управление выбором даты), которые выполняются локально в PDA, при работе операционной системы на основе Windows. Это приводит к дополнительному уменьшению количества передач и подтверждений приема на/от сервера 502 и/или компьютера-посредника 504 при уменьшении результирующего обновления/мигания экрана.

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

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

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

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

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

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

На Фиг. 7 представлен вариант 700 реализации изобретения, где использованы четыре соединенные между собой вычислительные системы 702-705. Вариант 700 реализации содержит программную командную оболочку 710 и прикладную программу 712 (или аналогичную функциональную программу) в вычислительной системе 704, клавиатуру 714 в вычислительной системе 702, запоминающее устройство (например, диск) 716 в вычислительной системе 703 и дисплей 718 в вычислительной системе 705. Таким образом, в данном примере ресурсы распределены так, что есть ресурс для ввода данных в компьютере 702, ресурс для сохранения в компьютере 703 и ресурс для вывода в компьютере 704. Компьютер 704 выполняет функцию координирующего центра для данного варианта 700 реализации. Хотя ресурсы находятся в разных компьютерных системах, они согласно настоящему изобретению доступны так, как будто образуют единую функционирующую систему. Ресурс программной оболочки 710 вызывает приложение 712, а также соединяется с ресурсами других устройств через порты 724, 726 и 728, концептуально представленные на Фиг. 7 в виде одного порта на один ресурс, хотя может быть предусмотрен отдельный порт для ввода и вывода. Порты фактически содержат структурированные списки очередности, которые можно записывать (выводить) или считывать (вводить) посредством обработки в порт. Порты являются мобильными, данные не теряются, и защита может быть связана с портом, так что никто кроме предназначенного объекта не сможет ознакомиться с предназначенными для него данными.

Оболочка 710, используемая в варианте 700 реализации, базируется на языке программирования xSpresso, описанном в предварительной патентной заявке США № 60/379864, поданной 10 мая 2002 года, содержание которой целиком включено в настоящее описание посредством ссылки. В целом, xSpresso относится к языкам программирования и рабочим модулям, которые перераспределяют управление и потоки данных между компонентами асинхронной системы. Среди прочего, xSpresso выражает кооперативные размеры программ и сервисов, включая упорядочение и синхронизацию, которые можно проверять программным путем. Этот язык может программным путем отображать процесс прохождения организационной схемы, составленной на пользовательском языке на основе тегов, таком как XML.

В примере на Фиг. 7 пронумерованные стрелки, обозначенные цифрами 1-4 и 6-10, представляют пример различных связей между портами 724, 726 и 728 и оболочкой 710 для отображения текстовых данных из файла в запоминающем устройстве 716 на дисплее 718, например, аналогично известной функции "type". В примере на Фиг. 7 пользователь ресурса 714 (клавиатуры) инициирует операцию путем набора на клавиатуре 714 слова "type" (стрелка, помеченная единицей (1)). Оболочка 710 принимает это слово через порт 724 и передает данные на порт 728 для отображения на экране 718 (стрелка, помеченная двойкой (2)), например, для ответа о том, что пользователь получил введенные данные, и/или для подсказки имени файла, хранящего текст, который пользователь хочет отобразить на экране. На Фиг. 7 стрелка, помеченная тройкой (3), представляет печать пользователем имени файла, к примеру, соответствующего файлу XML, на что также может быть выслан ответ (на схеме отдельно не указан).

Имея имя файла, оболочка 710 записывает данные (представленные стрелкой, помеченной четверкой (4)) в порт 726, который связан с запоминающим устройством (например, диском) (ресурс 716), в результате чего в файловую систему запоминающего устройства поступает запрос на считывание. Параллельно оболочка 710 вызывает (широкая стрелка, помеченная пятеркой (5)) прикладную программу 712 для приема и вывода считанных данных. В ответ на это запоминающее устройство-ресурс 716 начинает вывод данных через порт 726 в прикладную программу 712, которая в свою очередь выводит их на порт 728 дисплея-ресурса 718, как показано стрелками, помеченными шестеркой (6) и семеркой (7). Стрелки, помеченные восьмеркой (8) и девяткой (9), представляют остальные данные, пересылаемые аналогичным образом. Стрелка, помеченная десяткой (10), представляет состояние (например, успешность выполнения) программы, возвращаемой в оболочку 710.

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

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

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

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

2. Способ по п.1, дополнительно включающий в себя передачу запроса на использование ресурса от первого устройства на второе устройство.

3. Способ по п.1, дополнительно включающий в себя передачу информации об идентичности от первого устройства на второе устройство.

4. Способ по п.3, в котором информация об идентичности соответствует верификационным данным.

5. Способ по п.4, в котором верификационные данные предоставляются службой аутентификации.

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

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

8. Система по п.7, в которой первый ресурс включает в себя память.

9. Система по п.7, в которой первый ресурс включает в себя полосу пропускания соединения от первого устройства, по меньшей мере, к одному другому вычислительному устройству.

10. Система по п.7, в которой первый ресурс включает в себя циклы обработки процессора.

11. Система по п.7, в которой первый ресурс включает в себя способ ввода.

12. Система по п.7, в которой первый ресурс включает в себя способ вывода.

13. Система по п.7, дополнительно включающая в себя третье вычислительное устройство, подсоединенное к первому вычислительному устройству, причем второе устройство обращается к первому ресурсу для выполнения операции с третьим вычислительным устройством.

14. Система по п.13, в которой третье вычислительное устройство включает в себя принтер, причем первый ресурс соответствует драйверу принтера в первом вычислительном устройстве.

15. Система по п.13, в которой третье вычислительное устройство включает в себя сервер, а первое вычислительное устройство действует как уполномоченный сервер (прокси-сервер) для второго вычислительного устройства.

16. Система по п.15, в которой полоса пропускания от второго вычислительного устройства к первому вычислительному устройству больше, чем полоса пропускания от первого вычислительного устройства к третьему вычислительному устройству.

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

18. Машинно-считываемая среда по п.17, в которую записана структура данных, причем в структуре данных первое поле включает в себя информацию, соответствующую типу ресурса-памяти.

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

20. Машинно-считываемая среда по п.18, в которую записана структура данных, причем в структуре данных набор третьих полей включает в себя информацию, соответствующую данным о свободном объеме ресурса-памяти.

21. Машинно-считываемая среда по п.17, в которую записана структура данных, причем в структуре данных первое поле включает в себя информацию, соответствующую данным о полосе пропускания.

22. Машинно-считываемая среда по п.17, в которую записана структура данных, причем в структуре данных первое поле соответствует вычислительной мощности.

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

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

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

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

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

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

29. Машинно-считываемая среда по п.17, в которую записана структура данных, причем в структуре данных второе поле включает в себя информацию, идентифицирующую устройство как телефон.



 

Похожие патенты:

Изобретение относится к средствам автоматизированного контроля и диагностики цифровых и микропроцессорных блоков. .

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

Изобретение относится к способам и системам обработки визуализируемой цифровой информации. .

Изобретение относится к области вычислительной техники и предназначено для моделирования задач при проектировании вычислительных систем (ВС). .

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

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

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

Изобретение относится к области объектно-ориентированного программирования, в частности к способам управления свойствами объектов в прикладной программе. .

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

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

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

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

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

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

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

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

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

Изобретение относится к способу внедрения ссылочных идентификаторов содержимого (CRID) TV-Anytime в поток звуковой/видео информации, и может быть использовано при внедрении указанных идентификаторов в поток передачи MPEG.

Изобретение относится к внутреннему представлению элементов пользовательского интерфейса. .

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