УСТРОЙСТВО, СИСТЕМА И СПОСОБ ПРЕДОСТАВЛЕНИЯ РАСПРЕДЕЛЕННЫХ ОНЛАЙН-УСЛУГ
APPARATUS, SYSTEM AND METHOD OF PROVIDING DISTRIBUTED ONLINE SERVICES

Область техники, к которой относится изобретение
Изобретение относится к области мобильных устройств. Настоящее изобретение также относится к области портирования. В частности изобретение касается адаптации информационных услуг, программного обеспечения или кодов к параметрам конкретных устройств для обеспечения возможности их корректного просмотра и выполнения на данном мобильном устройстве.
Уровень техники
В мобильных устройствах используют тысячи разных вариантов аппаратного и программного обеспечения с различными операционными системами, разрешениями экранов, органами управления и ввода информации и т.д. Поставщики данных и информационных услуг стремятся охватить все имеющееся разнообразие мобильных устройств и обеспечить своим пользователям универсальную поддержку всех типов мобильных устройств без ухудшения их внешнего вида и работоспособности.
Один из путей обеспечения такой универсальной поддержки связан с так называемым портированием. Портирование представляет собой процесс адаптации программного обеспечения или кода к вычислительной среде, отличной от среды, для которой данное программное обеспечение было исходно разработано. Например, для отображения кода веб-сайта на экране мобильного устройства, в котором установлен браузер, отличный от браузера, для которого этот код был написан, код веб-сайта может быть изменен в соответствии с требованиями и возможностями другого браузера. Для обеспечения соответствия конкретным комбинациям аппаратного и программного обеспечения, существующим в различных мобильных устройствах, необходимо создание нескольких версий служебных программ.
Один из основных недостатков портирования состоит в связанных с ним высоких временных и финансовых затратах. Например, процесс портирования может включать в себя запуск и тестирование одного и того же кода на каждом из вариантов мобильных устройств, идентификацию создающих проблемы частей кода, переписывание кода для исправления таких частей и повторение тестирования на переписанном коде.
Для повышения эффективности работы был разработан другой процесс портирования. В данном процессе формируют первый уровень программного обеспечения, в который входят данные и так называемый «контент» (информационное наполнение), предназначенные для всех типов мобильных устройств. Кроме этого, формируют дополнительные уровни программного обеспечения, предназначенного для отдельных типов мобильных устройств, которые позволяют эксплуатировать первый уровень контента на каждом конкретном мобильном устройстве. В данном примере, поскольку уровень контента и уровни приложений для конкретных типов устройств генерируют по отдельности, содержание первого уровня можно изменять без необходимости адаптации к нему уровней, соответствующих конкретным видам устройств. Таким образом, один и тот же уровень, соответствующий некоторому типу мобильных устройств, может поддерживать разные виды контента для каждого мобильного устройства. Несмотря на преимущества такого процесса, он также обладает некоторыми недостатками. Например, формирование уровней, соответствующих конкретным типам устройств, обычно производят в автоматическом режиме на основе параметров устройств, сохраненных в базе данных. Таким образом, для устройства, параметры которого неизвестны или не сохранены в базе данных, формирование такого уровня невозможно. Соответственно, устройство неизвестного типа не может отображать уровень контента.
Для решения данной проблемы при отображении уровня контента может быть использован общий или базовый уровень устройств. Поскольку некоторые виды устройств поддерживают более сложные технологии (например, с использованием объектов Adobe Flash), в то время как другие могут поддерживать лишь самые основные типы контента (например, с использованием языка разметки гипертекста (HTML)), базовый уровень, совместимый с обоими типами устройств, должен использовать функциональность самого низкого уровня. Таким образом, устройство, выполненное с возможностью поддержки усложненного контента, может вынуждено отображать базовую информацию, не используя свои широкие функциональные возможности. Базовый контент часто имеет устаревшие функциональные возможности, что снижает удобство работы с ним для пользователя.
В настоящее время использование функциональности самого низкого уровня представляет собой общепринятое решение задачи предоставления общедоступных услуг в условиях широкого технологического разнообразия мобильных устройств. Так, поставщики услуг мобильной связи используют веб-сайты на базе протокола беспроводных приложений (Wireless Application Protocol, WAP), которые, по существу, представляют собой обычные веб-сайты с урезанным контентом, возможностями и функциональностью. Возможности использования более новых технологических функций могут быть обеспечены только путем разработки, тестирования и поддержки параллельных версий соответствующих услуг, каждая из которых учитывает дополнительные возможности, не поддерживаемые менее совершенными средствами.
Существует потребность в обеспечении универсальной поддержки для широкого спектра мобильных устройств без снижения качества обслуживания.
Раскрытие изобретения
В соответствии с одним из вариантов осуществления изобретения предлагаются устройство, система и способ для обеспечения работы мобильных приложений, причем система содержит сервер для обеспечения работы приложений и клиент, установленный на мобильном устройстве. Клиент может устанавливать соединение с сервером через сеть. Клиент может отображать контент, принимать вводимые пользователем команды и передавать введенные пользователем команды на сервер. Сервер может использовать клиент для получения вводимых пользователем команд и отображения контента с целью обеспечения работы приложений для мобильного устройства.
В соответствии с одним из вариантов осуществления изобретения предлагаются устройство, система и способ для распределения управления кэш-памятью. Кэш-память может управляться клиентом и быть установлена на мобильном устройстве для локального хранения данных. Сервер может быть соединен с мобильным устройством через сеть. Сервер может предоставлять дополнительные ресурсы для обработки данных, локально сохраненных в мобильном устройстве, в дополнение к собственным ресурсам мобильного устройства.
В соответствии с одним из вариантов осуществления изобретения предлагаются устройство, система и способ для обмена данными с использованием протокола передачи гипертекста. Система может содержать сервер для обмена данными с одним или несколькими клиентами и клиент, установленный на мобильном устройстве для установления соединения с сервером через сеть с использованием протокола передачи гипертекста. В случае отсутствия установленного соединения клиент может устанавливать новое соединение и передавать запрос для обеспечения постоянной возможности передачи данных сервером. Клиент может устанавливать дополнительные соединения для передачи данных на сервер, не ожидая ответа на ранее установленное соединение.
В соответствии с одним из вариантов осуществления изобретения предлагаются устройство, система и способ для определения способности клиента к одновременному поддержанию двух и более соединений с использованием протокола передачи гипертекста. Система может содержать сервер для обмена данными с одним или несколькими клиентами и клиент, установленный на мобильном устройстве. Клиент может устанавливать соединение с сервером через сеть с использованием протокола передачи гипертекста. Клиент может устанавливать первое соединение, запускать таймер и устанавливать второе соединение, параллельное первому. Сервер может принимать первое соединение и передавать ответ на установление первого соединения только после установления второго соединения. Клиент может проверить состояние таймера в момент получения ответа на установление первого соединения. Если значение счетчика превышает заранее установленное пороговое значение, клиент может определить, что одновременное поддержание двух и более соединений невозможно.
Краткое описание чертежей
Варианты осуществления изобретения станут более ясны, а их преимущества - более очевидны из нижеследующего подробного описания, приведенного со ссылками на прилагаемые чертежи, выполненные с отклонением от масштаба, на которых одинаковые ссылочные номера обозначают соответствующие, аналогичные или сходные элементы, где:
на фиг.1 схематически изображена система, содержащая множество мобильных устройств, работающих в сети, по одному из вариантов осуществления изобретения;
на фиг.2А представлена блок-схема процесса портирования по одному из вариантов осуществления изобретения;
фиг.2В схематически иллюстрирует уровни в мобильном устройстве и в шлюзовом сервере, взаимодействующих в рамках осуществления процесса портирования в соответствии с вариантом осуществления изобретения по фиг.2А;
фиг.3 схематически иллюстрирует уровни в мобильном устройстве, в шлюзовом сервере и в сервере приложений, которые обеспечивают предоставление приложений пользователю мобильного устройства по одному из вариантов осуществления изобретения;
фиг.4 схематически иллюстрирует множество модулей кэш-памяти для мобильного устройства, распределенных по сети по одному из вариантов осуществления изобретения;
на фиг.5 представлена блок-схема процесса использования множества распределенных модулей кэш-памяти по фиг.4 в соответствии с одним из вариантов осуществления изобретения;
на фиг.6 представлена блок-схема обмена сигналами связи между мобильным устройством и шлюзовым сервером по одному из вариантов осуществления изобретения;
на фиг.7 представлена блок-схема процесса определения способности мобильного устройства к поддержанию двух или более одновременных соединений со шлюзовым сервером по одному из вариантов осуществления изобретения.
Следует иметь в виду, что для большей простоты и ясности иллюстраций элементы, представленные на чертежах, могут быть изображены с отклонением от масштаба. Так, для большей наглядности размеры некоторых элементов могут быть преувеличены относительно других элементов. Кроме того, одинаковые ссылочные номера могут быть использованы в разных чертежах для обозначения соответствующих или аналогичных элементов там, где это уместно.
Осуществление изобретения
В нижеследующем описании раскрыты различные аспекты настоящего изобретения. В рамках данного описания разъяснены конкретные варианты и подробности конфигураций, позволяющие получить исчерпывающее понимание настоящего изобретения. Однако специалисту в данной области должно быть очевидным, что настоящее изобретение может быть осуществлено с отклонением от представленных в настоящем описании конкретных подробностей. Кроме того, хорошо известные свойства могут быть опущены или упрощены во избежание излишнего усложнения описания настоящего изобретения.
Как явно следует из нижеследующего описания, если иное не указано прямо, предполагается, что термины «обработка данных», «вычисление», «расчеты», «определение» и т.п., используемые на всем протяжении описания, обозначают действия и/или процессы, осуществляемые компьютерным процессором, компьютером, вычислительной системой или другим сходным электронным вычислительным оборудованием, которое обрабатывает данные, представленные в виде физических, например электронных, величин в регистрах и/или памяти такой вычислительной системы и/или преобразует их в другие данные, также представленные в виде физических величин в памяти, регистрах или других средствах хранения информации вычислительного оборудования, или в его средствах отображения. Кроме того, термин «множество» может быть использован на всем протяжении описания для обозначения двух или более компонентов, модулей, элементов, параметров и т.п.
Фиг.1 схематически иллюстрирует систему 100, содержащую множество мобильных устройств 2, 4 и 6, работающих в сети 8, в соответствии с одним из вариантов осуществления изобретения. Система 100 может содержать шлюзовый сервер 22, сервер 24 приложений и сервер 26 контента.
Сеть 8 может представлять собой беспроводную или проводную сеть, соединяющую мобильные устройства с серверами с использованием протоколов обмена данными, например Интернет.
Мобильные устройства 2, 4 и 6 могут представлять собой любые беспроводные вычислительные устройства, портативные или установленные, например, в автомобилях, например сотовые телефоны, смартфоны, портативные компьютеры, карманные персональные компьютеры (КПК), портативные игровые системы, портативные мультимедийные проигрыватели и записывающее оборудование, оборудование спутниковой навигации, например, поддерживающее работу с глобальной системой позиционирования (GPS) и т.д. Мобильные устройства 2, 4 и 6 содержат экраны 10, 12 и 14, соответственно, например, для отображения интерфейса пользователя. Мобильные устройства 2, 4 и 6 также могут содержать средства аудиовывода, такие как громкоговорители, для выдачи пользователю звуковой информации. Мобильные устройства 2, 4 и 6 содержат средства 16, 18 и 20 ввода, например, для ввода информации пользователем (например, через клавиши, сенсорный экран, колесо управления, средства записи или микрофон или другие средства ввода). Дополнительные средства ввода/вывода (такие, как мышь или клавиатура, микрофон, наушники и т.д.) могут быть подсоединены к мобильным устройства 2, 4 и 6 через беспроводные или проводные соединения, такие как штекерные соединения или разъем универсальной последовательной шины (USB). Мобильные устройства 2, 4 и 6 могут использовать любые из широкого спектра известных операционных систем (ОС).
Шлюзовый сервер 22 может представлять собой точку соединения между каждым из мобильных устройств 2, 4 и 6 и сервером 24 приложений. Шлюзовый сервер 22 может поддерживать протоколы обмена данными.
Сервер 24 приложений представляет собой сервер, запрограммированный на поддержку работы приложения или службы. Сервер 24 приложений может представлять собой точку соединения устройств, включенных в систему 100, с сервером 26 контента.
Сервер 26 контента представляет собой сервер, например, веб-сервер, содержащий базу данных или другой источник данных/контента, доступ к которому возможен через сеть 8. Например, сервер 26 контента может представлять собой узел метеорологической или новостной информации или хранилище кинофильмов, причем данные погоды, новостей или кинофильмов, соответственно, хранящиеся в нем, могут быть получены при помощи мобильных устройств 2, 4 и 6. Сервер 26 может представлять собой онлайн-службу предоставления данных, например, такую как финансовая служба, социальная сеть, служба передачи сообщений, электронный магазин, каталог музыкальных файлов и т.д. С точки зрения настоящего изобретения контент может содержать информацию и данные любого типа, включая медиа-контент (например, изображения, кинофильмы, музыку, данные о времени и местоположение, складскую информацию, данные о доступности, результаты поиска, онлайн-услуги и т.д.), но не ограничиваясь им.
Следует понимать, что любые из серверов 22, 24 и/или 26 могут быть объединены в единый сервер и что любые из серверов 22, 24 и/или 26 могут быть разделены на несколько отдельных серверов. В наиболее вероятном варианте шлюзовый сервер 22 и сервер 24 приложений объединены в единый сервер. Кроме того, каждый из серверов 22, 24 и/или 26 может представлять собой лишь часть сервера.
Мобильные устройства 2, 4 и 6 могут осуществлять обмен данными и взаимодействие со шлюзовым сервером 22 для получения доступа к контенту, предоставляемому сервером 26 контента или для получения доступа к услугам, управление которыми осуществляет сервер 26 контента.
Мобильные устройства 2, 4 и 6 могут передавать соответствующие параметры устройств на шлюзовый сервер 22. Параметры устройств могут быть переданы вместе с запросами на получение контента или отдельно от них. В соответствии с одним из вариантов осуществления изобретения параметры устройств могут быть переданы всего один раз, т.е. при передаче первого запроса на получение контента от мобильных устройств 2, 4 и/или 6 на шлюзовый сервер 22. В число параметров устройств могут входить, например, данные о разрешении экрана, программном обеспечении, установленном на данном устройстве, ОС, используемой на данном устройстве, размере доступной памяти, имеющихся библиотеках, имеющихся средствах ввода/вывода, таких как громкоговорители или жидкокристаллический дисплей (ЖКД), соответствии органов управления устройствами (например, клавишах клавиатуры, состоянии чувствительного экрана, поворотах или положении колеса управления и т.д.), а также сигналах управления, исполняемых данным устройством. Такие параметры могут быть сохранены на шлюзовом сервере 22, например, в его кэш-памяти или основной памяти.
В ответ на запрос на получение контента, переданный мобильными устройствами 2, 4 и/или 6 на шлюзовый сервер 22, шлюзовый сервер 22 может, в свою очередь, передать запрос на получение контента на сервер 24 приложений. Сервер 24 приложений может, в свою очередь, передать запрос на получение контента на сервер 26 контента.
В ответ на такой запрос сервер 26 контента может передать затребованный контент на сервер 24 приложений. Запрос и/или передача контента могут быть осуществлены, например, с использованием стандартных веб-протоколов, интерфейса прикладного программирования (Application Programming Interface, API) или любой другой известной технологии.
Сервер 24 приложений может принять переданный контент. Сервер 24 приложений может обработать контент, полученный от сервера 26 контента, с целью определения соответствия полученного контента запросу, принятому от шлюзового сервера 22 (например, запросу, исходящему от мобильных устройств 2, 4 и/или 6). Если контент соответствует запросу, сервер 24 приложений форматирует контент в соответствии с заранее определенными параметрами, соответствующими шлюзовому серверу 22, которые могут быть независимы от параметров мобильных устройств 2, 4 и 6. Затем сервер 24 приложений передает отформатированный контент на шлюзовый сервер 22.
Шлюзовый сервер 22 принимает отформатированный контент и обрабатывает его с целью повторной проверки соответствия полученного контента исходному запросу на получение контента, полученному от одного или нескольких мобильных устройств 2, 4 и/или 6. В случае подтверждения соответствия контента запросу шлюзовый сервер 22 может получить (например, из кэш-памяти) соответствующие параметры устройств для каждого из мобильных устройств 2, 4 и/или 6, требующих получения контента. Шлюзовый сервер 22 может отформатировать контент в соответствии с параметрами каждого из мобильных устройств 2, 4 и/или 6. Шлюзовый сервер 22 может закодировать отформатированный для конкретного устройства контент и передать его на мобильные устройства 2, 4 и/или 6.
Шлюзовый сервер 22 может осуществлять обмен данными с мобильными устройствами 2, 4 и/или 6 с использованием протокола «клиент-сервер». Для использования данного протокола на каждом из мобильных устройств 2, 4 и/или 6 устанавливают клиент. Клиент может содержать установленное программное обеспечение или код, выполняемый на каждом из мобильных устройств 2, 4 и/или 6 для получения доступа к удаленному шлюзовому серверу 22 через сеть 8.
Клиент, установленный на каждом из мобильных устройств 2, 4 и/или 6, получает соответствующий отформатированный для конкретного устройства контент от шлюзового сервера 22. Контент может содержать данные любого типа, включая текст, изображения, аудио, видео, ходы и алгоритмы игр, действия, информацию, сведения, которые могут представлять ценность для конечного пользователя, элементы векторной графики, интерфейс пользователя и его элементы, интерактивные элементы и т.д., но не ограничиваясь перечисленными типами данных. Клиент может передавать параметры устройств для каждого из множества разных мобильных устройств 2, 4 и/или 6, а шлюзовый сервер 22 и/или сервер 24 приложений используют алгоритм, обеспечивающий автоматическое преобразование базового интерфейса пользователя в интерфейс пользователя для конкретного устройства в соответствии с параметрами устройств для каждого из множества разных мобильных устройств 2, 4 и/или 6.
Клиент каждого из мобильных устройств 2, 4 и/или 6 может отображать данные на дисплее 10, 12 и/или 14 соответственно, используя программный механизм интерфейса пользователя. В других случаях, если контент содержит аудиоданные, клиент воспроизводит такие данные при помощи соответствующего аудиооборудования. Кроме того, шлюзовый сервер 22 и/или контент определенного типа могут использовать другие ресурсы мобильных устройств 2, 4 и/или 6 для выполнения определенных действий, например, воспроизводить видеофайлы при помощи встроенного проигрывателя, инициировать телефонные вызовы, отправлять текстовые сообщения, определять географическое положение, использовать видеокамеру и т.д.
В то же время клиент каждого из мобильных устройств 2, 4 и/или 6 принимает ввод данных пользователем через элементы управления устройством (например, нажатия клавиш, перемещения координатно-указательных средств по чувствительному экрану, повороты колеса управления и т.д.). Клиент может производить локальную обработку некоторых вводимых данных, например, при помощи обработчика событий, который преобразует вводимую пользователем информацию в исполнение соответствующих ей операций. Клиент также может передавать вводимую информацию для обработки на шлюзовый сервер 22.
Шлюзовый сервер 22 может устанавливать по параметрам устройств соответствие между элементами пользовательского управления устройством и вызываемыми ими операциями. Если операции, соответствующие пользовательскому вводу, не требуют нового контента (например, выделение слов на пользовательском дисплее 10, 12 и/или 14, возврат к предыдущей странице, содержимое которой еще сохранено в кэш-памяти шлюзового сервера 22 и т.п.), шлюзовый сервер 22 может выполнить соответствующие операции. Если же новый контент необходим для выполнения операций, соответствующих пользовательскому вводу, шлюзовый сервер 22 может переслать запрос на выполнение таких операций на сервер 24 приложений для получения нового контента.
Сервер 24 приложений также может определить, требуют ли запрошенные операции получения нового контента. Если новый контент для запрошенных операций не нужен, сервер 24 приложений может обработать такие операции и переслать обновленный контент на шлюзовый сервер 22 для использования в мобильных устройствах 2, 4 и/или 6. Если же новый контент необходим для выполнения данных операций, сервер 24 приложений может передать запрос на получение нового контента на сервер 26 контента. Сервер 26 контента может извлечь или обновить требуемый контент. Сервер 26 контента может переслать новый контент на сервер 24 приложений, который, в свою очередь, может переслать новый контент на шлюзовый сервер 22, который, в свою очередь, может переслать новый контент на мобильные устройства 2, 4 и/или 6 через соответствующих локальных клиентов, установленных в нем.
Следует понимать, что, хотя на схеме серверы 22, 24 и/или 26 представлены по отдельности, в альтернативном варианте осуществления изобретения любые из серверов 22, 24 и/или 26 могут быть интегрированы в единый сервер. В соответствии с предпочтительным вариантом осуществления изобретения, по меньшей мере, серверы 22 и 24 выполнены раздельно для повышения масштабируемости и сокращения задержек передачи данных. Кроме того, может быть использовано несколько серверов 22 и/или несколько серверов 24, например, для обеспечения соответствия увеличенному объему передачи данных, числу мобильных устройств и соединений с сервером 26. Если серверы 22, 24 и/или 26 выполнены раздельно, обмен данными между ними может быть произведен в виде сигналов беспроводной или проводной связи, например, по сети 28 (которая может совпадать или не совпадать с сетью 8). В другом варианте осуществления изобретения (не представлен), в котором серверы 22, 24 и/или 26 интегрированы, например, в качестве элементов единого сервера, обмен данными между ними может происходить между процессами или параллельно процессам, без использования сети. Также могут быть использованы и другие или дополнительные конфигурации серверов.
Идентификация и/или проверка и подтверждение безопасности любого из серверов могут быть произведены на любом этапе такой последовательности обмена данными.
Известный процесс портирования, использующий уровни, как описано выше в разделе «Уровень техники», генерирует отдельные уровни для просмотра контента на каждом из разных устройств, информация о которых сохранена в базе данных. Один из недостатков данного процесса портирования состоит в том, что уровни, предназначенные для конкретных устройств, генерируют для всех устройств или профилей, сохраненных в базе данных, независимо от того, работает ли в данный момент такое устройство, и посылало ли оно запрос на просмотр данного уровня контента. В соответствии с вариантами осуществления настоящего изобретения портирование для каждого конкретного устройства начинают, когда данное устройство выдает запрос на просмотр контента. Таким образом, процесс портирования задействуют лишь по необходимости и только для устройств, выдавших запрос на просмотр контента. Другой недостаток вышеупомянутого известного процесса портирования состоит в том, что просмотр контента возможен только на тех устройствах, параметры которых были заранее сохранены в базе данных. Таким образом, для нового, неизвестного или нераспознанного устройства не может быть создан индивидуальный уровень устройства, и просмотр контента может быть произведен только с базовым внешним видом и функциональностью, с использованием базового уровня. Напротив, в соответствии с вариантами осуществления настоящего изобретения уровень портирования для каждого устройства генерируют не на основе параметров устройства, сохраненных в базе данных, а на основе информации, переданной самим устройством. Таким образом, портирование может быть произведено для устройств, параметры которых не сохранены в базе данных (например, новых, иностранных или неизвестных устройств). Также могут быть получены и другие или дополнительные преимущества.
Фиг.2А схематически иллюстрирует уровни в мобильном устройстве (например, таком как одно из мобильных устройств 2, 4 и/или 6 по фиг.1) и в шлюзовом сервере (например, в шлюзовом сервере 22 по фиг.1), взаимодействующих для осуществления процесса портирования по одному из вариантов осуществления изобретения.
Шлюзовый сервер и мобильное устройство могут производить обмен данными, используя один или несколько из уровней 42 шлюзового сервера и один или несколько из уровней 40 клиента, соответственно. На схеме уровни со стороны клиента и со стороны шлюзового сервера разделены пунктирной линией.
Уровни 40 клиента могут содержать, по меньшей мере, программный механизм 32 пользовательского интерфейса и обработчик 34 событий. Программный механизм 32 пользовательского интерфейса может отображать контент на мобильном устройстве. Обработчик 34 событий может преобразовывать команды пользователя, введенные через органы управления мобильного устройства для выполнения соответствующих операций. Обработчик 34 событий может содержать локальный оператор 36 и дистанционный оператор 38. Локальный оператор 36 обычно обрабатывает введенные пользователем команды локально, т.е. в самом мобильном устройстве, а дистанционный оператор 38 может пересылать введенные пользователем команды на шлюзовый сервер для дальнейшей обработки.
Уровни 42 шлюзового сервера могут представлять собой точку соединения мобильного устройства, подключенного к сети (например, к сети 8 по фиг.1). Уровни 42 шлюзового сервера могут составлять протокол «клиент-сервер», совместимый с мобильным устройством, которое имеет любой произвольно выбранный набор параметров устройства. Уровни 42 шлюзового сервера могут сформировать «виртуальное» устройство 84, соответствующее данному мобильному устройству. «Виртуальное» устройство может представлять собой набор структур данных и/или операций на шлюзовом сервере, действующий как мобильное устройство и сконфигурированный в соответствии со всеми или некоторыми из параметров устройства соответствующего мобильного устройства. В таком случае уровни 42 шлюзового сервера могут адаптировать контент и команды в соответствии с параметрами виртуального устройства 84. Уровни 42 шлюзового сервера могут пересылать контент, адаптированный для конкретного устройства, на уровни 40 клиента.
Уровни 40 клиента могут получать такой адаптированный контент и, используя программный механизм 32 пользовательского интерфейса, отображать на мобильном устройстве контент, предназначенный для конкретного устройства, и задействовать конкретные функциональные возможности в соответствии с командами, переданными уровнями 42 шлюзового сервера.
Уровни 42 шлюзового сервера могут конфигурировать виртуальное устройство 84 в автоматическом (или полуавтоматическом) режиме. Таким образом, если определение конфигурации не зависит от устройств, то, поскольку виртуальное устройство независимо от устройств и клиент независим от устройств, вся система становится независимой от устройств.
В соответствии с одним из вариантов осуществления настоящего изобретения система для обеспечения работы мобильных приложений может содержать сервер 24 приложений для обеспечения работы приложений (и/или шлюзовый сервер 24) и клиент, установленный в мобильных устройствах 2, 4 и/или 6. Клиент может быть соединен с сервером 24 приложений через сеть 8 и/или 28. Клиент может отображать контент, принимать вводимые пользователем команды и передавать введенные пользователем команды на сервер 24 приложений. Сервер 24 приложений (и/или шлюзовый сервер 24) может использовать клиент для получения введенных пользователем команд и отображения контента для обеспечения работы приложений для мобильных устройств 2, 4 и/или 6. В системе может быть множество клиентов, каждый из которых может быть выполнен с возможностью установки на множестве разных мобильных устройствах 2, 4 и/или 6, имеющих, по меньшей мере, один общий параметр устройства. Один и тот же клиент или его копии могут быть использованы на, по меньшей мере, двух из множества разных мобильных устройств 2, 4 и/или 6.
На фиг.2В приведена блок-схема процесса портирования, осуществляемого взаимодействующими уровнями мобильного устройства и шлюзового сервера по фиг.2А в соответствии с одним из вариантов осуществления изобретения. Процесс портирования может производить автоматическое конфигурирование контента, получаемого с удаленного сервера (например, сервера 26 контента по фиг.1), для его приведения в соответствие с параметрами устройств (например, каждого из мобильных устройств 2, 4 и/или 6 по фиг.1) с целью отображения контента на устройстве и задействования индивидуальных функциональных возможностей устройств.
В ходе операции 102 уровни 40 клиента могут обеспечивать работу клиентского программного обеспечения на мобильном устройстве.
В ходе операции 104 уровни 40 клиента могут извлекать параметры устройства или некоторые параметры из мобильного устройства. Параметры устройства могут представлять собой свойства данного устройства, например данные о разрешении экрана, программном обеспечении, установленном на данном устройстве, ОС, используемой на данном устройстве, соответствии органов управления устройством (например, клавишах клавиатуры, состоянии чувствительного экрана, поворотах или положении колеса управления и т.д.), а также сигналах управления, исполняемых данным устройством.
В ходе операции 106 уровни 40 клиента могут устанавливать соединение с уровнями 42 шлюзового сервера. Уровни 40 клиента могут производить регистрацию в уровнях 42 шлюзового сервера. Например, уровни 40 клиента могут передавать свидетельство подлинности или идентификатор, такой как пароль, код или зашифрованный ключ. Уровни 40 клиента и уровни 42 шлюзового сервера могут согласовать и осуществлять использование какого-либо протокола обмена данными (например, какой-либо реализации протокола передачи гипертекста (HTTP)). В случае неудачной попытки идентификации соединение между уровнями 40 клиента и уровнями 42 шлюзового сервера не устанавливают. В случае неудачной попытки идентификации уровни 40 клиента могут повторять операцию 106 до установления соединения или до превышения заранее установленного предельного числа попыток.
В ходе операции 108 уровни 40 клиента могут передавать на уровни 42 шлюзового сервера параметры устройства для данного мобильного устройства. В соответствии с одним из вариантов осуществления изобретения вместо прямой передачи параметров устройства уровни 40 клиента передают на уровни 42 шлюзового сервера идентификатор устройства, например, информацию User-agent или сигнатуру устройства. В соответствии с одним из вариантов осуществления изобретения уровни 42 шлюзового сервера могут запрашивать параметры устройства у уровней 40 клиента.
Уровни 42 шлюзового сервера могут обрабатывать параметры устройства и определять, достаточны ли они для генерирования виртуального устройства (например, виртуального устройства 84 по фиг.3). Если уровням 42 шлюзового сервера для генерирования виртуального устройства необходима какая-либо дополнительная информация (например, о версии программного обеспечения, имеющихся библиотеках и т.п.), уровни 42 шлюзового сервера могут запросить недостающую информацию у уровней 40 клиента. В некоторых вариантах осуществления изобретения уровни 42 шлюзового сервера могут потребовать у уровней 40 клиента проведения определенных проверок мобильного устройства для получения недостающей информации, которая должна быть передана на уровни 42 шлюзового сервера. Например, уровни 42 шлюзового сервера могут потребовать у уровней 40 клиента проведения декодирования определенных типов данных, осуществления вычислений и сообщения данных о длительности таких вычислений, или же проведения проверки на наличие какого-либо известного программного сбоя или ошибки. Уровни 42 шлюзового сервера могут использовать результаты проверок в ходе операции 108 для конфигурирования алгоритма автоматического преобразования базового пользовательского интерфейса в пользовательский интерфейс, предназначенный для данного устройства, в соответствии с параметрами устройства для каждого из множества разных мобильных устройств.
Уровни 42 шлюзового сервера могут запрашивать у уровней 40 клиента информацию о параметрах мобильного устройства, на котором установлен клиент, несколько раз, до тех пор, пока уровни 42 шлюзового сервера не получат достаточной информации для генерирования виртуального устройства, соответствующего данному мобильному устройству.
В ходе операций 112-118 уровни 42 шлюзового сервера могут автоматически генерировать или обновлять базу данных конфигураций устройств для сохранения в памяти частичных или полных данных профилей виртуальных устройств, соответствующих мобильным устройствам.
В ходе операции 112 уровни 42 шлюзового сервера могут сравнивать идентификатор устройства (например, информацию User-agent или сигнатуру устройства), полученную в ходе операции 108 или другой выполненной ранее операции (например, в процессе загрузки данных или установки ПО), с идентификаторами, сохраненными в базе данных конфигураций устройств.
В ходе операции 114 уровни 42 шлюзового сервера могут определять, совпадает ли идентификатор данного устройства с каким-либо идентификатором устройства, сохраненным в базе данных конфигураций устройств. В случае такого совпадения идентификаторов уровни 42 шлюзового сервера могут просто извлечь из памяти или средств хранения данных частичные или полные профильные данные, соответствующие совпавшему идентификатору устройства, и перейти к операции 118.
В ходе операции 116, если совпадение идентификаторов не обнаружено, уровни 42 шлюзового сервера могут обновить базу данных конфигураций устройств, создав для идентификатора устройства, для которого не обнаружено соответствия, новую запись, в которую будут включены частичные или полные данные виртуального устройства, соответствующего данному устройству. Затем процесс может перейти к операции 118.
В ходе операции 118 уровни 42 шлюзового сервера могут, используя частичные или полные данные виртуального устройства, сохраненные в базе данных конфигураций устройств, сгенерировать полноценное виртуальное устройство, соответствующее мобильному устройству, на котором установлен данный клиент.
В процессе работы мобильного устройства уровни 40 клиента могут получать дополнительную информацию о мобильном устройстве (например, информацию о реализации протокола HTTP). Уровни 40 клиента могут передавать такую дополнительную информацию на уровни 42 шлюзового сервера. Уровни 42 шлюзового сервера могут, в свою очередь, автоматически дополнять базу данных конфигураций устройств новой информацией по данному мобильному устройству и/или соответствующему ему виртуальному устройству.
В альтернативном варианте осуществления изобретения вместо использования универсального клиента, устанавливаемого на всех мобильных устройствах, с последующим генерированием виртуальных устройств, соответствующих каждому из разных мобильных устройств, уровни 42 шлюзового сервера могут автоматически генерировать индивидуальные клиенты, предназначенные для каждого из разных мобильных устройств. Индивидуальный клиент, предназначенный для конкретного мобильного устройства, может быть заранее сконфигурирован с использованием конкретных параметров данного устройства мобильной связи. В соответствии с данным вариантом осуществления изобретения универсальный клиент может быть сначала установлен на мобильных устройствах для тестирования мобильных устройств и сбора соответствующей информации о них. По окончании стадии тестирования и сбора информации, достаточной для генерирования клиентов для конкретных устройств, и ее передачи на уровни 42 шлюзового сервера уровни 42 шлюзового сервера могут произвести замену/обновление универсального клиента с созданием клиента для конкретного устройства с использованием такой информации.
В соответствии с одним из вариантов осуществления изобретения уровни 40 клиента могут отображать (например, на дисплеях 10, 12 и/или 14 по фиг.1 мобильных устройств, например, мобильных устройств 2, 4 и/или 6 по фиг.1) сообщение, требующее от пользователя ввода информации. Пользователь может предоставлять клиенту информацию (например, при помощи средств 16, 18 и 20 ввода, соответственно), например, нажатием определенной клавиши или ответом на вопрос о том, какие элементы видны на дисплее устройства. Клиент может передавать данные, предоставленные пользователем, на уровни 42 шлюзового сервера для пополнения базы данных конфигураций устройств.
Виртуальное устройство может быть сконфигурировано на уровнях 42 шлюзового сервера в виде набора структур данных и/или операций на шлюзовом сервере, работающего как мобильное устройство.
Уровни 40 клиента могут содержать программный механизм 32 пользовательского интерфейса (который может быть, например, универсальным или независимым от устройства объектом) и обработчик 34 событий (например, обработчик ключевых событий, предназначенный для обработки ключевых команд данного устройства). Обработчик 34 событий уровней 40 клиента может передавать сообщения о событиях на уровни 42 шлюзового сервера. События могут быть вызваны элементами пользовательского управления, такими как клавиши, чувствительный экран или видеокамера, или сторонними источниками, такими как программное обеспечение. Уровни 42 шлюзового сервера могут осуществлять дистанционное управление, передавая на уровни 40 клиента команды по реагированию на событие. В альтернативном варианте обработчик 34 событий может реагировать на события в локальном режиме. В таком случае уровни 40 клиента могут не ждать получения команд от удаленных уровней 42 шлюзового сервера. Уровни 42 шлюзового сервера могут передавать программному механизму 32 пользовательского интерфейса и обработчику 34 задач информацию и команды, специально сконфигурированные для данного мобильного устройства. Контент и информацию, полученные от сервера 24 приложений, также конфигурируют в соответствии с параметрами виртуального устройства, а затем передают на уровни 40 клиента. Поскольку уровни 42 шлюзового сервера передают на уровни 40 клиента информацию, уже сконфигурированную в соответствии с конкретными функциональными возможностями данного мобильного устройства, уровни 40 клиента могут не иметь информации о возможностях данного устройства. Таким образом, по существу, одни и те же «универсальные» уровни 40 клиента могут быть установлены на всех мобильных устройствах или на сходных мобильных устройствах (например, имеющих одну и ту же операционную систему). Поскольку уровни 40 клиента не используют большинства или, в некоторых случаях, каких бы то ни было индивидуальных свойств, спецификаций или параметров мобильного устройства, на котором установлен клиент, такой клиент может быть назван «независимым от устройства».
В соответствии с некоторыми из вариантов осуществления изобретения уровни 42 шлюзового сервера могут запрашивать контент из дополнительных источников (например, отличных от сервера 26 контента по фиг.1). Уровни 42 шлюзового сервера могут запрашивать контент, например, из служебных серверов (например, таких как сервер(ы) преобразования изображений или сервер(ы) рекламных материалов). Уровни 42 шлюзового сервера могут передавать на служебный сервер параметры адаптации, основанной на параметрах устройства, в соответствии с конфигурацией виртуального устройства, соответствующего параметрам соответствующего мобильного устройства, чтобы обеспечить адаптацию контента на служебном сервере. В альтернативном варианте такая адаптация может быть произведена уровнями 42 шлюзового сервера. Уровни 42 шлюзового сервера могут преобразовывать информацию, получаемую от уровней 40 клиента, в соответствии с форматом и структурой, пригодными для обработки сервером 24 приложений.
На фиг.3 приведена схематическая иллюстрация уровней в системе, которая содержит одно или множество мобильных устройств, шлюзовый сервер и сервер приложений для обеспечения работы распределенной информационной службы, доступ к которой возможен с мобильного устройства, в соответствии с одним из вариантов осуществления изобретения.
Мобильные устройства 2, 4 и/или 6, шлюзовый сервер 22 и сервер 24 приложений по фиг.1 могут осуществлять обмен данными между собой при помощи, соответственно, уровней 40 клиента, уровней 42 шлюзового сервера и уровней 44 сервера приложений. На схеме, приведенной на фиг.3, уровни 40 клиента отделены от уровней 42 шлюзового сервера пунктирной линией 30, а уровни 42 шлюзового сервера отделены от уровней 44 сервера приложений пунктирной линией 46. Уровни 40 клиента и уровни 42 шлюзового сервера могут соответствовать элементам с теми же ссылочными номерами по фиг.2А.
Уровни 42 шлюзового сервера могут содержать модуль 52 запуска, модуль 54 адаптации устройств, администратор 56 сеансов и соединители 58. Модуль 52 запуска идентифицирует клиента, производящего регистрацию в системе, и соответствующее мобильное устройство. Модуль 52 запуска может определять параметры мобильного устройства, например, полученные в результате тестирования мобильного устройства, произведенного клиентом, и/или на основе параметров устройства, переданных клиентом или извлеченных уровнями 42 шлюзового сервера из базы данных конфигураций устройств. Уровни 42 шлюзового сервера могут автоматически генерировать или пополнять базу данных конфигураций устройств для сохранения в памяти данных, необходимых для поддержки виртуального устройства 84, соответствующего уровням 40 клиента. Уровни 42 шлюзового сервера могут дополнительно содержать внешний центральный процессор (CPU), а также собственные средства хранения данных и каналы обмена данными по сети. Также могут быть использованы и другие или дополнительные функциональные возможности или логические схемы.
Уровни 44 сервера приложений могут содержать один или несколько серверных клиентов 50, которые могут быть выполнены с возможностью обеспечения работы приложений, причем управление ими может быть осуществлено через уровни 40 клиента. Серверные клиенты 50 могут быть независимыми от устройств (например, универсальными или не предназначенными специально для конкретного мобильного устройства, на котором работают уровни 40 клиента). Серверные клиенты 50 могут обеспечивать работу приложений, обмен данными с источником контента, выполнение вычислений, контроль за внешними событиями и т.д., причем каждый из них связан с мобильным устройством независимо от уровней 40 клиента. Серверные клиенты 50 могут осуществлять обмен информацией, например, с сервером 26 контента по фиг.1 для периодической проверки счета в спортивном матче, проверки электронной почты и т.п.
Как правило, уровни 40 клиента могут передавать сообщения о событиях и/или запросы с мобильного устройства на серверный клиент 50 через уровни 42 шлюзового сервера, которые, в свою очередь, могут управлять логикой работы уровней 40 клиента через администратор 56 сеансов.
После регистрации клиента в системе клиент может запрашивать контент. Клиент может передать запрос на получение контента через соединители 58 на уровни 42 шлюзового сервера, которые, в свою очередь, могут передать запрос через прокси-сервер 72 приложений на уровни 44 сервера приложений. На уровнях 44 сервера приложений может быть установлен код приложения для приема запросов от уровней 42 шлюзового сервера. На уровнях 44 сервера приложений может быть установлен интерфейс контента, например интерфейс API, для извлечения контента из сервера контента (например, сервера 26 контента по фиг.1) и передачи контента на уровни 42 шлюзового сервера для обработки и адаптации для виртуального устройства 84. Контент может быть получен с сервера контента через сеть (например, сеть 28 по фиг.1), такую как Интернет.
Затем уровни 44 сервера приложений могут передать на виртуальное устройство 84 запрос на отображение полученного контента на его экране или выполнение заранее определенного действия. Затем контент может быть адаптирован (например, с изменением его размеров, формата и т.д.) в соответствии с параметрами виртуального устройства 84. Функциональные возможности виртуального устройства 84 (например, вычисление прозрачности изображений, поддержка форматов файлов, которые не поддерживает мобильное устройство, и т.п.) могут превосходить возможности мобильного устройства.
Контент может содержать контент из нескольких источников. Уровни 42 шлюзового сервера, которые поддерживают виртуальное устройство 84, могут разделять запрос на получение контента на части или подзапросы. Например, если контент содержит заголовок и изображение, запрос на получение такого контента может быть разделен на запрос на получение и масштабирование изображения с сервера 62 изображений, запрос на получение заголовка со служебного сервера 60 и, возможно, запрос на получение рекламного материала с сервера 64 рекламы. Уровни 42 шлюзового сервера могут обрабатывать каждый из подзапросов по отдельности, используя промежуточные уровни (прокси-серверы), действующие параллельно. Уровни 42 шлюзового сервера могут использовать прокси-сервер 68 изображений для получения и масштабирования изображения, служебный прокси-сервер 66 для получения заголовка и прокси-сервер 70 рекламы для получения рекламного материала. Уровни 42 шлюзового сервера могут содержать базу 76 данных.
По завершении получения контента каждым из прокси-серверов модуль 54 адаптации к устройствам может адаптировать контент в соответствии с параметрами устройства (например, функциональными возможностями и пользовательским интерфейсом) мобильного устройства. Например, модуль 54 адаптации к устройствам производит адаптацию визуального представления контента, полученного с уровней 44 сервера приложений, к параметрам и функциональным возможностям мобильного устройства. Например, разные мобильные устройства могут по-разному представлять на экране набор функций меню. Так, в мобильном телефоне Nokia N73, который содержит две «программируемые клавиши», вызов меню может быть приписан к левой программируемой клавише, а в аппарате Blackberry Curve™, в котором программируемые клавиши не предусмотрены, но есть встроенная клавиша меню, вызов меню может быть приписан к встроенной клавише меню.
Модуль 54 адаптации к устройствам может адаптировать контент в соответствии с конкретной задачей (например, инициирования телефонного вызова, открытия браузера, определения географического положения и т.д.). Модуль 54 адаптации к устройствам может использовать предназначенные для конкретного устройства интерфейсы API, выполненные с возможностью выполнения конкретных функций. Например, для инициирования телефонного вызова модуль 54 адаптации к устройствам может передать на уровни 40 клиента корректную команду доступа к списку контактной информации данного устройства; для открытия браузера модуль 54 адаптации к устройствам может передать на уровни 40 клиента корректную команду управления браузером, локально установленным на данном устройстве; для определения географического положения модуль 54 адаптации к устройствам может передать на уровни 40 клиента корректную команду запроса географического положения и т.д. Модуль 54 адаптации к устройствам может адаптировать контент так, чтобы минимизировать объем вычислений, например, путем выбора формата передаваемого изображения, и/или видеоматериалов, и/или определения необходимости использования видеоэффектов, требующих значительного расхода ресурсов.
По завершении адаптации контента к параметрам мобильного устройства уровни 42 шлюзового сервера могут использовать статистику, относящуюся к данному контенту и его использованию, для оптимизации алгоритмов кэширования, используемых для управления кэш--памятью. Используя оптимизированные алгоритмы кэширования, уровни 42 шлюзового сервера могут сохранить копию контента в локальной кэш-памяти.
Затем уровни 42 шлюзового сервера могут закодировать контент. По завершении кодирования контента уровни 42 шлюзового сервера могут передать контент на уровни 40 клиента, например через соединители 58, для отображения на мобильном устройстве.
Уровни 40 клиента могут принять и декодировать закодированный контент. Поскольку к моменту передачи на уровни 40 клиента контент уже адаптирован (например, его формат изменен в соответствии с размерами экрана мобильного устройства), уровни 40 клиента могут (например, при помощи программного механизма 32 пользовательского интерфейса) непосредственно вывести контент на экран мобильного устройства без каких-либо дальнейших изменений. Уровни 40 клиента могут сообщать о событиях и их обработке, например, при помощи обработчика событий (например, обработчика 34 событий по фиг.2А).
Уровни 42 шлюзового сервера могут повторять процесс получения и адаптации контента индивидуально для каждого из множества мобильных устройств. Модуль 54 адаптации к устройствам может адаптировать контент в соответствии с каждым из наборов разных параметров устройств для каждого из мобильных устройств. Уровни 42 шлюзового сервера могут передавать каждый из наборов адаптированного контента на уровни 40 клиента соответствующих мобильных устройств.
Уровни 42 шлюзового сервера и уровни 40 клиента производят обмен данными с использованием протокола, например, такого, как подробно описан ниже со ссылками на фиг.6 и 7.
Фиг.4 схематически иллюстрирует множество модулей 78 и 80 кэш--памяти, распределенных по сети 8 в соответствии с одним из вариантов осуществления изобретения.
В соответствии с одним из вариантов осуществления изобретения предлагаются устройство, система и способ для распределения управления кэш-памятью. Локальная кэш-память 78 может работать под управлением уровня 40 клиента и быть установлена в мобильном устройстве (например, в мобильных устройствах 2, 4 и/или 6 по фиг.1) для локального хранения данных. Шлюзовый сервер 22 по фиг.1 может быть соединен с мобильным устройством через сеть (например, сеть 8 и/или 28 по фиг.1). Шлюзовый сервер 22 может осуществлять дистанционное управление локальной кэш-памятью 78. Шлюзовый сервер 22 может предоставлять дополнительные ресурсы для обработки данных, локально сохраненных в локальной кэш-памяти 78 мобильного устройства, в дополнение к ресурсам самого мобильного устройства.
Мобильное устройство (например, мобильное устройство 2, 4 и/или 6 по фиг.1) может содержать локальную кэш-память 78. Клиент, установленный на мобильном устройстве, может осуществлять локальное управление локальной кэш-памятью 78. Локальная кэш-память 78 обычно имеет ограниченные размеры.
Сеть 8 (например, сеть 8 по фиг.1) может содержать одну или несколько сетей, через которые мобильное устройство соединено со шлюзовым сервером (например, через уровни 42 шлюзового сервера по фиг.2А и 3). Мобильное устройство может получать контент от шлюзового сервера по сети 8 (например, при помощи соединителей 58 по фиг.3).
Шлюзовый сервер может содержать модуль 80 удаленной кэш-памяти, модуль 74 статистики и модуль 82 метаданных кэш-памяти. В альтернативном варианте все или некоторые из данных компонентов могут быть осуществлены отдельно от шлюзового сервера.
Шлюзовый сервер может управлять работой модуля 80 удаленной кэш-памяти. Модуль 80 удаленной кэш-памяти может быть расположен в шлюзовом сервере. Модуль 80 удаленной кэш-памяти может быть выделен для помощи в управлении локальной кэш-памятью 78, установленной в мобильном устройстве. Модуль 80 удаленной кэш-памяти может дополнять локальную кэш-память 78 мобильного устройства. Мобильное устройство может получать доступ к модулю 80 удаленной кэш-памяти через сеть 8.
Модуль 74 статистики (например, модуль 74 статистики по фиг.3) представляет собой модуль хранения (например, базу данных) данных статистических данных, которые соответствуют данным, сохраненным в локальной кэш-памяти 78. Модуль 74 статистики также может содержать метаданные и другие данные, относящиеся к кэш-памяти, например, указания на то, постоянно ли сохранены эти данные в мобильном устройстве.
Модуль 82 метаданных кэш-памяти представляет собой модуль хранения метаданных (например, базу данных) или средства генерирования или вычисления метаданных на основе контента (например, процессор для выполнения алгоритма или какой-либо другой функции). Модуль 82 метаданных кэш-памяти может содержать информацию о контенте, которая может быть использована для оптимизации логики кэширования, используемой для управления кэш-памятью.
Сервер 26 контента (например, по фиг.1) содержит сервер, который обеспечивает хранение или выдачу запрашиваемого клиентом контента.
Как правило, мобильное устройство обладает относительно небольшими ресурсами кэш-памяти, сетевого обмена данными и вычислительной мощностью процессора (например, по сравнению с сервером, таким как шлюзовый сервер). Поэтому получение и обработка информации на мобильным устройстве в локальном режиме более затратно и менее эффективно (например, с точки зрения объема обмена данными и затрат времени), чем на шлюзовом сервере.
В соответствии с вариантами осуществления настоящего изобретения шлюзовый сервер предоставляет в дополнение к локальной кэш-памяти 78 модуль 80 удаленной кэш-памяти. Модуль 80 удаленной кэш-памяти обычно содержит больший объем памяти для хранения данных, чем локальная кэш-память 78. Кроме того, шлюзовый сервер обычно обладает большими возможностями для обработки данных, чем мобильное устройство, например, большей мощностью процессора, большим объемом оперативной памяти, базами статистических данных и внешней информацией, такой как имеющиеся метаданные. Шлюзовый сервер создает в модуле 80 удаленной кэш-памяти имитационную копию локальной кэш-памяти 78 мобильного устройства. Модуль 80 удаленной кэш-памяти может частично или полностью содержать данные, сохраненные в локальной кэш-памяти 78. Поскольку вычислительные мощности шлюзового сервера и объем памяти для хранения данных модуля 80 удаленной кэш-памяти, как правило, превосходят соответствующие параметры мобильного устройства, использование шлюзового сервера и внешней удаленной кэш-памяти может обеспечить повышение вычислительной мощности мобильного устройства и увеличение объема памяти, доступной ему для хранения данных.
В соответствии с одним из вариантов осуществления изобретения клиент может передать запрос на получение контента с сервера 26 контента. Модуль 82 метаданных кэш-памяти может присоединить к контенту соответствующие метаданные кэш-памяти. Метаданные кэш-памяти могут содержать информацию, позволяющую оптимизировать логику хранения и/или использования контента в кэш-памяти. Модуль 82 метаданных кэш-памяти может генерировать метаданные кэш-памяти, например, на основе заранее созданных записей в базе данных или путем анализа и обработки самого контента. Например, метаданные могут содержать предсказания о возможности изменения контента. Так, если контент представляет собой логотип компании, частые изменения такого контента маловероятны. Однако если контент представляет собой счет в идущем в данный момент теннисном матче, такой контент, вероятно, будет часто изменяться. Метаданные позволяют оптимизировать использование ресурсов кэш-памяти, например, обеспечивая возможность организации записей в соответствии с частотой их обновления. Возможность обработки метаданных кэш-памяти (например, при помощи модуля 82 метаданных кэш-памяти) для оптимизации использования кэш-памяти обычно может быть предусмотрена на шлюзовом сервере, но обычно не может быть обеспечена на мобильном устройстве, например, в связи с ограниченностью его ресурсов. Таким образом, использование шлюзового сервера для работы с модулем 80 удаленной кэш-памяти вместо локальной кэш-памяти 78 дает дополнительное преимущество, связанное с использованием метаданных кэш-памяти.
После присоединения метаданных к контенту модуль 82 метаданных кэш-памяти может передать контент в модуль 80 удаленной кэш-памяти. Модуль 80 удаленной кэш-памяти может сохранить копию контента и может передать контент в локальную кэш-память 78.
Модуль 74 статистики может обеспечивать хранение статистических данных по контенту и его использованию. Модуль 80 удаленной кэш-памяти может использовать статистику для обеспечения возможности использования оптимизированных алгоритмов кэширования. Оптимизация алгоритмов кэширования может обеспечить повышение вычислительной мощности, которое иначе может быть получено путем повышения мощности процессора, расширения средств хранения данных и увеличения оперативной памяти. Модуль 74 статистики может содержать статистику по истории использования кэш-памяти в локальной кэш--памяти 78 и/или модулях локальной кэш--памяти других клиентов. Модуль 74 статистики может передавать статистические данные по использованию кэш--памяти одним клиентом в модуль удаленной кэш-памяти другого клиента. Таким образом, клиент, никогда не использовавший некоторый определенный контент, может получить доступ к статистике по данному контенту, ранее сформированной для другого клиента.
Применение операций, основанных на использовании контента, метаданных и статистики, может обеспечить возможность передачи с уровней 42 шлюзового сервера в локальную кэш-память 78 рекомендаций и/или команд, позволяющих оптимизировать локальное использование кэш-памяти и алгоритмы кэширования на мобильном устройстве. Кроме того, клиент может получать запросы на удаление из локальной кэш-памяти 78 записей, которые утратили актуальность, или повторное использование которых крайне маловероятно.
Клиент может передавать сообщения о всех операциях с локальной кэш-памятью 78 на шлюзовый сервер. Шлюзовый сервер может обновлять записи или изменять операции, производимые с модулем 80 удаленной кэш--памяти, в соответствии с изменениями в локальной кэш-памяти 78.
На фиг.5 представлена блок-схема процесса использования множества модулей распределенной кэш-памяти по фиг.4 в соответствии с одним из вариантов осуществления изобретения. Процесс включает в себя операции, производимые событиями/элементами 134 (например, в результате действий пользователя со средствами ввода мобильного устройства), уровнями 40 клиента, уровнями 42 шлюзового сервера и уровнями 44 сервера приложений. Данный процесс описывает параллельное обновление модуля 80 удаленной кэш-памяти уровнями 42 шлюзового сервера и обновление локальной кэш-памяти 78 уровнями 40 клиента, например, с целью удаления из кэш-памяти некорректной записи, занимающей место в памяти мобильного устройства, в соответствии с одним из вариантов осуществления изобретения.
В ходе операции 120 события/элементы 134 могут осуществить запуск/эксплуатацию клиента. Например, события/элементы 134 могут включать в себя включение мобильного устройства, на котором установлен клиент, выбор программы, использующей клиент, подключение к сети (например, к Интернету), или непосредственное включение клиента.
В ходе операции 121 уровни 40 клиента могут установить соединение с уровнями 42 шлюзового сервера. Например, клиент может осуществить регистрацию в системе (например, в соответствии с операцией 106 по фиг.2В). Например уровни 40 клиента могут передать свидетельство подлинности или идентификатор, такой как пароль, код или зашифрованный ключ.
В ходе операции 122 уровни 42 шлюзового сервера могут запросить данные у уровней 44 сервера приложений. Запрошенные данные могут содержать, например, экран 1, содержащий такие элементы экрана 1 как графику, данные и т.д.
В ходе операции 123 уровни 44 сервера приложений могут передать экран 1 на уровни 42 шлюзового сервера. Уровни 42 шлюзового сервера могут сохранить экран 1 в модуле 80 удаленной кэш-памяти (например, представляющем собой копию локальной кэш-памяти 78). Уровни 42 шлюзового сервера могут выполнить обработку экрана 1 (например, для генерирования метаданных и/или статистики по элементам экрана 1).
В ходе операции 124 уровни 42 шлюзового сервера могут передать экран 1 на уровни 40 клиента. Уровни 40 клиента могут сохранить экран 1 в локальной кэш-памяти 78.
В ходе операции 125 события/элементы 134 могут выбрать переход к экрану 2 данного приложения.
В ходе операции 126 уровни 40 клиента могут запросить экран 2 у уровней 42 шлюзового сервера.
В ходе операции 127 уровни 42 шлюзового сервера могут запросить экран 2 у уровней 44 сервера приложений.
В ходе операции 128 уровни 42 шлюзового сервера могут (повторно) запросить экран 1 у уровней 44 сервера приложений для проверки сохранения корректности соответствующей ему записи в кэш-памяти.
В ходе операции 129 уровни 44 сервера приложений могут передать экран 2 на уровни 42 шлюзового сервера. Уровни 42 шлюзового сервера могут сохранить экран 2 в модуле 80 удаленной кэш-памяти. Уровни 42 шлюзового сервера могут провести обработку экрана 2 (например, для генерирования метаданных и/или статистики по элементам экрана 2).
В ходе операции 130 уровни 42 шлюзового сервера могут передать экран 2 на уровни 40 клиента. Уровни 40 клиента могут сохранить экран 2 в локальной кэш-памяти 78.
В ходе операции 131 уровни 44 сервера приложений могут передать экран 1 на уровни 42 шлюзового сервера.
В ходе операции 132 уровни 42 шлюзового сервера могут сравнить данные экрана 1, сохраненные в модуле 80 удаленной кэш-памяти в ходе операции 123, с данными экрана 1, переданными в ходе операции 131. Если два набора данных экрана 1 не совпадают, процесс может перейти к операции 133.
В ходе операции 133 уровни 42 шлюзового сервера могут передать на уровни 40 клиента запрос на уничтожение сохраненной в локальной кэш-памяти 78 записи, копия которой была сохранена в модуле 80 удаленной кэш-памяти в ходе операции 123.
Если же два набора данных, которые сравнивают в ходе операции 132, совпадают, дальнейшие действия не требуются. В альтернативном варианте уровни 42 шлюзового сервера могут передать на уровни 40 клиента сигнал подтверждения корректности сохраненной в локальной кэш-памяти 78 записи, копия которой была сохранена в модуле 80 удаленной кэш-памяти в ходе операции 123.
На фиг.6 представлена схема обмена сигналами в процессе связи между мобильным устройством и шлюзовым сервером по одному из вариантов осуществления изобретения. Сигналы с мобильного устройства могут быть переданы через уровни 40 клиента, а сигналы со шлюзового сервера - через уровни 42 шлюзового сервера. Соединение между уровнями 40 клиента и уровнями 42 шлюзового сервера может быть установлено через сеть (например, сеть 8 по фиг.1), по которой могут быть переданы сигналы.
Обмен информацией может быть двусторонним, т.е. некоторые сигналы исходят от уровней 40 клиента, а другие - от уровней 42 шлюзового сервера. Однако в соответствии с данным вариантом осуществления изобретения только уровни 40 клиента могут устанавливать соединение. Так, уровни 42 шлюзового сервера могут только отвечать на запрос, инициированный уровнями 40 клиента. Данное соединение может быть адаптировано к использованию протокола HTTP.
В ходе операции 136 уровни 40 клиента могут передать запрос на установление соединения с уровнями 42 шлюзового сервера (например, по протоколу HTTP). Например уровни 40 клиента могут передать свидетельство подлинности или идентификатор, такой как пароль, код или зашифрованный ключ.
В ходе операции 137 уровни 42 шлюзового сервера могут в ответ на запрос передать на уровни 40 клиента идентификатор сеанса связи, который следует использовать при каждом соединении, инициированном клиентом. При последующих обменах данными между уровнями 40 клиента и уровнями 42 шлюзового сервера уровни 40 клиента могут использовать данный идентификатор сеанса связи вместо повторной передачи свидетельства подлинности или идентификатора для каждого обмена информацией.
В ходе операции 138 уровни 40 клиента могут передать на уровни 42 шлюзового сервера пустой (например, не содержащий запроса на получение контента) запрос. Уровни 42 шлюзового сервера, как правило, не отвечают на такой запрос до тех пор, пока отсутствует контент, предназначенный к передаче. Например, по истечении некоторого периода бездействия, и когда на уровнях 42 шлюзового сервера будет контент, предназначенный к передаче, процесс может перейти к операции 139.
В ходе операции 139 уровни 42 шлюзового сервера могут передать на уровни 40 клиента контент в ответ на полученный пустой запрос.
Передача уровнями 40 клиента пустого запроса на уровни 42 шлюзового сервера необходима, поскольку в данном варианте осуществления изобретения только уровни 40 клиента могут инициировать соединение, а уровни 42 шлюзового сервера могут лишь отвечать на запросы уровней 40 клиента.
В ходе операции 140 уровни 40 клиента могут передать еще один пустой запрос, чтобы обеспечить возможность дальнейшей передачи сервером контента.
В ходе операции 141 может быть установлено новое соединение (например, по протоколу HTTP), позволяющее уровням 40 клиента передавать данные на сервер.
В ходе операции 142 уровни 42 шлюзового сервера могут немедленно закрыть предыдущее соединение, открытое в ходе операции 140. Уровни 42 шлюзового сервера могут использовать для передачи сигналов на уровни 40 клиента новое соединение, установленное в ходе операции 141.
В соответствии с некоторыми из вариантов осуществления изобретения некоторые из компонентов сети могут разрывать бездействующие соединения по истечении заранее определенного периода времени, например времени ожидания. Как правило, длительность времени ожидания может быть настроена и/или автоматически определена. Во избежание неожиданного обрыва соединения, который может привести к потере или искажению передаваемых сигналов, уровни 42 шлюзового сервера могут разрывать бездействующее соединение по истечении времени ожидания и до разрыва соединения другими компонентами, присутствующими в сети. В случае разрыва соединения уровнями 42 шлюзового сервера уровни 40 клиента могут передать еще один пустой запрос, что, по существу, обеспечивает постоянное поддержание соединения с уровнями 42 шлюзового сервера.
При необходимости передачи уровнями 42 шлюзового сервера нескольких сигналов на уровни 40 клиента уровни 42 шлюзового сервера могут объединять сигналы в одно ответное сообщение (например, с целью уменьшения необходимой пропускной способности и задержек). Уровни 42 шлюзового сервера могут перемежать или задерживать передаваемые сигналы (например, на короткие промежутки времени) с целью синхронизации объединяемых сигналов.
В соответствии с одним из вариантов осуществления изобретения предлагаются устройство, система и способ для обмена данными с использованием протокола передачи гипертекста. Система может содержать сервер (например, шлюзовый сервер 22) для обмена данными (например, через уровни 42 шлюзового сервера) с одним или несколькими клиентами (например, через уровни 40 клиента) и клиент, установленный на мобильном устройстве (например, мобильных устройствах 2, 4 и/или 6 по фиг.1). Клиент может быть соединен с сервером через сеть (например, сети 8 и/или 28 по фиг.1). Если соединение в данный момент не установлено, клиент может устанавливать новое соединение и передавать запрос для обеспечения постоянной возможности передачи данных с сервера. Клиент может устанавливать дополнительные соединения для передачи данных на сервер, не дожидаясь ответа от ранее установленного соединения. Клиент и/или сервер могут регулировать число одновременно установленных соединений.
На фиг.7 представлена схема процесса определения способности мобильного устройства к поддержанию двух или более одновременных соединений со шлюзовым сервером по одному из вариантов осуществления изобретения. Протокол обмена данными по фиг.7 может быть использован в сочетании с протоколом обмена данными по фиг.6 для обеспечения поддержки мобильных устройств, которые могут одновременно устанавливать только одно (например, не более одного) соединение. Применение протокола обмена данными, представленного на фиг.6, на таких мобильных устройствах может привести к невозможности передачи данных на такое мобильное устройство и/или с него.
Некоторые мобильные устройства не способны поддерживать уровни 40 клиента с двумя или более исходящими соединениями (например, по протоколу HTTP). Для установления корректного двустороннего соединения необходимо определить, обеспечивают ли уровни 40 клиента возможность поддержки двух или более соединений одновременно.
В ходе операции 144 уровни 40 клиента могут передать запрос на установление соединения с уровнями 42 шлюзового сервера. Например уровни 40 клиента могут передать свидетельство подлинности или идентификатор, такой как пароль, код или зашифрованный ключ.
В ходе операции 145 уровни 42 шлюзового сервера могут в ответ на запрос передать на уровни 40 клиента идентификатор сеанса связи.
В ходе операции 146 уровни 40 клиента могут передать на уровни 42 шлюзового сервера пустой запрос. Уровни 42 шлюзового сервера, как правило, не отвечают на такой запрос до тех пор, пока отсутствует контент, предназначенный к передаче.
В ходе операции 147, по истечении некоторого времени бездействия, уровни 40 клиента могут передать запрос на установление нового соединения с уровнями 42 шлюзового сервера. Уровни 40 клиента могут передать на уровни 42 шлюзового сервера данные. В этот момент клиент может запустить таймер.
Если уровни 40 клиента не обеспечивают возможности поддержки двух или более соединений одновременно, установление второго соединения может быть задержано до разрыва первого. Если уровни 40 клиента обеспечивают возможность поддержки двух или более соединений одновременно, процесс может быть продолжен в соответствии с операциями, представленными на фиг.6.
В ходе операции 148 уровни 42 шлюзового сервера могут передать на уровни 40 клиента контент в ответ на полученный пустой запрос. По получении данного ответа уровнями 40 клиента уровни 40 клиента могут произвести проверку состояния таймера, запущенного в ходе операции 147.
Если время, измеренное таймером, превышает заранее установленное значение, например, определенное по времени задержки сети и/или времени счета, то может быть установлено, что уровни 42 шлюзового сервера не получили второго запроса на установление второго соединения (например, переданного в ходе операции 147), пока на шлюзовом сервере не истекло некоторое время ожидания по первому соединению или не появилась информация, предназначенная для передачи клиенту. Следовательно, уровни 40 клиента не обеспечивают возможности поддержки двух или более соединений одновременно. Если бы уровни 40 клиента обеспечивали возможность поддержки двух или более соединений одновременно, уровни 42 шлюзового сервера разорвали бы первое соединение немедленно после передачи запроса на установление второго соединения (например, по истечении времени задержки сети), как в случае операции 142 по фиг.6.
Если время, измеренное таймером, не превышает заранее установленного значения, способность уровней 40 клиента к поддержке двух и более соединений одновременно может быть не определена. Соединение может нормально работать в течение еще некоторого времени, например, до тех пор, пока уровни 42 шлюзового сервера не обнаружат два одновременно установленных соединения и не остановят работу таймера, или, если уровни 42 шлюзового сервера так и не обнаружат двух одновременно установленных соединений, пока таймер не обнаружит отсутствие поддержки.
После получения результата уровни 42 клиента и/или уровни 42 шлюзового сервера могут сохранить результат, например, чтобы исключить необходимость повторного тестирования.
Ниже следует описание процесса определения того факта, что соединение, которое должно позволять уровням 40 клиента последовательно передавать несколько сигналов через одно и то же соединение (например, по протоколу HTTP 1.1), позволяет передавать лишь один сигнал через каждое соединение ((например, по протоколу HTTP 1.0).
Протокол HTTP 1.1 может позволять уровням 40 клиента передавать несколько сигналов через одно и то же соединение. Протокол HTTP 1.0 не позволяет уровням 40 клиента передавать несколько сигналов через одно и то же соединение. Вместо этого на каждый запрос, поступающий от уровней 40 клиента, протокол HTTP 1.0 устанавливает новое соединение. Если уровни 40 клиента сообщают о поддержке протокола HTTP 1.1, а на практике поддерживают лишь протокол HTTP 1.0, то это может привести к непреднамеренному установлению большого количества новых соединений. Установление большого количества новых соединений может привести к истощению ресурсов уровней 40 клиента.
Во избежание такого положения уровни 42 шлюзового сервера могут произвести подсчет соединений и запросов, а также, например, измерение промежутков времени между запросами. Если по истечении заранее определенного промежутка времени или по достижении заранее определенного числа запросов уровни 42 шлюзового сервера установят, что число соединений равно числу запросов, а промежутки времени между запросами не превосходят заранее установленного порогового значения, то уровни 42 шлюзового сервера могут заключить, что уровни 40 клиента поддерживают протокол HTTP 1.1. Если сервер определит, что использование протокола HTTP 1.1 невозможно, сервер должен разрывать каждое соединение немедленно после его использования для передачи ответа. Таким образом, уровни 42 шлюзового сервера могут высвобождать ресурсы уровней 40 клиента, расходуемые на поддержание большого числа установленных соединений, путем принудительного разрыва каждого из соединений после передачи ответа на уровни 40 клиента.
В варианте осуществления изобретения, в котором и уровни 40 клиента, и уровни 42 шлюзового сервера поддерживают протокол HTTP 1.1, но соединение проходит через прокси-сервер или шлюз, который не поддерживает протокол HTTP 1.1, а например, поддерживает только протокол HTTP 1.0, уровни 42 шлюзового сервера также могут разрывать соединения во избежание неожиданного разрыва соединений.
В соответствии с одним из вариантов осуществления изобретения предлагаются устройство, система и способ для определения способности клиента к одновременному поддержанию двух или более соединений с использованием протокола передачи гипертекста. Система может содержать сервер (например, шлюзовый сервер 22) для обмена данными (например, через уровни 40 клиента) с одним или несколькими клиентами (например, через уровни 40 клиента) и клиент, установленный на мобильном устройстве (например, мобильных устройствах 2, 4 и/или 6 по фиг.1). Клиент может быть соединен с сервером через сеть (например, сети 8 и/или 28 по фиг.1) с использованием протокола передачи гипертекста. Клиент может установить первое соединение, запустить таймер и установить второе, параллельное первому соединение. Сервер может принять первое соединение и ответить на первое соединение лишь после установления второго соединения. Клиент может проверить состояние таймера в момент получения ответа на первое соединение. Если значение таймера превосходит заранее определенное пороговое значение, клиент может определить, что одновременная поддержка двух или более соединений не обеспечена.
Хотя приведенное выше описание касается ограниченного числа вариантов осуществления изобретений, следует понимать, что в настоящее изобретение могут быть внесены многочисленные вариации и изменения, а также предусмотрены другие его применения. В других вариантах осуществления настоящего изобретения для выполнения операций в его рамках может быть использовано другое оборудование. Такое оборудование может содержать вышеописанные элементы или альтернативные компоненты, выполняющие те же функции. Специалисту в данной области должно быть ясно, что прилагаемые пункты формулы изобретения охватывают все такие модификации и изменения, не выходящие за пределы существа и объема изобретения.