Способ и система для диагностики мобильных вычислительных устройств
METHOD AND SYSTEM FOR DIAGNOSTICS OF MOBILE COMPUTER DEVICES

Область техники
Изобретение относится к области электротехники и информационных технологий и вычислительной техники, а более конкретно к диагностике (тестированию) вычислительных устройств, в частности, мобильных вычислительных устройств, таких как смартфоны мобильные (сотовые) телефоны, планшеты, персональные цифровые помощники (PDA) и других, и может быть использована для диагностики различных вычислительных устройств (пользователя), в частности, мобильных вычислительных устройств.
Уровень техники
В настоящее время известны система и способ для диагностики вычислительного устройства (см. РСТ/IL 2016/050236, публ. №WO 2016139665 от 09.09.2016), в которых описывается возможность функционирования (работы) вычислительного устройства в различных режимах, причем приложение для осуществления диагностики может выборочно выполнить один или несколько тестов на упомянутом устройстве, записать результат выполнения теста и осуществить какое-либо действие на основании результата. Таким режимом может являться безопасный режим, включающий выполнение лишь части операционной системы и приложения для диагностики. Диагностика может включать выполнение упомянутого приложения и проверку производительности одного или нескольких ресурсов вычислительного устройства во время выполнения приложения.
Недостатком упомянутых способа и системы является необходимость использования safe-mode (защищенного) режима для диагностики упомянутых устройств, а также необходимость использования на таких устройствах root-прав, jail break (джейлбрейк) с целью осуществления упомянутых способа и системы. Также, недостатком упомянутых способов и системы требуется обязательная перезагрузка упомянутых устройств с целью осуществления их диагностики.
Также известен способ для автоматизации функционального тестирования для мобильных приложений, управляемых жестами (см. US 9154611 В1, опубл. 06.10.2015), который включает запуск функциональной программы тестирования на сервере. Программа для функционального тестирования (диагностики) предоставляет графический интерфейс, который позволяет пользователю выбрать мобильное приложение и мобильное вычислительное устройство с сенсорным экраном для осуществления ввода пользователем. Мобильное вычислительное устройство является удаленным устройством по отношению к серверу. Программа для функционального тестирования осуществляет запуск мобильного приложения на мобильном вычислительном устройстве посредством беспроводного сетевого подключения. Сервер получает прецизионные элементы для каждого жеста на сенсорном экране, где прецизионные элементы перехватываются и передаются с мобильного вычислительного устройства на сервер в процессе выполнения мобильного приложения, причем прецизионные элементы затем сохраняются.
Недостатком упомянутого способа является тестирование мобильного приложения и сенсорного экрана, причем выполнение тестирования осуществляется на сервере, а не на мобильном вычислительном устройстве.
Также известны способ и система для автоматической проверки мобильных приложений (см. US 9152541 В1, опубл. 22.03.2012), в которых описываются различные варианты для автоматического тестирования и проверки (верификации) мобильных приложений.
Недостатком такого решения является тестирование только мобильного приложения без диагностики мобильного устройства и его составных элементов, причем с целью размещения такого мобильного приложения в магазине мобильных приложений.
Предлагаемые система и способ позволяют преодолеть, по крайней мере, часть вышеуказанных недостатков или все указанные недостатки, а также реализовать преимущества настоящего изобретения, как описано в рамках настоящего изобретения.
Сущность изобретения
Технический результат, достигаемый предлагаемым изобретением, состоит в повышении скорости и качества осуществления диагностики мобильных вычислительных устройств и их составных элементов.
Согласно одному из вариантов реализации, предлагается способ для для диагностики мобильных вычислительных устройств, который включает: осуществление установки службы синхронизации и установки мобильных приложений для диагностики, по крайней мере, на одно из вычислительных устройств пользователя; осуществление установки на вычислительное устройство пользователя драйверов от производителей мобильных операционных систем и производителей мобильных вычислительных устройств, являющихся диагностируемыми устройствами, для осуществления установления связи между мобильными вычислительными устройствами и вычислительными устройствами пользователя; осуществление установления соединения между мобильными вычислительными устройствами и вычислительными устройствами пользователя; осуществление установки мобильного приложения для диагностики мобильного вычислительного устройства на, по крайней мере, одно такое мобильное вычислительное устройство, причем установка упомянутого мобильного приложения для диагностики осуществляется посредством службы синхронизации и установки мобильных приложений для диагностики; осуществление пользователем запуска упомянутого мобильного приложения для диагностики на мобильном вычислительном устройстве, причем в момент запуска мобильного приложения для диагностики, такое мобильное приложение для диагностики организует TCP-сервер, который ожидает подключения вычислительных устройств пользователя на предопределенном порту, где упомянутый порт выбирается автоматически из доступных портов службой синхронизации и установки мобильных приложений для диагностики; осуществление диагностики мобильного вычислительного устройства, причем диагностика мобильного вычислительного устройства включает процесс осуществления диагностики составных элементов мобильного вычислительного устройства; осуществление передачи результатов диагностики, по крайней мере, на одно вычислительное устройство пользователя посредством службы синхронизации и установки мобильных приложений для диагностики, осуществляющей обмен данными с мобильным приложением для диагностики посредством модуля обмена данными; осуществление отправки результатов диагностики с вычислительного устройства пользователя на веб-сервер, причем результаты диагностики сохраняются, по крайней мере, на одном сервере базы данных, по крайней мере, в одном хранилище данных, по крайней мере, в одной базе данных, причем сохраненные результаты диагностики также отображаются, по крайней мере, одному пользователю посредством веб-интерфейса в веб-браузере с целью определения исправности или неисправности мобильного вычислительного устройства или, по крайней мере, одного составного элемента мобильного вычислительного устройства.
В одном из частных вариантов реализации в процессе осуществления диагностики мобильного вычислительного устройства осуществляется диагностика функционирования программного обеспечения, установленного на мобильном вычислительном устройстве, включая диагностику драйверов для составных элементов мобильного вычислительного устройства и приложений.
В одном из частных вариантов реализации в процессе осуществления диагностики мобильного вычислительного устройства осуществляется обновление программного обеспечения мобильного вычислительного устройства, в том числе, по крайней мере, одного установленного на нем приложения, или, по крайней мере, одной части такого приложения, причем такая упомянутая часть приложения связана с конкретным составным элементом мобильного вычислительного устройства.
В одном из частных вариантов реализации в процессе осуществления диагностики мобильного вычислительного устройства осуществляется обновление драйверов составных элементов мобильного вычислительного устройства, операционных систем или компонентов операционных систем мобильного вычислительного устройства и (или) вычислительного устройства пользователя.
В одном из частных вариантов реализации в процессе осуществления диагностики мобильного вычислительного устройства посредством обращения к API операционной системы мобильного вычислительного устройства мобильным приложением для диагностики осуществляется определение доступного количества составных элементов мобильного вычислительного устройства, диагностика которых осуществляется посредством мобильного приложения для диагностики.
В одном из частных вариантов реализации составными элементами мобильного вычислительного устройства являются микрофон(ы), динамик(и), экран(ы), датчик(и), камера (камеры) и вспышка (вспышки).
В одном из частных вариантов реализации осуществляется диагностика динамиков мобильного вычислительного устройства, причем на мобильном вычислительном устройстве осуществляется воспроизведение аудиозаписи, а также на мобильном вычислительном устройстве в процессе или после воспроизведения аудиозаписи мобильным приложением для диагностики осуществляется отображение набора изображений, по крайней мере, одно из которых соответствует аудиозаписи, и далее пользователем мобильного вычислительного устройства после или во время прослушивания аудиозаписи осуществляется выбор упомянутого изображения соответствующего воспроизведенной аудиозаписи, причем если выбранное пользователем изображение соответствует воспроизведенной аудиозаписи, то диагностика динамиков мобильного вычислительного устройства считается пройденным таким мобильным вычислительным устройством.
В одном из частных вариантов реализации осуществляется диагностика микрофонов мобильного вычислительного устройства, причем после запуска мобильного приложения для диагностики в процессе диагностики, мобильное приложение для диагностики осуществляет запись "белого шума" посредством, по крайней мере, одного микрофона мобильного вычислительного устройства и, в случае если мобильным приложением для диагностики было определено, что "белый шум" был записан, то мобильное приложение для диагностики фиксирует исправность микрофона.
В одном из частных вариантов реализации в мобильном приложении для диагностики осуществляется диагностика мобильного вычислительного устройства на «взлом», причем данная диагностика включает проверку на возможность свободного доступа пользователю и/или одному из приложений, установленных на мобильном вычислительном устройстве, к файловой системе мобильной операционной системы мобильного вычислительного устройства, причем упомянутая диагностика осуществляется посредством установки Windows-службой на мобильное вычислительное устройство неподписанного разработчиком мобильного приложения, причем при попытке запуска мобильным приложением для диагностики или пользователем такого неподписанного приложения осуществляется проверка, в ходе которой если удается осуществление запуска упомянутого неподписанного приложения, то устройство является «взломанным».
В одном из частных вариантов реализации в процессе осуществления диагностики на «взлом» мобильного вычислительного устройства посредством мобильного приложения для диагностики осуществляется попытка доступа к системным директориям посредством осуществления чтения содержимого файлов и поддиректорий таких директорий, причем если был обнаружен факт упомянутого чтения, то результатом диагностики является факт «взлома» мобильного вычислительного устройства.
В одном из частных вариантов реализации в процессе осуществления диагностики на «взлом» мобильного вычислительного устройства посредством использования приложения мобильного приложения для диагностики осуществляется попытка доступа к системным файлам мобильного вычислительного устройства, причем если чтение системных файлов может быть осуществлено, то результатом диагностики в данном случае является факт «взлома» устройства мобильного вычислительного устройства, а в случае если чтение системных файлов и содержимого упомянутых каталогов не может быть осуществлено, то результатом диагностики на «взлом» мобильного вычислительного устройства является тот факт, что мобильное вычислительное устройство не было «взломано».
В одном из частных вариантов реализации в процессе осуществления диагностики на «взлом» мобильного вычислительного устройства посредством мобильного приложения для диагностики осуществляется попытка установки мобильного приложения не подписанного лицензией на мобильное вычислительное устройство, причем в случае, если мобильному приложению или пользователю не удалось установить такое неподписанное приложение, то результатом диагностики является факт отсутствия «взлома» мобильного вычислительного устройства.
В одном из частных вариантов реализации после установления мобильного приложения для диагностики с использованием службы синхронизации и установки мобильных приложений для диагностики, по крайней мере, на одно мобильное вычислительное устройство, осуществляется автоматическое подключение мобильных вычислительных устройств, по крайней мере, к одному вычислительному устройству пользователя.
В одном из частных вариантов реализации служба синхронизации и установки мобильных приложений для диагностики для каждого подключенного мобильного вычислительного устройства к вычислительному устройству пользователя создает выделенный поток выполнения программы как части службы синхронизации и установки мобильных приложений для диагностики, причем выделенный поток выполнения программы осуществляет, по крайней мере, одну попытку организовать сокет с TCP-сервером, и служба синхронизации и установки мобильных приложений для диагностики осуществляет попытку установления соединения между мобильным вычислительным устройством и вычислительным устройством пользователя.
В одном из частных вариантов реализации в случае упомянутого успешного создания выделенного потока выполнения программы осуществляется двухсторонний обмен данными между мобильным приложением для диагностики, установленным на мобильном вычислительном устройстве, и службой синхронизации и установки мобильных приложений для диагностики вычислительного устройства пользователя, причем упомянутый двухсторонний обмен данными осуществляется посредством протокола, который содержит управляющие слова, правила формирования сообщений, правила шифрования сообщений и методы их анализа, где функционирование упомянутого протокола осуществляется посредством стека протоколов TCP/IP, в частности посредством транспортного уровня такого протокола посредством созданных в процессе подключения упомянутых сокетов.
В одном из частных вариантов реализации с каждым из подключенных одновременно мобильных вычислительных устройств к вычислительным устройствам пользователя осуществляется создание выделенного потока службы синхронизации и установки мобильных приложений для диагностики и с каждым из подключенных одновременно мобильных вычислительных устройств устанавливается упомянутое выше независимое соединение, причем управление навигацией в окнах мобильного приложения для диагностики осуществляется посредством упомянутого соединения.
В одном из частных вариантов реализации выделенный поток выполнения программы осуществляется после: получения службой синхронизации и установки приложений для диагностики списка подключенных мобильных вычислительных устройств; осуществления службой синхронизации и установки приложений для диагностики сравнения подключаемого мобильного вычислительного устройства со списком подключенных мобильных вычислительных устройств, по крайней мере, к одному вычислительному устройству пользователя; осуществления службой синхронизации и установки приложений для диагностики проверки наличия нового мобильного вычислительного устройства, подключенного к вычислительному устройству пользователя и если такое мобильное вычислительное устройство обнаружено в списке подключенных мобильных вычислительных устройств, то такое устройство добавляется в список подключенных мобильных вычислительных устройств.
В одном из частных вариантов реализации в процессе диагностики мобильным приложением для диагностики осуществляется получение данных о производителе мобильного вычислительного устройства, получение свойств мобильного вычислительного устройства.
В одном из частных вариантов реализации в процессе диагностики осуществляется отправка команд вычислительным устройством пользователя, по крайней мере, на одно мобильное вычислительное устройство и вычислительным устройством пользователя осуществляется ожидание ответа от мобильного вычислительного устройства, содержащего результаты диагностики мобильного вычислительного устройства.
В одном из частных вариантов реализации в процессе исполнения мобильного приложения для диагностики на мобильном вычислительном устройстве служба синхронизации и установки мобильных приложений для диагностики с предопределенной периодичностью осуществляет отправку на мобильное вычислительное устройство зашифрованных данных одним из известных способов шифрования, которые мобильное приложение для диагностики однозначно интерпретирует посредством использования временных меток, пароля, который хранится на веб-сервере, и используется для защиты от осуществления возможной дешифрации упомянутых данных сторонними пользователями, службами, приложениями и системами.
Согласно одному из вариантов реализации, предлагается система для диагностики мобильных вычислительных устройств, включающая: по крайней мере, одно мобильное вычислительное устройство, которое является диагностируемым устройством, на которое осуществляется: установка мобильного приложения для диагностики мобильного вычислительного устройства, причем установка упомянутого мобильного приложения для диагностики осуществляется посредством службы синхронизации и установки мобильных приложений для диагностики, причем запуск упомянутого мобильного приложения для диагностики на мобильном вычислительном устройстве, где в момент запуска мобильного приложения для диагностики, такое мобильное приложение для диагностики организует TCP-сервер, который ожидает подключения вычислительных устройств пользователя на предопределенном порту, где упомянутый порт выбирается автоматически из доступных портов службой синхронизации и установки мобильных приложений для диагностики, причем диагностика мобильного вычислительного устройства включает процесс осуществления диагностики составных элементов мобильного вычислительного устройства; по крайней мере, одно вычислительное устройство пользователя, связанное, по крайней мере, с одним мобильным вычислительным устройством, причем на упомянутое вычислительное устройство пользователя осуществляется: установка службы синхронизации и установки мобильных приложений для диагностики; установка драйверов от производителей мобильных операционных систем и производителей мобильных вычислительных устройств для осуществления установления связи между мобильным вычислительным устройством и вычислительным устройством пользователя; модуль обмена данных, который осуществляет передачу результатов диагностики, по крайней мере, на одно вычислительное устройство пользователя посредством службы синхронизации и установки мобильных приложений для диагностики, осуществляющей обмен данными с мобильным приложением для диагностики; веб-сервер, на который осуществляется отправка результатов диагностики с вычислительного устройства пользователя; сервер базы данных, на который осуществляется сохранение результатов диагностики, переданных на веб-сервер, причем сохранение осуществляется, по крайней мере, в одном хранилище данных, по крайней мере, в одной базе данных, причем сохраненные результаты диагностики также отображаются, по крайней мере, одному пользователю посредством веб-интерфейса в веб-браузере с целью определения исправности или неисправности мобильного вычислительного устройства или, по крайней мере, одного составного элемента мобильного вычислительного устройства.
Предлагаемое изобретение поясняется чертежами:
ФИГ. 1 иллюстрирует примерный вариант системы для диагностики мобильных вычислительных устройств, согласно одному из вариантов осуществления настоящего изобретения;
ФИГ. 2 иллюстрирует примерный вариант схемы системы диагностики мобильных вычислительных устройств, согласно одному из вариантов осуществления настоящего изобретения;
ФИГ. 3 иллюстрирует блок-схему примерного варианта осуществления настоящего изобретения;
ФИГ. 4 иллюстрирует примерный вариант службы синхронизации и установки мобильных приложений для диагностики, согласно одной из реализаций настоящего изобретения.
ФИГ. 5 иллюстрирует выполнение выделенного потока выполнения программы, согласно одному из осуществлений настоящего изобретения.
ФИГ. 6 иллюстрирует пример компьютерной системы общего назначения.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Используемые в настоящем описании изобретении термины «компонент», «элемент», «система», «модуль», «часть», в частности, «составная часть», и подобные предназначены (используются) для обозначения компьютерных сущностей (сущностей/объектов, связанных с компьютером, вычислительных сущностей), которые могут являться аппаратным обеспечением/оборудованием (например, устройством, инструментом, аппаратом, аппаратурой, составной частью устройства, в частности, процессором, микропроцессором, печатной платой и т.д.), программным обеспечением (например, исполняемым программным кодом, скомпилированным приложением, программным модулем, частью программного обеспечения и/или кода и т.д.) или микропрограммой (прошивкой/firmware). Так, например, компонент может быть процессом, выполняющемся/исполняющимся на процессоре, процессором, объектом, исполняемым файлом, программой, функцией, методом, библиотекой, подпрограммой и/или вычислительным устройством (например, микрокомпьютером или компьютером) или комбинацией программного или аппаратного обеспечения. В качестве иллюстрации: как приложение, запущенное на сервере, может быть компонентом или модулем, так и сервер может быть компонентом или модулем. По крайней мере, один компонент может находиться (располагаться) внутри процесса. Компонент может располагаться на одном вычислительном устройстве (например, компьютере) и/или может быть распределен между двумя и более вычислительными устройствами. Так, например, в частном случае приложение (компонент), может быть представлено серверным компонентом (серверной частью) и клиентским компонентом (клиентской частью). В частном случае, клиентский компонент устанавливается, по крайней мере, на одно вычислительное устройство, а серверный компонент устанавливается на второе вычислительное устройство, с которого, в частном случае, производится управление и/или настройка первого вычислительного устройства (и/или его составных компонентов/частей.
На ФИГ. 1 показан примерный вариант системы для диагностики мобильных вычислительных устройств, согласно одному из вариантов осуществления настоящего изобретения.
Система, реализующая способ (или, по крайней мере, одну часть способа), описываемый в рамках настоящего изобретения, примерный вариант которой изображен на ФИГ. 1, содержит, по крайней мере, один веб-сервер 110, связанный, по крайней мере, с одним сервером базы данных 120. Веб-сервер 110 может быть связан, по крайней мере, с одним вычислительным устройством пользователя (клиентским вычислительным устройством) 140А, 140B…140N., например, посредством сети «Интернет». Такими вычислительными устройствами пользователя (140А, 140B…140N) могут являться различные (в том числе цифровые, аналоговые, комбинированные, механические и т.д.) устройства, в частности, но не ограничиваясь, электронные устройства. Так, например, такими вычислительными устройствами пользователя (140A, 140B…140N) могут являться персональные компьютеры, электронные вычислительные машины (ЭВМ), ноутбуки, серверы, рабочие станции, моноблоки, компьютерные стенды, настольные компьютеры, испытательные стенды, демонстрационные компьютерные стенды и т.д.
Изображенная на ФИГ. 1 система также может включать, по крайней мере, одно мобильное вычислительное устройство (150А, 150Б, 150В, 150Г, 150Д, 150Е, 150Ж, 150З… 150N), диагностируемое (тестируемое) мобильное вычислительное устройство, и которое может быть связано, по крайней мере, с одним вычислительным устройством пользователя (140А, 140B…140N). Стоит отметить, что в частном случае осуществления настоящего изобретения мобильное вычислительное устройство (150А, 150Б, 150В, 150Г, 150Д, 150Е, 150Ж, 150З…150N) может быть связано с вычислительным устройством пользователя (140A, 140B…140N) посредством USD-интерфейса или посредством любого другого типа (вида, средства и т.д.) связи, как боле подробно описано далее. Мобильное вычислительное устройство (150A…150N), диагностируемое (мобильное вычислительное) устройство, может являться таким мобильным устройством, как телефон (мобильный, сотовый и т.д.), планшет, смартфон и т.д. Стоит отметить, что на мобильном вычислительном устройстве (150A…150N) может быть установлена, по крайней мере, одна операционная система, например, мобильная операционная система (мобильная ОС), в частности, Android, iOS.
Стоит отметить, что частным случаем пользователя является, по крайней мере, один администратор (оператор, клиент и т.д.), т.е., в частном случае, лицо, заинтересованное в осуществлении диагностики мобильных вычислительных устройств (150A…150N) или осуществляющее диагностику мобильных вычислительных устройств (150A...150N), в частности, выполняющее тестирование устройств (150A…150N). Стоит отметить, что пользователь может осуществлять диагностику (тестирование), по крайней мере, одного функционала мобильного вычислительного устройства (150А…150N), например, посредством взаимодействия с таким устройством (150A…150N). В частном случае, взаимодействием является нажатие кнопок (клавиш) устройства (150A…150N), взаимодействие с сенсорным экраном такого устройства (150A…150N), прослушивание аудиозаписей, воспроизводимых на устройстве (150А…150N) и т.д., как более подробно описано далее. Также, в частном случае пользователем также является администратор (оператор, клиент и т.д.), т.е., в частном случае, лицо, заинтересованное в работоспособности или поддерживающее работоспособность оборудования, например, веб-сервера 110 и/или сервера базы данных 120, вычислительных устройств пользователя (140A…140N), хранилищ данных, осуществлении связи между компонентами (модулями) описываемой системы, примерный вариант которой изображен на ФИГ. 1. Также, пользователь может осуществлять установку мобильного приложения для диагностики (мобильных вычислительных устройств (150A…150N)) 280 на устройства (150A…150N), а также установку служб (сервисов), например, службы синхронизации и установки мобильных приложений для диагностики 210 на вычислительное устройство пользователя (140A…140N). Стоит отметить, что указанные на ФИГ. 1 компоненты описываемой системы (в том числе программные и/или аппаратные компоненты) могут являться составной частью описываемой системы и/или могут быть подключены к упомянутой системе. Так, например, компоненты изображенной на ФИГ. 1 системы могут быть связаны тем или иным известным в настоящее время или изобретенным в будущем прямым (например, посредством клемм и/или проводов, пайки, клепки и т.д.) или косвенным способом (посредством промежуточных устройств, включая различного рода преобразователи, в частности, преобразователи/конверторы информации, в том числе, данных, в аналоговом виде, цифровом виде или в любом другом известном виде информации). Стоит отметить, что компоненты, изображенной на ФИГ. 1 системы могут быть связаны между собой посредством проводной связи, беспроводной связи, посредством различного типа разъемов, проводов и т.д.
Стоит отметить, что компоненты, изображенной на ФИГ. 1 системы могут быть связаны между собой (и любыми другими компонентами, устройствами и сервисами (службами), способными получать информацию от компонентов описываемой системы и/или передавать данные в описываемые компоненты системы) посредством различных видов связи, например, посредством локальной вычислительной сети (ЛВС), сети Интернет (130), (средствами) мобильной связи, спутниковой связи и/или посредством любого другого вида или способа проводной связи (например, посредством USB-интерфейса, интерфейса стандарта RS-232/СОМ-порта и т.д.) и/или беспроводной связи, например, Bluetooth, Wi-Fi, мобильной сотовой связи (GSM), в том числе 3G, 4G, LTE, в частности, в диапазонах 850/900/1800/1900 МГц, спутниковой связи, транкинговой связи и каналов передачи данных со сверхнизким энергопотреблением, формирующие сложные беспроводные сети с ячеистой топологией (ZigBee) и т.д.
Стоит отметить, что, по крайней мере, одна часть описываемого в рамках настоящего изобретения способа (или способ целиком) может осуществляться на веб-сервере 110 и/или на вычислительном устройстве пользователя (140A…140N), и/или на мобильном вычислительном устройстве (150A…150N). Стоит отметить, что связь между веб-сервером 110 и вычислительными устройствами пользователя (140A…140N) и/или сервером базы данных 120, и/или между вычислительными устройствами пользователя (140A…140N) и сервером базы данных 120 может быть осуществлена посредством, по крайней мере, одного протокола передачи данных, в том числе сетевого протокола, например, TCP/IP, HTTP/HTTPs (англ. Hyper Text Transfer Protocol, протокол передачи гипертекста), FTP (англ. File Transfer Protocol, протокол передачи файлов), РОР3 (англ. Post Office Protocol, стандартный протокол почтового соединения), SMTP (англ. Simple Mail Transfer Protocol, протокол, который задает набор правил для передачи почты), TELNET (протокол удаленного доступа), ХМРР (от англ. Extensible Messaging and Presence Protocol - расширяемый протокол обмена сообщениями и информацией о присутствии, ранее известный как Jabber - открытый, основанный на XML, протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близком к режиму реального времени), DTN и т.д.
Указанный выше веб-сервер 110 может быть реализован специализированным вычислительным устройством (в частности, компьютером) и/или специализированным оборудованием для выполнения на нем сервисного программного обеспечения, в том числе сервисами (службами) тех или иных задач.
Стоит отметить, что сервер базы данных 120 осуществляет обслуживание и управление, по крайней мере, одной базой данных и отвечает за целостность и сохранность данных, а также обеспечивает операции ввода-вывода при доступе клиента к информации. Стоит также отметить, что упомянутая база данных может размещаться, по крайней мере, на одном хранилище данных. В частном случае, хранилище данных является устройством для хранения информации/данных и может быть реализовано, по крайней мере, одним накопителем на жестких магнитных дисках (НЖМД/HDD, англ. hard (magnetic) disk drive), твердотельным накопителем (SSD, англ. solid-state drive), гибридным жестким диском (SSHD, англ. solid-state hybrid drive), сетью хранения данных (СХД/SAN, англ. Storage Area Network), сетевой системой хранения данных/сетевым хранилищем (NAS, англ. Network Attached Storage) и/или любым другим устройством, позволяющим осуществлять, по крайней мере, запись и/или хранение данных. Данные в упомянутых хранилищах данных могут храниться в любом известном формате, например, в базе данных (БД), например, в виде, по крайней мере, одной таблицы или набора связанных или не связанных между собой таблиц базы данных. Стоит отметить, что, по крайней мере, одна упомянутая база данных может являться иерархической, объектной, объектно-ориентированной, объектно-реляционной, реляционной, сетевой и/или функциональной базой данных, каждая из которых может быть централизованной, сосредоточенной, распределенной, неоднородной, однородной, фрагментированной/секционированной, тиражированной, пространственной, временной, пространственно-временной, циклической, сверхбольшой базой данных и т.д., причем для управления, создания и использования баз данных могут использоваться различные системы управления базами данных (СУБД).
Также данные в упомянутых хранилищах данных могут храниться, по крайней мере, в одном файле, в частном случае, в виде текстового файла, либо данные могут храниться в любом, по крайней мере, одном другом известном в настоящее время формате хранения данных/информации или в формате данных, изобретенном позднее.
В частном случае осуществления настоящего изобретения, по крайней мере, одна часть описываемого способа и системы может являться программным обеспечением или частью приложения. Также, по крайней мере, одна часть описываемого способа и системы может являться, по крайней мере, одним сервисом (службой), реализованным, например, программным кодом, скриптом/скриптами, а также являться исполняемыми компонентами различных систем (в частности, компьютерных систем) и подсистем (например, подсистем ввода, подсистемы вывода, подсистемы хранения, в частности, дисковая подсистема, подсистема передачи данных и т.д.).
На ФИГ. 2 показана примерная схема системы диагностики мобильных вычислительных устройств, согласно одному из вариантов осуществления настоящего изобретения. В частном случае осуществления настоящего изобретения на вычислительное устройство пользователя (140A…140N) устанавливается служба синхронизации и установки мобильных приложений для диагностики 210. В частном случае, служба (сервис) 210 позволяет осуществлять установку мобильных приложений для диагностики 280 на мобильные вычислительные устройства (150A…150N). Более подробно алгоритм службы синхронизации и установки мобильных приложений для диагностики 210 показан на ФИГ. 4. В частном случае осуществления настоящего изобретения на вычислительном устройстве пользователя (140A…140N) может быть установлен веб-браузер (браузер, веб-обозреватель) 220, например, Internet Explorer, Mozilla Firefox, Google Chrome, Safari, Opera, Microsoft Edge и т.д. Веб-браузер 220 используется для предоставления пользователю интерфейса (в частности, веб-интерфейса), в частном случае, являющимся пользовательским интерфейсом (интерфейсом пользователя) для отображения пользователю html-контента (html-содержимого).
Стоит отметить, что выполнение службы 210 в частном случае осуществляется под управлением операционной системы (ОС) Windows, т.е. является Win-службой (Windows-службой).
Стоит также отметить, что служба 210 осуществляет обмен данными с приложением 280 посредством модуля обмена данными 230, который в частном случае является «Android debug bridge» (ADB) или «LibiMobileDevice iOS Data Bridge». В частном случае модуль обмена данными 230 позволяет осуществлять обмен данными между службой 210 и приложением 280, причем такими данными являются параметры, серийные номера, мобильных вычислительных устройств (150A…150N), прочие идентификационные данные, возможность управления мобильными вычислительными устройствами (150A…150N) (функциями таких мобильных вычислительных устройств) и т.д., как более подробно описано в рамках настоящего изобретения.
Также, служба 210 (являющаяся частным случаем Windows-приложения, работающее (выполняющееся) в режиме Service (сервиса, службы)) осуществляет синхронизацию мобильных вычислительных устройств (150A…150N), в частности, данных между службой 210 на вычислительном устройстве (150A…150N), и данными, хранящимися, по крайней мере, в одной базе данных, сервера базы данных 120, посредством веб-сервиса 250. В частном случае осуществления настоящего изобретения служба на мобильном вычислительном устройстве (150A…150N) осуществляет передачу на вычислительное устройство пользователя (клиентское вычислительное устройство) 140 такие данные, как параметры (характеристики), серийные номера, IMEI, статусы элементов питания (батареи, аккумулятора и т.д.) и т.д., по крайней мере, одного мобильного вычислительного устройства (150A…150N).
В частном случае осуществления настоящего изобретение передача данных между службой 210 и мобильными вычислительными устройствами (150A…150N) осуществляется посредством USB-соединения между такими службой и устройствами.
Стоит отметить, что веб-сервер 110 может включать установленный на нем веб-сервис 250, который в частном случае реализует и публикует набор методов, посредством которых осуществляется передача данных (в частном случае, синхронизация данных) между вычислительным устройством пользователя (клиентским вычислительным устройством) 140 и веб сервером 110, причем веб-сервис 250 включает набор методов, базу данных и (графический) интерфейс пользователя. В момент запуска мобильного приложения для диагностики 280, приложение 280 организует TCP-сервер (от англ. TCP, протокол управления передачей), который ожидает подключения вычислительных устройств пользователя (140A…140N) на предопределенном порту разработчиками описываемого способа и системы, или, по крайней мере, одним пользователем, причем упомянутый порт также может выбираться автоматически (причем может выбираться один из доступных портов), например, службой 210. Таким образом, после установления приложения 280 с использованием службы 210, по крайней мере, на одно мобильное вычислительное устройство (150A…150N), осуществляется автоматическое подключение таких мобильных вычислительных устройств (150A…150N), по крайней мере, к одному вычислительному устройству пользователя (140A…140N).
Далее служба 210 для каждого подключенного мобильного вычислительного устройства (150A…150N) к вычислительному устройству пользователя (140A…140N) организует (создает) выделенный поток выполнения программы (Device Worker Thread) - как части службы 210. В частном случае, каждый выделенный поток выполнения программы осуществляет, по крайней мере, одну попытку организовать сокет (от англ. socket - программный интерфейс для обеспечения обмена данными между процессами, причем такие процессы при упомянутом обмене могут исполняться как на одном вычислительном устройстве, то и на различных вычислительных устройствах, связанных между собой) с ТСР-сервером (в частном случае, в качестве которого выступает мобильное приложение), в частном случае, служба 210 осуществляет попытку установления соединения между мобильным вычислительным устройством (150A…150N) и вычислительным устройством пользователя (140A…140N). Стоит отметить, что в частном случае выделенный поток выполнения программы (выделенный поток, выделенная очередь, отдельная очередь, отдельная «ветка») осуществляет получение данных, по крайней мере, с одного, мобильного вычислительного устройства (150A…150N), являющимся диагностируемым устройством, а также осуществляет обработку данных, и передачу полученных данных с мобильного вычислительного устройства (150A…150N) на вычислительное устройство пользователя (140A…140N), как продемонстрировано на ФИГ. 5.
При успешном установлении упомянутого соединения (в частности, в случае успешного создания выделенного потока) осуществляется двухсторонний обмен данными между приложением 280, установленным на мобильном вычислительном устройстве (150A…150N), и вычислительным устройством пользователя (140A…140N), в частности, службой 210. Стоит отметить, что упомянутый двухсторонний обмен данными осуществляется посредством протокола, который, в частном случае содержит управляющие слова, правила формирования сообщений, правила шифрования сообщений и методы их анализа, которые более подробно описаны далее. Функционирование упомянутого протокола осуществляется посредством стека протоколов TCP/IP, в частности посредством транспортного уровня такого протокола посредством созданных в процессе подключения упомянутых сокетов. В частном случае, осуществления настоящего изобретения независимо от количества подсоединенных, в частности, подключенных, (одновременно) мобильных вычислительных устройств (150A…150N) к вычислительным устройствам пользователя (140A…140N), с каждым из которых (мобильных вычислительных устройств (150A…150N)) осуществляется создание (устанавливается) выделенного потока службы 210 и с каждым из которых устанавливается упомянутое выше (независимое) соединение. Управление навигацией (в частности, методов навигации) в окнах (слайдах) мобильного приложения 280 осуществляется посредством упомянутого соединения. В частном случае, посредством передачи, по крайней мере, одной команды службы 210 посредством использования описываемого протокола, приложение 280 на мобильном вычислительном устройстве (150A…150N) осуществляет навигацию («понимает», что необходимо сделать). В частном случае, упомянутый двухсторонний обмен данными позволяет службе 210 получать данные посредством упомянутого установленного соединения (связи). Упомянутые данные являются результатами выполнения команд мобильными вычислительными устройствами (150A…150N), причем такими командами могут быть различные команды и могут изменяться в зависимости от (типов) мобильных вычислительных устройств (150A…150N), (типа) выполняемой диагностики мобильных вычислительных устройств (150A…150N), настроек вычислительного устройства пользователя 140A…140N и т.д., причем, такие команды могут включать, например, команду «LEFT» (ВЛЕВО), которая осуществляет перемещение экрана мобильного вычислительного устройства (150A…150N) влево (переход (как описано далее) на предыдущий экран); команду «RIGHT» (ВПРАВО), которая осуществляет перемещение экрана мобильного вычислительного устройства (150A…150N) вправо (переход на следующий экран), команды NORMAL, ERASE, INFO, которые осуществляют управление режимами работы мобильного вычислительного устройства (150A…150N), а также такие данные являются результатами работы приложения 280).
В процессе исполнения (выполнения) приложения 280 на мобильном вычислительном устройстве (150A…150N) служба 210 с предопределенной (заданной, например, пользователем вычислительного устройства пользователя 140A…140N) периодичностью (например, 1-5 секунд) осуществляет отправку на мобильное вычислительное устройство (150A…150N) данных (которые могут быть зашифрованы, например, одним из известных способов или методов шифрования), в частности, набор символов, который приложение 280 может (однозначно) интерпретировать (в том числе, расшифровать), в частности посредством использования временных меток, пароля (который, в частном случае, хранится на веб-сервере 110, и используется для защиты от осуществления возможной дешифрации (дешифрования) описываемых данных сторонними пользователями (службами, приложениями, системами и т.д.) описываемой системы и способа, в частности, мошенниками, и шифрования (например, если передача упомянутых данных (обмен данными) осуществляется в зашифрованном виде), как более подробно описано далее.
В случае нарушения ожидаемой хеш-суммы, отсутствия сообщений от вычислительного устройства пользователя (140A…140N) в течение предопределенного (например, константами в приложении 280) периода времени (например, в течение 5 секунд) приложение 280 прекращает свою работу и осуществляет запрос (например, посредством отображения сообщения на мобильном вычислительном устройстве (150A…150N)) к пользователю на выполнение восстановления соединения (связи) с вычислительным устройством пользователя (140A…140N), что в частном случае позволяет выполнить защиту приложения 280 от несанкционированного использования без вычислительного устройства пользователя (140A…140N), на котором осуществляется исполнение службы 210. В частном случае осуществления настоящего изобретения мобильное приложение 280 на основании упомянутых выше (текущей) временной метки и пароля осуществляет вычисление упомянутой хеш-суммы. Также, мобильное приложение 280 получает вычисленную на вычислительном устройстве пользователя 140A…140N хеш-сумму. В случае если упомянутые хеш-суммы не совпадают, то, по крайней мере, одним вычислительным устройством или приложением, например вычислительным устройством пользователя 140A…140N, регистрируется нарушение ожидаемой хеш-суммы.
Так, описанный выше протокол может быть реализован модулем двухстороннего обмена данными (который является частью мобильного приложения 280) между приложением 280, установленным на мобильном вычислительном устройстве (150A…150N) и службой 210. В частном случае осуществления настоящего изобретения упомянутый модуль двухстороннего обмена данными между приложением 280, установленным на мобильном вычислительном устройстве (150A…150N), и службой 210 является модулем контроля соединения (например, по USB) и приема/отправки данных (в частности, как описано выше для определения нарушения хеш-суммы) с вычислительного устройства пользователя (140A…140N). В частном случае осуществления настоящего изобретения упомянутый модуль контроля соединения осуществляет выполнение, по крайней мере, двух операций (функций), например:
- осуществление контроля соединения;
- осуществление приема/передачи данных с/на вычислительного устройства пользователя (140A…140N), к которому подключено (с которым установлена связь) мобильное вычислительное устройство (150A…150N).
В частном случае осуществления настоящего изобретения при запуске приложения 280 осуществляется организация отдельным потоком ТСР-сервера, который прослушивает определенный порт замапленный (от англ. mapping) на USB и принимает подключение вычислительного устройства пользователя (140A…140N). Так, например, при запуске мобильного приложения для диагностики 280 на мобильном вычислительном устройстве (150A…150N), мобильное приложение для диагностики 280 выполняет код, причем часть данного кода реализует TCP-сервер, функционирование которого осуществляется в режиме ожидания подключений. Вычислительное устройство пользователя (140A…140N), на котором запущена Windows-приложение (служба) выполняет маппинг (мапинг) локальных портов вычислительного устройства пользователя (140A…140N) в порты подключенных по USB мобильных вычислительных устройств (150А…150N). Далее Windows-приложение для каждого мобильного вычислительного устройства (150A…150N) устанавливает соединение с организованными на мобильных вычислительных устройствах (150A…150N) TCP серверами.
В частном случае осуществления настоящего изобретения номером порта такого соединения может являться номер порта «2345».
В частном случае осуществления настоящего изобретения после запуска приложения 280 в течение предопределенного времени (например, в течение 10 секунд) быть установлено соединение между мобильным вычислительным устройством (150A…150N), например, посредством приложения 280, и вычислительным устройством пользователя (140A…140N), например, службой 210. В случае отсутствия соединения, приложение 280 приостанавливает свое выполнение ("работу") и оповещает пользователя о необходимости установления упомянутого соединения. Оповещение пользователя может быть отображено на экране мобильного вычислительного устройства (150A…150N) и/или на вычислительном устройстве пользователя (140A…140N), например, в виде «Установите соединение». В случае удачно установленного соединения, выполнение приложения 280 продолжается.
Далее, вычислительное устройство пользователя (140A…140N), с предопределенным интервалом (например, 1 раз в 2 секунды) осуществляет передачу на мобильное вычислительное устройство (150A…150N), в частности, на TCP-сервер, набор данных, например, в виде строки. Стоит отметить, что упомянутые данные, в частности, в виде строки, передаваемые с вычислительного устройства пользователя (140A…140N) на мобильное вычислительное устройство (150A…150N), могут иметь следующий формат: [DD-MM-YYYY HH:MM:SS]: HASH: COMMAND, где
- [DD-MM-YYYY HH:MM:SS] - дата и время вычислительного устройства пользователя (140A…140N);
- HASH - хеш-сумма, например, MD5, полученная (вычисленная с использованием хеш-функции) из строки "[Дата время]:Пароль" (причем пароль хранится в константе в данных мобильных приложений 213, причем пароль известен вычислительному устройству пользователя 140 и мобильному приложению 213);
- COMMAND - Команда (EMPTY - игнорирование данной команды, LEFT -осуществляется переход (Слайд, от англ. Slide; Слайдинг, от англ. Sliding) средствами приложения 213 на предыдущий экран мобильного вычислительного устройства (150A…150N), RIGHT - осуществляется переход средствами приложения 213 на следующий экран мобильного вычислительного устройства (150A…150N);
«;»- разделитель пар;
«:»- разделитель Имя/Значение.
В частном случае, приложение 280 осуществляет вычисление хеш-суммы от строки: «[DD-MM-YYYY HH:MM:SS]»+«Пароль». Если вычисленная хеш-сумма не равна полученному значению «HASH» от вычислительного устройства пользователя (140A…140N), то выполнение приложения 280 останавливается (приложение 280 останавливает свою работу), в противном случае приложение 280 продолжает функционировать (продолжает свою работу).
Далее мобильное вычислительное устройство (150A…150N), в частности, TCP-сервер, анализирует полученные данные и осуществляет:
- продолжение работы приложения 280;
- выполнение команды навигации (упомянутой выше команды COMMAND, позволяющей осуществлять переход на предыдущий или следующий экран мобильного вычислительного устройства (150A…150N)).
В частном случае осуществления настоящего изобретения, по крайней мере, один упомянутый метод выполняется, по крайней мере, одним вычислительным устройством (например, вычислительным устройством пользователя (140A…140N) и/или мобильным вычислительным устройством (150A…150N), и/или веб-сервером 110), в частности, программным обеспечением, службой (сервисом) и т.д., например, мобильным приложением 280 и/или службой 210, причем, по крайней мере, одна упомянутая выше команда инициализирует выполнение, по крайней мере, одного из упомянутых выше методов.
В случае отсутствия от вычислительного устройства пользователя (140A…140N) упомянутых данных в течение нескольких интервалов (например, 2-3 интервалов) приложение 280 завершает свою работу.
При завершении тестирования (приложение 280 отправляет на вычислительное устройство пользователя (140A…140N) данные о (результатах) проведенной диагностике (в частности, тесте) мобильного вычислительного устройства (150A…150N), например, название и/или идентификационные данные такого мобильного вычислительного устройства (150A…150N) и состояние, в частности, работает или не работает данное мобильное вычислительное устройство (150A…150N), или состояние, по крайней мере, одной составной части такого мобильного вычислительного устройства (150A…150N), например, динамика, микрофона, USB-модуля, GSM-модуля, различных кнопок, сенсоров, камер и т.д. в частности, работает или не работает данная конкретная составная часть такого мобильного вычислительного устройства (150A…150N). Стоит отметить, что такие данные, в частности, в виде строки, передаваемые с мобильного вычислительного устройства (150A…150N), в частности с TCP сервера, на вычислительное устройство пользователя (140A…140N), могут иметь следующий формат:
ID:SN; TYPE: Type Value; PropNamel: Value 1; PropName2:Value2; PropNameX: ValueX, где
- ID:SN ID - идентификатор мобильного вычислительного устройства (150A…150N), SN - серийный номер мобильного вычислительного устройства (150A…150N),;
- TYPE: Type Value TYPE - как есть, TypeValue - одно из двух значений: «PROP» - свойства (IMEI и т.д.) или «TEST» - результаты тестов;
- PropNamel:Value 1 PropName - Имя свойства (IMEI или название теста), Value - значение;
«;»- разделитель пар;
«:»- разделитель Имя/Значение.
На ФИГ. 3 показана блок-схема примерного варианта осуществления настоящего изобретения. В шаге 315 пользователь осуществляет установку службы 210, по крайней мере, на одно из вычислительных устройств пользователя (140A…140N). Также пользователем, по крайней мере, на одно вычислительное устройство пользователя (140A…140N) осуществляется установка (необходимых) драйверов, в частности, от производителей мобильных операционных систем и производителей мобильных вычислительных устройств (150A…150N), например, от Apple и Android, для осуществления установления связи (соединения) между мобильными вычислительными устройствами (150A…150N) и вычислительными устройствами пользователя (140A…140N).
Затем в шаге 317 осуществляется установление связи (соединения) между мобильными вычислительными устройствами (150A…150N) и вычислительными устройствами пользователя (140A…140N).
Далее в шаге 320 службой 210 осуществляется установка приложения 280 на мобильные вычислительные устройства (150A…150N).
После того, как приложение 280 установлено (в шаге 320), по крайней мере, на одно мобильное вычислительное устройство (150A…150N), в шаге 323 пользователем осуществляется запуск приложения 280 на устройстве (150A…150N).
Далее, в шаге 325 осуществляется диагностика (тестирование) устройства (150A…150N), в частности средствами мобильного приложения для диагностики 280 и пользователем. В частном случае осуществляется процесс диагностики мобильного вычислительного устройства (150A…150N), в частности осуществляется процесс проверки (диагностики, тестирования) составных элементов мобильного вычислительного устройства (150A…150N). В частном случае осуществления настоящего изобретения осуществляется процесс тестирования (проверки, диагностики) функционирования (в частности, работоспособности), по крайней мере, одного составного элемента мобильного вычислительного устройства (150A…150N). Стоит также отметить, что в процессе диагностики (тестирования, проверки) мобильного вычислительного устройства (150A…150N) может осуществляться диагностика функционирования программного обеспечения, установленного на мобильном вычислительном устройстве (150A…150N), включая диагностику драйверов для составных элементов мобильного вычислительного устройства (150A…150N), приложений, включая приложение 280. Стоит также отметить, что в процессе диагностики мобильного вычислительного устройства (150A…150N) может осуществляться обновление программного обеспечения мобильного вычислительного устройства (150A…150N), в том числе, установленных на нем приложений (включая, но не ограничиваясь, приложение 280 или, по крайней мере, одной его части, например, связанной с конкретным составным элементом устройства (150A…150N), и т.д.), драйверов составных элементов устройства (150A...150N), операционных систем (или их компонентов) устройств (150А…150N) или устройств (140А…140N) и т.д.
Далее, в частном случае, по завершению (или в процессе осуществления) диагностики, по крайней мере, одного мобильного вычислительного устройства (150A…150N) осуществляется отправка (передача) результатов тестирования (диагностики) в виде данных (в частности, наборов данных), по крайней мере, на одно вычислительное устройство пользователя (140А…14ON) в шаге 330.
Далее, в шаге 335 осуществляется отправка результатов (данных, описываемых в рамках настоящего изобретения) диагностики (тестирования) с устройства (140A…140N) на веб-сервер 110, которые могут быть сохранены, по крайней мере, на одном сервере базы данных 120, по крайней мере, в одном хранилище данных, например, по крайней мере, в одной базе данных, и которые могут быть отображены, по крайней мере, одному пользователю посредством описываемого интерфейса пользователя (в частности, посредством веб-интерфейса, например, в веб-браузере 220 и/или на веб-сайте 260).
Стоит отметить, что при осуществлении диагностики мобильного вычислительного устройства (150A…150N) у такого устройства (150A…150N) могут присутствовать дефекты, которые не позволяют осуществить диагностику описываемым в настоящем изобретении способом того или иного функционала или составной части устройства (150A…150N). Так, например, может отсутствовать возможность осуществить (пройти, выполнить и т.д.) на устройстве (150A…150N) какой-либо тест, например, у устройства (150A…150N) не работают кнопки. В этом случае осуществляется навигация посредством слайдов (слайдинга, в частности посредством описанных выше команд LEFT и RIGHT) экранов внутри приложения 213 устройства (150A…150N). Стоит отметить, что если у устройства (150A…150N) не работает сенсорный экран, то осуществляется использование навигации посредством управления с вычислительного устройства пользователя (140A…140N).
В частном случае осуществления настоящего изобретения приложением 280 посредством обращения к API операционной системы устройства (150A…150N) осуществляется определение доступного количества составных элементов устройства (150A…150N), которые могут быть протестированы (диагностика которых может быть осуществлена) в приложении 280. Такими составными элементами устройства (150A…150N) могут быть: микрофоны, экран(ы), динамики, датчики, камеры, вспышки и т.д.
В частном случае осуществления настоящего изобретения в приложении 280 может осуществляться диагностика (тестирование) динамиков мобильного вычислительного устройства (150A…150N). Приложение 280 осуществляет воспроизведение на мобильном вычислительном устройстве (150A…150N) аудиозаписи (например, звук транспорта, речь и т.д.). На мобильном вычислительном устройстве (150A…150N) в процессе или после воспроизведения аудиозаписи приложением 280 осуществляется отображение набора изображений, по крайней мере, одно из которых соответствует аудиозаписи. Далее пользователь мобильного вычислительного устройства (150A…150N) после (или во время) прослушивания аудиозаписи должен выбрать изображение соответствующее воспроизведенной аудиозаписи. Если выбранное пользователем изображение соответствует услышанной пользователем (воспроизведенной пользователю) аудиозаписи, то тест (диагностика) динамиков устройства (150A…150N) считается пройденным устройством (150А…150N).
В частном случае реализации настоящего изобретения в приложении 280 осуществляется тестирование (диагностики) микрофонов мобильного вычислительного устройства (150A…150N). После запуска приложения 280, при начале прохождении тестов (в процессе диагностики), приложение осуществляет считывание (запись) "белого шума" посредством, по крайней мере, одного микрофона устройства (150A…150N). В случае если приложением 280 было определено (установлено, зафиксировано), что "белый шум" был записан, то приложение 280 фиксирует результат, что микрофон исправен. В частном случае, «белый шум» является стационарным шумом, спектральные составляющие которого равномерно распределены по всему диапазону задействованных частот. В частном случае "белый шум" имеет одинаковую спектральную мощность на всех частотах. Также, "белым шумом" являются любой шум (шумы), спектральная плотность которых одинакова (или незначительно отличается) в упомянутом диапазоне частот.
Также, в частном случае, если "белый шум" при тестировании (диагностике) записан не был, но при произведении звуков во время тестирования динамиков микрофоны фиксируют запись, так что приложение 280 получает результат о фиксировании записи, что микрофон исправен, т.е. в частном случае осуществляется тестирование (диагностика) микрофонов на протяжении всей работы приложения 213, причем, если микрофонами не было зарегистрировано никаких звуков, то микрофоны считаются (являются) не исправными.
Стоит отметить, что если на момент прохождения тестов динамиков в приложении 280, описанными выше способами, результат работоспособности микрофонов не был зафиксирован приложением 280, то пользователю в приложении 280 становится доступной функция включения записи, в которой он может записать (осуществить запись, в том числе стандартными средствами мобильного вычислительного устройства (150A…150N)) на микрофон(ы) произвольные звуки. В случае, если после осуществления записи, на микрофон (микрофонах) приложение 280 не фиксирует наличие записи (звуков), то приложение 280 фиксируется результат, что микрофон не исправен.
В частном случае, в процессе тестирования (диагностики) микрофонов приложение 280 посредством обращения к API ОС мобильного вычислительного устройства (150A…150N) устанавливает количество микрофонов у конкретного устройства (150A…150N). Далее, в процессе работы приложения 280, в частности, в фоновом режиме, каждым доступным микрофоном осуществляется измерение (замер) уровня шумов (которыми могут быть любые звуки). При преодоления порога в несколько сотых децибел (зафиксированных встроенной системой или средствами микрофона) микрофон считается прошедшим тестирование (диагностику) как исправный. В частном случае осуществления изобретения разница в несколько сотых децибел (в частности между текущим уровнем и (абсолютным) нулем) позволяет приложению 280 установить факт получения микрофоном устройства (150A…150N) звуков и возможность осуществления микрофоном трансформирования их в электрические сигналы.
В частном случае реализации настоящего изобретения в приложении 280 осуществляется диагностика (проверка, тестирование) мобильного вычислительного устройства (150A…150N) на «взлом», в частности на возможность свободного доступа пользователю и/или одному из приложений, установленных на устройстве (150A…150N), к файловой системе мобильной ОС вычислительного устройства (150A…150N), в частности наличие Root-прав, jail break (джейлбрейк) и т.д. Проверка устройства (150A…150N) на «взлом» может осуществляться посредством установки Windows-службой на устройство (150A…150N) неподписанное разработчиком мобильное приложение, а так же проверкой наличия на мобильном устройстве следов (фактов) установки приложений для JailBreak. Далее приложение 280 или пользователь (в том числе посредством приложения 280) осуществляет попытку запуска такого неподписанного приложения. В случае, если приложению 280 или пользователю удается запустить такое неподписанное приложение, то устройство (150A…150N) имеет доступ к системным файлам и следовательно «взломано». В частности в процессе осуществления диагностики на «взлом» устройства (150A…150N) посредством приложения 280 осуществляется попытка доступа к системным каталогам (директориям, папкам) посредством осуществления чтения содержимого (файлов и подкаталогов) таких каталогов. Если чтение содержимого упомянутых каталогов может быть осуществлено, то результатом диагностики в данном случае является факт «взлома» устройства (150A…150N). В частности в процессе осуществления диагностики на «взлом» устройства (150A…150N) посредством приложения 280 осуществляется попытка доступа к системным файлам устройства (150A…150N). Если чтение системных файлов может быть осуществлено, то результатом диагностики в данном случае является факт «взлома» устройства (150A…150N). В случае если чтение системных файлов и содержимого упомянутых каталогов не может быть осуществлено, то результатом диагностики на «взлом» устройства (150A…150N) является тот факт, что устройство (150A…150N) не было «взломано», в частном случае устройство (150A…150N) не проходило процедуру выдачи пользователю Root-привелегий. В частном случае осуществления настоящего изобретения при осуществлении диагностики на взлом устройств (150A…150N) под управлением мобильными ОС «iOS», в частности, на JailBreak, осуществляется попытка установки мобильного приложения не подписанного Enterprise лицензией на устройство (150A…150N). В случае, если приложению 280 или пользователю не удалось установить такое неподписанное приложение, то результатом диагностики является факт отсутствия «взлома» устройства (150A…150N), в частности, отсутствие на таком устройстве JailBreak.
На ФИГ. 4 показан примерный вариант службы синхронизации и установки мобильных приложений для диагностики, согласно одной из реализаций настоящего изобретения.
В шаге 415 служба 210 получает список подключенных мобильных вычислительных устройств (150A…150N) к вычислительному устройству пользователя (140A…140N).
Далее в шаге 420 службой 210 осуществляется сравнение подключаемого мобильного вычислительного устройства (150A…150N) к вычислительному устройству пользователя (140A…140N) со списком подключенных к вычислительному устройству пользователя (140A…140N) мобильных вычислительных устройств (150A…150N), полученным на предыдущей итерации.
Затем в шаге 425 службой 210 осуществляется проверка наличия нового мобильного вычислительного устройства (150A…150N), подключенного к вычислительному устройству пользователя (140A…140N). Если такое устройство (150A…150N) обнаружено (в списке подключенных мобильных вычислительных устройств), то такое устройство добавляется в список подключенных мобильных вычислительных устройств (150A…150N) в шаге 430, после чего процесс переходит в шаг 435.
В шаге 435 осуществляется выполнение выделенного потока выполнения программы и далее службой 210 осуществляется выполнение шага 425.
Если в шаге 425 сервисом 210 не было обнаружено наличие нового мобильного вычислительного устройства (150A…150N), подключенного к вычислительному устройству пользователя (140A…140N), то осуществляется выполнение шага 440. В шаге 440 служба 210 осуществляет проверку наличия удаленных (отключенных от персонального компьютера) мобильных вычислительных устройств (150A…150N). В случае, если удаленных устройств (150A…150N) не было обнаружено сервисом 210, то осуществляется возврат в шаг 415.
В случае если сервис 210 обнаружил удаленное (отключенное от ПК) мобильное вычислительного устройство (150A…150N), то осуществляется выполнение шага 445. В шаге 445 осуществляется удаление такого мобильного вычислительного устройства (150A…150N) из списка подключенных мобильных вычислительных устройств, поле чего в шаге 450 осуществляется прерывание выделенного потока выполнения программы и осуществляется возврат к шагу 440.
ФИГ. 5 иллюстрирует выполнение выделенного потока выполнения программы, согласно одному из осуществлений настоящего изобретения.
В шаге 515 службой 210 осуществляется попытка получения данных о производителе мобильного вычислительного устройства (150A…150N). Далее в шаге 520 служба 210 осуществляет проверку того, удалось ли получить данные о производителе в шаге 515. Если в шаге 520 установлено, что службе 210 не удалось получить данные о производителе, то в шаге 525 осуществляется задержка и осуществляется переход к шагу 515. Если в шаге 520 установлено, что службе 210 удалось получить данные о производителе, то в шаге 530 осуществляется отправка данных о подключении. В шаге 535 проверяется удалось ли отправить данные и, если нет, то в шаге 580 служба 210 осуществляет остановку выделенного потока выполнения программы. Если в шаге 535 установлено, что службе 210 удалось отправить данные, то в шаге 540 служба 210 осуществляет получение свойств мобильного вычислительного устройства (150A…150N) посредством, по крайней мере, одного модуля обмена данными 230 (ADB, libimobiledevice).
Далее в шаге 545 осуществляется отправка данных мобильных вычислительных устройств (150A…150N), после чего в шаге 550 служба 210 осуществляет проверку того, удалось ли отправить упомянутые данные. Если в шаге 550 установлено, что службе 210 не удалось отправить данные, то в шаге 580 служба 210 осуществляет остановку выделенного потока выполнения программы.
Если в шаге 550 установлено, что службе 210 удалось отправить данные, то шаге 555 осуществляется установка приложения 280 и далее осуществляется диагностика (тестирование) мобильные вычислительные устройства (150A…150N) средствами мобильного приложения 280 и в шаге 560 осуществляется ожидание результатов диагностики (тестирования, проверки) устройства (150A…150N). Далее в шаге 565 после получения результатов диагностики службой 210 осуществляется отправка (передача) команд и контрольных данных на устройство (150A…150N), после чего в шаге 570 осуществляется ожидание ответа устройства (150A…150N), содержащего результаты диагностики мобильного вычислительного устройства. Далее в шаге 575 осуществляется задержка, после чего осуществляется возврат к шагу 565.
На ФИГ. 6 показан пример компьютерной системы общего назначения, которая включает в себя многоцелевое вычислительное устройство в виде компьютера 20 или сервера, или модуля описываемой в настоящем изобретении системы, включающего в себя процессор 21, системную память 22 и системную шину 23, которая связывает различные системные компоненты, включая системную память с процессором 21.
Системная шина 23 может быть любого из различных типов структур шин, включающих шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из множества архитектур шин. Системная память включает постоянное запоминающее устройство (ПЗУ) 24 и оперативное запоминающее устройство (ОЗУ) 25. В ПЗУ 24 хранится базовая система ввода/вывода 26 (БИОС), состоящая из основных подпрограмм, которые помогают обмениваться информацией между элементами внутри компьютера 20, например, в момент запуска.
Компьютер 20 также может включать в себя накопитель 27 на жестком диске для чтения с и записи на жесткий диск, не показан, накопитель 28 на магнитных дисках для чтения с или записи на съемный магнитный диск 29, и накопитель 30 на оптическом диске для чтения с или записи на съемный оптический диск 31 такой, как компакт-диск, цифровой видео-диск и другие оптические средства. Накопитель 27 на жестком диске, накопитель 28 на магнитных дисках и накопитель 30 на оптических дисках соединены с системной шиной 23 посредством, соответственно, интерфейса 32 накопителя на жестком диске, интерфейса 33 накопителя на магнитных дисках и интерфейса 34 оптического накопителя. Накопители и их соответствующие читаемые компьютером средства обеспечивают энергонезависимое хранение читаемых компьютером инструкций, структур данных, программных модулей и других данных для компьютера 20.
Хотя описанная здесь типичная конфигурация использует жесткий диск, съемный магнитный диск 29 и съемный оптический диск 31, специалист примет во внимание, что в типичной операционной среде могут также быть использованы другие типы читаемых компьютером средств, которые могут хранить данные, которые доступны с помощью компьютера, такие как магнитные кассеты, карты флеш-памяти, цифровые видеодиски, картриджи Бернулли, оперативные запоминающие устройства (ОЗУ), постоянные запоминающие устройства (ПЗУ) и т.п.
Различные программные модули, включая операционную систему 35, могут быть сохранены на жестком диске, магнитном диске 29, оптическом диске 31, ПЗУ 24 или ОЗУ 25. Компьютер 20 включает в себя файловую систему 36, связанную с операционной системой 35 или включенную в нее, одно или более программное приложение 37, другие программные модули 38 и программные данные 39. Пользователь может вводить команды и информацию в компьютер 20 при помощи устройств ввода, таких как клавиатура 40 и указательное устройство 42. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, геймпад, спутниковую антенну, сканер или любое другое.
Эти и другие устройства ввода соединены с процессором 21 часто посредством интерфейса 46 последовательного порта, который связан с системной шиной, но могут быть соединены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (УПШ). Монитор 47 или другой тип устройства визуального отображения также соединен с системной шиной 23 посредством интерфейса, например, видеоадаптера 48. В дополнение к монитору 47, персональные компьютеры обычно включают в себя другие периферийные устройства вывода (не показано), такие как динамики и принтеры.
Компьютер 20 может работать в сетевом окружении посредством логических соединений к одному или нескольким удаленным компьютерам 49. Удаленный компьютер (или компьютеры) 49 может представлять собой другой компьютер, сервер, роутер, сетевой ПК, пиринговое устройство или другой узел единой сети, а также обычно включает в себя большинство или все элементы, описанные выше, в отношении компьютера 20, хотя показано только устройство хранения информации 50. Логические соединения включают в себя локальную сеть (ЛВС) 51 и глобальную компьютерную сеть (ГКС) 52. Такие сетевые окружения обычно распространены в учреждениях, корпоративных компьютерных сетях, Интернете.
Компьютер 20, используемый в сетевом окружении ЛВС, соединяется с локальной сетью 51 посредством сетевого интерфейса или адаптера 53. Компьютер 20, используемый в сетевом окружении ГКС, обычно использует модем 54 или другие средства для установления связи с глобальной компьютерной сетью 52, такой как Интернет.
Модем 54, который может быть внутренним или внешним, соединен с системной шиной 23 посредством интерфейса 46 последовательного порта. В сетевом окружении программные модули или их части, описанные применительно к компьютеру 20, могут храниться на удаленном устройстве хранения информации. Надо принять во внимание, что показанные сетевые соединения являются типичными, и для установления коммуникационной связи между компьютерами могут быть использованы другие средства.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.