ПРОСТАЯ И ДИНАМИЧЕСКАЯ КОНФИГУРАЦИЯ СЕТЕВЫХ УСТРОЙСТВ
SIMPLE AND DYNAMIC CONFIGURATION OF NETWORK DEVICES

Перекрестные ссылки на родственные заявки
Данная заявка претендует на приоритет в отношении предварительной патентной заявки США №60/514867 «Integration of UPnP Devices as PnP Devices within Windows» («Интеграция устройств PnP в Windows»), поданной 27 октября 2003 года, содержание которой целиком включено сюда по ссылке.
Область техники, к которой относится изобретение
Настоящее изобретение относится в целом к компьютерам и, в частности, касается управления и организации сетевых устройств.
Уровень техники
Технология Plug and Play (PnP) («включай и работай») позволяет автоматически обнаруживать локально подсоединенные устройства и конфигурировать их для работы на компьютере. Функциональные возможности PnP интегрированы в операционную систему компьютера, что позволяет компьютеру обнаруживать вновь подсоединенное периферийное устройство, а также инсталлировать и зарегистрировать указанное устройство в компьютерной системе. До появления технологии PnP пользователи были вынуждены устанавливать периферийные устройства вручную, например, путем задания каналов связи и значений запроса прерывания (IRQ). Технология PnP позволяет компьютеру обнаружить вновь подсоединенные устройства после начальной загрузки системы, идентифицировать устройство и автоматически выделить ресурсы и конфигурировать устройство для работы с данной компьютерной системой. Вдобавок, при использовании технологии PnP операционные системы могут обнаруживать периферийные устройства, которые дополнительно подсоединены или отсоединены от «горячей» шины (например, универсальная последовательная шина (USB), шина PCMCIA (Международная ассоциация производителей плат памяти для персональных компьютеров IBM PC), …) после начальной загрузки системы. Устройства, подсоединенные к локальным или «горячим» шинам, могут быть сразу доступны для использования с компьютерной системой, после того, как они первый раз установлены. Операционная система может содержать конкретную информацию и драйверы, соответствующие конкретным устройствам. В указанном случае операционная система может просто автоматически установить устройство после его поступления в систему. В других случаях драйверы и информация должны быть извлечены из альтернативных источников, таких, как ПЗУ на компакт-диске (CD-ROM) или Интернет, для обеспечения установки устройства. Как только устройство установлено, его настройки могут быть сохранены в системном реестре, так что, если устройство будет снято, а позднее вновь подсоединено, система сможет извлечь настройки устройства и загрузить соответствующий драйвер, чтобы обеспечить взаимодействие между операционной системой и этим устройством.
В настоящее время все большее распространение находят как проводные, так и беспроводные сетевые устройства. Принято несколько различных сетевых технологий, используемых для организации и управления сетевыми устройствами. Например, сетевые принтеры обычно реализуют с использованием протоколов сетевой печати через Ethernet. Другим примером является сетевой протокол Х10, который используют для дистанционного управления устройствами (например, выключателями освещения, видеокамерами, …) с использованием электрической сети. Хотя эти технологии позволяют обеспечить удаленный доступ и дистанционное управление устройствами, многие пользователи не используют выгоды, предоставляемые сетевыми устройствами. Одна из возможных причин, по которым пользователи не используют преимущества сетевых устройств, возможно, состоит в том, что для потенциальных пользователей настройка домашней сети (например, для автоматизации, сетевых вычислений или сетевой печати) просто кажется слишком сложной.
Соответственно имеется потребность в простой и эффективной системе и способе для подсоединения и управления работой сетевых устройств. Преимущество указанной системы и способа состоит в том, что обеспечивается легкое обнаружение, ассоциирование и использование локально подсоединенных устройств, реализующих технологию PnP.
Раскрытие изобретения
Далее следует упрощенное описание сущности изобретения, необходимое для основополагающего понимания ряда его аспектов. Этот раздел не претендует на исчерпывающее описание изобретения. Он не предполагает определение ключевых/критических элементов изобретения или строгого очерчивания объема изобретения. Единственной целью этого раздела является представление некоторых концепций изобретения в упрощенной форме в качестве вступления к более подробному описанию, которое следует ниже.
Раскрыты система и способ конфигурации сетевых устройств. Система конфигурации сетевых устройств динамически и автоматически инсталлирует или конфигурирует сетевые устройства, в результате чего уменьшаются или полностью снимаются заботы об этом со стороны конечных пользователей. Согласно одному аспекту настоящего изобретения предусмотрена компонента контроля для обнаружения поступления и ухода сетевых устройств. Для содействия в реализации указанных функциональных возможностей компонента контроля может использовать множество протоколов обнаружения, таких, как Simple Service Discovery Protocol (SSDP) (простой служебный протокол обнаружения) и Web Service Discovery (WS-Discovery) Protocol (служебный Web протокол обнаружения), для активного поиска существующих сетевых устройств или контроля сети на предмет поступления новых сетевых устройств.
Согласно другому аспекту данного изобретения сетевые устройства могут быть ассоциированы с одним или несколькими другими сетевыми устройствами, такими, как персональный компьютер (например, настольный компьютер, лэптоп, персональный цифровой помощник (PDA)). Таким образом, согласно одному аспекту данное изобретение может быть представлено в виде набора компонент, позволяющих дистанционно подсоединять периферийные устройства к персональному компьютеру (PC). Следовательно, система может использовать соединения (проводные или беспроводные) локальной компьютерной сети для канализации ввода/вывода. Кроме того, согласно другому аспекту изобретения раскрытая здесь система может быть сконфигурирована для расширения периферийного пространства PC для нестандартных устройств (например, бытовые электронные приборы, домашняя автоматика, …). Соответственно персональный компьютер может обеспечить организацию и управление множеством сетевых устройств, в том числе нестандартных устройств.
TM
TM
Согласно другому аспекту данного изобретения существующая система PnP операционной системы, установленная для непосредственно подсоединенных периферийных устройств, может быть успешно использована для создания простой и надежной конфигурации сетевых устройств практически без взаимодействия с пользователем. С этой целью настоящее изобретение согласно одному из его аспектов позволяет интегрировать в подсистему Plug-and-Play операционной системы устройства, совместимые с универсальной технологией Universal Plug-and-Play (UPnP). UPnP представляет собой просто протокол или архитектуру проводной связи, определяющую, каким образом должна передаваться информация между сетевыми устройствами.
Вдобавок к обнаружению и ассоциированию устройств ряд аспектов данного изобретения также поддерживают защиту каналов, аутентификацию, управление устройствами и потоковую передачу или изохронный режим.
Согласно еще одному аспекту изобретения предусмотрен графический интерфейс пользователя, облегчающий надежную организацию и конфигурацию сетевых устройств. Этот интерфейс предоставляет графический механизм для ассоциирования, поиска и организации локальных сетевых устройств.
Для достижения вышеперечисленных и родственных целей некоторые иллюстративные аспекты изобретения пояснены в последующих разделах вместе с прилагаемыми чертежами. Эти аспекты указывают различные пути возможной практической реализации изобретения, причем предполагается, что все они охватываются настоящим изобретением. Другие преимущества и новые признаки изобретения возможно станут очевидными из последующего описания изобретения при его рассмотрении вместе с указанными чертежами.
Краткое описание чертежей
Вышеуказанные и другие аспекты изобретения станут очевидными из последующего подробного описания и прилагаемых чертежей, кратко описанных ниже.
Фиг.1 - блок-схема системы взаимодействия с сетевыми устройствами согласно одному аспекту настоящего изобретения;
фиг.2 - блок-схема системы конфигурации сетевых устройств согласно одному аспекту настоящего изобретения;
фиг.3 - блок-схема компоненты конфигурации согласно одному аспекту данного изобретения;
фиг.4 - блок-схема системы для определения местоположения драйверов устройств согласно одному аспекту настоящего изобретения;
фиг.5 - блок-схема системы для динамической конфигурации сетевых устройств согласно одному аспекту данного изобретения;
фиг.6 - блок-схема системы для ассоциирования устройств согласно одному аспекту настоящего изобретения;
фиг.7 - пример графического интерфейса пользователя согласно одному аспекту настоящего изобретения;
фиг.8 - блок-схема, иллюстрирующая методику взаимодействия с сетевыми устройствами согласно одному аспекту данного изобретения;
фиг.9 - блок-схема, иллюстрирующая методику конфигурации сетевых устройств согласно одному аспекту настоящего изобретения;
фиг.10 - блок-схема, иллюстрирующая методику конфигурации сетевых устройств согласно одному аспекту настоящего изобретения;
фиг.11 - блок-схема, иллюстрирующая подходящую операционную среду согласно одному аспекту настоящего изобретения;
фиг.12 - блок-схема среды для выборочных вычислений, с которой может взаимодействовать настоящее изобретение.
Подробное описание изобретения
Настоящее изобретение описывается со ссылками на прилагаемые чертежи, где одинаковые ссылочные позиции относятся к одинаковым элементам на всех чертежах. Однако следует понимать, что чертежи и их подробное описание не предполагают, что изобретение ограничивается раскрытым здесь конкретным вариантом. Наоборот, изобретение охватывает все модификации, эквиваленты и альтернативные варианты, не выходящие за рамки существа и объема настоящего изобретения.
Предполагается, что использованные в этой заявке термины «компонента» и «система» относятся к объекту, относящемуся к компьютеру, любому аппаратному средству, комбинации аппаратных и программных средств, программному средству или исполняемому программному средству. Например, компонента может представлять собой, но не только: процесс, выполняющийся в процессоре; процессор; объект; исполнимый объект; поток исполнения; программу и/или компьютер. Например, компонентой может быть как приложение, выполняющееся на сервере, так и сам этот сервер. Одна или несколько компонент могут находиться в процессе и/или потоке исполнения, а компонента может находиться в одном компьютере и/или быть распределена между двумя или более компьютерами.
Кроме того, настоящее изобретение может быть реализовано в виде способа, устройства или промышленного изделия с использованием стандартных технологий программирования и/или проектирования для создания программных, программно-аппаратных, аппаратных средств или любой их комбинации. Предполагается, что используемый здесь термин «промышленное изделие» (или в альтернативном варианте «компьютерный программный продукт») охватывает компьютерную программу, доступную любому устройству, носителю или среде, считываемой компьютером. Конечно, специалистам в данной области техники очевидно, что можно внести множество изменений в эту конфигурацию, не выходя за рамки объема или существа данного изобретения.
Обратимся к фиг.1, где показана система 100 взаимодействия с сетевыми устройствами согласно одному аспекту данного изобретения. Система 100 содержит прикладную компоненту (компоненты) 110, систему 120 конфигурации устройств и сетевое устройство (устройства) 130. Прикладная компонента (компоненты) 110 может представлять собой любую программу программного обеспечения, в том числе как системные, так и прикладные программные средства (например, операционная система, приложение для обработки текстов, …). Ценные прикладные компоненты 110 часто используют периферийные сетевые устройства. Например, программа для обработки текстов может использовать сетевой принтер для распечатки документов и/или отчетов. Однако следует заметить, что сетевое устройство (устройства) 130 может соответствовать любому физическому объекту, который можно подсоединить к сети. Соответственно типовые сетевые устройства могут включать в себя такие устройства, как принтеры, сканеры, копировальные аппараты, персональные цифровые помощники (PDA) и компьютеры всех типов (например, настольный компьютер, лэптоп, карманный ПК, …). Однако сетевые устройства могут также включать в себя бытовую электронную аппаратуру других типов, в том числе, но не только: часы, посудомоечные машины, холодильники, электронные картинки, стиральные машины, сушильные аппараты, выключатели освещения, термостат, телевизионные приемники, телевизионные приставки, DVD плееры и игровые приставки или пульты (например, Xbox). Прикладная компонента (компоненты) 110 может обеспечить поиск команд управления вводом/выводом для сетевых устройств. Например, когда пользователь приходит с работы домой в 5 часов 30 минут дня, она может включить свет на кухне, установить термостат на отметке 70° по Фаренгейту, включить телевизор и настроиться на конкретный канал. Для обеспечения связи между прикладной компонентой (компонентами) 110 и сетевыми устройствами 130 сетевые устройства необходимо сконфигурировать так, чтобы они функционировали с этими прикладными компонентами.
Система 120 конфигурации устройств конфигурирует сетевые устройства 110 для работы с прикладными компонентами 130. Согласно одному аспекту данного изобретения система 120 конфигурации может загружать драйверы устройств. Драйверы являются программными компонентами, которые содействуют в установлении связи с соответствующими устройствами. Сетевые устройства имеют свои собственные специализированные команды или наборы команд, в то время как прикладные программы используют для задания тех же функций другие команды. Соответственно компонента драйвера устройства действует как транслятор, отображая прикладные команды в команды конкретного устройства. Драйверы устройств (которые здесь также называют пакетами драйверов устройств) могут быть загружены из локального хранилища данных компьютера, загружены из сети Интернет, извлечены из среды, считываемой компьютером (например, CD-ROM, гибкий диск) или извлечены из сетевого устройства. Система 120 конфигурации может также установить в компьютерных системах ключи системного реестра. Реестр может просто представлять собой базу данных, содержащую ключи (файлы), где хранится информация о конфигурации приложений. Например, ключи могут быть связаны, в числе прочего, с предпочтениями пользователя, ассоциациями файлов, объектными связями и настройками для приложений. Система 120 конфигурации может также автоматически и динамически распределять ресурсы для сетевого устройства (устройств) 110, например, выбирая и устанавливая линию запроса прерывания (IRQ) для запроса обслуживания от центрального процессора (CPU), выбирая и устанавливая канал связи и канал доступа к динамической памяти (DMA), а также выделяя часть памяти для использования устройством. Кроме того, следует понять, что система 120 конфигурации может также выполнять такие задачи, как обновление программно-аппаратных средств устройства на более новую версию программно-аппаратных средств, упакованную вместе с драйвером устройства. Как только сетевое устройство инсталлировано и сконфигурировано (например, путем копирования драйверов в устройство), соответствующие прикладные компоненты могут использовать это устройство. После начальной конфигурации настройки сетевого устройства (например, IRQ, канал DMA, выделенная память, …) могут быть сохранены, например, в реестре или где-либо еще. Если и когда устройство выходит из сети, а затем позднее вновь к ней подключается, система 120 конфигурации может найти, извлечь и использовать эту сохраненную информацию, чтобы быстро и автоматически разрешить устройству вновь работать, например, с конкретными прикладными компонентами 130 в компьютерной системе.
1
N
Перейдем к фиг.2, где раскрыта система 200 конфигурации сетевых устройств согласно одному аспекту данного изобретения. Система 200 конфигурации содержит компоненту 210 контроля, сеть 220, сетевое устройство (устройства) 222 (Устройство - Устройство, где N - целое число, большее или равное 1) и компоненту 230 конфигурации. Компонента 210 контроля обнаруживает поступление и/или уход сетевого устройства 222. После поступления сетевое устройство 222 обнаруживается, и компонента 230 конфигурации автоматически конфигурирует устройство 222 для работы в компьютерной системе. Например, компонента 230 конфигурации может загрузить драйвер устройства или пакет драйвера, выделить канал связи, сохранить ключ реестра и выделить память для использования с устройством 222. После ухода компонента 230 конфигурации может освободить ячейки памяти и канал связи для использования другими устройствами 222. Впоследствии после повторного подсоединения сетевого устройства компонента 230 конфигурации может быстро и автоматически конфигурировать устройство для правильной работы. Тем самым система 210 облегчает «бесшовную» интеграцию сетевых устройств в компьютерную систему. В результате такой интеграции пользователям будет легче осуществлять конфигурацию, организацию и доступ к сетевым устройствам 222, например, со своих персональных компьютеров. Таким образом, конечные пользователи смогут купить сетевые устройства и подсоединить их к своей домашней сети или сети предприятия практически без их конфигурации. Сетевые устройства просто начнут работать, как только будут подсоединены к сети.
Компонента 210 контроля запрашивает сеть 220, чтобы проанализировать подсоединенные к ней сетевые устройства 222. Сеть 220 может представлять собой проводную и/или беспроводную локальную сеть (LAN). LAN - это сеть в небольшой по размерам географической зоне, которую часто используют, например, для офисных зданий, жилых домов, складов, общежитий и т.п. Сетевые устройства 222 могут представлять собой любые электронные или подобные им устройства, способные работать в сети (например, будильник, телефон, камера, телевизионный приемник, холодильник, стиральная машина, сушильная камера, DVD-плеер, цифровой аудиоприемник (DAR), персональный цифровой помощник (PDA), компьютер (настольный компьютер, лэптоп, карманный компьютер), пейджер, мобильный телефон, принтер, сканер, копировальный аппарат, телевизионная приставка, игровой автомат, электронная картинка, …). Сетевые устройства 222 могут осуществлять связь с сетью 220 либо по проводам (например, витая пара, оптическое волокно, коаксиальный кабель, линии сети электропитания, …) и/или без проводов (например, IEEE 802,11a, 802,11b, 802,11g, связь в инфракрасном диапазоне, радиосвязь, технология связи Bluetooth, спутниковая связь, …). Компонента 210 контроля может обнаруживать поступление и/или уход сетевого устройства 222, используя или запрашивая один или несколько протоколов обнаружения или подключаемых средств. Например, компонента контроля может использовать протокол Simple Service Discovery Protocol (SSDP) для обнаружения устройств UPnP и протокол Web Service Discovery (WS-Discovery) Protocol для идентификации устройств WS-Discovery/WS-Description. Следует понимать, что протоколы обнаружения можно использовать либо активным, либо пассивным образом или и тем и другим. При использовании активным образом протокол обнаружения ищет существующие устройства, подсоединенные к сети 220. В случае использования системы пассивного контроля протокол обнаружения может просто вести «прослушивание» вновь поступивших устройств, сообщающих о своем присутствии в сети 220. Кроме того, эти и другие протоколы могут не только указать на присутствие сетевого устройства, но также собирать метаданные об этих устройствах (например, используя синтаксический анализ SSDP, HTTP и XML), которые можно использовать при конфигурации такого устройства (устройств).
Компонента 230 конфигурации принимает уведомление и метаданные, касающиеся подсоединенных сетевых устройств 222, от компоненты 210 контроля. Метаданные сетевого устройства могут включать в себя, но не только, такую информацию, как идентификатор аппаратных средств, идентификаторы совместимости, идентификатор экземпляра, псевдоним, адреса транспортировки, параметры аутентификации и идентификатор родительского экземпляра. Идентификатор аппаратных средств и идентификаторы совместимости могут быть использованы компонентой 230 конфигурации для идентификации файла (файлов) для использования при инсталляции устройства. Идентификатор экземпляра уникально идентифицирует сетевое устройство. Псевдоним (например, телевизор в спальне хозяина) можно использовать при взаимодействии пользователя с устройством. Адреса транспортировки могут быть использованы драйверами и промежуточным программным обеспечением для контакта с устройством. Параметры аутентификации могут быть использованы для определения того, с какой целью должна быть выполнена аутентификация (подробно обсуждается в последующих разделах). После уведомления о недавно добавленном сетевом устройстве и получения соответствующих метаданных компонента конфигурации может перейти к автоматической инсталляции и конфигурации сетевого устройства. Используя информацию, содержащуюся в метаданных, такую, как идентификатор аппаратных средств и идентификаторы совместимости, компонента конфигурации может определить местоположение файла устройства в компьютерной системе и извлечь информацию о конфигурации, включая, но не только, файлы драйвера и ключи реестра, подлежащие копированию. Если в компьютерной системе имеются соответствующие файлы драйвера, эти файлы будут автоматически загружены. Если файлы не находятся в компьютерной системе (например, в накопителе на жестком диске), то тогда файлы драйвера могут быть загружены из сети Интернет (если с ней есть соединение), либо пользователю может быть направлен запрос, с тем чтобы он вставил носитель, считываемый компьютером (например, компакт-диск (CD) или гибкий диск), который содержит необходимые файлы. После этого загружаются файлы драйвера и конфигурируются свойства и настройки устройства (например, присвоенные системные ресурсы, запросы IRQ, порты связи, …).
На фиг.3 показана компонента 230 конфигурации согласно одному аспекту данного изобретения. Компонента 230 конфигурации содержит компоненту 310 ассоциирования, компоненту 320 нумерации и систему 330 PnP, а также компоненту 322 PDO и компоненту 332 FDO. Компонента 310 ассоциирования устанавливает взаимосвязь (например, «ведущий - ведомый») между устройством и компьютером. Эта взаимосвязь естественным образом устанавливается для локальных устройств на основании физического соединения; однако это не приемлемо для подключаемых сетевых устройств. Вдобавок, компонента 310 ассоциирования может включать в себя компоненту 312 аутентификации, которая может предотвратить неавторизованный доступ к устройству. Компонента 312 аутентификации предоставляет механизм защиты, обеспечивающий доступ к сетевому устройству только ассоциированных устройств. Например, для того чтобы ассоциировать устройства, пользователь должен ввести персональный идентификационный номер (PIN) или положиться на какой-то другой механизм. Дополнительный механизм защиты, такой, как сертификаты, представляемый компонентой 312 аутентификации, обсуждается в последующих разделах. После успешного ассоциирования устройство может затем само выполнить аутентификацию без идентификации пользователя. Компонента 320 нумерации создает компоненту 322 объекта физического устройства (PDO) после обнаружения и ассоциирования устройства. Компонента 322 PDO представляет устройство для различных драйверов и программных компонент. Компонента 322 PDO может поставлять программные компоненты, в том числе информацию, касающуюся состояния устройства (например, включено, выключено, в ожидании). Соответственно компонента 322 PDO извлекает аппаратные компоненты ввода/вывода устройства из различных других программных компонент (например, операционная система) и облегчает взаимодействие с устройством. Компонента 320 нумерации передает созданную компоненту 322 PDO в систему 330 «Включай и работай» (PnP). Система 330 PnP координирует взаимодействие аппаратных устройств, драйверов устройств и программных средств операционной системы компьютера. После приема компоненты 322 PDO система 330 PnP может извлечь информацию, хранящуюся в PDO, которая относится к конкретному сетевому устройству, и использовать эту уникальную информацию для определения местоположения драйвера устройства, связанного с компонентой 322 PDO. Как только местоположение драйвера определено, он загружается или выполняется и создает компоненту 322 объекта функционального устройства, которую можно использовать для управления функциональными возможностями сетевого устройства. Соответственно приложение может взаимодействовать с компонентой объекта функционального устройства для задания операций устройства.
Обратимся к фиг.4, где показана система 400 для определения местоположения драйвера сетевого устройства согласно одному аспекту настоящего изобретения. Система 400 включает в себя компоненту 410 организации инсталляции драйвера, компоненту 420 PDO, компоненту 430 информации, хранилище 440 драйверов и компоненту 450 найденных драйверов. Компонента 450 драйверов содержит информацию, касающуюся правильной инсталляции и конфигурации соответствующего сетевого устройства. Компоненты 450 драйверов могут включать в себя динамически подключаемые библиотеки (DLL), инсталляторы, коинсталляторы, приложения или файлы любого другого типа. Компонента 410 организации инсталляции драйвера извлекает компоненту (компоненты) 450 драйвера, связанную с конкретным устройством. Компонента 410 организации инсталляции драйвера получает или извлекает компоненту 420 PDO устройства. Как обсуждалось ранее, компонента 420 PDO устройства может быть создана после обнаружения поступления устройства в сеть. Компонента 420 PDO представляет устройство на сетевой шине. Компонента PDO может включать в себя уникальную информацию, касающуюся устройства, такую, как идентификатор аппаратных средств и/или идентификатор совместимости. После приема компоненты 420 PDO компонента 410 организации инсталляции может извлечь указанную уникальную информацию об устройстве, такую, как идентификатор аппаратных средств, из компоненты 420 PDO. Затем компонента 410 организации инсталляции драйвера может использовать эту уникальную информацию и компоненту 430 информации для определения правильной конфигурации для устройства. Компонента 430 информации (например, файл.INF или база данных) может играть роль репозитория для информации о конфигурации устройства. Информация о конфигурации может включать в себя, но не только, компоненты драйвера и ключи реестра. Указанная информация о конфигурации может быть скомпонована таким образом, чтобы обеспечить быстрое определение местоположения информации. Например, конфигурация может храниться связанной с идентификатором аппаратных средств. Соответственно компонента 410 организации инсталляции может использовать или предоставить извлеченный идентификатор аппаратных средств в компоненту 430 информации, которая может извлечь соответствующую информацию о конфигурации для устройства. Например, компонента организации инсталляции может быть уведомлена об идентичности соответствующей компоненты драйвера. Компонента организации инсталляции может затем извлечь драйвер из хранилища 440 драйверов. Хранилище 440 драйверов может находиться по месту или быть удаленным от компьютера. В некоторых случаях компьютер может хранить указанные драйверы локально, однако это не может гарантировать локальное хранение всех драйверов для любого возможного сетевого устройства, например, обеспеченное производителем операционной системы. Соответственно хранилище драйверов может быть удаленным, например, находиться на центральном сервере или на сервере, связанном с производителем устройства. Компонента 410 организации инсталляции драйверов может извлекать компоненты драйверов и другую информацию об инсталляции или конфигурации (например, «заплаты», ключи реестра) из удаленных серверов. Кроме того, согласно одному аспекту настоящего изобретения компонента 410 организации инсталляции может определить местоположение хранилища драйверов, хранящихся в локальных сетевых устройствах. Например, другой компьютер в сети может иметь необходимую компоненту (компоненты) драйвера, в то время как компьютер, связанный с инсталлируемым устройством, ее не имеет. В такой ситуации компонента 410 организации инсталляции может получить или извлечь указанную компоненту (компоненты) драйвера из другого компьютера. Вдобавок, следует заметить, что инсталлируемое или конфигурируемое устройство может хранить необходимые драйверы локально, и компонента организации инсталляции драйверов может извлекать оттуда компоненту (компоненты) драйвера. Кроме того, следует понимать, что хранилище 440 драйверов может также представлять собой носитель, считываемый компьютером (например, компакт-диск, DVD-диск, гибкий диск, карта памяти, …), на котором находится соответствующая компонента (компоненты) 450 драйвера.
На фиг.5 показана система 500 для динамической конфигурации сетевого устройства согласно одному аспекту данного изобретения. Система 500 содержит компоненту 210 контроля, компоненту 510 сетевого объекта функционального устройства (сетевой FDO), компоненту 320 шинного нумератора, сетевой объект 520 физического устройства (PDO устройства), компоненту 450 драйвера устройства и компоненту 530 сетевого объекта функционального устройства (FDO устройства). Компонента 210 контроля исследует сеть, определяя вновь появившиеся или ушедшие сетевые устройства. Для содействия в выполнении этой функции может быть предусмотрена сетевая компонента 510 FDO. Сетевая компонента 510 FDO может предоставить функциональные возможности сети компоненте 510 контроля. Например, сетевая компонента 510 FDO может предоставить протокол обнаружения для сканирования сетевых узлов. После обнаружения нового сетевого устройства может быть использована компонента 320 шинного нумератора для создания компоненты 530 PDO устройства. Компонента 530 PDO устройства может содержать информацию, описывающую сетевое устройство и его состояние. Затем компонента 410 (фиг.4) организации инсталляции устройства может использовать компоненту 530 PDO устройства для определения местоположения и извлечения компоненты (компонент) 450 драйвера устройства, связанной с данным сетевым устройством, и соответственно компоненту 530 PDO устройства. Компонента 450 драйвера устройства может создать компоненту FDO устройства, связанную с данным сетевым устройством. Компонента 530 FDO устройства может предоставить функциональные возможности сетевого устройства одному или нескольким приложениям или интерфейсам прикладного программирования (API), которые требуются для управления сетевым устройством. Например, если сетевым устройством является будильник, то компонента 530 FDO устройства может предоставить услуги для установки времени и настройки звонка. Соответственно можно разработать приложение, использующее компоненту 530 FDO устройства для автоматической установки времени в будильнике на текущее время после того, как было обнаружено отключение питания.
Обратимся к фиг.6, где изображена система 600 для ассоциирования сетевых устройств согласно одному аспекту данного изобретения. Система 600 включает в себя компоненту 210 контроля, компоненту 610 интерфейса ассоциирования и компоненту 310 ассоциирования. Устройства, локально подсоединенные через универсальную последовательную шину (USB) или какую-либо другую шину (например, PCI, PNCIA), неотъемлемо ассоциированы с компьютером. Таким образом, если принтер подсоединен непосредственно к компьютеру через кабель USB, он ассоциирован с этим компьютером. Для сетевых устройств это не так. Соответственно, когда сетевое устройство подсоединено к сети, пользователю может быть предоставлена возможность выбора ассоциированного сетевого устройства, такого как компьютер. После обнаружения поступления нового сетевого устройства в сеть (например, с использованием сетевых протоколов обнаружения) компонента 210 контроля может использовать компоненту 610 интерфейса ассоциирования, чтобы определить другое сетевое устройство, с которым необходимо ассоциировать вновь поступившее устройство. Компонента 610 интерфейса ассоциирования может также быть использована для сбора данных аутентификации, внешних по отношению к сети. Например, чтобы ассоциировать принтер, пользователю возможно придется убедиться в том, что такое ассоциирование должно быть выполнено путем ввода 4-значного числа. Это является примером использования общего ключа. Однако последующий процесс начальной загрузки может дать более надежные ключи, которые можно будет использовать для установки защищенных аутентифицированных каналов. Например, можно использовать мандаты на основе сертификатов, такие, как сертификат устройства (например, заверенный Бюро сертификации (CA), изготовителем, сетевым администратором, с самообозначением) или компьютерные сертификаты (например, заверенные СА, сетевым администратором, с самообозначением). Кроме того, когда безопасность является реальной проблемой, можно установить защищенный канал или виртуальный кабель посредством шифрования. Компонента 610 интерфейса ассоциирования может зависеть от согласованного способа аутентификации между устройством и компьютером. Однако согласно одному аспекту изобретения компонента 610 интерфейса ассоциирования может быть разработана по возможности универсальной для всех способов и протоколов аутентификации. Согласно одному аспекту настоящего изобретения компонента интерфейса ассоциирования может представлять собой графический интерфейс пользователя, известный специалистам в данной области техники. В частности, графический интерфейс пользователя может иметь графические объекты (например, кнопки, меню, индикаторы хода выполнения, …) для предоставления пользователю различных возможностей выбора, в том числе, но не только, ассоциирования обнаруженного устройства (устройств). Однако следует понимать, что интерфейс может представлять собой просто текст или комбинацию графических объектов и текстов. Компонента 610 интерфейса ассоциирования может предоставлять информацию об ассоциировании компоненте ассоциирования для хранения и правильного выполнения. Кроме того, следует понимать, что пользователь может выполнить ряд шагов после начальной аутентификации. После успешного подключения устройство может само себя аутентифицировать без дополнительного вмешательства пользователя в будущем. Устройство может считаться прошедшим проверку, и соответствующие мандаты могут храниться в соответствующем компьютере, например в самом устройстве. Таким образом, если компонента 210 контроля определяет, что данное устройство ранее отсутствовало, например, путем проверки по ее собственной внутренней базе данных или базе данных компоненты 310 ассоциирования, то тогда компонента 610 интерфейса ассоциирования может быть использована для выполнения одного или нескольких ассоциирований. Однако, если устройство помечено как «прошедшее проверку» (то есть оно ранее было успешно аутентифицировано), то тогда взаимодействие с пользователем не потребуется, по меньшей мере потому, что устройство было успешно аутентифицировано и авторизовано в предыдущий раз. Указанная ситуация может появиться тогда, когда сетевое устройство инсталлируется и конфигурируется, удаляется из сети, а позднее вновь подключается. С другой стороны, если обнаружено, что устройство помечено как «не прошедшее проверку или аутентификацию либо инсталляцию», то такое устройство может быть помечено как «проигнорированное и отвергнутое для ассоциирования».
Кроме того, следует отметить, что может быть обеспечено совместное использование устройства, например, двумя или более компьютерами, совместно использующими сетевое устройство (например, принтер, камеру, …). Система согласно настоящему изобретению может также быть сконфигурирована таким образом, чтобы обеспечить возможность изменения ассоциирования устройств по требованию (например, для многофункциональных принтеров и камер). Кроме того, система может быть сконфигурирована для выполнения агрегирования устройства. Например, множество устройств может быть объединено для создания более богатых возможностей для конечного пользователя. Так, множество Web-камер может быть объединено в единую более крупную виртуальною Web-камеру (то есть, когда одно большое изображение формируется из отдельных, более мелких изображений Web-камер).
Обратимся к фиг.7, где изображен в качестве примера графический интерфейс 700 пользователя согласно одному аспекту данного изобретения. Если сетевые устройства ассоциированы с компьютером, то тогда операционная система может отобразить пользователю имеющиеся сетевые устройства (например, те, которые постоянно подключены к системе). Интерфейс 700 иллюстрирует один способ, при котором сетевые устройства могут отображаться пользователю. Сетевые устройства 710 могут отображаться под соответствующим заголовком сетевого устройства на панели наряду с другой информацией, такой, как съемные локальные запоминающие устройства 720 и жесткий диск 730. Отображенные пиктограммы показывают, что в этой приведенной в качестве примера системе сетевые устройства включают в себя принтер, карманный компьютер и лэптоп. Следует отметить, что сетевые устройства могут быть показаны отдельно или логически сгруппированными (например, группа принтеров, группа камер). Кроме того, пиктограммы устройств можно выбирать, используя указательное устройство (например, мышь, сенсорную клавиатуру, шаровой манипулятор, сенсорный экран, перо, …). После выбора могут быть отображены характеристики устройства, в том числе, но не только: название, тип, модель, местоположение и статус. Отображенные пиктограммы могут действовать в качестве представителей для сетевых устройств, и соответственно можно манипулировать ассоциированием устройств, например, путем удаления или перемещения пиктограммы устройства. Вдобавок, следует отметить, что графический интерфейс 700 пользователя может поддерживать появление ореола на изображении и его снятие. Например, когда пользователь берет свой лэптоп из дома в офис, то это устройство больше не будет принадлежать локальной домашней сети. Следовательно, интерфейс 700 пользователя может показать это сетевое устройство в домашней сети, но представить его визуально окруженным ореолом. Когда пользователь вернет свой лэптоп обратно в домашнюю сеть, ореол вокруг пиктограммы может быть удален, чтобы показать присутствие этого лэптопа в домашней сети. Кроме того, интерфейс 700 может предоставить механизм, содействующий поиску сетевых устройств (не показано). Например, предположим, что пользователь только что купил новый мобильный телефон Bluetooth и хочет соединить его со своим персональным компьютером. Он обращается к интерфейсу пользователя, но там он не увидит отображение устройства. Пользователь может использовать механизм или задачу поиска для нахождения телефона. Тогда система может начать заполнять интерфейс имеющимися устройствами, используя фильтр, чтобы обеспечить отображение именно мобильных телефонов. После этого пользователь может найти свой телефон в результатах поиска и может добавить его, например, в свои устройства по умолчанию.
Интерфейс 700 представлен для того, чтобы облегчить обсуждение графического интерфейса пользователя. Специалистам в данной области техники следует иметь в виду, что имеются различные способы разработки графического интерфейса. Например, сетевые устройства могут быть отображены в компоновке поворотного типа, где сетевые устройства поворачиваются или появляются после выбора. Соответственно раскрытый здесь интерфейс является примером и не претендует на какое-либо ограничение объема настоящего изобретения.
В свете вышеописанной примерной системы (систем) методику, которая может быть реализована согласно настоящему изобретению, лучше оценить со ссылками на блок-схемы, показанные на фиг.8-10. Хотя в целях упрощения объяснения методика показана и описана здесь в виде последовательности блоков, следует понимать, что настоящее изобретение не ограничивается указанным порядком блоков; согласно настоящему изобретению некоторые блоки могут появляться в другом порядке и/или параллельно другим блокам в отличие от вариантов, показанных и описанных ниже. Кроме того, не все показанные блоки могут оказаться необходимыми для реализации методики согласно настоящему изобретению.
Вдобавок, необходимо понимать, что раскрытые в этом описании методики могут храниться в промышленном изделии для облегчения транспортировки и передачи указанных методик в компьютеры. Предполагается, что используемый здесь термин «промышленное изделие» охватывает компьютерную программу, доступную из любого устройства, носителя или среды, считываемой компьютером.
На фиг.8 показана методика 800 для взаимодействия с сетевым устройством согласно одному аспекту данного изобретения. На шаге 810 обнаруживается поступление сетевого устройства. Сетевое устройство поступает в сеть, когда оно либо подсоединяется к сети физически посредством проводов (например, витая пара, оптическое волокно, коаксиальный кабель, линии электропитания, …) или появляется в географической зоне действия беспроводной сети (например, IEEE 802,11a, 802,11b, 802,11g, связь в инфракрасном диапазоне, радиосвязь, связь по технологии Bluetooth, спутниковая связь, …). Обнаружение сетевого устройства может быть выполнено с использованием таких протоколов обнаружения, как Simple Service Discovery Protocol (SSDP) и Web Service Discovery (WS-Discovery) Protocol. Кроме того, обнаружение может быть активным либо пассивным. Например, в активном сценарии сигнал может транслироваться по сети с требованием обязательного ответа от сетевых устройств. При пассивном сценарии протокол обнаружения может просто прослушивать сеть и ждать уведомление от устройства о его поступлении. На шаге 830 сетевое устройство может быть автоматически сконфигурировано. В сущности говоря, конфигурация может содержать ассоциирование устройства с одним или несколькими сетевыми устройствами и загрузку компоненты драйвера, ассоциированной с конкретным сетевым устройством. Согласно одному аспекту изобретения устройство может быть ассоциировано с персональным компьютером, который автоматически и динамически загружает компоненту драйвера для предоставления функциональных возможностей устройства пользователю компьютера. Например, если к локальной сети подсоединен новый сетевой принтер, его поступление может быть обнаружено одним из множества протоколов обнаружения. Затем принтер может быть ассоциирован, например, с компьютером. Далее компьютер может загрузить драйвер из локального хранилища или извлечь его из удаленного хранилища (например, Web-сервера) и загрузить его. В результате компьютер может использовать этот принтер практически без вмешательства со стороны пользователя.
На фиг.9 показана методика 900 для конфигурации сетевого устройства согласно одному аспекту настоящего изобретения. На шаге 910 сетевое устройство ассоциируется с одним или несколькими другими сетевыми устройствами. Согласно одному аспекту изобретения сетевое устройство ассоциируется с персональным компьютером. На шаге 920 определяется местоположение компоненты (компонент) драйвера, связанной с сетевым устройством. Компонента драйвера содержит информацию, касающуюся правильной инсталляции и конфигурации сетевого устройства, ассоциированного с этой компонентой. Компоненты драйвера могут включать в себя динамически подключаемые библиотеки (DLL), инсталляторы, коинсталляторы, приложения либо файлы любого другого типа. Драйвер может находиться вместе с ассоциированным сетевым устройством, к примеру, в локальном хранилище персонального компьютера, на удаленном сервере (например, Web-сервер изготовителя, централизованный сервер драйверов), в локальном хранилище, ассоциированном с устройством, подлежащим конфигурации, или в любом другом сетевом устройстве. На шаге 930 извлекается компонента (компоненты) драйвера. Например, компоненты драйвера могут быть загружены из удаленного сервера или извлечены из сетевого устройства. На шаге 940 компонента (компоненты) драйвера загружается или инсталлируется для конфигурации сетевого устройства и предоставления функциональных возможностей устройства ассоциированным сетевым устройствам.
Обратимся к фиг.10, где показана блок-схема, иллюстрирующая методику 1000 для конфигурации и инсталляции сетевых устройств согласно одному аспекту настоящего изобретения. На шаге 1010 обнаруживается поступление сетевого устройства. Как обсуждалось выше, сеть может быть проанализирована на предмет определения поступления устройств с использованием одного из нескольких протоколов обнаружения, таких, как SSDP или WS Discovery. Кроме того, обнаружение может быть активным или пассивным. На шаге 1020 устройство ассоциируют с одним или несколькими другими активными сетевыми устройствами (например, персональным компьютером). На шаге 1030 формируется компонента объекта физического устройства. Компонента объекта физического устройства представляет сетевое устройство драйверам и другим программным средствам. Объект физического устройства предоставляет информацию, включающую в себя, но не только, имя поставщика, псевдоним устройства и идентификатор устройства. Предоставленной информации достаточно для определения местоположения ассоциированной компоненты драйвера. На шаге 1040 определяют местоположение компоненты драйвера, связанной с сетевым устройством, на основе по меньшей мере части информации, предоставленной компонентой объекта физического устройства. На шаге 1050 компоненту драйвера используют для создания компоненты объекта функционального устройства, которая открывает функциональные возможности устройства приложениям и/или интерфейсам прикладного программирования (API). Наконец, на шаге 1060 устанавливают защищенный канал связи между сетевым устройством и ассоциированными сетевыми устройствами (например, персональный компьютер). Для обеспечения защищенной связи можно использовать, например, различные способы шифрования.
Для того чтобы обеспечить контекст для различных аспектов изобретения, на фиг.11 и 12, а также в последующем обсуждении предлагается краткое общее описание подходящей вычислительной среды, в которой можно реализовать различные аспекты настоящего изобретения. Хотя изобретение было описано выше в общем контексте выполняемых компьютером команд, входящих в компьютерную программу, которая выполняется на компьютере и/или компьютерах, специалистам в данной области техники должно быть очевидно, что данное изобретение можно реализовать в сочетании с другими программными модулями. В общем случае программные модули включают в себя стандартные программы, программы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи и/или реализуют конкретные типы абстрактных данных. Кроме того, специалистам в данной области техники понятно, что предложенные в изобретении способы могут быть реализованы с другими конфигурациями компьютерных систем, включая однопроцессорные или многопроцессорные компьютерные системы, миникомпьютеры, универсальные компьютеры, а также персональные компьютеры, карманные вычислительные устройства, бытовую электронную аппаратуру на базе микропроцессоров или программируемую пользователем, и т.п. Проиллюстрированные аспекты изобретения могут быть также реализованы на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки данных, которые связаны через сеть связи. Однако некоторые, если не все, аспекты данного изобретения могут быть практически реализованы на автономных компьютерах. В распределенной вычислительной среде программные модули могут находиться как в локальных, так и удаленных запоминающих устройствах.
Обратимся к фиг.11, где примерная среда 1110 для реализации различных аспектов изобретения включает в себя компьютер 1112. Компьютер 1112 включает в себя блок 1114 обработки, системную память 1116 и системную шину 1118. Системная шина 1118 связывает системные компоненты, в том числе, но не только, системную память 1116 с блоком 1114 обработки. Блок 1114 обработки может представлять собой любой из имеющихся процессоров. В качестве блока 1114 обработки также могут быть использованы сдвоенные микропроцессоры и другие микропроцессорные архитектуры.
Системная шина 1118 может представлять собой любую шинную структуру (структуры) нескольких типов, в том числе шину памяти или контроллер памяти, периферийную шину или внешнюю шину и/или локальную шину, с использованием различных имеющихся шинных архитектур, включающих в себя, но не только: 11-разрядную шину, шину с архитектурой промышленного стандарта (ISA), шину с микроканальной архитектурой (MCA), шину с расширенной архитектурой ISA (EISA), шину с архитектурой для электроники интеллектуальных устройств (IDE), локальную шину VESA Ассоциации по стандартам видеооборудования (VLB), шину для межсоединений периферийных компонентов (PCI), универсальную последовательную шину (USB), шину для порта ускоренной графики (AGP), шину Международной ассоциации производителей плат памяти для персональных компьютеров IBM PC (PCMCIA) и шину для интерфейса малых компьютерных систем (SCSI).
Системная память 1116 включает в себя энергозависимую память 1120 и энергонезависимую память 1122. В энергонезависимой памяти 1122 хранится базовая система ввода/вывода (BIOS), содержащая базовые стандартные программы для пересылки информации между элементами в компьютере 1112, например, во время запуска. В качестве примера, но не как ограничение, энергонезависимая память 1122 может включать в себя постоянное запоминающее устройство ПЗУ (ROM), программируемое ПЗУ (PROM), электрически программируемое ПЗУ (EPROM), электрически стираемое ПЗУ (EEPROM) или флэш-память. Энергозависимая память 1120 включает в себя оперативное запоминающее устройство ОЗУ (RAM), которое действует как внешняя кэш-память. Как пример, но не как ограничение, RAM имеется во множестве видов, таких, как синхронное ОЗУ (SRAM), динамическое ОЗУ (DRAM), синхронное динамическое ОЗУ (SDRAM), SDRAM с удвоенной скоростью передачи данных (DDR SDRAM), расширенное синхронное динамическое ОЗУ (ESDRAM), динамическое ОЗУ с синхросвязью (SLDRAM) и ОЗУ с шиной прямого резидентного доступа (DRRAM).
Компьютер 1112 также включает в себя съемные/несъемные энергозависимые/энергонезависимые компьютерные носители. На фиг.11 в качестве примера показано дисковое запоминающее устройство 1124. Дисковое запоминающее устройство 1124 включает в себя, но не только, такие устройства, как накопитель на магнитном диске, накопитель на гибком диске, накопитель на ленте, накопитель Jaz, накопитель Zip, накопитель LS-100, карту флэш-памяти или “memory stick”. Вдобавок, дисковое запоминающее устройство 1124 может включать в себя среду для хранения информации отдельно или в комбинации с другими носителями, в том числе, но не только, накопитель на оптическом диске, такой как ПЗУ на компакт-диске (CD-ROM), накопитель на компакт-диске с однократной записью (CD-R Drive), накопитель на перезаписываемом компакт-диске (CD-RW Drive) или накопитель на цифровом универсальном диске (DVD-ROM). Для содействия подсоединения дисковых запоминающих устройств 1124 к системной шине 1118 обычно используют съемный или несъемный интерфейс, такой, как интерфейс 1126.
Должно быть ясно, что на фиг.11 показаны программные средства, которые действуют как промежуточное звено между пользователями и основными компьютерными ресурсами, описанными в подходящей операционной среде 1110. Указанные программные средства включают в себя операционную систему 1128. Операционная система 1128, которая может храниться на дисковом запоминающем устройстве 1124, обеспечивает управление и распределение ресурсов компьютерной системы 1112. Системные приложения 1130 пользуются возможностями управления ресурсами с помощью операционной системы 1128 через программные модули 1132 и программные данные 1134, хранящиеся либо в системной памяти 1116, либо в дисковом запоминающем устройстве 1124. Необходимо понимать, что настоящее изобретение может быть реализовано с различными операционными системами или комбинациями операционных систем.
Пользователь вводит команды или информацию в компьютер 1112 через устройство (устройства) 1136 ввода. Устройства 1136 ввода включают в себя, но не только, указательное устройство, такое, как мышь, шаровой манипулятор, перо, сенсорную клавиатуру, клавиатуру, микрофон, джойстик, игровую панель, спутниковую тарелку, сканер, плату селектора телевизионных каналов, цифровую камеру, цифровую видеокамеру, Web-камеру и т.п. Эти и другие устройства ввода соединяются с блоком 1114 обработки посредством системной шины 1118 через порт (порты) 1138 интерфейса. Порт (порты) 1138 интерфейса включают в себя, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (USB). Устройство (устройства) 1140 вывода используют ряд портов того же типа, что и устройство (устройства) 1136 ввода. Так, например, порт USB можно использовать для обеспечения ввода информации в компьютер 1112 и вывода информации из компьютера 1112 в устройство 1140 вывода. Выходной адаптер 1142 предусмотрен для того, чтобы показать, что среди других устройств 1140 вывода имеется ряд устройств 1140 вывода, таких, как мониторы, динамики и принтеры, которым необходимы специальные адаптеры. Выходные адаптеры 1142 включают в себя, как пример, но не как ограничение, видео- и звуковые карты, которые обеспечивают средства связи между устройством 1140 вывода и системной шиной 1118. Следует заметить, что другие устройства и/или системы устройств, такие, как удаленный компьютер (компьютеры) 1144, обеспечивают как функции ввода, так и функции вывода.
Компьютер 1112 может работать в сетевой среде, используя логические соединения с одним или несколькими удаленными компьютерами, такими, как удаленный компьютер (компьютеры) 1144. Удаленный компьютер (компьютеры) 1144 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой персональный компьютер, рабочую станцию, бытовой прибор на базе микропроцессора, равноправное устройство или другой общий сетевой узел и т.п., причем такой компьютер обычно включает в себя многие или все элементы, описанные применительно к компьютеру 1112. В целях краткости описания вместе с удаленным компьютером (компьютерами) 1144 здесь показано только запоминающее устройство 1146. Удаленный компьютер (компьютеры) 1144 логически соединен с компьютером 1112 через сетевой интерфейс 1148, а затем физически подсоединен через соединение 1150 для связи. Сетевой интерфейс 1148 охватывает сети связи, такие, как локальные сети (LAN) и глобальные сети (WAN). Технологии LAN включают в себя распределенный интерфейс передачи данных по волоконно-оптическим каналам (FDDI), распределенный проводной интерфейс передачи данных (CDDI), Ethernet/IEEE 802,3, Token Ring/IEEE 802,5 и т.п. Технологии WAN включают в себя, но не только, двухточечные линии связи, сети с коммутацией каналов, такие, как цифровые сети с интегрированными услугами (ISDN) и их варианты, сети с пакетной коммутацией и цифровые абонентские сети (DSL).
Соединение (соединения) 1150 для связи относятся к аппаратным/программным средствам, используемым для подсоединения сетевого интерфейса 1148 к шине 1118. Хотя для ясности соединение 1150 для связи показано внутри компьютера 1112, оно также может быть внешним для компьютера 1112. Аппаратные/программные средства, необходимые для подсоединения к сетевому интерфейсу 1148, включают в себя, только в иллюстративных целях, внутренние и внешние средства, такие, как модемы, в том числе стандартные телефонные модемы, кабельные модемы и DSL модемы, ISDN адаптеры и карты Ethernet.
На фиг.12 показана блок-схема среды 1200 для выборочных вычислений, с которой может взаимодействовать настоящее изобретение. Система 1200 включает в себя один или несколько клиентов 1210. Клиент (клиенты) 1210 могут представлять собой аппаратные и/или программные средства (например, подпроцессы, процессы, вычислительные устройства). Система 1200 также включает в себя один или несколько серверов 1230. Сервер (серверы) 1230 также могут представлять собой аппаратные и/или программные средства (например, подпроцессы, процессы, вычислительные устройства). Серверы 1230 могут содержать подпроцессы для выполнения преобразований, используя, например, настоящее изобретение. Одним из возможных вариантов передачи данных между клиентом 1210 и сервером 1230 может быть передача в виде пакета данных, адаптированного для передачи между двумя или более компьютерными процессами. Система 1000 включает в себя структуру 1250 связи, которую можно использовать для содействия в установлении связи между клиентом (клиентами) 1210 и сервером (серверами) 1230. Клиент (клиенты) 1210 оперативно подсоединены к одному или нескольким хранилищам 1260 данных клиента, которые можно использовать для хранения информации, относящейся к клиенту (клиентам) 1210. Аналогичным образом, сервер (серверы) 1230 оперативно соединен с одним или несколькими хранилищами 1240 данных сервера, которые можно использовать для хранения информации, относящейся к серверам 1230.
Приведенное выше описание включает в себя примеры настоящего изобретения. Разумеется невозможно описать каждую комбинацию компонент или методик в целях изложения существа настоящего изобретения, но специалистам в данной области техники будет понятно, что возможно множество дополнительных комбинаций и модификаций настоящего изобретения. Соответственно предполагается, что настоящее изобретение охватывает все видоизменения, модификации и варианты, не выходящие за рамки сущности и объема предлагаемой формулы изобретения. Кроме того, поскольку термин «включает в себя» (includes) используется либо при подробном описании, либо в формуле изобретения, предполагается, что указанный термин аналогичен термину «содержащий», причем термин «содержащий» используется в качестве транзитного слова в формуле изобретения.