расширяемость для основывающейся на web визуализации диаграмм

Классы МПК:G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ
G06F9/06 с хранимой программой, те с записью и хранением программы в устройствах памяти вычислительных машин 
G06F9/44 устройства для выполнения специальных программ
Автор(ы):, , ,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2009-12-04
публикация патента:

Группа изобретений относится к расширяемой архитектуре и потоку данных, которые позволяют машине обновления диаграмм запускать модули пользовательского кода. Техническим результатом является снижение объема данных, хранимых на клиентском устройстве. Способ для выполнения, по меньшей мере, частично, в вычислительном устройстве для сервисов расширяемой визуализации диаграмм, основывающейся на web содержит этап, на котором, в ответ на прием запроса на диаграмму, включающего в себя ссылки на внешние источники данных, подают этот запрос в машину обновления для определения поддерживаемых источников данных и пользовательских модулей данных для извлечения данных из неподдерживаемых источников данных, реализующих заранее определенный абстрактный класс. Далее, согласно способу, принимают идентификатор пользовательского модуля данных от машины обновления. А также, активируют пользовательский модуль данных, указанный идентификатором, через этот заранее определенный абстрактный класс, и принимают либо данные, либо исключение от пользовательского модуля данных. В случае если приняты данные, перенаправляют эти данные в машину обновления. 3 н. и 17 з.п. ф-лы, 7 ил. расширяемость для основывающейся на web визуализации диаграмм, патент № 2524855

расширяемость для основывающейся на web визуализации диаграмм, патент № 2524855 расширяемость для основывающейся на web визуализации диаграмм, патент № 2524855 расширяемость для основывающейся на web визуализации диаграмм, патент № 2524855 расширяемость для основывающейся на web визуализации диаграмм, патент № 2524855 расширяемость для основывающейся на web визуализации диаграмм, патент № 2524855 расширяемость для основывающейся на web визуализации диаграмм, патент № 2524855 расширяемость для основывающейся на web визуализации диаграмм, патент № 2524855

Формула изобретения

1. Способ для выполнения, по меньшей мере частично, в вычислительном устройстве для сервисов расширяемой визуализации диаграмм, основывающейся на web, включающий в себя этапы, на которых:

в ответ на прием запроса на диаграмму, включающего в себя ссылки на внешние источники данных, подают этот запрос в машину обновления для определения поддерживаемых источников данных и пользовательских модулей данных для извлечения данных из неподдерживаемых источников данных, реализующих заранее определенный абстрактный класс;

принимают идентификатор пользовательского модуля данных от машины обновления;

активируют пользовательский модуль данных, указанный идентификатором, через этот заранее определенный абстрактный класс;

принимают либо данные, либо исключение от пользовательского модуля данных;

если приняты данные, перенаправляют эти данные в машину обновления; и

обеспечивают представление запрашиваемой диаграммы на клиентском приложении путем формирования изображения диаграммы с обновленными атрибутами элементов диаграммы, принимаемых от поддерживаемых и неподдерживаемых источников данных, которые опрашиваются во время формирования изображения, на основе перенаправленных данных от машины обновления.

2. Способ по п.1, дополнительно включающий в себя этап, на котором предоставляют сообщение об исключении в клиентское приложение, если от пользовательского модуля данных принято исключение.

3. Способ по п.1, в котором машина обновления сконфигурирована выполнять обновления в отношении данных из поддерживаемых источников данных и полагаться на соответствующий пользовательский модуль в отношении данных из неподдерживаемых источников данных.

4. Способ по п.1, в котором данные связаны с по меньшей мере одним из формы, размера, положения и атрибута элемента в запрашиваемой диаграмме.

5. Способ по п.1, дополнительно включающий в себя этап, на котором, по определению всех пользовательских модулей данных, инициируют параллельные и асинхронные запросные обращения на каждый пользовательский модуль данных.

6. Способ по п.5, в котором сетевой идентификатор запрашивающего клиентского приложения и дополнительная информация соединения и запросного обращения передаются в каждый пользовательский модуль данных в качестве параметров.

7. Способ по п.1, в котором каждый пользовательский модуль данных сконфигурирован извлекать, генерировать и агрегировать данные и выполнять возврат, применяя обратные вызовы.

8. Способ по п.1, в котором данные возвращаются в объекте упорядоченного набора данных.

9. Способ по п.1, дополнительно включающий в себя этапы, на которых:

выполняют анализ и извлечение визуальных определений для элементов диаграммы, соединенных с внешними данными;

повторно оценивают формулы времени публикации для каждого атрибута элементов диаграммы со ссылкой на внешние данные; и

формируют изображение диаграммы.

10. Способ по п.9, в котором изображение диаграммы формируют в одном из векторного и растрового формата.

11. Компьютерная система для выполнения сервиса диаграмм для расширяемой визуализации диаграмм, основывающейся на web, включающая в себя:

фронтальный web-сервер (WFE), включающий в себя память и процессор, подключенный к памяти, при этом процессор сконфигурирован:

в ответ на прием от браузера запроса на диаграмму, включающего в себя ссылку на внешний источник данных, реализующий заранее определенный абстрактный класс, перенаправлять этот запрос в машину обновления,

принимать от машины обновления строку соединения, ссылающуюся на пользовательский модуль данных,

активировать пользовательский модуль данных для извлечения, генерации и агрегирования данных через этот заранее определенный абстрактный класс из внешнего источника данных,

принимать данные в предварительно определенном формате от пользовательского модуля данных,

перенаправлять принятые данные в машину обновления,

принимать сформированное изображение диаграммы от машины обновления с обновленными атрибутами элементов диаграммы, принимаемых от поддерживаемых и неподдерживаемых источников данных, которые опрашиваются во время формирования изображения, и

предоставлять сформированное изображение диаграммы в браузер; и

оконечный сервер, включающий в себя память и процессор, подключенный к памяти, при этом процессор сконфигурирован для исполнения машины обновления, при этом оконечный сервер выполнен с возможностью:

для каждого элемента диаграммы со ссылкой на поддерживаемый внешний источник данных, возвращать на WFE строку соединения для этого поддерживаемого источника данных,

для каждого элемента диаграммы со ссылкой на неподдерживаемый внешний источник данных, определять строку соединения для пользовательского модуля данных, и,

если пользовательский модуль данных найден, возвращать на WFE строку соединения для этого пользовательского модуля данных, в противном случае возвращать код ошибки на WFE.

12. Компьютерная система по п.11, в которой строка соединения для пользовательского модуля данных включает в себя имя пользовательского модуля данных, класс для реализации пользовательского модуля данных и дополнительную информацию соединения и запросного обращения в предварительно определенном формате.

13. Компьютерная система по п.11, в которой машина обновления дополнительно выполнена с возможностью возвращать строку запросного обращения для исполнения в отношении поддерживаемого источника данных и определение схемы для данных, возврат которых ожидается от поддерживаемого источника данных.

14. Компьютерная система по п.13, в которой машина обновления дополнительно выполнена с возможностью подсоединяться к поддерживаемому источнику данных, извлекать данные посредством исполнения запросного обращения, задаваемого строкой запросного обращения, и проверять правильность данных по упомянутой схеме.

15. Компьютерная система по п.14, в которой каждый пользовательский модуль данных сконфигурирован извлекать и агрегировать данные через систему обратных вызовов от WFE и возвращать данные на WFE.

16. Компьютерная система по п.14, в которой процессор WFE дополнительно сконфигурирован возвращать в браузер сообщение о неудаче, если пользовательскому модулю данных, на который ссылается запрашиваемая диаграмма, не удается возвратить данные.

17. Считываемый компьютером носитель, на котором сохранены инструкции для сервисов расширяемой визуализации диаграмм, основывающейся на web, при этом инструкции включают в себя:

прием запроса на диаграмму, включающего в себя ссылки на внешние источники данных;

для ссылок на поддерживаемые источники данных:

определение источника данных, на который имеется ссылка,

подсоединение к источнику данных, на который имеется ссылка,

извлечение данных посредством исполнения запросного обращения и

проверка правильности извлеченных данных;

для ссылок на неподдерживаемые источники данных:

определение пользовательских модулей данных для извлечения данных из неподдерживаемых источников данных, на которые имеется ссылка и которые реализуют заранее определенный абстрактный класс,

активацию этих определенных пользовательских модулей данных посредством передачи сетевого контекста запрашивающего клиентского приложения и информации соединения/запросного обращения в пользовательские модули данных через этот заранее определенный абстрактный класс, и

прием данных из пользовательских модулей данных;

анализ и извлечение визуальных определений для элементов диаграммы, соединенных с данными, с обновленными атрибутами элементов диаграммы, принимаемых от поддерживаемых и неподдерживаемых источников данных, которые опрашиваются во время формирования изображения, при этом динамические отношения между элементами диаграммы упомянутой диаграммы определяют атрибуты отдельных форм и соединителей;

расчет формул времени публикации для элементов диаграммы;

формирование изображения запрашиваемой диаграммы на основе обновленных формул времени публикации в одном из векторного и растрового формата в зависимости от типа запроса от клиентского приложения; и

предоставление сформированного изображения диаграммы запрашивающему клиентскому приложению.

18. Считываемый компьютером носитель по п.17, при этом пользовательские модули данных дополнительно выполнены с возможностью аутентифицировать запрашивающую сторону на основе сетевого контекста.

19. Считываемый компьютером носитель по п.17, в котором упомянутые инструкции дополнительно содержат активацию пользовательских модулей данных и прием данных с помощью одного из параллельных и асинхронных обратных вызовов.

20. Считываемый компьютером носитель по п.17, при этом изображение запрашиваемой диаграммы формируется на основе данных, принятых из поддерживаемых и неподдерживаемых источников на оконечном сервере, и сформированное изображение диаграммы предоставляется запрашивающему клиентскому приложению фронтальным web-сервером.

Описание изобретения к патенту

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Одним из основных вкладов компьютеров и программного обеспечения в повседневную жизнь человека стала автоматизация широко используемых задач, таких как обработка слов, расчеты на базе таблиц и построение диаграмм. Эти приложения не только автоматизировали и сделали различные задачи доступными любому, но они также добавили много новых возможностей в управлении широким диапазоном документов и данных. До недавнего времени обычное окружение включало в себя автономный или сетевой компьютер с определенными приложениями, установленными на нем. Таким образом, пользователь работал с приложением, установленным и исполняемым на своем локальном компьютере, используя данные, которые также хранились локально. Одним недостатком такого подхода является то, что приложения может быть необходимо переустанавливать каждый раз, когда доступна новая обновленная версия, компьютер может быть заменен и т.п., а пользователю может быть необходимо работать на машине с установленным программным обеспечением.

Последней тенденцией в предоставлении таких же возможностей для создания и обработки документов без необходимости иметь полную линейку приложений, установленных на компьютер пользователя, является дать пользователю возможность выполнять те же самые задачи через web доступ. В типовых сервисах с web доступом пользователь может использовать размещенный сервис для создания новых документов, управления существующими документами, через сетевую среду, такую как Интернет. Документы могут сохраняться сервисом, размещенном на сервере или на локальном компьютере пользователя. Типовые сервисы с web доступом используются также для визуализации данных (например, построения диаграмм). Некоторые конвейеры визуализации данных ограничиваются обновлением данных из ограниченного набора известных источников данных. Без обеспечения возможности соединения данных из источников данных пользователя, данные из чужеродных источников может быть необходимо встраивать в поддерживаемые источники данных, когда запрос браузера о формировании изображения данных обрабатывается web сервером.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Настоящий раздел обеспечивается для представления подборки концепций в упрощенной форме, которые описываются ниже в разделе Подробное описание. Настоящий раздел не предназначен ни для эксклюзивного определения ключевых признаков или существенных признаков заявляемого изобретения, ни для содействия в определении объема заявляемого изобретения.

Варианты осуществления изобретения ориентированы на расширяемую архитектуру и поток данных, которые позволяют машине обновления диаграмм запускать модули пользовательского кода. Интерфейс в соответствии с некоторыми вариантами осуществления дает возможность третьей стороне создавать источники данных и делать их видимыми для основывающихся на web сервисов диаграмм и допускающими вызов со стороны машины обновлений диаграмм. Таким образом, число источников данных, из которых данные диаграмм могут быть извлечены, и способ управления входящими данными и агрегирования входящих данных, являются расширяемыми посредством кода, использующего модель данных согласно вариантам осуществления.

Эти и другие признаки и преимущества будут понятными после прочтения последующего подробного описания и просмотра сопутствующих чертежей. Необходимо понимать, что как приведенное выше общее описание, так и последующее подробное описание являются поясняющими и не ограничивают заявляемых аспектов.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

На Фиг.1 представлена концептуальная блок-схема, иллюстрирующая пример сервиса построения диаграмм, доступного через web, в котором может быть реализован вариант осуществления изобретения;

На Фиг.2 представлена блок-схема последовательности, иллюстрирующая потоки данных в процессе обновления данных в основывающемся на web сервисе построения диаграмм;

На Фиг.3 представлена другая блок-схема последовательности, иллюстрирующая потоки данных в процессе обновления данных в основывающемся на web сервисе построения диаграмм, в соответствии с вариантом осуществления;

На Фиг.4 представлена концептуальная блок-схема, иллюстрирующая основные компоненты основывающегося на web сервисе построения диаграмм с множеством источников данных, реализующие варианты осуществления изобретения;

На Фиг.5 представлено сетевое окружение, в котором может быть реализована система в соответствии с вариантом осуществления;

На Фиг.6 представлена блок-схема иллюстративного компьютерного рабочего окружения, в котором могут быть реализованы варианты осуществления; и

На Фиг.7 представлена логическая структурная схема-процесса обеспечения сервисов построения диаграмм, доступных через web, в соответствии с вариантами осуществления.

ПОДРОБНОЕ ОПИСАНИЕ

Как кратко описано выше, расширяемая архитектура и потоки данных могут использоваться для того, чтобы дать возможность машине обновления диаграмм запускать модули и пользовательского кода для извлечения, управления и агрегирования данных из различных источников, а интерфейс может использоваться для обеспечения возможности обмена данными с неродными источниками данных через пользовательские (сторонние) модули данных. В последующем подробном описании делаются ссылки на сопутствующие фигуры, которые являются частью описания и на которых посредством иллюстрирования показаны конкретные варианты осуществления или примеры. Эти аспекты могут объединяться, могут использоваться другие аспекты, а также могут быть сделаны структурные изменения без отрыва от сущности и объема настоящего раскрытия. Следующее подробное описание поэтому не должно приниматься в ограничивающем смысле, а объем настоящего изобретения определяется прилагаемой формулой изобретения и ее эквивалентами.

Хотя варианты осуществления будут описаны в общем контексте программных модулей, которые исполняются совместно с прикладными программами, работающими на операционной системе персонального компьютера, специалисты осознают, что аспекты могут также быть реализованы в сочетании с другими программными модулями.

В общем, программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют определенные задачи или реализуют определенные абстрактные типы данных. Более того, специалисты будут понимать то, что варианты осуществления могут применяться с другими конфигурациями вычислительных систем, включая портативные устройства, многопроцессорные системы, микропроцессорную или программируемую потребительскую электронику, миникомпьютеры, универсальные вычислительные машины и сопоставимые вычислительные устройства. Варианты осуществления могут также применяться в распределенных вычислительных окружениях, в которых задачи выполняются удаленными устройствами обработки данных связанными через коммуникационную сеть. В распределенном вычислительном окружении, программные модули могут быть расположены и на локальных, и в удаленных запоминающих устройствах.

Варианты осуществления могут быть реализованы в виде компьютерно-реализуемого процесса (способа), вычислительной системы или промышленного изделия, такого как компьютерный программный продукт или машиночитаемый носитель. Компьютерный программный продукт может быть компьютерным носителем данных, который считывается вычислительной системой и на котором закодирована компьютерная программа, которая включает в себя инструкции для предписания выполнения иллюстративного процесса (процессов) компьютером или вычислительной системой. Машиночитаемый носитель данных может, например, быть реализован на одном или более энергозависимой памяти вычислительной машины, неэнергозависимой памяти, жестком диске, флэш-накопителе, дискете или компакт-диске и сопоставимых носителях. Компьютерный программный продукт может также быть распространяемым сигналом на несущей (например, сигналом, модулированном по частоте или по фазе) или средой, которая считается вычислительной машиной и в которой закодирована компьютерная программа инструкций для исполнения процесса на компьютере.

В данном описании термин «платформа» может быть сочетанием компонент программного и аппаратного обеспечения для управления данными основывающегося на web сервисе построения диаграмм. Примеры платформ включают в себя, но не в ограничительном смысле, размещенный сервис, исполняемый на множестве серверов, приложение, исполняемое на одном сервере, и сопоставимые системы. Термин «сервер» в общем относится к вычислительным устройствам, исполняющим одну или более программ программного обеспечения, обычно в сетевом окружении. Однако сервер может также быть реализован в виде виртуального сервера (программного обеспечения), исполняемого на одном или более вычислительных устройствах, просматриваемых как сервер в сети.

Ссылаясь на Фиг.1, проиллюстрирована концептуальная блок-схема 100 примера сервиса построения диаграмм, доступного через web, в котором могут быть реализованы варианты осуществления. В примере системы 100 по Фиг.1. Web сервис 106 для пользователей обеспечивает функциональность по визуализации диаграмм посредством одного или более web приложений, исполняемых на сервере 108, для пользователя 102, осуществляющего доступ к системе посредством стандартного приложения, такого как браузер, исполняемый на вычислительном устройстве 104. Для инициирования сервиса, пользователь 102 запрашивает на сервере 108 размещенного сервиса 106 диаграмму. Сервер 108 в ответ сообщается с сервером 114 оконечных серверных средств 112 сервиса построения диаграмм, извлекающих данные, вычисляющих формулы, отношения и т.д.

Диаграммы могут включать в себя статические или динамические элементы. Например, атрибуты некоторых форм, соединителей и других элементов могут определяться посредством динамических средств, например, в зависимости от данных из обновляемых источников данных, которые могут опрашиваться во время формирования изображения (например, гистограмма, получающая информацию о форме из данных, хранящихся где-то еще). В некоторых случаях, динамические отношения между элементами диаграммы могут определять атрибуты отдельных форм и соединителей (например, диаграмма организационной структуры).

Сервис визуализации диаграмм может включать в себя список поддерживаемых источников данных, таких как SQL-таблицы, электронные таблицы Excel®, списки WWS® и тому подобное. Система по вариантам реализации может расширять перечень этих поддерживаемых источников данных любым источником данных, определяемым пользовательскими модулями данных, использующими определенные интерфейсы для сервиса.

Фиг.2 иллюстрирует блок-схему последовательности 200 для потока данных при обновлении данных в основывающемся на web сервисе построения диаграмм. Используя приложение для формирования изображений, такое как web браузер, пользователь диаграмм может сделать запрос (231) на ферму серверов web сервиса 222 на опубликованную диаграмму. Web сервис 222 может направить запрос диаграммы (232) в оконечные серверные средства сервисов построения диаграмм, такие как машина обновления. Оконечные серверные средства (машина обновления) 224 сервисов построения диаграмм могут извлекать определение диаграммы (233, 234) из хранилища данных 226 и анализировать его, проводя поиск встроенной информации, которая указывает, откуда извлекать данные для визуализации определенной диаграммы и соответствующую информацию о соединении данных. В соответствии с одним вариантом осуществления может быть выделена (239) следующая информация для каждого набора записей, если они найдены: строка соединения, относящаяся к поддерживаемому источнику данных; строка запросного обращения (query) для применения к поддерживаемому источнику данных; и определение схемы для данных набора записей, предполагаемых к возврату из поддерживаемого источника данных после выполнения запросного обращения.

Для каждого соединения данных с поддерживаемым источником данных оконечные серверные средства сервисов построения диаграмм могут вызвать встроенный поставщик (240) данных, который подсоединяется к поддерживаемому источнику данных, извлекает определенные данные посредством выполнения запросного обращения, определенного выше, к поддерживаемому источнику данных и проверяет правильность набора записей, возвращаемых по схеме, описанной выше.

Оконечные серверные средства (машина обновления) (224) сервисов построения диаграмм могут затем обновлять и возвращать (241) визуальное определение диаграммы посредством: анализа и извлечения визуальных определений для соединенных с данными элементов диаграмм из определения диаграммы; повторной оценки формул времени публикации для каждого атрибута каждого элемента диаграммы (например, цвет фона, высота) и формирования изображения диаграммы в векторном или растровом формате в зависимости от типа запроса от браузера. Web сервис 222 может отвечать на запрос, сделанный браузером, обновленной диаграммой (242).

Без расширяемости по источникам данных, конвейер обновления диаграммы обычно ограничивается обновлением данных только из источников данных со встроенными поставщиками данных в машине обновления. Они могут включать SQL-таблицы (SQL - язык последовательных запросов), электронные таблицы и похожие общеиспользуемые источники данных (например, списки WWS). Кроме того, формулы агрегирования и манипулирования данными, используемые для обновления визуальных элементов диаграммы, могут быть неизменяемыми после кодирования в диаграмму во время публикации.

На Фиг.3 представлена другая блок-схема последовательности 300, иллюстрирующая потоки данных в процессе обновления данных в основывающемся на web сервисе построения диаграмм, в соответствии с вариантами осуществления. В соответствии с некоторыми вариантами осуществления, расширяемость по источникам данных обеспечивается посредством предоставления возможности пользователям третьей стороны создавать видимый для основывающегося на web сервис построения диаграмм пользовательский код поставщик данных (также называемый пользовательскими модулями данных или пользовательскими поставщиками данных) и посредством предоставления возможности издателям диаграмм ссылаться на пользовательские модули данных в своих диаграммах данных. При обнаружении ссылки на пользовательский модуль данных, основывающийся на web сервис построения диаграмм может делегировать операции по извлечению данных на модуль данных, на который сделана ссылка. В то время как модули данных привязаны к реализации предварительно определенного абстрактного класса (например, класса DiagramRefreshAddOn), разработчики могут реализовать внутренние определения различных абстрактных членов, обеспечивая им гибкость в плане извлечения данных из любого источника данных (или генерирования данных в модуле данных) и управления данными, которые необходимо включать в конвейер обновления сервиса построения диаграмм.

Взаимодействия, представленные на диаграмме 300, происходят между теми же компонентами системы в соответствии с вариантами осуществления с этапами, начиная от запроса диаграммы до возврата определения диаграммы, аналогичными действиям, описанным совместно с Фиг.2. Отличие от диаграммы 200 состоит в том, что если машина обновления столкнется со строкой соединения, которая не может быть обработана встроенными поставщиками данных, оконечные серверные средства 224 сервисов построения диаграмм могут попытаться найти строку соединения, ссылающуюся на пользовательский модуль (335) данных. Иллюстративный модуль может иметь следующий вид: Assembly=<assembly>; Class=<class>; <additional information>, где <assembly> - совместно используемое имя пространства сборки модуля данных, <class> - совместно используемое имя класса пространства (включающее пространство имен), реализующее абстрактный класс модуля данных, a <additional information> - дополнительная информация соединения/запросного обращения в формате [[Key=Value]].

Если извлекается строка соединения, подходящая строка запросного обращения для исполнения в отношении источника данных также может быть извлечена. Также извлекается определение схемы для данных, ожидаемых к возврату от источника данных после выполнения запросного обращения. Для каждой ссылки на пользовательский источник данных оконечные серверные средства (224) сервисов построения диаграмм могут переносить обновление на ассоциированный модуль данных. Это влечет за собой то, что машина обновления сервисов построения диаграмм выполняет возврат (336) во фронтальный сервер (web сервис 222), который принял начальный запрос на диаграмму, и пытается найти какой-либо пользовательский модуль данных, который соответствует лексемам <assembly> и <class>, описанным выше.

Если найдены все пользовательские модули данных, на которые имеется ссылка, код машины обновления на фронтальном сервере может запустить параллельные и асинхронные запросы данных посредством инициирования извлечения (337) данных (например, BeginGetData) на каждом модуле данных и передачи в качестве 12 параметров сетевого контекста инициатора запроса диаграммы для того, чтобы сделать возможной персонализацию запросов, «дополнительной информации», извлеченной, как описывалось выше, и другой похожей информации. Модули данных выполняют их код для извлечения генерации и агрегирования данных. С помощью системы обратных вызовов, код на фронтальном сервере (web сервисе 222) может управлять извлечением данных, ошибками и зависаниями модуля данных. Если на одном или более модулях произошел отказ исполнения, может не выполниться весь запрос и конечному пользователю может быть возвращена ошибка.

Если ошибок не произошло, модуль данных возвращает в код драйвера модуля данных структурированное (например, упорядоченный набор данных) представление извлеченных данных. Возвращаемые данные отправляются (338) в оконечные серверные средства 224 сервисов построения диаграмм, которые объединяют данные в операции обновления диаграммы с данными других поставщиков данных (пользовательских или встроенных). В том случае, если код пользовательского модуля данных столкнется с исключением, разработчики могут создать свой собственный объект исключения и присвоить его свойству ошибки модуля данных для того, чтобы распространить исключение на машину обновления для последующего действия. Исключения могут также отображаться конечному пользователю с соответствующим сообщением об исключении.

Для каждого соединения данных (239, 240) с поддерживаемым источником данных (включая те, что определены пользовательскими модулями данных), машина обновления диаграммы вызывает жестко заданный код извлечения данных, который подсоединяется к поддерживаемому внешнему источнику данных, извлекает определенные данные посредством выполнения определенного запросного обращения к источнику данных и проверяет правильность возвращенных данных по схеме, описанной выше.

Машина обновления диаграммы может затем обновить визуальное определение диаграммы посредством анализа и выделения визуальных определений для соединенных с данными элементов диаграммы, выполнить повторную оценку формул времени публикации для каждого атрибута каждого элемента диаграммы (эти формулы могут содержать ссылки на внешние данные, извлекаемые из предварительного определенных и пользовательских источников данных) и формировать изображение диаграммы в векторном или растровом формате, в зависимости от типа запроса от конечного пользователя. Как показано на Фиг.2, web сервис отвечает на запрос (231) обновленной диаграммой (242).

Компоненты и действия на блок-схемах 200 и 300 представлены только с иллюстративными целями и не устанавливают ограничений на варианты осуществления. Для обеспечения расширяемости для основывающейся на web визуализации диаграмм могут применяться другие компоненты, программное или аппаратное обеспечение и конфигурации.

На Фиг.4 представлена концептуальная блок-схема, иллюстрирующая основные компоненты основывающегося на web сервис построения диаграмм с множеством источников данных, реализующие варианты осуществления изобретения. Как и во многих основывающихся на web сервисах, основывающийся на web сервис построения диаграмм включает в себя обмен информацией между тремя основными компонентами: клиентским устройством 452, исполняющим клиентское приложение, такое как браузер, фронтальными серверными средствами 454 web сервиса, являющимися посредником между клиентским приложением и оконечными серверными средствами 456 сервиса построения диаграмм, которые фактически выполняют расчеты для формирования изображений диаграмм.

Таким образом, когда клиентское приложение запрашивает диаграмму, ссылающуюся на внешние источники данных, фронтальные серверные средства 454 сервер web сервиса переправляют запрос в оконечные серверные средства 456 данных сервиса построения диаграмм. Для источников данных, которые по своей природе не поддерживаются сервисом визуализации диаграмм, расширяемость может достигаться посредством применения пользовательских модулей данных. Модули могут быть установлены на сервере web сервиса и идентифицироваться идентификаторами строки соединения с данными. Для каждого внешнего источника данных оконечные серверные средства 456 сервиса построения диаграмм могут передавать информацию соединения данных на фронтальные серверные средства 454. Фронтальные серверные средства 454 web сервиса сообщают информацию соединения данных на соответствующие модули, на которых модули реализуют предварительно определенный абстрактный класс. Например, модуль данных может включать в себя следующее (показано в виде псевдокода):

MyDataModule

BeginGetData (httpContext, callback, asynchState)

{

//А. Зарегистрировать обратный вызов

//В. Извлечь идентификатор пользователя и соединиться с источником данных

//С. Аутентифицировать и инициировать запросное обращение.

}

EndGetData (asynchState)

{

//D. Преобразовать данные в предопределенную структуру.

//Е. Возвратить данные, запротоколировать ошибки по необходимости.

}

Источники данных (например, 462, 464, 466) возвращают данные через модули данных в предварительно определенной структуре или исключение, если это так, на фронтальные серверные средства 454 web сервиса посредством расширяемого интерфейса 458 потока данных. Фронтальные серверные средства 454 web сервиса возвращают данные в оконечные серверные средства для дальнейшей обработки, включающей обновление диаграмм, выполнение необходимых расчетов и формирование изображения диаграммы для фронтальных серверных средств клиентском сервере для представления в браузере конечного пользователя на клиентском устройстве 452.

Рассматриваемые выше сценарии, примеры систем, приложения и команды представлены в иллюстративных целях. Варианты осуществления не ограничиваются этими примерами. В реализации расширяемой архитектуры и потока данных для основывающегося на web сервиса построения диаграмм могут использоваться другие приложения, конфигурации, режимы передачи и команды, аналогичным образом использующие описанные здесь принципы.

На Фиг.5 представлен пример сетевого окружения, в котором могут быть реализованы варианты осуществления. Платформа, обеспечивающая расширяемую архитектуру и поток данных для основывающихся на web сервисе построения диаграмм, может быть реализована посредством программного обеспечения, исполняемого на одном или более серверах 574, таких как размещенный сервис. Платформа может сообщаться с клиентскими приложениями (например, браузерами) на отдельных вычислительных устройствах, таких как смартфон 573, ноутбук 572, настольный компьютер 571 (клиентские устройства), через сеть (сети) 570. Фронтальный web сервис может взаимодействовать с оконечными серверными средствами сервисов построения диаграмм, исполняемыми на отдельной группе серверов 576.

Как рассмотрено выше, для определения процессов для извлечения данных из источников данных, не включенных в стандартный перечень поддерживаемых источников данных оконечного сервиса могут использоваться пользовательские модули данных. Информация, связанная с основывающимися на web сервисах построения диаграмм, может храниться в одном или более хранилищах данных (например, хранилищах данных 579), которые могут управляться одним из серверов 576 или сервером 578 баз данных.

Сеть (сети) 570 может включать в себя любые топологии серверов, клиентов, провайдеров Интернет сервисов и коммуникационные среды. Система в соответствии с вариантами осуществления может иметь статическую или динамическую топологию. Сеть (сети) 570 может включать в себя защищенную сеть, такую как корпоративная сеть, незащищенную сеть, такую как открытая беспроводная сеть, или Интернет. Сеть (сети) 570 может также координировать взаимодействие по другим сетям, таким как PSTN или сети сотовой связи. Сеть (сети) 570 обеспечивает связь между узлами, описываемыми здесь. В качестве примера, а не ограничения, сеть (сети) 570 может включать в себя беспроводные среды, такие как акустическая, радиочастотная, инфракрасная и другие беспроводные среды.

Для реализации системы обеспечения расширяемых основывающихся на web сервисов построения диаграмм посредством пользовательских модулей данных могут применяться многие другие конфигурации вычислительных устройств, приложений, источников данных и систем распространения данных. Более того, сетевые окружения, рассмотренные на Фиг.5, служат только для иллюстративных целей. Варианты осуществления не ограничиваются примерами приложений, модулей или процессов.

Фиг.6 и связанные с ней рассуждения предназначены для обеспечения краткого общего описания подходящего вычислительного окружения, в котором могут быть реализованы варианты осуществления. Со ссылкой на Фиг.6 проиллюстрирована блок-схема примера вычислительного рабочего окружения для применения в соответствии с вариантами осуществления, такого как вычислительное устройство 600. В базовой конфигурации, вычислительное устройство 600 может быть сервером фронтального web сервиса, предоставляющего сервисы визуализации диаграмм на клиентские браузеры, и включать в себя по меньшей мере один процессор 602 и системную память 604. Вычислительное устройство 600 может также включать в себя множество процессоров, которые объединяются при исполнении программ. В зависимости от точной конфигурации и типа вычислительного устройства, системная память 604 может быть энергозависимой (такой как RAM), энергонезависимой (такой как ROM, флэш-память и т.д.) или некоторой их комбинацией. Системная память 604 обычно включает в себя операционную систему 605, подходящую для управления работой платформы, такую как операционная система WINDOWS® от корпорации Microsoft, Рэдмонд, Вашингтон. Системная память 604 может также включать в себя одно или более программных приложений, таких как программные модули 606 и сервис 622 диаграмм.

Сервис 622 диаграмм может расширять в плане источников данных возможность соединения, управления и агрегирования внешних данных, используя пользовательский модуль (модули) данных, как рассматривалось выше. Сервис 622 диаграмм может быть отдельными приложениями или интегральными модулями размещенного web сервиса, который обеспечивает сервисы визуализации диаграмм для клиентских приложений/устройств. Эта базовая конфигурация проиллюстрирована на Фиг.6 посредством компонентов, находящихся внутри пунктирной линии 608.

Вычислительное устройство 600 может иметь дополнительные признаки или функциональность. Например, вычислительное устройство 600 может также включать в себя дополнительные устройства хранения данных (сменные и/или несменные), такие как, например, магнитные диски, оптические диски или ленты. Такое дополнительное хранилище представлено на Фиг.6 посредством сменного диска 609 и несменного диска 610. Машиночитаемые носители информации могут включать в себя энергозависимые и энергонезависимые, сменные или несменные носители, реализованные любым способом или технологией хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Системная память 604, сменный носитель 609 и несменный носитель 610 - все являются примерами машиночитаемых носителей. Машиночитаемые носители включают в себя, но не в ограничительном смысле RAM, ROM, EEPROM, флэш-память или другие технологии памяти, CD-ROM, универсальные цифровые диски (DVD) или другие оптические накопители, накопители на магнитных кассетах, магнитных лентах, магнитных дисках или другие магнитные накопители, либо любые другие носители, которые могут быть использованы для хранения требуемой информации и доступ к которым может быть осуществлен с вычислительного устройства 600. Какой-либо такой машиночитаемый носитель может быть частью вычислительного устройства 600. Вычислительное устройство 600 может также иметь устройство (устройства) ввода 612, такие как клавиатура, мышь, перо, устройство голосового ввода, сенсорные устройства ввода и сравнимые устройства ввода. Может быть также включено устройство (устройства) вывода 64, такое как экран, динамики, принтер и другие типы устройств вывода. Эти устройства широко известны в технике и нет необходимости их здесь подробно обсуждать.

Вычислительное устройство 600 может также включать в себя коммуникационные соединения 616, которые позволяют устройству связываться с другими устройствами 618, как, например, через беспроводную сеть в распределенном вычислительном окружении, линию спутниковой связи, линию сотовой связи и сравнимые механизмы. Другие устройства 618 могут включать в себя вычислительное устройство (устройства), на котором исполняются коммуникационные приложения, серверы размещенных сервисов и сравнимые устройства. Коммуникационное соединение (соединения) 616 является одним из примеров коммуникационных сред. Коммуникационные среды могут включать в себя машиночитаемые инструкции, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущая или другой механизм передачи, и включают в себя любые среды доставки информации. Термин «модулированный информационный сигнал» означает сигнал, одна или более из характеристик которого установлена или изменяются таким образом, чтобы закодировать информацию в сигнале. Как пример, но не ограничение, коммуникационные среды включают в себя проводные среды, такие как проводные сети или прямые проводные соединения, и беспроводные среды, такие как акустическая, радиочастотная, инфракрасная и другие беспроводные среды.

Примерные варианты осуществления также включают в себя способы. Эти способы могут быть реализованы любым числом путей, включая структуры, описываемые в настоящем документе. Одним из таких путей является посредством машинных операций устройств типа, описываемого в настоящем документе.

Другим дополнительным путем является выполнение одной или более отдельных операций способа совместно с одним или более человеком-оператором, выполняющим некоторые из них. Эти люди-операторы не должны совместно работать друг с другом, но каждый из них должен работать совместно с машиной, которая выполняет часть программы.

На Фиг.7 представлена логическая структурная схема процесса 700 обеспечения сервисов построения диаграмм, доступных через web, в соответствии с вариантами осуществления. Процесс 700 может быть реализован как часть web сервиса, что рассматривалось со ссылкой на Фиг.3 и Фиг.4.

Процесс 700 начинается с операции 710, где от клиентского приложения, такого как браузер, принимают запрос на диаграмму. Запрашиваемая диаграмма может включать в себя ссылки на данные из внешних источников данных. В операции 720 запрос переправляется фронтальными серверными средствами web сервисом на оконечные серверные средства сервисов диаграмм. Оконечный сервис определяет информацию соединения данных для каждого источника данных и передает ее фронтальным серверным средствам web сервиса в операции 730. Фронтальные серверные средства web сервиса используют информацию соединения данных, принятую в операции 730, для сообщения с соответствующими модулями и их инициирования в операции 740.

Инициированные модули реализуют абстрактный класс, определяемый web сервисом, и возвращают запрошенные данные или исключение. Это принимается на фронтальных серверных средствах web сервиса в операции 750, которая переправляет данные в оконечные серверные средства сервиса диаграмм в операции 760 для дальнейшей обработки. В процессе операций 770 и 780 данные принимаются и обрабатываются на оконечном сервере (серверах), и визуальные элементы изображения диаграммы, зависящие от пользовательских модулей, оцениваются повторно. Визуальные элементы изображения диаграммы, зависящие от данных из собственных источников данных, могут формироваться оконечными серверными средствами в любой момент в течение процесса. Сформированное обновленное изображение диаграммы принимается из оконечных серверных средств в операции 790 и предоставляется в браузер конечного пользователя в операции 795.

Операции, включенные в процесс 700, служат только для иллюстративных целей. Основывающийся на web сервис визуализации диаграмм может быть реализован посредством похожих процессов с меньшим количеством этапов или с дополнительными этапами, а также как и с отличным порядком операций, используя принципы, рассматриваемые здесь.

Приведенные выше описание, примеры и данные обеспечивают полное описание производства и использования сочетания вариантов осуществления. Несмотря на то что изобретение было описан языком, характерным для структурных признаков и/или методологических действий, необходимо понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничивается такими характерными признаками или действиями, описанными выше. Скорее, характерные признаки и действия, описанные выше, раскрываются как пример форм реализации формулы изобретения и вариантов осуществления.

Класс G06F15/16 сочетание двух или более вычислительных машин, каждая из которых снабжена по меньшей мере арифметическим устройством, программным устройством и регистром, например для одновременной обработки нескольких программ

способ, сервер, компьютерная программа и компьютерный программный продукт для кэширования -  патент 2527736 (10.09.2014)
схема передачи данных с текстовой информацией -  патент 2527733 (10.09.2014)
визуализация подписок rss на календаре -  патент 2527194 (27.08.2014)
способ построения системы автоматического управления с взаимодействием через сеть ethernet -  патент 2526765 (27.08.2014)
устройство обработки информации, система обработки информации, способ обработки информации и носитель информации -  патент 2525746 (20.08.2014)
системы и способы для передачи файлов данных, независимо от платформы -  патент 2525743 (20.08.2014)
способ и система для загрузки файла для веб-приложения -  патент 2523216 (20.07.2014)
переносимость и совместимость медийных данных для различных платформ-адресатов -  патент 2523123 (20.07.2014)
способ использования мобильных телефонов -  патент 2520417 (27.06.2014)
способ построения системы автоматического управления с взаимодействием через сеть ethernet -  патент 2520397 (27.06.2014)

Класс G06F9/06 с хранимой программой, те с записью и хранением программы в устройствах памяти вычислительных машин 

виртуальная опциональная плата для использования в выполнении измерительных операций -  патент 2522034 (10.07.2014)
способ и аппаратура для обеспечения поддержки альтернативных вычислений в реконфигурируемых системах-на-кристалле -  патент 2519387 (10.06.2014)
система и способ обеспечения масштабируемых вычислений между портативным вычислительным устройством и стыковочной станцией портативного вычислительного устройства -  патент 2504827 (20.01.2014)
восстановление управления ресурсом обработки, который исполняет внешний контекст исполнения -  патент 2494446 (27.09.2013)
разделение режимов работы для изменений приложения -  патент 2490695 (20.08.2013)
адаптивная организация кэша для однокристальных мультипроцессоров -  патент 2484520 (10.06.2013)
агенты защиты и привилегированные режимы -  патент 2468418 (27.11.2012)
защита ресурсов операционной системы -  патент 2462747 (27.09.2012)
способ передачи сообщений в мобильной сотовой телекоммуникационной инфраструктуре, обслуживающей пользовательские заявки -  патент 2460118 (27.08.2012)
архитектура данных и управления на стороне терминала интеллектуальных карт -  патент 2452015 (27.05.2012)

Класс G06F9/44 устройства для выполнения специальных программ

устройство обработки информации, система обработки информации, способ обработки информации и носитель информации -  патент 2525746 (20.08.2014)
устройство воспроизведения, способ воспроизведения, устройство записи, способ записи, программа и структура данных -  патент 2525482 (20.08.2014)
моделирующий коап -  патент 2516703 (20.05.2014)
устройство и способ предоставления информации, терминальное устройство и способ обработки информации, и программа -  патент 2515717 (20.05.2014)
способ и устройство для классификации контента -  патент 2509352 (10.03.2014)
конфигурируемое разделение для параллельных данных -  патент 2503997 (10.01.2014)
кэширование и предоставление данных перед отправкой, относящихся к отправителю или получателю сообщения электронной почты -  патент 2501074 (10.12.2013)
протокол коммутации смеси мультимедийных данных для управления мультимедийными данными -  патент 2501070 (10.12.2013)
синхронизация жизненных циклов виртуальной машины и приложения -  патент 2498394 (10.11.2013)
устройство и способ автоматического построения приложений из спецификаций и из имеющихся в наличии компонентов, выбранных с помощью семантического анализа -  патент 2495480 (10.10.2013)
Наверх