Совсем недавно российская компания Parallels обновила свои приложения Access для работы с персональными компьютерам на мобильных устройствах. В них реализовано много интересных функций и мы побеседовали с Алексом Пацаем, директором программ-менеджмента в Parallels, о том, что такое Parallels Access, как шла разработка приложений и как будет развиваться это направление в дальнейшем.
Недавно вышла новая версия вашего приложения для предоставления удаленного доступа к своим персональным компьютерам с устройств на iOS и Android. Можете рассказать более подробно про Parallels Access?
Мы, как компания, известны в двух сегментах – решения для дата-центров и кроссплатформенные решения (Parallels Desktop для Mac и Parallels Access, Parallels Mac Management). Вот второе направление – это то, что мы называем «объединением разных миров». Например, в рамках Parallels Desktop на компьютерах Mac ставится виртуальная машина, в которой может работать Windows или другая операционная система, а также приложения для нее — без перезагрузки компьютера.
На мобильных устройствах – это немного другая история, потому что виртуализировать одну операционную систему поверх другой на мобильных устройствах, как минимум, сложно (другая процессорная архитектура и всё такое), а как максимум – на iOS этого вообще нельзя сделать (в связи с ограничениями Apple). Поэтому мы и называем это – «объединение двух разных миров»: если на Mac мы интегрируем Mac и Windows, то на мобильных устройствах пытаемся дать их пользователям как можно более удобный доступ к миру приложений для Mac и PC.
С технической точки зрения Parallels Access – это удаленный доступ с мобильного устройства на Mac или PC, который есть у этого пользователя, с возможностью работы с приложениями, которые есть на этом компьютере.
Фактически, мы говорим об удаленном рабочем столе, правильно я вас понимаю?
Не совсем. Традиционные инструменты удаленного доступа делают именно то, о чём вы сказали – дают доступ к удаленному рабочему столу, просто показывая весь компьютер, как он есть. Это имеет некоторые последствия для пользователя.
Во-первых, мониторы и разрешение экрана у компьютеров гораздо больше, чем у мобильных устройств. И пользователь видит маленькую картинку большого рабочего стола на своем мобильном устройстве.
Во-вторых, приложения на мобильном устройстве и на компьютере написаны по-разному и по-разному работают: компьютер предназначен, в основном, для управления мышкой и клавиатурой. На мобильном устройстве это приводит к тому, что работать с мелкими «компьютерными» объектами становится неудобно, в них сложно попасть пальцем, ими сложно манипулировать на сенсорном устройстве. В итоге, с традиционными инструментами удаленного доступа очень тяжело работать.
И какое ваше решение вопроса?
Мы не захотели делать еще одно приложение удаленного доступа. И решили создать инструмент, который позволит пользователям работать на мобильном устройстве с приложением, которое было сделано для персонального компьютера, так, как будто это приложение разработано специально для мобильного устройства. То есть, например, если текст в Windows выделяют мышкой, то на планшете это должно работать через «булавки» (pins).
Мы начали с простого. Во-первых, не показываем полный рабочий стол. Мы делаем это, как на iPad или Android: пользователь в один момент времени работает с одним приложением, соответственно, мы показываем только интерфейс этого приложения. При этом переключаем разрешение на удаленном компьютере так, чтобы экран приложения занимал весь экран мобильного устройства, и таким образом даем пользователю возможность лучше видеть его элементы, в них становится гораздо легче попадать.
То есть, наша задача удаленного доступа заключается не в том, чтобы просто дать пользователю доступ к компьютеру. Мы предоставляем ему возможность получить удобный доступ к конкретному приложению. Для этого у нас есть, например, App Launcher – такой же экран с иконками приложений, как на планшете или телефоне, только показаны десктопные приложения: Word, Excel, Photoshop, Autocad и другие программы. Пользователь просто кликает пальцем на иконку точно так же, как он запускает приложение на мобильном устройстве, и получает интерфейс именно этого приложения.
Более того, поскольку Parallels Access – это целый комплекс, состоящий из мобильного приложения и устанавливаемой на компьютер программы-агента, мы создаем своеобразную «прослойку» интерфейса, которая позволяет конвертировать обычные касания в сенсорном интерфейсе в элементы управления на удаленном компьютере. За счет этого с приложением легко работать, даже если оно было разработано для Windows XP десять лет назад.
Эта «прослойка» управления, вероятно, достаточно сложна, ведь у всех программ разные элементы. Как вы боретесь с этой сложностью?
Идея заключалась в том, чтобы обеспечить качественный user experience. Это можно перевести как «ощущения от работы», идентичные работе с традиционным мобильным приложением. То есть, если человек работает на iPad, он знает, что один «тач» – это запустить что-то, два «тача» – это выбрать слово в тексте, «скролл» одним пальцем — прокрутка содержимого на экране, сдвигание или раздвигание двух пальцев – уменьшить или увеличить что-то на экране. Такой же принцип справедлив для Android-устройств и iPhone. Все эти жесты пользователь уже знает, и поэтому мы хотели сделать так, чтобы работа с PC-приложением была идентична тому, что пользователь уже знает на планшете или телефоне.
Естественно, это нетривиальная задача, и мы разрабатывали Parallels Access как новую версию продукта, больше двух лет.
Это серьезные человеческие вложения и с точки зрения мобильной разработки, и с точки зрения разработки софта на компьютере. И, конечно, технически в Parallels Access много всевозможных ноу-хау, которые позволяли с одной стороны:
- реализоваться нашим программистам (они любят всякие технически сложные задачи);
- получить множество разных патентов, потому что это действительно интересные изобретения, аналогов которых нет в мире.
С другой стороны (и это самое главное), мы дали пользователям удобный инструмент для работы на планшетах с приложениями, которые для этого не предназначены.
Если совсем перейти на технический уровень, то с компьютера на мобильное устройство передается поток видео, который кодируется в mpeg4. Мы же даем возможность пользователю работать с этим видео так, как будто это обычный touch-интерфейс приложения.
А какой канал для этого нужен? На 3G я смогу получить доступ к своему устройству?
Естественно, что возникает вопрос скорости, и, в принципе, мы старались сделать так, чтобы даже на 3G можно было работать с удаленным компьютером. На EDGE, конечно, это будет уже болезненно, на Wi-Fi, особенно в рамках локальной сети, скорость вполне естественна для работы с любым другим приложением, даже с нативным. Что касается мобильных каналов, то желательно иметь скорость от 1 Мбита, что, в принципе, сейчас для 3G более-менее доступно. Будут какие-то задержки, и к этому нужно привыкнуть и не спешить, потому что все-таки это нетривиальная задача – передать всю компьютерную картинку на iPad.
Конец 90-х, Сингапур, Билл Гейтс встречается с основателем Parallels Сергеем Белоусовым
Если рассматривать всё это с позиции клиент-серверной архитектуры, то компьютер выступает в качестве сервера. Насколько он ресурсоемкий? Та же прослойка, которая трансформирует интерфейс, достаточно нагружает при работе или нет?
На самом деле, основная нагрузка – это, в первую очередь, кодирование видео. Все эти касания, которые превращаются в клики, занимают небольшую часть канала данных. Расчеты на персональном компьютере и агенте тоже особо процессор не нагружают, и всё зависит от мощности компьютера и видеокарты у пользователя. Потому что сейчас многие видеокарты имеют аппаратное кодирование mpeg4, и, хотя нагрузка определенная есть, она не очень большая.
Что означают понятия «агент» и «клиент» в вашем приложении?
Мы называем клиентом приложение под iOS и Android, а агентом – то, что работает на Mac и PC. Есть еще серверная часть – своеобразная back-end инфраструктура.
Какова роль этой инфраструктуры?
Менеджмент пользователей: сервис, который привязан к некоторому ID, обеспечивает безопасность подключения с мобильного клиента на десктоп. Что очень важно, мы также используем эту инфраструктуру для обхода фаерволлов и прочих инструментов фильтрации трафика, чтобы мобильное устройство и компьютер могли между собой соединиться и начать работать.
То есть, вы находитесь в одной части мира, компьютер – в другой, а что находится между вами – непонятно. Соответственно, мы используем серверную back-end часть как раз для того, чтобы мобильный клиент и компьютер нашли друг друга на этом сервере, договорились о коннекте и начали работать через брокер-сервер, который уже и передает эти данные. Если пользователь находится дома или на работе, например, в рамках одной Wi-Fi-сети, то серверная инфраструктура используется только для того, чтобы сделать «стыковку», затем уже используется прямое соединение в локальной сети.
2012 год, сотрудники поздравляют с Новым Годом генерального директора Parallels Биргера Стена
Раз уж мы начали говорить о предприятиях и организациях, то с точки зрения корпоративной безопасности это же сущий кошмар, если кибер-преступник получит доступ к компьютерам сотрудников. Как у вас обеспечивается корпоративная безопасность? Шифруете ли вы видео, передачу паролей-логинов? В общем, как у вас решаются вопросы корпоративной безопасности?
То, что мы даем человеку доступ с мобильного устройства ко всем его данным, которые находятся на компьютере, заставляет нас заботиться о безопасности. Начиная буквально с того, что логин и пароль в базе данных на нашем сервере шифруются (даже если сервер взломают, злоумышленники доступа к этим данным не получат) и заканчивая тем, что коннект между мобильным устройством и компьютером шифруется алгоритмом AES-256.
Кроме этого, существуют всевозможные настройки безопасности, которые обеспечивают повышение надежности, начиная с того, что само мобильное устройство должно быть защищено паролем или разблокировкой по отпечатку пальца, и заканчивая тем, что можно активировать опцию, чтобы при каждом запуске нашего приложения дополнительно запрашивался пароль этого пользователя. Более того, можно поставить на компьютере такую опцию, чтобы при каждом подключении к компьютеру запрашивался пароль конкретно этого пользователя. Например, Apple сейчас открыла API под touch ID, и я думаю, мы обязательно этой возможностью в скором времени воспользуемся.
У вас, я так понимаю, подписная модель заработка/монетизации. Допустим, у меня 20 полевых агентов хотят получить доступ к вашему приложению. Есть ли какие-нибудь скидки на оптовые покупки?
Так как существует большой интерес к нашему приложению со стороны корпоративных пользователей, с версией 2.0, которая вышла в прошлом месяце, мы запустили специальный пакет «Parallels Access для бизнеса». Это, в первую очередь, возможность покупки лицензий на наш продукт пакетами (доступ к 5 удаленным компьютерам сотрудников и больше), а также централизованный биллинг и возможность управления этими лицензиями, то есть: назначение конкретным пользователям, определение ограничений – к каким компьютерам эти пользователи смогут подключаться. Стоимость корпоративной годовой лицензии начинается с 1775 рублей. В качестве специального предложения до 31 июля 2014 года компании получают доступ к неограниченному количеству компьютеров.
Большие игры перебираются на мобильные устройства все больше своими собственными версиями, например, компания Wargaming недавно выпустила iOS-версию World of Tanks. С помощью вашего приложения в игры вообще играть возможно? Допустим, в рамках одной Wi -Fi-сети?
Производительности канала в рамках одной сети достаточно, чтобы передавать даже быстро обновляемый контент на экране. То есть, можно смотреть видео, можно играть в игры. Другое дело, что управление играми – это немного более сложная часть, чем управление десктоп-приложениями. На данный момент всё зависит от игры: в некоторые можно играть, в некоторых управление не очень удобное.
Я тоже слышал, что выпустили мобильную версию Words of Tanks, но я также слышал много отзывов о том, что она по удовольствию, по интересу достаточно сильно отстает от десктоп-версии. И с десктопными офисными приложениями зачастую происходит то же самое: выходят какие-то приложения под мобильные платформы, но они не обладают полной функциональностью десктопного аналога. Как раз для людей, которым нужна полная функциональность полноценных десктопных приложений, и существует Parallels Access.
Мы видим интерес со стороны пользователей к играм через Parallels Access, поэтому планируем поработать над тем, чтобы улучшить функции по их запросам.
По большей части ведь сейчас и так всё движется в сторону мобильных приложений, в мобильный мир. Другой пример — Microsoft выпустила MS Office для iPad. Насколько сейчас востребован доступ к своему персональному компьютеру по сравнению с доступом к приложениям? Вопрос в том, что все компании рано или поздно выпустят аналоги десктоп-приложений, которые будут удобны и функциональны на мобильном устройстве. Как в этом мире будет жить Parallels?
Скорее, все движется к тому, что пользователь сможет получать доступ к своим данным, файлам, приложениям без каких-либо системных ограничений – то есть независимо от того, на какой ОС он будет работать, независимо от бренда устройства, от того – мобильное оно или стационарное, дома стоит или в офисе. И Parallels в это видение идеально вписывается: мы, по сути, уже сейчас делаем для пользователя облако из его же компьютера. То есть, пользователь «ходит» к себе в маленькое частное «облачко». Мы просто будем шаг за шагом снимать ограничения, связанные с платформой, самими устройствами, технологиями доступа.
А что касается специальных версий приложений под определенные мобильные устройства, то они зачастую существенно урезаны по функциональности. Да, Microsoft выпустила красивый Office для iPad, но там нет поддержки Pivot-таблиц – классической вещи, которая нужна многочисленным бизнес-пользователям в Excel. Это автоматически «отрезает» всех, кто хоть немного работает с данными на компьютере. И Parallels Access – как раз для таких людей, он дает возможность получить полнофункциональную версию приложения или аналога, который еще не реализован на мобильном устройстве, и удобно при этом с ним работать.
Каков спрос на ваше приложение по разным странам? Есть такая статистика? Насколько востребовано ваше приложение в России, Европе, Латинской Америке? Как происходит развитие?
То, что США – наиболее развитый на сегодня мобильный рынок, где востребованы бизнес-продукты подобного класса, сложно отрицать, и это на данный момент для нас основной рынок. Но также достаточно хорошо выступает Европа, в первую очередь – Великобритания и Германия. Сейчас мы наблюдаем активный рост в Азии, например, в Японии и Китае. Причем, в Китае есть такой тренд: многие там покупают себе мобильные устройства и им интересно, что небольшое, дешевое устройство с небольшим размером памяти обеспечивает доступ к данным, которые хранятся у них на компьютерах, благодаря как раз инструментам удаленного доступа.
Даже если доля Apple не очень большая в Китае в сравнении с другими производителями, объем рынка только этой страны в несколько раз больше, чем любой другой, и за счет этих долей процента они получают очень хорошие продажи. То же самое с нашим приложением, и мы сейчас видим, как наше представительство в Китае генерирует огромное количество всевозможных контактов и лидов с китайскими компаниями и пользователями, то есть, интерес очень большой.
Ну, раз уж мы начали о Китае… Китай – это же вотчина Android, как восприняли версию под эту ОС?
Что интересно, отзывы в Google Play даже гораздо более восторженные, чем в App Store. Конечно, как и в AppStore, в Google Play всевозможные инструменты удаленного доступа были и раньше, но нам удалось сделать такой качественный продукт, что все в восторге.
Бывший офис Parallels в штате Вирджиния, русские сотрудники Parallels учат своих американских коллег правильно говорить
В самом начале вы упомянули о том, что для ваших разработчиков разработка, скорее, не работа, а удовольствие. Вопрос о культуре работы разработчиков в Parallels. Правильно ли я понимаю, что вы ищете энтузиастов, или к вам можно просто прийти программировать, не испытывая при этом восторгов по поводу своей работы?
Мне сложно говорить от лица всех разработчиков, но у меня есть ощущение, что им нравится работать как раз за счет того, что они решают очень сложные задачи. То есть, одно дело – взять красивый, документированный API от Apple, набросать интерфейс в билдере и выпустить очередной калькулятор чаевых. Другое дело – это сложные технические, технологические задачи, которые заставляют людей конкретно напрягаться. Например, взять даже просчет того, как нарисовать выделение текста: редактируемый текст на мобильном устройстве нужно совместить с координатами текста на компьютере; понять, что именно этот текст пользователь хочет выбрать; выделить выбранный текст определенным цветом; всё это синхронизировать, причем сделать всё это в видеопотоке. Реально, мне кажется, нашим разработчикам доставляет удовольствие решать такие задачи.
Я много читал про Apple. Как Стив Джобс мотивировал своих разработчиков работать с удовольствием по 90 часов в неделю? Он их подталкивал к тому, чтобы люди делали то, что считали невозможным ранее.
В этом плане мне кажется, что Parallels по инженерной культуре очень похожа на Apple, потому что мы делаем вещи, которые раньше казались невозможными. Ни один из инструментов удаленного доступа не позволяет работать с текстом так, как это сделано в Parallels Access. Бертран Серле (создатель Mac OS X и iOS и член совета директоров Parallels – прим. редакции), который принимал участие в его разработке, советовал фокусироваться именно на работе с текстом, как слабой стороне реализации в самой Apple. Он с самого начала говорил: «The main thing is working with text. If you can achieve it, you will make this app».
Можно сказать, что это – ваша парадигма для пользователей, что вы им даете инструменты, которые они еще не видели, даете им нечто небывалое, и они от этого в восторге?
Да! Люди в восторге:
Это настоящее приложение-нирвана.
Когда читаешь такие отзывы, разумеется, это приятно.
Разработка Parallels Access шла в московском офисе или у вас есть распределенная структура разработчиков по всему миру?
Разработка и Parallels Desktop, и Parallels Access проходит в Москве, а вообще разработчики всех продуктов Parallels – в России.
Вы говорили, что приложение разрабатывалось 2 года… сколько человек этим занималось?
Я помню, что когда мы делали «постмортем» по проекту (стандартный сбор разработчиков после выпуска проекта, на котором подводятся итоги и анализ ошибок по выпущенной версии), прозвучала цифра, что в пике над проектом работали около 50 человек. То есть, это команда, которая делала User Interface на мобильном и десктопном клиентах и команда, которая делала интеграционную часть между операционными системами (те, кто делал web-backend, стриминг, передачу видео). Действительно большая команда. Мне кажется, без фанатизма руководства компании, которое хотело сделать так, чтобы качество продукта было превыше всего, невозможно представить Parallels.
Вы упомянули об ошибках… можете назвать одну-две, которые вы совершили в процессе разработки и которые, как вам кажется, могли бы быть полезными для других разработчиков?
От ошибок мы избавляемся сразу, в процессе разработки, а сырую функциональность оставляем на доработку. Если мы придумываем какую-то «фичу», мы делаем несколько её реализаций, прототипов и в процессе тестирования решаем, какая из реализаций и «фич» получилась лучше, и как мы ее сделаем в продукте. Существуют вещи, на которые были потрачены усилия и время, и которые в том виде, в котором они получились, не подходят. Такие вещи мы откладываем на потом с мыслью, что, может быть, мы сделаем её впоследствии лучше.
Как вы тестируете приложения? Внутри команды или используете какие-то сервисы наподобие TestFlight?
У нас есть свое подразделение QA, которое тестирует продукт внутри компании, включая тесты в процессе перемещения по метро и даже выездов на природу с шашлыками. Для дистрибуции билдов мы использовали TestFlight, сейчас перешли на HockeyApp, но при этом, естественно, есть и «стандартное» бета-тестирование. Причём, Parallels Access проходил несколько фаз внутреннего тестирования: вначале круг людей, которые могли получить продукт, был очень ограничен, потому что продукт необычный, и не хотелось, чтобы информация о нем появилась раньше времени; также существует большая доля пользователей Parallels Desktop, которая давно помогает нам с бета-тестированием, и мы часто приглашаем их на новую версию продукта. Когда мы делаем бета-версию, для некоторых «фич» создаем несколько прототипов и спрашиваем мнение пользователей насчет наиболее удобного из них.
Ну и последний вопрос. Не планируете ли вы сделать поддержку Parallels Access между двумя мобильными устройствами, например между Android и iOS? Например, у меня 2 планшета и 2 телефона, и каждый раз переключаться между ними достаточно трудоемко.
Есть определенные технические ограничения, но ничего нельзя исключать в будущем. Есть разные разработки и идеи того, что можно сделать… посмотрим, к чему это приведет.
Спасибо вам за интервью, интересных разработок!