ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
[001] Интеграция клиентского приложения и Web страницы представляет собой процесс для обеспечения возможности совместной работы и взаимодействия между функциональными возможностями, основывающимися на Web браузере, и функциональными возможностями автономного приложения. В некоторых ситуациях клиентское приложение может исполняться на компьютере без необходимости в какой-либо сетевой поддержке, тогда как основывающиеся на браузере приложения могут исполняться в пределах Web браузера, избегая необходимости в инсталляции приложения на клиент. Это, однако, может привести в результате к дублированию усилий по разработке двух отдельных версий с аналогичными функциональными возможностями. Помимо этого, такие два разных приложения могут приводить к несогласованному пользовательскому восприятию и могут быть неспособны одновременно использовать локальные ресурсы, доступные клиентским приложениям и функциональным возможностям Web браузера. Результатом этого может быть путаница и неэффективная работа среди пользователей, которые переключаются между клиентским и основывающимся на браузере приложениями. Известной стратегией является разработка двух приложений по отдельности, но это часто вызывает проблемы, поскольку эта известная стратегия не обеспечивает возможности интеграции, совместной работы и взаимодействия и согласованного пользовательского восприятия между этими двумя версиями.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[002] Может быть обеспечена интеграция клиентского приложения и Web страницы. Это краткое описание сущности изобретения предоставлено для введения подборки концепций в упрощенной форме, которые дополнительно описываются ниже в подробном описании изобретения. Это краткое описание сущности изобретения не предназначено для определения ключевых признаков или существенных признаков заявленного изобретения. Также данное краткое описание сущности изобретения не подразумевается для использования для ограничения объема заявленного изобретения.
[003] Может быть обеспечена интеграция приложений. Первое приложение может исполняться на клиентском компьютере. Первое приложение может соединиться со вторым приложением, таким как основывающееся на браузере приложение. Первое приложение может идентифицировать по меньшей мере одну функциональную возможность, ассоциированную со вторым приложением, и отображать элемент пользовательского интерфейса, ассоциированный с упомянутой по меньшей мере одной функциональной возможностью, в первом приложении.
[004] И вышеследующее общее описание, и нижеследующее подробное описание представляют примеры и являются лишь пояснительными. Соответственно, вышеследующее общее описание и нижеследующее подробное описание не следует считать ограничивающими. Кроме того, могут быть предусмотрены признаки или варианты в дополнение к тем, что изложены здесь. Например, варианты осуществления могут быть направлены на различные комбинации или подкомбинации признаков, описанные в подробном описании.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
[005] Сопровождающие чертежи, которые включены в состав и являются частью данного раскрытия, иллюстрируют различные варианты осуществления настоящего изобретения. На чертежах:
[006] Фиг. 1 - блок-схема рабочего окружения;
[007] Фиг. 2A-2B - блок-схемы примерных приложений;
[008] Фиг. 3 - блок-схема интегрированного клиентского приложения;
[009] Фиг. 4 - логическая блок-схема последовательности операций способа обеспечения интеграции приложений; и
[010] Фиг. 5 - блок-схема системы, включающей в себя компьютерное устройство.
ПОДРОБНОЕ ОПИСАНИЕ
[011] Нижеследующее подробное описание ссылается на сопровождающие чертежи. Везде, где это возможно, одни и те же ссылочные номера используются на чертежах для ссылки на идентичные или аналогичные элементы. Хотя могут описываться варианты осуществления изобретения, возможны модификации, адаптации и другие реализации. Например, замены, добавления или модификации могут быть выполнены в отношении элементов, проиллюстрированных на чертежах, и описанные здесь способы могут быть модифицированы посредством замены, переупорядочения или добавления этапов к раскрытым способам. Соответственно, нижеследующее подробное описание не ограничивает изобретение. Вместо этого истинный объем изобретения определяется приложенной формулой изобретения.
[012] Может быть обеспечена интеграция клиентского приложения и Web страницы. Согласно вариантам осуществления настоящего изобретения предоставляется схема для обеспечения возможности совместной работы и взаимодействия между основывающимся на браузере и клиентским приложениями. Эта схема может уведомлять клиентские приложения о действиях, доступных на соответствующем основывающемся на браузере приложении, с тем чтобы эти действия могли динамическим образом предоставляться (экспонироваться) в пользовательском интерфейсе (UI) клиентского приложения. Пользователи могут предпринимать действия через UI клиентского приложения, но этими действиями может оказываться воздействие на данные, ассоциированные с основывающимся на браузере приложением. Клиентское приложение может также исполнять дополнительную бизнес-логику, доступную в клиентском приложении, но не в основывающемся на браузере приложении, до или после инициирования действий, предоставленных из основывающегося на браузере приложения.
[013] Например, компания может разработать два приложения расчета заработной платы. Одно из этих приложений может представлять собой клиентское приложение и может использоваться посредством вычисления по переводу зарплаты на банковский счет работника. Другое из этих приложений может быть разработано как основывающееся на браузере приложение для генерирования отчетов по расчету заработной платы и обеспечения работникам возможности проверять их через Web браузер. Оба приложения могут функционировать надлежащим образом, но интеграция этих приложений может позволить компании добавить дополнительную бизнес-логику. Такая логика может, например, обеспечить возможность генерирования отчета по расчету заработной платы сразу после того, как зарплата переведена. Отчет по расчету заработной платы может затем быть направлен работнику напрямую.
[014] Фиг. 1 является блок-схемой рабочего окружения 100. Рабочее окружения 100 может содержать клиент 100, сеть 120 и множество Web серверов 130(A)-(B). Сеть 120 может содержать, например, частную сеть, такую как корпоративный интранет и/или публичная сеть типа Интернет. Web серверы 130(A)-(B) могут содержать компьютеры, выполненные с возможностью принимать запросы Web страниц, например, от клиента 110, и отвечать запрашиваемой Web страницей. Web серверы 130(A)-(B) могут быть также выполнены с возможностью предоставления инфраструктуры исполнения для приложений, основывающихся на браузере. Например, клиент 110 может запросить, через приложение Web браузера, Web страницу, содержащее основывающееся на браузере приложение формирования отчетов по расчету заработной платы. Web сервер 130(A), например, может ответить на этот запрос Web страницей и ассоциированным приложением. Клиент 110 может затем запросить выполнение функциональных возможностей, ассоциированных с основывающимся на браузере приложении, Web сервером 130(A) через взаимодействия с приложением Web браузера.
[015] На Фиг. 2А представлена блок-схема примерного приложения 200, основывающегося на браузере. Основывающееся на браузере приложение 200 может содержать пользовательский интерфейс (UI), содержащий строку меню 21, первый функциональный элемент 230 UI и второй функциональный элемент 240 UI. Например, основывающееся на браузере приложение 200 может содержать финансовое приложение, содержащее данные о работниках и функции для ассоциированного с первым функциональным элементом 240 UI генерирования отчета и/или для ассоциированного со вторым функциональным элементом 240 UI уведомления работника о том, что транзакция завершена.
[016] На Фиг. 2B приведена блок-схема клиентского приложения 250. Клиентское приложение 250 может содержать ленту 265 пользовательского интерфейса, содержащую множество элементов 260(A)-(C) UI для действий. Клиентское приложение 250 может содержать, например, приложение бухгалтерского учета, содержащее данные о работниках и функции для выполнения перевода денежных средств на счета, ассоциированные с работниками.
[017] На Фиг. 3 приведена блок-схема интегрированного клиентского приложения 300. Интегрированное клиентское приложение может содержать ленту 265 пользовательского интерфейса, содержащую множество элементов 260(A)-(C) UI для действий и множество интегрированных элементов 310(A)-(B) UI. Интегрированные элементы 310(A)-(B) UI могут быть включены в ленту 265 пользовательского интерфейса на основе функций, предоставляемых приложением 200, основывающимся на браузере. Согласно вариантам осуществления изобретения интегрированное клиентское приложение 300 может быть выполнено с возможностью доступа, модифицирования и/или синхронизации данных о сотрудниках, ассоциированных с основывающимся на браузере приложением 200.
[018] Вместо визуализации Web страницы отдельно от имеющегося UI интегрированное клиентское приложение 300 может интегрировать действия, предоставляемые основывающимся на браузере приложением 200, для достижения согласованного пользовательского восприятия. Например, функции, ассоциированные с первым функциональным элементом 230 UI и/или вторым функциональным элементом 240 UI, могут отображаться в ленте 265 пользовательского интерфейса согласно визуальному представлению, ассоциированному с интегрированным клиентским приложением 300. Визуальное представление может содержать детали конфигурации, такие как цвета, стили текста, местоположения, иконки и/или размещения меню.
[019] Согласно вариантам осуществления настоящего изобретения интегрированное клиентское приложение 300 может быть инициализировано при пользовательском запросе открыть приложение. Интегрированное клиентское приложение 300 может загружать Web страницу согласно универсальному указателю информационного ресурса (URL), ассоциированному с конфигурацией интегрированного клиентского приложения 300. Элемент управления Web браузера может содержать стандартный элемент управления ActiveXTM или управляемый элемент управления, опубликованный, например, с инфраструктурой .Net, и может позволять интегрированному клиентскому приложению 300 осуществлять доступ к основывающемуся на браузере приложению 200 аналогично известному приложению Web браузера.
[020] После того как Web страница загружена, Web страница может предоставлять свой контент в интегрированное клиентское приложение 300. Для примера финансового приложения, описанного выше, функции "Сгенерировать отчет" и "Уведомить" и/или данные о работниках, ассоциированные с основывающимся на браузере приложением 200, могут быть предоставлены в клиентское приложение. Другие примеры предоставляемых данных могут содержать текст помощи, индексы актуальных тем и/или адреса или имена активации методов.
[021] Данные и функции, ассоциированные с приложением 200, основывающимся на браузере, могут предоставляться, например, посредством предписания основывающемуся на браузере приложению 200 активировать метод, реализуемый в интегрированном клиентском приложении 300. Основывающееся на браузере приложение 200 может затем обмениваться данными и/или ссылками на функции с интегрированным клиентским приложением 300. Основывающееся на браузере приложение 200 может отвечать за построение всей необходимой информации в строку и передачу ее в интегрированное клиентское приложение 300.
[022] Упомянутым обменом может быть скомпоновано некоторое количество сегментов. Например, каждый сегмент может содержать заглавие (например, "HelpId" ("Идентификатор (ID) помощи")) и/или строку значения (например, "<HelpId>"). Строка значения может идентифицировать категорию, ассоциированную с сегментом, которая может использоваться при конфигурировании визуального представления для элемента пользовательского интерфейса, ассоциированного с сегментом в интегрированном клиентском приложении 300. В сегменте HelpId значение может представлять собой строку данных. В другом примере, таком как сегмент Method List (Список методов), значение может представлять собой множество пар "имя метода-адрес метода", которыми может задаваться соответствие метода его имени и обеспечиваться возможность его последующей активации. Основывающееся на браузере приложение 200 может передавать сегмент(ы) в интегрированное клиентское приложение посредством активации метода, такого как javascript метод "window.external.Expose (segmentString);", включенный в Web страницу, ассоциированную с приложением 200, основывающимся на браузере.
[023] Согласно вариантам осуществления изобретения данные и функции могут также предоставляться посредством расширения HTML для добавления дополнительных тегов для предоставления этих данных и функций. Web страница может задавать то, какие данные и/или функции могут быть предоставлены в HTML, и интегрированное клиентское приложение 300 может выявлять эти теги посредством синтаксического анализа. Интегрированное клиентское приложение 300 может затем предоставлять ассоциированные действия в своих панелях инструментов, контекстном меню и/или других элементах управления, определяемых тегом, таких как лента 365 UI. Синтаксис тегов может содержать, например:
[024] <Toolbar> (<Панель инструментов>)
[025] <button name="Generate a report" onclick="GenerateReport()" /> (<имя кнопки = "Сгенерировать отчет" по нажатию = "ГенерироватьОтчет()" />
[026] </Toolbar> (</Панель инструментов>)
[027] В пределах тега панели инструментов данные и функции, такие как GenerateReport, могут предоставляться в интегрированное клиентское приложение 300. Тег может также определять, какой элемент управления может представлять его. В данном примере, описанном выше, кнопка может быть добавлена в ленту 365 UI интегрированного клиентского приложения 300 после синтаксического анализа HTML. Пользователь интегрированного клиентского приложения 300 может выполнить щелчок (кликнуть) по кнопке "Сгенерировать отчет" (например, интегрированному элементу 310(A) UI) в ленте 365 UI для предписания основывающемуся на браузере приложению 200 сгенерировать отчет. Кроме того, функции, предшествующие и следующие за активацией, могут выполняться интегрированным клиентским приложением 300 до и/или после активации функции, основывающейся на браузере.
[028] Действия или методы, которые активируются интегрированным клиентским приложением 300, могут выполняться основывающимся на браузере приложением 200. Затем основывающееся на браузере приложение 200 может также отправить уведомление о завершении в интегрированное клиентское приложение 300, содержащее успешный/неудачный результат и/или дополнительные данные.
[029] На Фиг. 4 показана блок-схема последовательности операций, на которой приведены общие этапы, включенные в способ 400 согласно варианту осуществления изобретения, для обеспечения интеграции приложений. Способ 400 может быть реализован с использованием компьютерного устройства 500, которое более подробно описывается ниже со ссылкой на Фиг. 5. Пути реализации этапов способа 400 будут описываться более подробно ниже. Способ 400 может начинаться этапом 405 начала и переходить на этап 410, где компьютерное устройство 500 может инициализировать клиентское приложение и соединиться с приложением, основывающимся на браузере. Например, клиент 110 может принять от пользователя запрос инициализировать клиентское приложение 250. Клиентское приложение 250 может затем соединиться с основывающимся на браузере приложением 200 согласно местоположению в Web, такому как URL, ассоциированный с конфигурацией клиентского приложения 250.
[030] С этапа 410 способ 500 может перейти на этап 415, где компьютерное устройство может определить, содержит ли основывающееся на браузере приложение какие-либо предоставляемые (экспонируемые) данные и/или функции. Например, основывающееся на браузере приложение 200 может исполнять javascript метод для предоставления данных и/или функций в клиентское приложение 250. Согласно вариантам осуществления изобретения клиентское приложение 250 может выполнять синтаксический анализ Web страницы приложения 200, основывающегося на браузере, для идентификации каких-либо предоставляемых данных и/или функций.
[031] Если предоставляемые элементы идентифицированы на этапе 425, способ может перейти на этап 420, где компьютерное устройство 500 может добавить элемент пользовательского интерфейса в клиентское приложение. Например, клиентское приложение 250 может добавить множество интегрированных элементов 310(A)-(B) UI, ассоциированных с предоставляемыми функциями основывающегося на браузере приложением 200, результатом чего является пользовательский интерфейс интегрированного клиентского приложения 300. Интегрированное клиентское приложение 300 может применять визуальный стиль, ассоциированный с клиентским приложением, к интегрированным элементам 310(A)-(B) UI для обеспечения согласованного пользовательского восприятия пользователю интегрированного клиентского приложения 300.
[032] С этапа 420, либо если на этапе 415 не идентифицировано никаких предоставляемых данных и/или функций, способ 400 может перейти на этап 425, где компьютерное устройство 500 может определять, ассоциированы ли с клиентским приложением 200 какие-либо дополнительные Web страницы и/или основывающиеся на браузере приложения. Если это так, способ 400 может вернуться на этап 415 и определить, предоставляет ли каждая из этих других страниц/приложений данные и/или функции, которые должны быть интегрированы в интегрированное клиентское приложение 300.
[033] Как только больше не требуется осуществлять доступ к основывающимся на браузере страницам/приложениям на предмет предоставляемых данных/функций, способ может перейти к этапу 430, на котором компьютерное устройство 500 может принять запрос на исполнение предоставляемой функции. Например, пользователь может выбрать интегрированный элемент 310(A) UI для генерирования отчета.
[034] Способ 400 может затем перейти на этап 435, где компьютерное устройство 500 может определить, заданы ли какие-либо функции, подлежащие выполнению до исполнения. Например, интегрированное клиентское приложение 300 может задать функцию, такую как удостоверение в том, что все ожидающие обработки переводы завершены в финансовом приложении, до исполнения предоставляемой функции, ассоциированной с интегрированным элементом 310(A) UI.
[035] Если функция, подлежащая выполнению до исполнения, задана, способ 400 может перейти на этап 440, где компьютерное устройство 500 может выполнить эту функцию, подлежащую выполнению до исполнения. Например, интегрированное клиентское приложение 300 может активировать функцию удостоверения, описанную выше. Согласно вариантам осуществления настоящего изобретения, если функция, подлежащая выполнению до исполнения, терпит неудачу, способ может завершиться на этапе 470 и отобразить пользователю сообщение, такое как уведомление об ошибке и/или сбое.
[036] После выполнения на этапе 440 функции, подлежащей выполнению до исполнения, или если на этапе 435 не определено никакой заданной функции, подлежащей выполнению до исполнения, способ может перейти на этап 445, на котором компьютерное устройство 500 может запросить, чтобы основывающееся на браузере приложение исполнило предоставляемую функцию. Например, интегрированное клиентское приложение 300 может отправить запрос в основывающееся на браузере приложение 200 активировать предоставляемую функцию. Согласно вариантам осуществления изобретения интегрированное клиентское приложение 300 может быть выполнено с возможностью принимать изменение в отношении данных, предоставляемых основывающимся на браузере приложением, в дополнение к и/или вместо приема запроса на исполнение предоставляемой функции. Интегрированное клиентское приложение 300 может, таким образом, на этапе 445 уведомить приложение 200, основывающееся на браузере, об изменениях в данных, и основывающееся на браузере приложение 200 может сохранить измененные данные в хранилище данных, ассоциированном с основывающимся на браузере приложением 200.
[037] С этапа 445 способ 400 может перейти на этап 450, где компьютерное устройство 500 может принять результат, ассоциированный с активацией предоставляемой функции. Например, основывающееся на браузере приложение 200 может послать сообщение об успехе/неудаче и/или дополнительные данные, ассоциированные с исполнением функции, в интегрированное клиентское приложение 300.
[038] С этапа 450 способ 400 может перейти на этап 455, на котором компьютерное устройство 500 может отобразить пользователю уведомление, ассоциированное с активацией предоставляемой функции. Например, интегрированное клиентское приложение 300 может отображать иконку, отображение текста, диалоговое окно и/или другой элемент пользовательского интерфейса, указывающий, что исполнение предоставляемой функции завершено, и может указывать успех или неудачу действия, как предусмотрено в уведомлении.
[039] Способ 400 может затем перейти на этап 460, где компьютерное устройство 500 может определять, заданы ли функции, подлежащие выполнению после исполнения. Например, интегрированное клиентское приложение 300 может задать функцию, такую как создание записи журнала регистрации, после исполнения предоставляемой функции, ассоциированной с интегрированным элементом 310(A) UI.
[040] Если функция, подлежащая выполнению после исполнения, задана, способ 400 может перейти на этап 465, где компьютерное устройство 500 может выполнить функцию, подлежащую выполнению после исполнения. Например, интегрированное клиентское приложение 300 может активировать функцию ведения журнала регистрации, описанную выше. После выполнения функции, подлежащей выполнению после исполнения, на этапе 465, либо если на этапе 460 не определено ни одной заданной функции, подлежащей выполнению после исполнения, способ может завершиться на этапе 470.
[041] Вариант осуществления, согласующийся с настоящим изобретением, может содержать систему для обеспечения интеграции приложений. Система может содержать память и процессорный блок, подключенный к памяти. Процессорный блок может быть выполнен с возможностью исполнять первое приложение, соединяться со вторым приложением из первого приложения, идентифицировать по меньшей мере одну функциональную возможность, ассоциированную со вторым приложением, и отображать элемент пользовательского интерфейса, ассоциированный с этой по меньшей мере одной функциональной возможностью, в первом приложении. Процессорный блок может быть дополнительной выполнен с возможностью идентифицировать категорию действия, ассоциированную с данной по меньшей мере одной функциональной возможностью, и назначать визуальное представление элементу пользовательского интерфейса, ассоциированному с этой категорией действия. Например, если предоставляемые данные содержат раздел помощи, процессорный блок может назначить раздел помощи местоположению в пределах меню помощи и/или назначить иконку с вопросительным знаком элементу UI, приспособленному осуществлять доступ к разделу помощи.
[042] Другой вариант осуществления, отвечающий настоящему изобретению, может содержать систему для обеспечения интеграции приложений. Система может содержать память и процессорный блок, подключенный к памяти. Процессорный блок может быть выполнен с возможностью инициализировать первое приложение и определять, содержит ли по меньше мере одно второе приложение предоставляемый компонент. Если это так, процессорный блок может быть выполнен с возможностью отображать указание в пользовательском интерфейсе первого приложения касаемо того, что предоставляемый элемент этого по меньшей мере одного второго приложения доступен пользователю первого приложения.
[043] Еще один вариант осуществления, согласующийся с изобретением, может содержать систему для обеспечения интеграции приложений. Система может сдержать память и процессорный блок, подключенный к памяти. Процессорный блок может быть выполнен с возможностью соединяться с по меньшей мере одним основывающимся на браузере приложением из клиентского приложения, идентифицировать по меньшей мере одну предоставляемую функцию, ассоциированную с этим по меньшей мере одним основывающимся на браузере приложением, отображать в клиентском приложении элемент пользовательского интерфейса, ассоциированный с данной по меньшей мере одной предоставляемой функцией, принимать запрос исполнения этой по меньшей мере одной предоставляемой функции и определять, содержит ли клиентское приложение функцию, подлежащую выполнению до исполнения, которая ассоциирована с упомянутой по меньшей мере одной предоставляемой функцией. Если клиентское приложение содержит функцию, подлежащую выполнению до исполнения, процессорный блок может быть выполнен с возможностью выполнять эту функцию, подлежащую выполнению до исполнения. Процессорный блок может затем отправить в упомянутое по меньшей мере одно приложение, основывающееся на браузере, запрос исполнения упомянутой по меньшей мере одной предоставляемой функции, принимать от этого по меньшей мере одного основывающегося на браузере приложения результат, ассоциированный с этим запросом исполнения по меньшей мере одной предоставляемой функции по меньшей мере одним основывающимся на браузере приложением, отображать уведомление, ассоциированное с принятым результатом, пользователю клиентского приложения и определять, содержит ли клиентское приложение функцию, подлежащую выполнению после исполнения, которая ассоциирована с упомянутой по меньшей мере одной предоставляемой функцией. Если это так, процессорный блок может быть выполнен с возможностью выполнять функцию, подлежащую выполнению после исполнения.
[044] На Фиг. 5 приведена блок-схема системы, включающей в себя компьютерное устройство 500. Согласно варианту осуществления изобретения вышеупомянутые память и процессорный блок могут быть реализованы в компьютерном устройстве, таком как компьютерное устройство 500 по Фиг. 5. Любая подходящая комбинация аппаратных средств, программного обеспечения или программно-аппаратного обеспечения (firmware) может быть использована для реализации памяти и процессорного блока. Например, память и процессорный блок могут быть реализованы в компьютерном устройстве 500 или в любом из других компьютерных устройств 518, в сочетании с компьютерным устройством 500. Вышеупомянутые система, устройство и процессоры являются примерами, и другие системы устройств и процессоров могут содержать вышеуказанные память и процессорный блок, согласно вариантам осуществления изобретения.
[045] Согласно Фиг. 5 система согласно варианту осуществления изобретения может включать в себя компьютерное устройство, такое как компьютерное устройство 500. В базовой конфигурации компьютерное устройство 500 может включать в себя по меньшей мере один процессорный блок 502 и системную память 504. В зависимости от конфигурации и типа компьютерного устройства системная память 504 может содержать, но не в ограничительном смысле, энергозависимую память (например, оперативное запоминающее устройство (ОЗУ, RAM)), постоянное запоминающее устройство (ПЗУ, ROM)), флэш-память или какую-либо комбинацию. Системная память 504 может включать в себя операционную систему 505, один или более программных модулей 506 и может включать в себя клиентское приложение 507. Операционная система 505, например, может быть подходящей для управления работой компьютерного устройства 500. В одном варианте осуществления программные модули 506 могут включать в себя приложение 520 web браузера. Кроме того, варианты осуществления изобретения могут быть осуществлены на практике в сочетании с графической библиотекой, другими операционными системами или любой другой прикладной программой и не ограничиваются каким-либо конкретным приложением или системой. Эта базовая конфигурация проиллюстрирована на Фиг. 5 посредством тех компонентов, что заключены в пределы пунктирной линии 508.
[046] Компьютерное устройство 500 может иметь дополнительные признаки или функциональные возможности. Например, компьютерное устройство 500 может также включать в себя дополнительные устройства хранения данных (съемные и/или несъемные), такие как, например, магнитные диски, оптические диски или лента. Такое дополнительное хранилище проиллюстрировано на Фиг. 5 посредством съемного запоминающего устройства 509 и несъемного запоминающего устройства 510. Компьютерные носители информации могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули и другие данные. Все из системной памяти 504, съемного запоминающего устройства 509 и несъемного запоминающего устройства 510 являются компьютерными носителями информации (т.е. памятью). Компьютерные носители информации могут содержать, но не в ограничительном смысле, ОЗУ, ПЗУ, электрически стираемое программируемое ПЗУ (EEPROM), флэш-память или память другой технологии, ПЗУ на компакт-диске (CD-ROM), цифровые универсальные диски (DVD) или другое оптическое хранилище, магнитные кассеты, магнитную ленту, магнитный дисковый накопитель или другие магнитные запоминающие устройства, либо любой другой носитель, который может использоваться для хранения информации и к которому компьютерное устройство 500 может осуществить доступ. Любые такие компьютерные носители информации могут быть частью устройства 500 и могут содержать невременные носители информации. Компьютерное устройство 500 может также иметь устройство(а) 512 ввода, такие как клавиатура, мышь, перо, устройство звукового ввода, устройство сенсорного ввода и т.п. Устройство(а) 514 вывода, такие как дисплей, громкоговорители, принтер и т.п., могут быть также включены в состав. Вышеупомянутые устройства являются примерами и могут использоваться другие устройства.
[047] Компьютерное устройство 500 может также содержать коммуникационное соединение 516, которое может обеспечивать устройству 500 возможность осуществлять связь с другими компьютерными устройствами 518, например, через сеть в распределенном вычислительном окружении, как в случае интранет или Интернет. Коммуникационное соединение 516 является одним примером коммуникационных сред. Коммуникационные среды могут в типичном случае воплощать машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая волна или другой механизм транспортировки, и включают в себя любые среды доставки информации. Термин "модулированный сигнал данных" может описывать сигнал, одна или более характеристик которого устанавливаются или изменяются таким образом, чтобы закодировать информацию в этом сигнале. В качестве примера, но не ограничения, коммуникационные среды могут включать в себя проводные среды, такие как проводная сеть или прямое кабельное соединение, и беспроводные среды, такие как акустические, радиочастотные (RF), инфракрасные и другие беспроводные среды. Термин "машиночитаемый носитель", в том смысле, как он используется здесь, может включать в себя как носители информации, так и коммуникационные среды.
[048] Как указано выше, в системной памяти 504 может храниться некоторое количество программных модулей и файлов данных, включая операционную систему 505. При исполнении на процессорном блоке 502 программные модули 506 (например, приложение 520 Web браузера) могут выполнять процессы, включающие в себя, например, один или более из этапов способа 400, описанных выше. Вышеописанный процесс является примерным, и процессорный блок 502 может выполнять другие процессы. Другие программные модули, которые могут использоваться в соответствии с вариантами осуществления настоящего изобретения, могут включать в себя приложения электронной почты и контактов, приложения обработки текстов, приложения электронных таблиц, приложения баз данных, приложения слайдовых презентаций, компьютерные прикладные программы для рисования/черчения и т.п.
[049] Вообще говоря, согласно вариантам осуществления изобретения, программные модули могут включать в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которыми могут выполняться конкретные задачи или которыми могут реализовываться определенные абстрактные типы данных. Более того, варианты осуществления изобретения могут быть реализованы на практике с другими конфигурациями компьютерных систем, включая наладонные устройства, мультипроцессорные системы, основывающуюся на микропроцессорах или программируемую бытовую электронику, мини-компьютеры, компьютеры-мейнфреймы и т.п. Варианты осуществления изобретения могут быть также реализованы на практике в распределенных вычислительных окружениях, где задачи выполняются удаленными устройствами обработки данных, которые связаны через сеть связи. В распределенном вычислительном окружении программные модули могут находиться как в локальных, так и в удаленных запоминающих устройствах.
[050] Помимо этого, варианты осуществления изобретения могут быть реализованы на практике в электрической схеме, содержащей дискретные электронные элементы, упакованных или интегрированных электронных микросхемах (чипах), содержащих логические вентили, схеме, задействующей микропроцессор, или на отдельной микросхеме, содержащей электронные элементы или микропроцессоры. Варианты осуществления изобретения могут быть также реализованы на практике с использованием других технологий, приспособленных для выполнения логических операций, таких как, например, AND (И), OR (ИЛИ) и NOT (НЕ), включая, но не в ограничительном смысле, механические, оптические, жидкостные и квантовые технологии. Помимо этого, варианты осуществления изобретения могут быть реализованы на практике в пределах компьютера общего назначения или в каких-либо других схемах или системах.
[051] Варианты осуществления изобретения, например, могут быть реализованы как компьютерный процесс (способ), компьютерная система или как промышленное изделие, такое как компьютерный программный продукт или машиночитаемый носитель. Компьютерный программный продукт может представлять собой машиночитаемый носитель информации, который считывается компьютерной системой и на котором закодирована компьютерная программа из инструкций для выполнения компьютерного процесса. Компьютерный программный продукт может также представлять собой распространяемый сигнал на несущей, которая считывается компьютерной системой и которая закодирована компьютерной программой из инструкций для выполнения компьютерного процесса. Соответственно, настоящее изобретение может быть воплощено в аппаратных средствах и/или в программном обеспечении (включая программно-аппаратное обеспечение, резидентное программное обеспечение, микрокод и т.п.). Иными словами, варианты осуществления настоящего изобретения могут принимать форму компьютерного программного продукта на используемом компьютером или машиночитаемом носителе информации, на котором воплощен используемый компьютером или машиночитаемый программный код для использования посредством или в связи с системой исполнения инструкций. Используемый компьютером или машиночитаемый носитель информации может представлять собой любой носитель, на котором может содержаться, храниться, передаваться, распространяться или транспортироваться программа для использования посредством или в связи с системой, аппаратурой или устройством исполнения инструкций.
[052] Используемый компьютером или машиночитаемый носитель информации может представлять собой, в качестве примера, но не ограничения, электронную, магнитную, оптическую, электромагнитную, инфракрасную или полупроводниковую систему, аппаратуру, устройство или среду распространения. Более конкретные примеры машиночитаемых носителей (неисчерпывающий список) могут включать в себя следующее: электрическое соединение, имеющее один или более проводов, переносная компьютерная дискета, оперативное запоминающее устройство (ОЗУ, RAM), постоянное запоминающее устройство (ПЗУ, ROM), стираемое программируемое ПЗУ (EPROM или флэш-память), оптическое волокно и переносное ПЗУ на компакт-диске (CD-ROM). Отметим, что используемый компьютером или машиночитаемый носитель информации может представлять собой даже бумажный или другой подходящий носитель, на котором напечатана программа, при этом программа может быть считана электронным образом, посредством, например, оптического сканирования бумажного или другого подходящего носителя, затем скомпилирована, проинтерпретирована или иным образом обработана подходящим способом, если необходимо, и сохранена в компьютерной памяти.
[053] Варианты осуществления настоящего изобретения описаны выше со ссылкой на блок-схемы и/или иллюстрации работы способов, систем и компьютерных программных продуктов согласно вариантам осуществления изобретения. Функции/действия, указанные в блоках, могут иметь место не в том порядке, что показан на какой-либо логической блок-схеме последовательности операций. Например, два блока, показанные последовательно, могут на самом деле выполняться, по существу, одновременно, либо эти блоки могут иногда выполняться в обратном порядке, в зависимости от задействуемых функций/действий.
[054] Хотя были описаны определенные варианты осуществления изобретения, могут существовать и другие варианты осуществления. Кроме того, хотя варианты осуществления настоящего изобретения были описаны как ассоциированные с данными, хранящимися в памяти и других носителях информации, данные также могут храниться на или считываться с других типов машиночитаемых носителей, таких как второстепенные запоминающие устройства типа жестких дисков, гибких дисков или CD-ROM, несущей волны из Интернета или других форм ОЗУ или ПЗУ. Кроме того, этапы раскрытых способов могут быть модифицированы любым путем, включая переупорядочение этапов и/или введение или удаление этапов, не отходя от изобретения.
[055] Все права, включая авторские права касаемо кода, включенного в настоящую заявку, принадлежат и являются собственностью заявителя. Заявитель поддерживает и охраняет все права касаемо кода, включенного в настоящую заявку, и дает разрешение на воспроизведение материала только в связи с репродуцированием выданного патента и ни для каких иных целей.
[056] Хотя описание включает в себя примеры, объем изобретения определяется нижеследующей формулой изобретения. Кроме того, хотя описание приведено на языке, характерном для структурных признаков и/или методологических действий, формула изобретения не ограничивается признаками или действиями, описанными выше. Скорее вышеописанные характерные признаки и действия раскрыты как пример вариантов осуществления изобретения.
название | год | авторы | номер документа |
---|---|---|---|
ГЕНЕРИРОВАНИЕ ПРЕДЛОЖЕНИЙ БРАУЗЕРА НА ОСНОВЕ ДАННЫХ УСТРОЙСТВА ИНТЕРНЕТА ВЕЩЕЙ | 2015 |
|
RU2711057C2 |
ДВУНАПРАВЛЕННОЕ ОБНОВЛЕНИЕ GRID-ТАБЛИЦЫ И АССОЦИИРОВАННЫХ ВИЗУАЛИЗАЦИЙ | 2009 |
|
RU2541216C2 |
СПОСОБЫ ДЛЯ АДАПТИРОВАНИЯ ИНТЕРПРЕТИРУЮЩЕГО ВРЕМЯ ВЫПОЛНЕНИЯ ПРИЛОЖЕНИЯ ДЛЯ МНОЖЕСТВЕННЫХ КЛИЕНТОВ | 2012 |
|
RU2608472C2 |
ПОСЛЕДОВАТЕЛЬНЫЙ МУЛЬТИМОДАЛЬНЫЙ ВВОД | 2004 |
|
RU2355044C2 |
ЗАЩИЩЕННАЯ ОБРАБОТКА МАНДАТА КЛИЕНТСКОЙ СИСТЕМЫ ДЛЯ ДОСТУПА К РЕСУРСАМ НА ОСНОВЕ WEB | 2008 |
|
RU2447490C2 |
РАСШИРЯЕМОСТЬ ДЛЯ ОСНОВЫВАЮЩЕЙСЯ НА WEB ВИЗУАЛИЗАЦИИ ДИАГРАММ | 2009 |
|
RU2524855C2 |
ЗАЩИЩЕННАЯ ОБРАБОТКА МАНДАТА КЛИЕНТСКОЙ СИСТЕМЫ ДЛЯ ДОСТУПА К РЕСУРСАМ НА ОСНОВЕ Web | 2003 |
|
RU2332711C2 |
НАВИГАЦИЯ В ПРИЛОЖЕНИИ БАЗЫ ДАННЫХ | 2010 |
|
RU2544774C2 |
УПРАВЛЯЕМАЯ СРЕДА ВЫПОЛНЕНИЯ ДЛЯ ОРГАНИЗАЦИИ ВЗАИМОДЕЙСТВИЯ МЕЖДУ ПРОГРАММНЫМИ ПРИЛОЖЕНИЯМИ | 2007 |
|
RU2459238C2 |
ПЕРЕВОДЧЕСКИЙ СЕРВИС НА БАЗЕ ЭЛЕКТРОННОГО СООБЩЕСТВА | 2015 |
|
RU2604984C1 |
Изобретение относится к области совместной работы приложений. Техническим результатом является эффективная интеграция приложений. Первое приложение может исполняться на клиентском компьютере. Первое приложение может соединяться со вторым приложением, таким как основывающееся на браузере приложение. Первое приложение может идентифицировать по меньшей мере одну функцию, ассоциированную со вторым приложением, и отображать элемент пользовательского интерфейса, ассоциированный с этой по меньшей мере одной функцией, в первом приложении. 3 н. и 16 з.п. ф-лы, 6 ил.
1. Способ обеспечения интеграции приложений, содержащий этапы, на которых:
исполняют клиентское приложение;
запрашивают через клиентское приложение Web страницу, содержащую основывающееся на браузере приложение;
определяют, содержит ли основывающееся на браузере приложение предоставляемые функции;
идентифицируют первую функцию, предоставляемую основывающимся на браузере приложением;
включают интегрированный элемент пользовательского интерфейса, которым интегрируется первая функция, в клиентское приложение, чтобы обеспечить согласованное пользовательское восприятие;
отображают интегрированный элемент пользовательского интерфейса, ассоциированный с первой функцией, в клиентском приложении;
принимают запрос исполнения первой функции через интегрированный элемент пользовательского интерфейса;
определяют, содержит ли клиентское приложение функцию, подлежащую выполнению перед исполнением, которая ассоциирована с первой функцией;
в ответ на определение того, что клиентское приложение содержит функцию, подлежащую выполнению перед исполнением, которая ассоциирована с первой функцией, выполняют функцию, подлежащую выполнению перед исполнением, перед запрашиванием основывающегося на браузере приложения исполнить первую функцию;
по завершении функции, подлежащей выполнению перед исполнением, запрашивают основывающееся на браузере приложение исполнить первую функцию, а если функция, подлежащая выполнению перед исполнением, терпит неудачу, выдают сообщение об ошибке, не запрашивая основывающееся на браузере приложение исполнить первую функцию.
2. Способ по п. 1, дополнительно содержащий этапы, на которых:
принимают выбор интегрированного элемента пользовательского интерфейса, сделанный пользователем клиентского приложения; и
активируют первую функцию, ассоциированную с основывающимся на браузере приложением.
3. Способ по п. 2, дополнительно содержащий этапы, на которых:
определяют, имеется ли вторая функция, которая обеспечивается клиентским приложением и ассоциирована с активацией первой функции; и
в качестве реакции на определение того, что вторая функция обеспечивается первым приложением и ассоциирована с активацией первой функции, активируют вторую функцию посредством клиентского приложения.
4. Способ по п. 2, дополнительно содержащий этап, на котором принимают посредством клиентского приложения уведомление о результате от основывающегося на браузере приложения.
5. Способ по п. 4, дополнительно содержащий этап, на котором отображают уведомление о результате пользователю клиентского приложения.
6. Способ по п. 1, в котором при отображении в клиентском приложении интегрированного элемента пользовательского интерфейса, ассоциированного с первой функцией:
идентифицируют категорию действия, ассоциированную с первой функцией; и
назначают интегрированному элементу пользовательского интерфейса визуальное представление, ассоциированное с категорией действия.
7. Способ по п. 6, в котором визуальное представление, назначаемое интегрированному элементу пользовательского интерфейса, содержит по меньшей мере одно из следующего: цвет, стиль текста, местоположение, иконка и размещение меню.
8. Способ по п. 1, в котором функции включают в себя теги для указания того, какие функции предоставляются.
9. Способ по п. 8, в котором определение того, содержит ли основывающееся на браузере приложение какие-либо предоставляемые функции, содержит определение клиентским приложением того, предоставляются ли функции, путем анализа Web страницы на предмет выявления упомянутых тегов.
10. Система для обеспечения интеграции приложений, содержащая:
память; и
процессорный блок, подключенный к памяти, при этом процессорный блок выполнен с возможностью:
инициализировать клиентское приложение;
запрашивать через клиентское приложение Web страницу, содержащую основывающееся на браузере приложение;
определять, содержит ли основывающееся на браузере приложение предоставляемый элемент;
в качестве реакции на определение того, что основывающееся на браузере приложение содержит предоставляемый элемент, интегрировать элемент пользовательского интерфейса, ассоциированный с предоставляемым элементом, в клиентское приложение;
применять визуальный стиль, связанный с клиентским приложением, к интегрированному элементу пользовательского интерфейса, чтобы обеспечить согласованное пользовательское восприятие для пользователя клиентского приложения;
отображать интегрированный элемент пользовательского интерфейса, ассоциированный с предоставляемым элементом, в клиентском приложении;
принимать запрос исполнения предоставляемой функции, обеспечиваемой предоставляемым элементом, через интегрированный элемент пользовательского интерфейса;
определять, содержит ли клиентское приложение функцию, подлежащую выполнению перед исполнением, которая ассоциирована с предоставляемой функцией;
в качестве реакции на определение того, что клиентское приложение содержит функцию, подлежащую выполнению перед исполнением, которая ассоциирована с предоставляемой функцией, выполнять функцию, подлежащую выполнению перед исполнением, перед запрашиванием основывающегося на браузере приложения исполнить предоставляемую функцию;
по завершении функции, подлежащей выполнению перед исполнением, запрашивать основывающееся на браузере приложение исполнить предоставляемую функцию, а если функция, подлежащая выполнению перед исполнением, терпит неудачу, выдавать сообщение об ошибке, не запрашивая основывающееся на браузере приложение исполнить предоставляемую функцию.
11. Система по п. 10, в которой предоставляемый элемент содержит элемент данных.
12. Система по п. 11, в которой процессорный блок дополнительно выполнен с возможностью:
принимать запрос действия от пользователя клиентского приложения;
определять, содержит ли запрос действия изменение в отношении элемента данных; и
в качестве реакции на определение того, что запрос действия содержит изменение в отношении элемента данных действие, информировать основывающееся на браузере приложение об этом изменении в отношении элемента данных.
13. Система по п. 10, в которой предоставляемый элемент содержит раздел помощи.
14. Система по п. 13, в которой отображение в пользовательском интерфейсе клиентского приложения указания того, что предоставляемый элемент основывающегося на браузере приложения является доступным для пользователя клиентского приложения, содержит добавление раздела помощи в меню помощи, ассоциированное с клиентским приложением.
15. Система по п. 10, в которой отображение в пользовательском интерфейсе клиентского приложения указания того, что предоставляемый элемент основывающегося на браузере приложения является доступным для пользователя клиентского приложения, содержит добавление по меньшей мере одного элемента действия в пользовательский интерфейс, ассоциированный с клиентским приложением.
16. Система по п. 15, в которой процессорный блок дополнительно выполнен с возможностью:
принимать выбор упомянутого по меньшей мере одного элемента действия в качестве ввода от пользователя клиентского приложения; и
активировать предоставляемую функцию в основывающемся на браузере приложении.
17. Система по п. 16, в которой процессорный блок дополнительно выполнен с возможностью:
принимать уведомление о результате от основывающегося на браузере приложения в качестве реакции на активацию предоставляемой функции; и
отображать пользователю клиентского приложения сообщение, ассоциированное с этим уведомлением о результате, принятым от основывающегося на браузере приложения.
18. Система по п. 10, в которой процессорный блок дополнительно выполнен с возможностью:
идентифицировать множество предоставляемых элементов, причем каждый из этого множества предоставляемых элементов ассоциирован с по меньшей мере одним из множества основывающихся на браузере приложений; и
создавать в пользовательском интерфейсе клиентского приложения элемент, ассоциированный с каждым из этого множества предоставляемых элементов.
19. Считываемый компьютером носитель, на котором хранится набор инструкций, которыми при их исполнении выполняется способ обеспечения интеграции приложений, содержащий этапы, на которых:
запрашивают через клиентское приложение Web страницу, содержащую основывающееся на браузере приложение;
определяют, содержит ли основывающееся на браузере приложение по меньшей мере одну предоставляемую функцию;
идентифицируют по меньшей мере одну предоставляемую функцию, ассоциированную с основывающимся на браузере приложением;
интегрируют элемент пользовательского интерфейса, ассоциированный с этой по меньшей мере одной предоставляемой функцией, в клиентское приложение;
отображают этот элемент пользовательского интерфейса в клиентском приложении;
принимают запрос исполнения упомянутой по меньшей мере одной предоставляемой функции от пользователя клиентского приложения через элемент пользовательского интерфейса;
определяют, содержит ли клиентское приложение функцию, подлежащую выполнению перед исполнением, которая ассоциирована с упомянутой по меньшей мере одной предоставляемой функцией;
в качестве реакции на определение того, что клиентское приложение содержит функцию, подлежащую выполнению перед исполнением, которая ассоциирована с упомянутой по меньшей мере одной предоставляемой функцией, выполняют функцию, подлежащую выполнению перед исполнением, перед запрашиванием основывающегося на браузере приложения исполнить упомянутую по меньшей мере одну предоставляемую функцию;
по завершении функции, подлежащей выполнению перед исполнением, посылают в основывающееся на браузере приложение запрос исполнения упомянутой по меньшей мере одной предоставляемой функции, а если функция, подлежащая выполнению перед исполнением, терпит неудачу, выдают сообщение об ошибке, не запрашивая основывающееся на браузере приложение исполнить упомянутую по меньшей мере одну предоставляемую функцию;
принимают от основывающегося на браузере приложения результат, ассоциированный с упомянутым запросом исполнения по меньшей мере одной предоставляемой функции основывающимся на браузере приложением;
отображают пользователю клиентского приложения уведомление, ассоциированное с принятым результатом;
определяют, содержит ли клиентское приложение функцию, подлежащую выполнению после исполнения, которая ассоциирована с упомянутой по меньшей мере одной предоставляемой функцией; и
в качестве реакции на определение того, что клиентское приложение содержит функцию, подлежащую выполнению после исполнения, которая ассоциирована с упомянутой по меньшей мере одной предоставляемой функцией, выполняют функцию, подлежащую выполнению после исполнения.
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
US 6675371 B1, 06.01.2004 | |||
Способ и приспособление для нагревания хлебопекарных камер | 1923 |
|
SU2003A1 |
СИСТЕМА ДЛЯ ОБЕСПЕЧЕНИЯ ХОСТИНГА ОБЪЕКТОВ ГРАФИЧЕСКОЙ КОМПОНОВКИ/ПРЕДСТАВЛЕНИЯ | 2003 |
|
RU2305860C2 |
Авторы
Даты
2016-06-10—Публикация
2011-04-11—Подача