`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Сенсоры Windows 7: физический компьютинг, скоро – для всех

Статья опубликована в №43 (660) от 11 ноября

+11
голос

C этой, одной из новых для ОС производства Microsoft, подсистемой очень многим «рядовым» пользователям, возможно, никогда не придется столкнуться. Но настоящим geeks Microsoft в Windows 7 приготовила настоящую же конфетку. Причем сделала это так, как ни в одной универсальной пользовательской ОС до нее никто не делал.

Для справедливости следует предварить раздачей заслуженных наград краткое знакомство с по-новому не совсем новой технологией.

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

Итак, перед нами свершившийся факт – более чем компетентные в оценке популярности и востребованности технологий специалисты Microsoft приняли решение о создании собственной платформы, позволяющей наконец-то придать современному массовому персональному компьютеру развитые способности взаимодействия с физическим внешним миром. О чем же он свидетельствует? Без сомнения и в первую очередь, о том, что за само появление этой подсистемы в массовой ОС мы должны быть благодарны первопроходцам, которые на деле и показали возможности «новой» технологии, и придали ей ауру доступности для всех желающих, и создали сообщества, интегрирующие представителей geek-субкультуры с представителями классических культур, и результатами этой интеграции, порой удивительными и талантливыми, показали очень многим – технология созрела. За это надо первопроходцам выразить заслуженную благодарность.

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

Решения типа Processing + Arduino, невзирая на привлекательность и доступность, предполагают два существенных ограничения – они навязывают разработчикам собственную весьма специфическую программно-аппаратную платформу. Тот же Processing – по сути язык программирования (еще один), среда исполнения и библиотеки, и все это разработчик должен изучать в дополнение к уже известному ему инструментальному набору. Но это еще не все. Каждый новый аппаратный интерфейс нового датчика (мир ведь не заканчивается на единственной аппаратной платформе типа Arduino) требует изменения исходных текстов в Processing, при этом, что очевидно и неоднократно подтверждено практикой, более чем вероятна потребность сквозных изменений – когда для утилизации возможностей нового датчика потребуются модификация вплоть до уровня языка (недостаток на самом деле присущ целому классу разработок, часто размыто определяемому как «вертикальные решения», это название в какой-то мере отражает, что изменения в самых низкоуровневых узлах влекут необходимость изменений на самых высоких уровнях архитектурной вертикали).

В Windows 7 Microsoft предлагает другой подход – для решения поставленных задач на системном уровне максимально использовать развитые и проверенные средства интеграции, при этом минимально навязывать какие-либо специфические технологии программистам прикладного уровня. Собственно говоря, весь последующий рассказ как раз и будет о том, что по-настоящему нового для мира физического компьютинга в новой подсистеме ОС Windows 7 под названием «Платформа поддержки сенсоров и позиционирования» (Windows Sensor and Location Platform, WSLP), реализующей, в принципе, не новую функциональность. А мы говорим именно о нем, и анонсом WSLP Microsoft очень серьезно заявила претензию на лидерство.

Итак, WSLP – это набор средств разработки, управления и использования результатов инфраструктуры интеллектуальных (и не очень) датчиков, снимающих какие-либо характеристики объектов физического мира. Ключевой элемент WSLP, радикально отличающий ее от любых аналогов, и отличающий в лучшую сторону, – интерфейс драйверов датчиков (Sensor Device Driver Interface, SDDI или просто DDI). Его назначение – упрятать конкретный датчик за видимым системному программисту стандартизированным представлением. И здесь сразу проявляется одна очень серьезная проблема. Она заключается в том, что датчиков есть и может быть очень много. И очень разных. Соответственно, драйверов тоже нужно очень много (платформа предусматривает их специальную классификацию на основе глобальных уникальных идентификаторов – GUID, а также большое количество предопределенных производителей классов драйверов). А драйверы – это потенциально крайне ненадежный код. Особенно в системах, где их разработка открыта. В Windows 7 в целях обеспечения высокой надежности работы всей системы в целом SDDI основывается на платформе UMDF (User-Mode Driver Framework), обеспечивающей создание драйверов, работающих в пользовательском режиме для повышения толерантности системы к сбоям в исполнении их кода. UMDF-драйвер в случае ошибки просто перезапускается, не вызывая «падения» всей системы в целом. Несмотря на компонентную родословную (UMDF-драйверы являются динамически загружаемыми библиотеками, в режиме исполнения – COM-серверами), использование всех потенциально опасных или сложных компонентных механизмов COM для них конструктивно невозможно, что также повышает надежность. Для программистов это «поражение в возможностях» выражается предельной ясностью и простотой кода реализации драйверов (например, для всей работы по «общению» с сенсором достаточно всего двух интерфейсов обратных вызовов, callback interface).

Над уровнем SDDI в архитектуре WSLP располагаются полноценные компонентные (COM) программные интерфейсы прикладного уровня – датчиков и устройств определения местоположения. О последних следует заметить, что в их роли не только могут выступать физические GPS-приемники, например, но и любые виртуальные «устройства», способные выдавать информацию о географическом положении, скажем веб-сервисы (вообще идею использовать унифицированные устойчивые к сбоям драйверы пользовательского режима в качестве элементов системы безопасности при работе с веб-приложениями можно заслуженно считать блестящей).

На пользовательском уровне вся подсистема полностью контролируется с помощью панели управления сенсорами.

Сенсоры Windows 7 физический компьютинг, скоро – для всех
Рич Рашид, старший вице-президент Microsoft Research, представляет возможности платформы WSLP на конференции PDC 2008

Что касается аппаратных средств датчиков, то здесь Microsoft оставляет разработчикам практически бесконечное поле для деятельности и тем самым уходит далеко от создателей аналогичных систем любительского уровня. Во-первых, инфраструктура WSLP не предусматривает ни ограничений, ни требований на «степень интеллекта» конкретного датчика. То есть речь может идти как об обычном механическом переключателе на два положения (цепь замкнута – цепь разомкнута), так и о 32-битовом специализированном одноплатном компьютере, оснащенном чуть ли не всем, что может пригодиться для реализации интеллектуального датчика – для всего этого создание драйверов является фактически тривиальной задачей. Кроме того, в рамках партнерства с компанией Freescale (известный производитель интегральных микросхем, унаследовавший массу интеллектуальной собственности и производственные ресурсы прародителя Motorola), Microsoft предложила потенциальным создателям будущего сенсорного обрамления Windows 7 в качестве и образцовой реализации аппаратной платформы интеллектуального датчика, и инструментального средства для быстрого прототипирования и отладки ориентированного на использование сенсоров ПО для Windows плату «JM Badge Board» от Freescale. Этот весьма развитой одноплатный компьютер на основе 32-битового микроконтроллера семейства ColdFire с массой интегрированных на кристалле подсистем (в первую очередь необходимых для организации связи с другими устройствами) оснащен самой привлекательной и востребованной при реализации разных потребительских устройств периферией. В частности, на всех JM badge Board предустановленны трехосевые интегральные акселерометры (микросхемы, выдающие электрические сигналы, пропорциональные характеристикам их движения (ускорениям) в пространстве), датчики освещенности и контроллеры сенсорных клавиатур. Этот набор периферии в сочетании со средствами быстрой разработки, поставляющимися в комплекте (в пробных версиях) позволяет с минимальными усилиями «набросать» модель будущего сенсора, общающегося с ПК посредством практически любого интерфейса и протокола (JM Badge Board при минимальных затратах дает возможность прототипировать датчики с USB, CAN, RS232 и RS485 интерфейсами). Не удивительно, что у тематического павильона «Sensors and Locations» во время конференции профессиональных разработчиков Microsoft (PDC 2008), на которой была анонсирована новая платформа, толпились те, кого принято называть geeks, – там можно было получить комплект из платы JM Badge Board, системного ПО и средств разработчика. К слову, ажиотаж подогревала и как бы встречная инициатива Freescale – конкурс на лучшую разработку на основе JM Badge Board пусть и с небольшими ($5000 за высшее достижение), но все же очень приятными вознаграждениями www.canyourbadgedothis.com).

Ну а теперь, после краткого обзора, можно поговорить о главном – о подлинном назначении сенсорной подсистемы Windows 7. Мы уже привыкли, что пользовательская операционная система – это невидимая для пользователя (в том числе и весьма неплохо подготовленного, и даже для «непрограммирующего программиста») прослойка. И так и должно быть. Мир пользователя – это мир прикладных программ и, в особо тяжелых (если выражаться в медицинских терминах, относящихся к расстройствам) случаях, – мир высокоуровневых языков сценариев (скриптов) и специализированных языков программирования сверхвысокого уровня. В этом мире нет места для деталей реализации низкоуровневых сервисных механизмов, потому что здесь у нуждающегося в показаниях температуры, например больного, нет времени на изучение всех нюансов реализации шины RS-485, по которой эти данные передаются. И прикладные программисты, кстати, это хоть и специфическая, но все же разновидность тех же пользователей. С другой стороны, системные программисты – также живые люди, ничто человеческое им не чуждо, в том числе и нежелание регулярно делать одно и то же, что можно было бы сделать вообще один раз. И подлинное назначение новой сенсорной подсистемы Windows 7 – дать единый механизм, адекватный требованиям и первых, и вторых. То есть решить некоторую задачу оптимизации с двумя критериями (для человека хоть чуть-чуть понимающего, о чем идет речь, это означает, что задача принципиально не может иметь идеального решения и любое из предложенных ее решений, какое ни предложи, будет не «единственно наилучшим», а очередным компромиссом).

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

+11
голос

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT