Читаем Программирование мобильных устройств на платформе .NET Compact Framework полностью

1. Абстрагируйте сетевую технологию. К счастью, являясь разработчиком мобильного приложения, вы можете абстрагироваться от большинства низкоуровневых деталей мобильных коммуникационных технологий. Соединение с Web-cepвeром через сокет остается одним и тем же в сетях 2.5G и 3G, и сокету совершенно безразлично, какая технология положена в основу радиосвязи — CDMA, GSM или еще что-нибудь другое. Важный урок состоит в том, чтобы использовать настолько высокий уровень технологической абстракции, насколько это возможно. В качестве высокого уровня абстракции неплохо использовать запросы и ответы HTTP; сокеты находятся одним уровнем ниже, но остаются нейтральными по отношению к выбору сети. Чем дальше вы отходите от интерфейса радиосвязи устройства, тем более переносимым будет ваше приложение. Нет никаких причин для того, чтобы надлежащим образом спроектированное приложение не могло выполняться в неизменном виде и в сетях GSM, и в сетях CDMA.

2. Предусматривайте возможность работы на пониженных скоростях передачи данных. Хотя 3G-ceти могут обеспечивать очень высокую пропускную способность, можно предположить, что в обозримом будущем ваши целевые мобильные устройства будут, вероятно, работать в смешанном окружении, состоящем из сетей 2.5G и более поздних. Для сетей 2.5G достаточно разумным является предположение о том, что скорость передачи данных будет составлять примерно 20 Кбит/с; 20 Кбит/с = 2,5 Кбайт/с. Вполне вероятно, что при работе с улучшенными сетями ваше приложение сможет обмениваться данными с более высокой скоростью, но не менее вероятно, что в силу загруженности сети скорость передачи данных будет еще меньше, приближаясь к значениям, характерным для модемов, работающих через аналоговые телефонные линии. В этом же направлении действует еще один фактор — временные задержки; можно почти не сомневаться, что канал передачи данных в мобильной сети 2.5G будет характеризоваться большими задержками, чем кабельное соединение с Internet, о чем важно не забывать, если вы рассчитываете на немедленный (менее 1 секунды) отклик. Если ваше мобильное приложение должно использовать сети мобильной телефонной связи, то очень важно обеспечить его надежную работоспособность при пониженных скоростях передачи данных и увеличенных временах задержки. При разработке проекта целесообразно руководствоваться правилом, суть которого заключается в следующем: если объем загружаемых данных превышает 20 Кбайт, то имеет смысл отслеживать длительность загрузки и в случае превышения определенного порогового значения прекращать эту операцию. Разумеется, фактическое значение критической длительности загрузки и длительность интервала ожидания зависят от природы приложения и характеристик используемых сетей с учетом интересов конечного пользователя. Конечный пользователь не должен ждать поступления данных в течение неопределенного времени, если их загрузка осуществляется фоновым потоком; измеряйте степень выполнения загрузки и соответствующим образом устанавливайте критические значения параметров.

3. Хорошо изучите действующие системы оплаты связи. Хотя в некоторых старых (в основном. 2G) системах передачи данных взимаемая плата зависит от длительности соединения, оплата услуг по предоставлению данных в большинстве сетей мобильной связи основывается на количестве переданных битов. Ставки оплаты для отечественных сетей и сетей с услугами роуминга могут значительно отличаться. Все эти факторы будут оказывать самое непосредственное влияние на те расходы, которые понесет пользователь вашего приложения, оплачивая услуги связи. Относительно того, какие тарифы оплаты связи можно считать приемлемыми, а какие — неприемлемыми, трудно дать какие-либо определенные рекомендации; это будет определяться природой вашего приложения. Выбирая технологию мобильной связи, целесообразно измерить характерные объемы загружаемых и выгружаемых данных и оценить соответствующие затраты применительно к различным коммуникационным моделям.

Сеть мобильной телефонной связи, Wi-Fi или и то, и другое?

Все большее количество мобильных телефонов с развитой функциональностью, поступающих на рынок, поддерживают Wi-Fi, причем эти возможности либо являются встроенными, либо делаются доступными посредством подключения съемных карт; двумя наиболее популярными форматами таких карт являются карты Compact Flash и Secure Digital Wi-Fi. В свою очередь, в лэптопах и специализированных мобильных вычислительных устройствах, имеющих встроенную поддержку Wi-Fi, съемные карты часто предусматриваются для обеспечения дополнительной возможности доступа к сетям мобильной телефонной связи.

Перейти на страницу:

Похожие книги

Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

Эндрю Хант , Дэвид Томас , А. Алексашин

Программирование / Книги по IT
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT