IrDA
С точки зрения абстракций низкого уровня IrDA (Infrared Data Association — Ассоциация по передаче данных через инфракрасные каналы) — это просто стандарт последовательной передачи данных по инфракрасному каналу; в рамках программных моделей более высокого уровня абстракции это понятие приобретает значительно более широкий смысл. Поверх IrDA была построена сложная многоканальная программная модель, и эту модель можно с успехом применять в качестве гибкого средства передачи данных (более подробные сведения по этому вопросу вы найдете по адресу: www.irda.org).
В силу своей дешевизны и необычайно широкой распространенности технология IrDA отлично подходит для организации связи между равноправными устройствами. Поскольку стоимость изготовления оборудования для IrDA невелика, оно имеет небольшие размеры и потребляет мало электроэнергии, оно интегрируется во многие мобильные устройства, включая устройства Pocket PC и смартфоны. Для осуществления передачи данных два устройства должны быть физически сориентированы друг относительно друга определенным образом, после чего между ними может быть установлена связь.
С точки зрения разработки мобильного приложения IrDA представляет интерес по двум причинам. Во-первых, как и Bluetooth, IrDA можно использовать для того, чтобы обеспечить возможность обмена данными между мобильным устройством с внешними сетями через другое устройство. Например, мое устройство PDA может связаться с источником данных посредством мобильного телефона; возможности такой опосредованной связи несколько ограничиваются тем фактом, что в процессе передачи данных устройства должны быть определенным образом физически ориентированы друг относительно друга — ограничение, отсутствующее в Bluetooth. Во-вторых, — и, пожалуй, это представляет даже больший интерес, — IrDA может привлекаться для организации совместного использования информации двумя различным устройствами; классическим примером этого может служить "переброска" ("beaming"), или "перекачка" ("squirting"), записи адресной книги с одного мобильного устройства на другое. Поскольку IrDA обеспечивает вполне приличную пропускную способность, с одного устройства на другое может быть "перекачано" довольно много информации.
Соединение равноправных узлов сети посредством IrDAСетям с соединениями равноправных узлов предшествовали сети с двухточечными соединениями, и это — парафия IrDA. Передача данных на основе IrDA предоставляет в наше распоряжение простой и относительно широкополосный механизм обмена данными между находящимися рядом с другом устройствами. Несмотря на отсутствие того "блеска новизны", который свойствен таким технологиям персональных сетей, как Bluetooth, у IrDA имеются и свои достоинства — она апробирована, тестирована и проста в использовании. Если ваши пользователи не имеют ничего против установки двух устройств друг напротив друга, то IrDA прекрасно подойдет для удовлетворения нужд вашего приложения, связанных с сетевыми технологиями, основанными на соединении равноправных узлов.
IrDA — это зрелая технология, которая часто остается незамеченной и незаслуженно мало используется разработчиками приложений. По моему мнению, это можно объяснить тем, что многие просто не знают, насколько простой в применении и гибкой является эта технология на самом деле. В .NET Compact Framework возможности программирования IrDA предоставляются посредством интерфейса сокетов, аналогичного тому, который используется при передаче данных посредством сервиса TCP/IP (Internet). Основное, что отличает использование сокетов в Internet-технологиях от использования сокетов в IrDA, — это понятие "именованного порта" ("named port").
Когда используются стек протоколов TCP/IP и сокеты, каждой машине назначаются собственный IP-адрес (например, 200.198.126.81) и номера портов, которые разрешается использовать для связи. Серверы открывают порты, которые они хотят прослушивать для получения запросов. Клиентское устройство может запросить связь с сервером путем указания IP-адреса машины и номера порта, к которому необходимо подключиться. В случае связи посредством двухточечных соединений технологии IrDA порт IrDA одного из устройств ориентируется в сторону другого устройства, в связи с чем отпадает необходимость в использовании схем адресации для установления местонахождения сервера. Если приложение желает предоставить интерфейс сокета IrDA для передачи контактной информации о своем владельце, оно может открыть сокет IrDA, которому присвоено имя OwnerContactInfo. Аналогичным образом, если приложение, играющее роль фотоальбома, должно обеспечивать возможность загрузки фотографий другими приложениями, оно может открыть сокет IrDA с именем PhotoDownloadService. Клиентские приложения на других устройствах, желающие подключиться к этим службам, запрашивают их по именам.