Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
? Предоставьте пользователям возможность отказываться от операций, выполнение которых в настоящее время они считают нецелесообразным. Как бы вы ни старались, почти невозможно предугадать, с какими трудностями придется столкнуться вашему приложению при выполнении коммуникационных операций, и каковы могут быть надежные способы их решения. Причиной того, что ваше приложение не сможет предоставить пользователю те условия связи, на которые тот рассчитывает, может быть перегрузка сети и, как следствие, ее низкая пропускная способность, возникновение проблем на прокси-сервере, а также множество других факторов. Ваш код должен надежно справляться с подобными ситуациями. Что немаловажно, вы должны давать конечным пользователям возможность принимать на себя управление ситуацией и прекращать попытки обмена информацией с удаленными источниками, откладывая выполнение операций на более поздний срок. Ваше приложение должно обеспечивать конечных пользователей необходимой информацией, позволяющей им принимать обоснованные решения относительно целесообразности дальнейшего поддержания связи; последующее поведение приложения должно определяться тем, что требуется пользователю. В качестве возможных способов оказания пользователю помощи в принятии обоснованных решений подобного рода можно привести отображение на экране количества попыток установления связи или "процента выполнения" операции, связанной с передачей данных, а также предоставление пользователю возможности отменить или отложить на более поздний срок осуществление такой операции, если она выполняется слишком медленно.
Один из возможных примеров цепочки мобильной связи, в которой используется как сеть мобильной телефонной связи, так и сеть Wi-Fi, представлен в схематическом виде на рис. 15.3.
Рис. 15.3. Маршрут передвижения пользователя мобильного телефона и сети Wi-Fi. Сети мобильной телефонной связи характеризуются более широкой зоной покрытия, но меньшей скоростью передачи данных по сравнению с сетями Wi-Fi. Для пользователя, перемещающегося на большие расстояния, сети мобильной телефонной связи обеспечивают возможность подключения к данным на сервере практически на всем протяжении маршрута. Если возникает необходимость в передаче большого объема данных, то пользователь должен специально приблизиться к "горячей точке Wi-Fi". Кроме того, возможностью подключения к сети Wi-Fi иногда можно пользоваться в "мертвых зонах" ("dead spots") сети мобильной телефонной связи (например, в метро).
На этом рисунке видно, что сети мобильной телефонной связи имеют широкие зоны покрытия с относительно малочисленными "мертвыми зонами", в которых связь не обеспечивается. В отличие от этого зоны покрытия Wi-Fi сетей характеризуются гораздо меньшими размерами, но зато обладают большей пропускной способностью. Пользователи мобильных устройств могут использовать сеть мобильной телефонной связи для частой передачи данных небольшими порциями, когда работают на выезде, а более крупные объемы данных помещать в очередь и передавать во время нахождения вблизи "горячей точки" широкополосной сети Wi-Fi.
Связь посредством лотка/кабельного соединения с ПК
Под связью посредством лотка понимается либо непосредственная, либо сквозная передача данных в сеть через промежуточный компьютер, когда устройство подключено к этому компьютеру с помощью физического кабеля. Вместо установления соединения непосредственно с сетью мобильное устройство связывается с настольным компьютером или лэптопом. Устройство либо синхронизирует данные с компьютером, либо использует его в качестве средства, обеспечивающего доступ к сети. Примечание. Возможность доступа к сети через хост-компьютер должна поддерживаться программным обеспечением, при помощи которого осуществляется синхронизация данных; так, начиная с Pocket PC 2002, различные версии программного обеспечения ActiveSync компании Microsoft поддерживают туннелированный доступ устройств к Internet через настольные компьютеры. В разных технологиях работы с устройствами подобная поддержка "сквозного" доступа в сеть будет обеспечиваться разным программным обеспечением.
Преимуществом связи посредством лотка является ее относительная простота. Часто все необходимое для этого программное обеспечение и кабели уже имеются у владельцев соответствующих мобильных устройств, а владельцы компьютеров тоже, как правило, сразу же заботятся о подключении их к сети Internet. Связь через лоток особенно удобно использовать в интересах прототипирования, тестирования и отладки приложения, поскольку она обеспечивает легкий доступ к сетевым устройствам в контролируемом окружении. Кроме того, связь через лоток не является дорогой, поскольку она не зависит ни от какой другой инфраструктуры сетевого доступа кроме тех, которые уже имеются на лэптопах и настольных компьютерах.
Основным недостатком обмена данными через лоток является то, что устройство оказывается привязанным к компьютеру, который поддерживает необходимое для синхронизации данных программное обеспечение. Решение, основанное на использовании определенного набора хост-компьютеров, неспособно обеспечить доступ к данным в соответствии с принципом "связь в любое время и в любом месте". Вместе с тем, если мобильному приложению, которое вы разрабатываете, требуется не доступ к сети в любой момент, а лишь периодическая синхронизация данных, которая может быть выполнена через сетевое соединение ПК, то коммуникационная модель, использующая связь через ПК, вам вполне подойдет. Как и в случае доступа к сети Wi-Fi, связь посредством лотка может быть использована для реализации других коммуникационных механизмов; например, при работе на выезде для передачи и получения небольших объемов данных можно использовать сети мобильной телефонной связи, тогда как крупные объемы данных можно кэшировать на устройстве для последующей их синхронизации через ПК, подключенный к сети.
Сетевой кабель
Использование кабеля Ethernet для связи мобильных устройств с сетями очень похоже на использование с этой целью сети Wi-Fi. Будучи в основном схожими между собой, эти две коммуникационные модели отличаются друг от друга в следующем:
? Сетевые кабели привязывают вас к определенному месту в большей степени, чем сеть Wi-Fi. Диаметр зоны связи вокруг базовой станции Wi-Fi составляет несколько сотен футов, что значительно превышает приемлемую для большинства случаев длину кабеля; в этом смысле Wi-Fi предоставляет более "мобильную" форму доступа. нежели сетевой кабель. Что касается практической стороны дела, то в тех случаях, когда требуется гибкий сетевой доступ в пределах ограниченной территории, например, внутри одного здания, чаще дешевле использовать Wi-Fi, чем прокладывать кабельную проводку по всему зданию. С другой стороны, наличие сетевого кабеля гарантирует возможность постоянного доступа к сети; в тех местах, куда не доходит сигнал Wi-Fi, сетевой кабель может оказаться единственно возможным выходом.
? Сетевые кабели обладают определенными преимуществами в отношении защиты информации по сравнению с Wi-Fi. Несмотря на то что сети Wi-Fi могут быть сконфигурированы для передачи данных по шифрованным каналам, они в любой ситуации будут оставаться широковещательными радиоканалами. Сценарий, предполагающий использование кабелей, способен защитить от прослушивания радиосигналов; эту защиту нельзя считать "пуленепробиваемой", но все же — это дополнительный уровень повышения безопасности. Примечание. Если вы устанавливаете соединение с общедоступной сетью или через нее, то этот дополнительный уровень безопасности обеспечивает лишь минимальную защиту; чтобы надежно защитить свои данные, вам придется прибегнуть к шифрованию. (Придерживаться этой рекомендации не помешает в любой ситуации.)
? Для кабельного подключения к сети может потребоваться дополнительное оборудование. В то время как для большинства современных настольных компьютеров предусмотрены встроенные возможности как проводного, так и беспроводного подключения к сети, для большинства мобильных устройств это не так. Вследствие увеличения размеров, энергопотребления и стоимости изготовления соответствующего оборудования эта ситуация, по-видимому, еще просуществует какое-то время. Для поддержки кабельного сетевого подключения вам может понадобиться дополнительная внешняя карта (обычно Compact Flash или Secure Digital).
Как и в случае связи через лоток, подключение к сети посредством физического кабеля может оказаться очень полезным при прототипировании и отладке решений для мобильных устройств. В то же время, вы должны отчетливо понимать, что при использовании многих беспроводных коммуникационных механизмов скорость подключения и характеристики надежности будут намного ниже; и хотя кабельные сетевые соединения являются полезным средством, одного его недостаточно для разработки и тестирования приложений, которые будут выполняться в беспроводных сетях.
IrDA
С точки зрения абстракций низкого уровня IrDA (Infrared Data Association — Ассоциация по передаче данных через инфракрасные каналы) — это просто стандарт последовательной передачи данных по инфракрасному каналу; в рамках программных моделей более высокого уровня абстракции это понятие приобретает значительно более широкий смысл. Поверх IrDA была построена сложная многоканальная программная модель, и эту модель можно с успехом применять в качестве гибкого средства передачи данных (более подробные сведения по этому вопросу вы найдете по адресу: www.irda.org).