Внедряйте необходимые коммуникационные средства безопасности уже на ранних стадиях проектирования приложения
Поскольку для обмена информацией мобильные устройства часто используют общедоступные сети и беспроводные каналы, важно продумать, какие средства защиты данных вам могут понадобиться, каким образом они должны быть встроены в ваше приложение и как это повлияет на процесс развертывания и производительность приложения. На сегодняшний день существует множество способов шифрования передаваемых данных; одними из наиболее популярных и простых в использовании являются безопасные протоколы HTTPS и SSL.
По существу, вы должны решить для себя следующее: 1) требуется ли вашему приложению безопасная передача данных, 2) с какими сетями будет взаимодействовать приложение, и 3) как будет реализован тот или иной уровень безопасности.
В большинстве отношений безопасная передача данных ничем не отличается от незащищенной передачи данных, но требует некоторой дополнительной настройки и сопровождается дополнительными накладными расходами. Если безопасная передача данных требуется при работе с общедоступными сетями, то, возможно, ваше приложение должно будет присоединять цифровые сертификаты к Web-запросам и проверять достоверность тех данных, которые оно получает. Применение средств шифрования и дешифрования при передаче данных требует выполнения дополнительных вычислений на обоих концах линии, что будет влиять на производительность; насколько велико это влияние, могут показать только тесты. И хотя базовый коммуникационный код в обоих случаях работает примерно одинаково, безопасная передача данных требует выполнения некоторых дополнительных шагов. Следствием этого будут дополнительные затраты времени на стадии проектирования и некоторое снижение производительности приложения. Если вашему приложению требуется безопасная передача данных, то проектирование и тестирование соответствующих средств безопасности следует начинать как можно раньше. Как и в случае асинхронной передачи данных, встраивание кода, обеспечивающего безопасную передачу данных, в уже почти завершенный алгоритм, является крайне нежелательным. Если требуется обеспечить шифрование сообщений, то наличие прошедшего тестирование кода, обеспечивающего безопасную передачу данных, избавит вас от необходимости внесения многочисленных изменений на последующих стадиях проектирования приложения.
Передача данных и выбор сети
Для передачи информации на устройство или с устройства мобильное приложение может использовать множество различных коммуникационных механизмов. Важно понимать, что какого-то одного наилучшего механизма не существует. У каждого из коммуникационных механизмов имеются собственные достоинства, недостатки и наиболее подходящие сценарии использования. Некоторые механизмы ориентированы на соединение равноправных узлов (peer-to-peer connection), другие — на нательные сети (body-area network), Internet или локальные сети. Анализируя потребности определенного вида связи, полезно составить список технологий, пригодных для использования в нужном вам решении, и набросать схему того, каким образом могло бы работать решение, основанное на той или иной технологии. Почти всегда вам придется выбирать из нескольких возможных вариантов, и принятие решения о том, какой из них будет для вас наилучшим, должно явиться результатом как творческого подхода, так и самого скрупулезного анализа. Некоторые наиболее распространенные коммуникационные механизмы описаны ниже.