УКАЗАНИЕ, ЗАДАНИЕ И ОБНАРУЖЕНИЕ ПАРАМЕТРОВ ДОКУМЕНТОВ ЭЛЕКТРОННЫХ ТАБЛИЦ
INDICATION, DEFINITION AND DETECTION OF ELECTRONIC TABLE DOCUMENT PARAMETERS

Область техники, к которой относится изобретение
Настоящее изобретение относится к указанию, заданию и обнаружению параметров документов, таких как электронные таблицы или книги.
Уровень техники
Программное обеспечение работы с электронными таблицами, например программное обеспечение MICROSOFT EXCEL, имеет функциональность, чтобы моделировать бумажные крупноформатные таблицы, также иногда называемые листами или книгами, в которых столбцы чисел математически обрабатываются, к примеру суммируются, умножаются и т.д., для формирования бюджетов, планов, моделей и других задач. В типичном варианте пользовательский интерфейс программного обеспечения работы с электронными таблицами отображается на экране как матрица строк и столбцов, пересечения которых называются "ячейками". Ячейки могут быть заполнены именами полей, числовыми значениями или формулами. Имена полей - это описательный текст, такой как "Rent (Арендная плата)" и "Gross Sales (Валовой объем продаж)". Значения - это фактические числовые данные, а формулы инструктируют электронной таблице выполнить конкретные вычисления на основе значений; например, формула SUM CELLS A5 TO A10 может инструктировать программному обеспечению электронной таблицы просуммировать ячейки, найденные в столбце A, строки 5-10. Формулы предоставляют взаимосвязи ячеек, и их легко создавать. Например, можно просто указать на ячейку и щелкнуть, а затем нажать клавишу (+, - и т.д.) любой арифметической операции, предназначенной для того, чтобы затрагивать ячейку. Например, создание формулы может быть "содержимое этой ячейки ПЛЮС содержимое этой ячейки, ДЕЛЕННОЕ НА содержимое следующей ячейки выше и слева".
После того как числа добавляются или изменяются, формулы, в общем, пересчитывают данные автоматически или при инициировании пользователем, к примеру, с помощью нажатия клавиши. Это может создать "волновой" эффект пересчета по нескольким ячейкам. Поскольку содержимое любой ячейки может быть вычислено с помощью или скопировано в любую другую ячейку, сумма одного столбца может быть использована в качестве детального элемента в другом столбце. Например, сумма из столбца статей расходов может переноситься на сводный столбец, показывающий все расходы. Если содержимое ячейки в столбце подробностей изменяется, общая сумма по столбцу изменяется, что затем копируется в сводный столбец, и суммарный итог изменяется.
Мощное средство для банкиров, биржевых маклеров, экономистов и т.д. этот волнообразный эффект позволяет пользователю создавать план или модель, подключать различные допущения о модели, т.е. изменять параметры и сразу видеть результат в итоге. Эта возможность "что если?" делает электронную таблицу необходимой для бюджетов, планов и других задач на основе уравнений. Таким образом, возможность "что если?" позволяет пользователям изменять базовые параметры, такие как процентная ставка математической модели, такой как прирост банковского счета во времени. "Что если?" аналогично позволяет пользователю изменять базовые факты, такие как начальный баланс банковского счета, формулы, взаимосвязывающие ячейки, такие как вычисление процента с или без формулы, которая составляет процент, и даже названия ячеек, чтобы адресовать различные математические сценарии.
Таким образом, в настоящее время любая информация, касающаяся ячеек электронной таблицы, может быть изменена пользователем, так что пользователь может видеть то, как это изменение разворачивается на всю модель. Тем не менее реальность заключается в том, что, в общем, после того как модель установлена, определенные аспекты модели не предназначены для изменения. Например, пользователю может быть известно (в вышеописанном примере прироста) то, что начальный баланс банковского счета составляет 2000 долларов, и этот факт не изменяется. Следовательно, может показаться лишней возможностью электронной таблицы то, что этот факт может быть изменен. Аналогично, ячейки с названиями полей, будучи изменяемыми, не изменяют результат вычисления по формуле прироста, т.е. помечен конкретный столбец или значение как "темп прироста" или "процентная ставка", неважно для базовых формул. Тем не менее кажется трудным проводить различия в рамках текущей модели электронной таблицы между ячейками, служащими в качестве параметров тонкой настройки при различных допущениях, и ячейками, служащими в качестве неизменяемых фиксаций или данных частей модели.
Это зачастую оптимально и привлекательно для создателя рассматриваемой электронной таблицы, поскольку создатель, в общем, запоминает то, какие релевантные параметры служат для точной настройки. Тем не менее как только сторонний пользователь, не связанный с ее создателем, просматривает электронную таблицу и модель, которую она представляет, этот сторонний пользователь должен выполнить сложную задачу по выяснению того, какие ячейки служат в качестве параметров, а какие нет. Этот сторонний пользователь может не знать, к примеру, что начальный баланс в 2000 долларов является данной частью модели. Более того, по мере того как математическая модель становится менее тривиальной, чем приведенный в данном документе пример прироста, даже создатель модели может иметь трудность в запоминании того, какие части документа являются параметрами, а какие нет.
Соответственно, в настоящее время пользователь электронной таблицы не может явно указывать ячейку электронной таблицы в качестве параметра. По аналогичной причине пользователь не может обнаруживать то, какие части электронной таблицы являются параметрами. И дополнительно, по аналогичным причинам пользователь не может изменять или задавать параметры как таковые, т.е. как отличающиеся от частей модели, которые не являются параметрами. Эти описанные недостатки, связанные с параметрами документов электронных таблиц, остаются неразрешенными в данной области техники.
Более того, исторически электронные таблицы являлись автономными приложениями, в которых пользователь находится рядом с локальным компьютером, имеющим процессор, приводящий в исполнение программное обеспечение для работы с электронными таблицами, установленное на локальном компьютере, что, например, может иметь место для любого из вышеописанных сценариев.
С появлением и быстрым распространением Интернета, тем не менее, выросло число пользователей компьютеров, привыкших к удобному осуществлению доступа практически к любому типу электронного документа практически из любого места. В частности, распространение всемирной паутины ("веб") и прикладных программ веб-браузеров сделало осуществление доступа ко многим типам документов, таких как текстовые и графические документы, очень удобным. Посредством прикладной программы веб-браузера пользователь может осуществлять доступ и просматривать множество типов электронных документов без необходимости в каком-либо дополнительном программном обеспечении, в том числе документы электронных таблиц.
Таким образом, например, пользователь может создавать документ электронной таблицы на локальной машине, "опубликовать" этот документ электронной таблицы на сервере, с которого любой авторизованный пользователь может просматривать документ электронной таблицы посредством веб-браузера. Когда подготовлена посредством рендеринга в веб-браузере, электронная таблица отображается способом, который практически аналогичен для электронной таблицы, когда она отображается посредством прикладной программы работы с электронными таблицами. Тем не менее, в настоящее время, аналогично вышеописанным недостаткам клиентских приложений пользователи не могут указывать ни одну ячейку в качестве параметров при создании документа электронной таблице для отображения также и в веб-браузере. По аналогичным причинам пользователи не могут обнаруживать то, какие параметры применяются к электронной таблице и не могут задавать или изменять эти параметры.
Соответственно, в настоящее время невозможно пользователям ограничивать функциональность в электронной таблице и делать редактируемыми только конкретные ячейки. Эти ячейки, по сути, сами являются параметрами "функций", которые могут быть изменены. Модель электронной таблицы представляет функцию или функции. Хотя сегодня существует способ ограничивать функциональность электронной таблицы и делать редактируемыми только конкретные ячейки, это является управляемым пользовательским интерфейсом (UI) ограничением функциональности, при котором нет механизма явно указывать конкретные ячейки в качестве параметров в электронной таблице или заставлять этот механизм отслеживать перемещение ячеек и изменение книги. Поскольку нет способа указывать ячейки в качестве параметров, также нет способа обратиться к электронной таблице, чтобы запросить доступные параметры для электронной таблицы. Более того, в случае имеющихся серверных продуктов работы с электронными таблицами до сих пор невозможно вообще редактировать ячейки. Эти и другие проблемы функциональности электронных таблиц, описанные в данном документе, оставляют неразрешимые проблемы в данной области техники.
Раскрытие изобретения
Технический результат, достигаемый при использовании заявленного изобретения, заключается в увеличении функциональности документов с электронными таблицами, а также повышении эффективности работы пользователя с ячейками документа с электронной таблицей.
Ввиду вышеописанного для автономных приложений работы с электронными таблицами и/или веб-служб электронных таблиц изобретение предоставляет возможность указывать, обнаруживать и задавать параметры документов электронных таблиц. В различных неограничивающих вариантах осуществления при создании документа электронных таблиц изобретение предоставляет возможность указывать конкретные ячейки или диапазоны ячеек как параметры для электронной таблицы. Помимо этого при просмотре в автономном приложении работы с электронными таблицами или посредством веб-службы изобретение предоставляет возможность обнаруживать эти параметры посредством пользовательского интерфейса или объектной модели. Более того, также предусмотрена возможность задавать или изменять эти параметры по одному за раз или пакетно и предоставлять изменения в модель вычислений. Соответственно, просматриваются ли они в автономном приложении работы с электронными таблицами или посредством веб-службы, влияние параметров, введенных пользователем, может быть вычислено и просмотрено незамедлительно. Изобретение также поддерживает возможность приостанавливать пересчет книги до тех пор, пока не будут получены все релевантные значения, например параметры.
Другие признаки настоящего изобретения описываются ниже.
Краткое описание чертежей
Указание, обнаружение и задание параметров для документов электронных таблиц, в соответствии с изобретением, дополнительно описано со ссылкой на прилагаемые чертежи, на которых:
фиг.1 - это блок-схема, представляющая примерное неограничивающее окружение вычислительной системы, в котором может быть реализовано настоящее изобретение;
фиг.2 - это блок-схема, представляющая примерное сетевое окружение, в котором может быть реализовано настоящее изобретение;
фиг.3A и 3B совместно иллюстрируют примерную клиентскую и серверную архитектуры для создания и просмотра документов электронных таблиц посредством автономных приложений и веб-служб рендеринга в соответствии с различными реализациями изобретения;
фиг.4A, 4B и 4C иллюстрируют примерные неограничивающие снимки экрана различных аспектов указания, обнаружения и задания параметров книги в соответствии с изобретением;
фиг.5A, 5B, 5C, 5D, 5E, 5F, 5G, 5H, 5I, 5J и 5K иллюстрируют примерную неограничивающую последовательность снимков экрана от создания книги и указания параметров до обнаружения списка параметров, ассоциативно связанных с документом, и рендеринга книги посредством веб-интерфейса, предоставляющего возможность редактирования параметров, изложенных в списке параметров в соответствии с изобретением;
фиг.6 иллюстрирует примерную блок-схему последовательности операций способа, показывающую то, как пользователь может указывать, обнаруживать и редактировать параметры в соответствии с изобретением; и
фиг.7A, 7B, 8A, 8B, 9A, 9B, 10A, 10B, 11A, 11B, 12A и 12B иллюстрируют примерные способы, которыми аналогичный интерфейсный код может быть предоставлен, чтобы достичь аналогичной или эквивалентной цели(ей) любого интерфейса(ов) в соответствии с изобретением.
Осуществление изобретения
Обзор
Как описано выше, будь то на основе автономного приложения работы с электронными таблицами или службы веб-сервера электронных таблиц, в настоящее время невозможно пользователям ограничивать функциональность модели в электронной таблице и делать редактируемыми только ячейки, представляющие параметры. Для автономных приложений работы с электронными таблицами, хотя есть способ ограничивать функциональность электронной таблицы и делать редактируемыми только конкретные ячейки, эта функциональность является UI-управляемой безотносительно параметров, указываемых как таковые. Также нет способа обращаться к электронной таблице, чтобы запрашивать доступные параметры для нее. Более того, в случае веб-серверов электронных таблиц, которые предоставляют рендеринг документов электронных таблиц, в настоящее время вообще невозможно редактировать ячейки. Соответственно, изобретение предоставляет возможность указывать конкретные ячейки электронных таблиц как параметры в ходе проектирования с тем, чтобы, когда документ просматривался либо посредством автономного приложения, либо веб-службы электронных таблиц, клиент или сервер, соответственно, мог обнаруживать то, какие ячейки являются параметрами, и предоставлять альтернативный UI или объектную модель (OM) для того, чтобы редактировать значения в этих ячейках, конкретно указанные как параметры.
Примерные сетевые и распределенные окружения
Ссылаясь теперь на чертежи, на которых одинаковые цифры представляют одинаковые элементы, описаны различные аспекты настоящего изобретения. В частности, фиг.1 и соответствующее обсуждение предназначены для того, чтобы предоставить краткое общее описание подходящего вычислительного окружения, в котором могут быть реализованы варианты осуществления изобретения. Хотя изобретение описано в общем контексте программных модулей, которые приводятся в исполнение на сервере и персональных вычислительных системах, специалисты в данной области техники должны принимать во внимание, что изобретение также может быть реализовано в сочетании с другими типами вычислительных систем и программных модулей.
Как правило, программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Кроме того, специалисты в данной области техники примут во внимание, что изобретение может быть применено на практике с другими конфигурациями вычислительных систем, включающими в себя карманные устройства, многопроцессорные системы, основанную на микропроцессорах или программируемую бытовую электронную аппаратуру, миникомпьютеры, универсальные компьютеры и т.п. Изобретение может быть реализовано на практике в распределенных вычислительных окружениях, в которых задачи выполняются удаленными обрабатывающими устройствами, которые связаны через сеть связи. В распределенном вычислительном окружении программные модули могут быть размещены на локальных и удаленных устройствах хранения данных.
Ссылаясь теперь на фиг.1, описывается иллюстративная вычислительная архитектура для компьютера 2, используемого в различных вариантах осуществления изобретения. Вычислительная архитектура, показанная на фиг.1, иллюстрирует традиционный настольный или портативный компьютер, включающий в себя центральный процессор (ЦП) 5, системное запоминающее устройство 7, включающее в себя оперативное запоминающее устройство (ОЗУ) 9 и постоянное запоминающее устройство (ПЗУ) 11, и системную шину 12, которая соединяет запоминающее устройство с ЦП 5. Базовая система ввода/вывода, содержащая основные процедуры, которые помогают передавать информацию между элементами в компьютере, например, при загрузке, сохраняется в ПЗУ 11. Компьютер 2 дополнительно включает в себя устройство 14 хранения большой емкости для сохранения операционной системы 16, прикладных программ и других программных модулей, которые подробнее описаны ниже.
Устройство 14 хранения большой емкости подключено к ЦП 5 посредством контроллера устройства хранения большой емкости (не показан), подключенного к шине 12. Устройство 14 хранения большой емкости и ассоциативно связанные с ним машиночитаемые носители предоставляют энергонезависимое хранение для компьютера 2. Хотя описание машиночитаемых носителей, содержащееся в данном документе, ссылается на устройство хранения большой емкости, такое как жесткий диск или накопитель CD-ROM, специалисты в данной области техники должны принимать во внимание, что могут быть доступны другие типы машиночитаемых носителей, к которым можно осуществлять доступ посредством компьютера 2.
В качестве примера, а не ограничения - машиночитаемые носители могут содержать компьютерные запоминающие носители и среду связи. Компьютерный носитель хранения включает в себя энергозависимый и энергонезависимый, съемный и несъемный носитель, реализованный любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерный носитель хранения включает в себя (но не только) память по технологии RAM, ROM, EPROM, EEPROM, флэш-память или память другой твердотельной технологии, CD-ROM, универсальный цифровой диск (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитную ленту, магнитный диск или другие магнитные устройства хранения, либо любой другой носитель, который можно использовать для хранения нужной информации и к которому можно обращаться с помощью компьютера 2.
Согласно различным вариантам осуществления изобретения компьютер 2 может работать в объединенном в сеть окружении, используя логические соединения с удаленными компьютерами по сети 18, например, Интернет. Компьютер 2 может подключаться к сети 18 по сетевому интерфейсному блоку 20, подключенному к шине 12. Следует принимать во внимание, что сетевой интерфейсный блок 20 может также использоваться для подключения к другим типам сетей и удаленным компьютерным системам. Компьютер 2 может также включать в себя контроллер 22 ввода/вывода для приема и обработки входного сигнала от некоторого количества других устройств, включая клавиатуру, мышь или электронное перо (не показаны на фиг.1). Также контроллер 22 ввода/вывода может обеспечивать вывод на экран дисплея, принтер или другой тип устройства вывода.
Как подробнее описано ниже, веб-страница 24 может содержать просматриваемое представление документа электронной таблицы. В частности, веб-страница 24 может включать в себя HTML и сценарии, которые, когда отображаются приложением 10 веб-браузера, предоставляют визуальное отображение для электронной таблицы. Более того, сценарии, включенные в веб-страницу 24, позволяют пользователю компьютера взаимодействовать с отображением, предоставляемым приложением 10 веб-браузера, и модифицировать электронную таблицу. Из визуального отображения, предоставляемого приложением 10 веб-браузера, пользователю также может быть разрешено запрашивать то, чтобы собственный файл электронной таблицы открывался в прикладной программе 26 работы с электронными таблицами. В ответ на этот запрос запускается приложение 26 работы с электронными таблицами, и собственный файл электронной таблицы, соответствующей электронной таблице, выражаемой посредством веб-страницы 24, загружается прикладной программой 26 работы с электронными таблицами. Прикладная программа 26 работы с электронными таблицами может содержать прикладную программу работы с электронными таблицами EXCEL от MICROSOFT CORPORATION или другую прикладную программу работы с электронными таблицами от другого производителя. Дополнительные сведения, касающиеся процесса просмотра и взаимодействия с электронной таблицей в контексте приложения 10 веб-браузера, далее предоставляются относительно фиг.2.
Ссылаясь теперь на фиг.2, описывается схема архитектуры сети, которая иллюстрирует операционное окружение для различных вариантов осуществления изобретения. Как показано на фиг.2, компьютер 2 подключен к сети 18. Также к сети 18 подключен сервер 30 приложений. Сервер 30 приложений содержит серверный компьютер, который может содержать некоторые или все традиционные вычислительные компоненты, описанные выше относительно фиг.1. Помимо этого сервер 30 приложений имеет такую функциональность, чтобы приводить в исполнение приложение веб-сервера для приема и ответа на запросы на документы, сохраненные или доступные для сервера 30 приложений. Более того, сервер 30 приложений имеет такую функциональность, чтобы принимать и отвечать на запросы на страницы, формируемые веб-приложением 34. Следует принимать во внимание, что веб-приложение 34 может содержать код, исполняемый на сервере 30 приложений, исполняемый код для обмена данными с другими компьютерами и может включать в себя шаблоны, графику, аудиофайлы и другое содержимое, известное специалистам в данной области техники.
Согласно одному аспекту изобретения веб-приложение 34 имеет такую функциональность, чтобы предоставлять интерфейс пользователю компьютера 2, чтобы взаимодействовать с электронной таблицей или книгой, доступной по сети 18. В частности, веб-приложение 34 использует серверный интерфейс программирования приложений (API) 38. Согласно данному варианту осуществления изобретения серверный API 38 имеет такую функциональность, чтобы обеспечивать связь с сервером 32 вычислений электронных таблиц. Сервер 32 вычислений электронных таблиц имеет такую функциональность, чтобы приводить в исполнение серверную программу 40 вычислений электронных таблиц. Серверная программа 40 вычислений электронных таблиц содержит исполняемую программу для извлечения и расчета электронных таблиц, таких как книга 44, сохраненная в базе данных 42. Следует принимать во внимание, что в вариантах осуществления изобретения, описанных в данном документе, серверная программа 40 вычислений электронных таблиц содержит сервер вычислений (CS, как сокращенно пишется в данном документе), такой как программа EXCEL CALCULATION SERVER от MICROSOFT CORPORATION. Тем не менее, могут быть использованы другие программы для вычисления электронной таблицы на серверном компьютере. Следует также принимать во внимание, что сервер 32 вычислений может включать в себя многие из традиционных аппаратных и программных компонентов, описанных выше относительно фиг.1.
Как подробнее описано ниже, компьютер 2 может передавать запрос в сервер 30 приложений, чтобы просматривать книгу 44 в контексте приложения 10 веб-браузера. В ответ на этот запрос веб-приложение 34 взаимодействует с сервером 32 вычислений посредством серверного API 38. В частности, веб-приложение 34 запрашивает от сервера 32 вычислений соответствующую книгу 44. Как подробнее описано ниже, в ответ на этот запрос серверная программа 40 вычислений извлекает книгу 44 и преобразует книгу 44 в формат документов электронных таблиц, такой как XML-формат документов. Как известно специалистам в данной области техники, XML-форматы содержат схему языка разметки для выражения содержимого как электронной таблицы. После того как серверная программа 40 вычислений электронных таблиц преобразовала запрошенную книгу 44 в формат документов электронных таблиц, отформатированный файл документа электронных таблиц возвращается в веб-приложение 34.
После того как веб-приложение 34 приняло от сервера 32 вычислений форматированное представление документа электронных таблиц книги 44, сервер 30 приложений использует механизм 36 веб-рендеринга электронных таблиц, чтобы преобразовать отформатированную электронную таблицу в представление электронной таблицы, которое может быть подготовлено к просмотру и отображению путем рендеринга приложением 10 веб-браузера. В частности, механизм 36 веб-рендеринга электронных таблиц преобразует отформатированный документ в документ, содержащий HTML, который может быть подготовлен путем рендеринга приложением 10 веб-браузера, чтобы отображать электронную таблицу. Кроме того, согласно вариантам осуществления изобретения, механизм 36 веб-рендеринга электронных таблиц допускает вывод HTML, который, когда подготавливается путем рендеринга приложением 10 веб-браузера, выглядит практически аналогично выводу приложения 26 работы с электронными таблицами, когда используется для того, чтобы просматривать ту же книгу 44. После того как механизм 36 веб-рендеринга электронных таблиц завершил рендеринг файла, он возвращается сервером 30 приложений в компьютер 2, где он может быть подготовлен путем рендеринга приложением 10 веб-браузера.
Как также подробнее описано ниже, механизм 36 веб-рендеринга электронных таблиц также может иметь такую функциональность, чтобы подготавливать посредством рендеринга в файл языка разметки один или более сценариев для предоставления возможности пользователю компьютера 2 взаимодействовать с электронной таблицей в контексте приложения 10 веб-браузера. Чтобы предоставить эту функциональность, механизм 36 веб-рендеринга электронных таблиц имеет такую функциональность, чтобы подготавливать посредством рендеринга код сценария, который приводится в исполнение приложением 10 веб-браузера, в возвращенную веб-страницу. Сценарии могут предоставлять функциональность, например, для предоставления возможности пользователю просматривать большую часть электронной таблицы, чтобы модифицировать сводные таблицы, содержащиеся в рамках электронной таблицы, загружать собственную версию электронной таблицы в приложение 26 работы с электронными таблицами и выполнять другие функции.
Чтобы обеспечить интерактивность с электронной таблицей в контексте приложения 10 веб-браузера, приложение 10 веб-браузера принимает пользовательский ввод. В ответ на определенные типы пользовательского ввода могут быть приведены в исполнение сценарии. Когда сценарий приведен в исполнение, ответ может быть передан в сервер 30 приложений, указывающий элемент в электронной таблице, на который было осуществлено воздействие, чтобы идентифицировать тип взаимодействия, которое осуществлено, и дополнительно идентифицировать веб-приложению 34 функцию, которая должна быть выполнена для соответствующего элемента. В ответ на прием этого запроса веб-приложение может сделать дополнительные запросы в сервер 32 вычислений на предмет обновленной книги 44. В ответ на них серверная программа 40 вычислений электронных таблиц может пересчитать книгу 44 в ответ на пользовательское действие и предоставить отформатированное представление документа электронной таблицы обновленной книги в веб-приложение 34. Механизм 36 веб-рендеринга электронных таблиц имеет такую функциональность, чтобы далее подготавливать посредством рендеринга обновленную книгу в формат, имеющий возможность рендеринга приложением 10 веб-браузера. Веб-приложение 34 далее имеет такую функциональность, чтобы передавать обновленную электронную таблицу в компьютер 2, где она может быть подготовлена путем рендеринга приложением 10 веб-браузера. Этот процесс может быть повторен любое число раз, поскольку пользователь взаимодействует с электронной таблицей из контекста приложения 10 веб-браузера. Когда пользователь завершил редактирование электронной таблицы в приложении 10 веб-браузера, все изменения, сделанные в электронной таблице, могут быть распространены посредством одного или более из веб-приложения 34, сервера 32 вычислений и в книге 44, сохраненной в базе 42 данных. Дополнительные сведения, касающиеся этих различных процессов, в том числе примерные реализации для указания, обнаружения и задания параметров книги описаны ниже.
Указание, обнаружение и задание параметров документов электронных таблиц
Ссылаясь теперь на фиг.3A и 3B, описывается иллюстративная процедура 300, показывающая процесс просмотра и взаимодействия с электронной таблицей из контекста прикладной программы веб-браузера. Следует принимать во внимание, что хотя варианты осуществления, описанные в данном документе, представлены в контексте прикладной программы веб-браузера, изобретение может быть использовано в других типах прикладных программ, которые поддерживают рендеринг документов на языке разметки. Например, варианты осуществления изобретения, описанные в данном документе, могут быть использованы в прикладной программе персонального информационного диспетчера, прикладной программе презентаций, прикладной программе построения чертежей или автоматизированного проектирования либо прикладной программе базы данных, чтобы предоставлять рендеринг и взаимодействие с документом без необходимости наличия специальной прикладной программы.
При прочтении описания представленных в данном документе процедур следует принимать во внимание, что логические операции различных вариантов осуществления настоящего изобретения реализованы (1) как последовательность машинореализованных действий или программных модулей, выполняющихся в вычислительной системе, и/или (2) как взаимосвязанные машинные логические схемы или модули схем в рамках вычислительной системы. Реализация зависит от требований к производительности вычислительной системы, реализующей изобретение. Следовательно, логические операции, проиллюстрированные на фиг.3 и 6 и составляющие варианты осуществления настоящего изобретения, описанные в данном документе, указываются ссылками в различных случаях как операции, структурные устройства, действия или модули. Специалистам в данной области техники следует принимать во внимание, что эти операции, структурные устройства, действия и модули могут быть реализованы в программном обеспечении, микропрограммном обеспечении, цифровой логике специального назначения и любом их сочетании без отступления от духа и области применения настоящего изобретения, изложенной в прилагаемой формуле изобретения.
Процедура 300 начинается на этапе 302, где клиентский компьютер 2 передает в сервер 30 приложений запрос на книгу 44. Запрос может быть передан посредством компьютера 2 в ответ на запрашивание пользователем через приложение 10 веб-браузера, чтобы книга 44 была открыта для просмотра и редактирования в приложении 10 веб-браузера. Следует принимать во внимание, что сервер 30 приложений может предоставлять веб-интерфейс 30 для предоставления возможности пользователю просматривать доступные книги и выбирать одну из книг для просмотра и редактирования.
От этапа 302 процедура 300 переходит к этапу 304, на котором сервер 30 приложений передает запрос в сервер 32 вычислений для книги 44. В частности, веб-приложение 34 может использовать серверный API 38 для того, чтобы обмениваться данными с серверной программой 40 вычислений электронных таблиц. Посредством этого пути связи может быть сделан запрос книги 44.
От этапа 304 процедура 300 переходит к этапу 306, на котором серверная программа 40 вычислений электронных таблиц извлекает запрошенную книгу 44 из базы 42 данных. Серверная программа 40 вычислений электронных таблиц после этого вычисляет содержимое книги 44 на этапе 308. Этап 308 вычисления может включать в себя вычисления, аналогичные выполняемым приложением 26 работы с электронными таблицами при пересчете книги 44.
После того как сервер 32 вычислений вычислил книгу 44, серверная программа 40 вычислений электронных таблиц также имеет такую функциональность, чтобы преобразовать вычисленную книгу в соответствующий формат, такой как XML-формат. Формат на основе XML (или разметки) содержит схему языка разметки для описания содержимого электронной таблицы. Следует принимать во внимание, что, согласно аспектам изобретения, только часть книги 44 преобразуется в XML-формат. Это дает возможность возврата в компьютер 2 только отображаемой части электронной таблицы. Дополнительные части могут быть запрошены через интерфейс, предоставляемый посредством веб-страницы 24. Альтернативно, вся книга 44 может быть преобразована в XML-формат и возвращена в сервер 30 приложений.
На этапе 312 сервер 32 вычислений отвечает на запрос от сервера 30 приложений с помощью книги в XML-формате. Процедура 300 далее переходит к этапу 314, на котором механизм 36 веб-рендеринга электронных таблиц, приводящийся в исполнение на сервере 30 приложений, преобразует книгу в XML-формате в формат, который может быть подготовлен посредством рендеринга и отображен приложением 10 веб-браузера. В частности, механизм 36 веб-рендеринга преобразует XML-книгу в веб-страницу 24, которая включает в себя и HTML, и сценарии. HTML используется веб-браузером 10 для того, чтобы отображать содержимое запрошенной книги 44. Сценарии используются приложением 10 веб-браузера для того, чтобы предоставлять возможность пользователю взаимодействовать с подготовленной посредством рендеринга версией электронной таблицы в контексте приложения 10 веб-браузера.
От этапа 314 процедура 300 переходит к этапу 316, на котором сервер приложений отвечает на исходный запрос от компьютера 2 для книги 44. В частности, сервер 30 приложений передает в компьютер 2 веб-страницу 24, которая включает в себя HTML и сценарии, требуемые для того, чтобы просматривать и взаимодействовать с книгой 44 в контексте приложения 10 веб-браузера.
После того как компьютер 2 принял веб-страницу 24, приложение 10 веб-браузера имеет такую функциональность, чтобы подготавливать посредством рендеринга содержимое веб-страницы 24. В частности, HTML подготавливается к просмотру для того, чтобы предоставлять представление книги 44, которое практически аналогично представлению, которое должно быть предоставлено приложением 26 работы с электронными таблицами, если книга 44 открыта с помощью приложения 26 работы с электронными таблицами. Более того, приложение 10 веб-браузера имеет такую функциональность, чтобы подготавливать посредством рендеринга сценарии, с тем чтобы пользователь компьютера 2 мог взаимодействовать с электронной таблицей в контексте приложения 10 веб-браузера.
Обращаясь теперь к фиг.3B, описывается иллюстративная процедура 320, которая показывает различные аспекты изобретения для предоставления возможности пользователю взаимодействовать с книгой, подготовленной посредством рендеринга в приложения 10 веб-браузера. Процедура 320 начинается на этапе 322, на котором содержимое веб-страницы 24, включающее в себя HTML, необходимый для отображения веб-страницы, и сценарии, необходимые для предоставления возможности пользователю взаимодействовать с электронной таблицей, подготавливаются посредством рендеринга. После этого процедура 320 переходит к этапу 324, на котором приложение 10 веб-браузера принимает пользовательский ввод для взаимодействия с отображаемой электронной таблицей. Например, приложение 10 веб-браузера может принимать из пользовательского ввода модификацию содержимого сводной таблицы, запрашивание того, чтобы была отображена другая таблица в книге, для сохранения всех модификаций в электронной таблице или выполнения других функций. Следует принимать во внимание, что один или более сценариев могут быть приведены в исполнение приложением 10 веб-браузера, чтобы принимать ввод и осуществлять связь с сервером 30 приложений, необходимую для того, чтобы инструктировать выполнение взаимодействия.
После того как от пользователя принят ввод на этапе 324, соответствующий сценарий передает данные в сервер 30 приложений, идентифицирующие конкретное действие, предпринимаемое пользователем на этапе 326. На этапе 328 сервер 30 приложений определяет конкретное действие, предпринимаемое пользователем. После того как запрошенное действие идентифицировано, сервер 30 приложений передает в сервер 32 вычислений команду, запрашивающую, чтобы конкретное действие было выполнено для конкретной книги. Как описано выше, сервер 30 приложений обменивается данными с сервером 32 вычислений посредством серверного API 38.
В ответ на прием запроса от сервера 30 приложений выполнить команду для текущей книги серверная программа 40 вычислений электронных таблиц выполняет запрошенное действие для книги 44. Например, если пользователь запросил то, чтобы элементы в сводной таблице были перекомпонованы, сервер 40 вычислений электронных таблиц осуществляет фактическую перекомпоновку элементов. После того как действие выполнено, серверная программа 40 вычислений электронных таблиц пересчитывает книгу на этапе 332. Пересчитанная книга отражает изменения, сделанные пользователем в текущей открытой книге приложением 10 веб-браузера.
После того как книга 44 пересчитана, на этапе 334 сервер 32 вычислений преобразует пересчитанную книгу в XML-формат. Этот процесс описан выше со ссылкой на фиг.3A. После того как пересчитанная книга преобразована в XML-формат, пересчитанная книга передается от сервера 32 вычислений в сервер 30 приложений. В сервере 30 приложений механизм 36 веб-рендеринга электронных таблиц преобразует XML-версию пересчитанной электронной таблицы в формат, имеющий возможность рендеринга приложением 10 веб-браузера. Подготавливаемая посредством рендеринга версия пересчитанной электронной таблицы затем передается в приложение 10 веб-браузера, где она может быть подготовлена посредством рендеринга и отображена пользователю. Этот процесс описан выше со ссылкой на фиг.3A и этапы 312-318. Примерные неограничивающие сведения о реализации процессов указания, задания, редактирования и обнаружения параметров книги, в соответствии с изобретением, подробнее описываются ниже.
Указание, задание, редактирование и обнаружение параметров книги
Как описано, в соответствии с изобретением, автор книги может указывать ячейки и/или фильтры в качестве редактируемых параметров. Сервер, к примеру сервер приложений работы с электронными таблицами, который, помимо прочего, подготавливает посредством рендеринга документы электронных таблиц для отображения посредством веб-браузера, затем может раскрывать редактируемые параметры посредством пользовательского интерфейса (UI) и посредством интерфейса прикладного программирования (API) веб-служб. В одном аспекте изобретения клиент электронных таблиц может быть использован для того, чтобы создавать приемы работы для параметров книги посредством предоставления возможности указания ячеек и фильтров в качестве параметров.
Как упоминалось в разделе "Уровень техники", текущий сервер приложений не предоставляет совмещенное редактирование значений ячеек, тем не менее имеется множество пользовательских сценариев, для которых возможность изменять конкретный поднабор значений ячеек является существенной. Это включает в себя, например, тщательно проработанные модели вычислений (к примеру, калькуляторы ипотечных кредитов) и анализ "что если" (к примеру, изменение темпа прироста ежегодного дохода). Этот признак может быть использован и конечными пользователями, желающими изменить значения как часть приемов подготовки посредством рендеринга на сервере веб-приложений, так и API веб-служб для того, чтобы обнаруживать, извлекать и задавать/редактировать конкретные значения параметров.
Клиентское приложение работы с электронными таблицами, в соответствии с изобретением, предоставляет пользователю способ(ы) указывать то, какие ячейки являются параметрами. После этого пользователи могут обнаруживать то, какие ячейки являются параметрами, и редактировать соответствующие ячейки. Хотя в одном варианте осуществления изобретения только сервер раскрывает параметры (при этом функциональность указания параметров клиента становится частью публикации книг для сервера), настоящее изобретение предполагает альтернативные варианты осуществления, в которых клиентское приложение работы с электронными таблицами также раскрывает параметры, т.е. предоставляет обнаружение, извлечение и задание параметров.
В данном документе описаны методики, позволяющие авторам книги задавать конкретные ячейки в качестве параметров в клиенте электронных таблиц. Сервер приложений, в свою очередь, поддерживает изменение значений в этих ячейках посредством либо UI, либо OM. Эта функциональность также может поддерживаться посредством клиента электронных таблиц.
Предусмотрено множество способов раскрывать параметры пользователю, как могут принимать во внимание специалисты в данной области техники. Например, в одном примерном неограничивающем варианте осуществления могут быть использованы панели мониторинга. Например, современные панели мониторинга, такие как панели мониторинга интеллектуальных корпоративных ресурсов (BI), построены с помощью различных веб-модулей подготовки данных посредством рендеринга (к примеру, Office Web Components (OWC) из SQL Server Reporting Services), и желательно фильтровать все различные представления данных синхронно. Это может быть достигнуто посредством связывания всех веб-модулей в одно значение параметра.
Книги электронных таблиц, таким образом, могут быть встроены в эти панели мониторинга, в соответствии с изобретением, так что книги могут выводить аналогичные фильтры и параметры уровня страниц, предоставляя следующие сценарии, каждый из которых является примерным и неограничивающим: (1) предоставление конечным пользователям с UI и OM в клиенте электронных таблиц для задания конкретных ячеек как параметров, (2) постоянное хранение информации параметров в файле электронных таблиц, так чтобы сервер приложений мог раскрывать параметры посредством UI и API веб-служб, (3) разработка UI с признаками и точек входа, чтобы сделать понятным для конечных пользователей то, что признак предназначен для сценариев клиент/серверных электронных таблиц и (4) предоставление сценариев серверов приложений, включающих в себя создание панелей мониторинга BI с помощью веб-модуля фильтра (или слайсера) для управления параметрами книги согласно соответствующему обмену данными между модулями системы. В одном аспекте, таким образом, изобретение предоставляет элемент управления слайсера, который предоставляет значения параметров.
Например, предположим, что компания собирает данные и создает отчеты в виде электронных таблиц на основе данных пунктов продажи для производителей, аналитиков Уолл-стрит, брокеров и розничных продавцов, и эти отчеты распространяются посредством веб-интерфейса как HTML-файлы. Как HTML-файлы эти отчеты являются полностью статическими, т.е. нет способа отфильтровать данные или проанализировать данные в отчете, чтобы найти ответ на вопрос бизнеса. По этой причине компания формирует более одного миллиона таких отчетов для своих клиентов с тем, чтобы если клиент захочет практически любой представимый отчет, он будет доступен. Результат этот заключается в том, что только 3-5% отчетов, которые компании, такие как эта, формируют, используются на постоянной основе, и когда требуются незначительные модификации, которые эти компании не предвидели, аналитик должен создать и выполнить новый отчет вручную, что является дорогим и отнимающим много времени процессом.
С помощью сервера приложений и веб-модулей электронных таблиц по изобретению эти компании имеют возможность существенно снижать число отчетов, которые формируются для их клиентов, что экономит деньги компании и упрощает для клиентов нахождение информации. Вместо создания всех вообразимых отчетов, которые может захотеть клиент, с помощью изобретения компании могут создать базовый набор отчетов, которые извлекают данные из корректных источников данных в книги электронных таблиц на сервере. Эти отчеты являются базовыми отчетами, такими как "YTD Sales (Продажи с начала года)", которые клиенты смогут легко понять, вместо множества сегодняшних отчетов ("YTD Sales NW" "SW", "NE", "SE", "By Product (По продукту)", "By Product NW", "By Product NE", "By Product SW", "By Product SE" и т.д.). С помощью простой параметризации клиенты могут настроить отчеты под себя и отфильтровать их по различным измерениям, чтобы видеть информацию, которая интересует их более всего. Дополнительно, если клиент хочет видеть детализацию конкретного отчета или "Top 10 (10 ведущих позиций)" для конкретной линейки продуктов, клиент сможет сделать это сразу в рамках существующего отчета и не должен запрашивать того, чтобы компанией был сформирован новый отчет.
Для другого примерного использования изобретения Джон создает отчеты по еженедельным продажам для высшего руководства. Сегодня Джон имеет книгу с подключениями к внешним данным, и каждую неделю он обновляет данные, а затем делает несколько снимков экрана книги, отфильтрованной для различных регионов, в которых они работают. После этого он вставляет эти изображения в электронную почту и отправляет сводную почту руководству.
Тем не менее, после установления программного обеспечения электронных таблиц, согласно изобретению Джон переделывает свою книгу, чтобы сделать ее еще более удобочитаемой. Он также имеет одну ячейку, которая сообщает регион, в верхней части книги. В ходе действия опубликования на сервере электронных таблиц Джон задает определенные ячейки как параметры и принимает решение задать ячейку региона в качестве параметра книги. Когда книга загружается на сервер приложений, его руководство видит, что появилась новая область задач, которая содержит редактируемое поле региона. Менеджеры могут ввести различные регионы, щелкнуть Apply (Применить) и просмотреть данные и книгу, обновленную для региона, который они ввели.
В качестве еще одного примера - Саманта конструирует панель мониторинга для старших вице-президентов своей организации и хочет, чтобы она отображала ключевые показатели эффективности (KPI), графики и листы данных, все из которых имеют простой и удобный в управлении элемент фильтрации. Саманта настраивает страницу для нескольких серверов приложений, некоторых KPI и элемента управления фильтрации (вертикального). Затем Саманта переходит далее и назначает элемент управления фильтрацией, чтобы перемещать значения фильтра для названия проекта в различные части на странице. Это дает возможность менеджерам осуществлять фильтрацию по различным проектам и видеть обновление всех частей на панели мониторинга соответственно.
В одном неограничивающем варианте осуществления только поднабор ячеек может быть выбран в качестве параметров. То, как они выбираются, когда и куда сохраняется список доступных параметров, и OM, связанные с признаком параметров, подробнее описаны ниже.
В одном варианте осуществления, в диалоге, определенном пользователем, публикующего документ, UI для задания параметров книги включает в себя два диалога: диалог, показывающий существующие заданные параметры в книге, и диалог со списком доступных ссылок имен, чтобы выбирать параметры (при этом не все ячейки могут быть выбраны в качестве параметров, хотя, как упоминалось выше, это необязательно).
Диалог инициируется как часть диалогов настроек сервера публикации/администрирования и может иметь любую подходящую форму, такую как диалог с вкладками, существующие диалоги сортировки (имеющие возможности упорядочения) и т.д.
При вводе текущие параметры, заданные в текущей книге, загружаются в список. Если нет заданных параметров в текущей книге, список пустой. В любом случае параметры в списке не выбираются при первом входе в диалог.
В одной примерной неограничивающей реализации список параметров включает в себя одно или более из следующего: (A) Name (Имя): имя взятого параметра (по умолчанию, список может быть отсортирован по имени в порядке возрастания (A-Z)), (B) Value (Значение): возвращает строковую константу, на текущее значение которой ссылается имя, или код ошибки, (C) Comment (Комментарий): любые комментарии, связанные с именем, и (D) Refers to (Ссылается на): на что в данный момент ссылается имя, на котором основан параметр.
В одном неограничивающем варианте осуществления список параметров выступает в качестве стандартного элемента управления списком. Например, можно выбрать один или более параметров в списке посредством простого щелчка параметра (в любом месте строки), и доступно несколько вариантов выбора, аналогично приемам работы с обычным элементом управления списком при помощи мыши и клавиатуры. Например, параметр может быть выбран (к примеру, с помощью обычного указателя мыши или клавиш стрелок), параметр может быть выбран помимо любых других уже выбранных параметров, параметр может быть выбран помимо любых других уже выбранных параметров плюс параметров в промежутке между выбором и предыдущим выбором, и параметры могут быть выбраны посредством щелчка и перетаскивания указателем мыши.
В другом неограничивающем варианте осуществления кнопка или функция Add (Добавить) проверяет, есть ли, по меньшей мере, одно допустимое имя, и запускает диалог добавления параметров, а кнопка Delete (Удалить) позволяет пользователю удалять один или более параметров, которые ранее добавлены. Аналогично, нажатие кнопки Delete, когда один или более параметров выбраны, инициирует удаление этих параметров (из списка и при сохранении файла). При возврате в диалог добавления параметров в одном примерном неограничивающем варианте осуществления проверенные параметры находятся внизу списка, отсортированного в том же порядке, в котором они отображаются в диалоге добавления параметров.
В одном примерном неограничивающем варианте осуществления пользователь может упорядочивать параметры посредством использования кнопок стрелок вверх и вниз, а в другом примерном неограничивающем варианте осуществления - посредством перетаскивания, если параметры могут быть реализованы в качестве средства упорядочивания параметров.
В отношении сохранения параметров любое известное средство сохранения и ассоциативного связывания указанных параметров с книгой может быть использовано. Для примерной неограничивающей реализации параметры книги могут быть сохранены в свойстве документа, например свойстве скрытого документа, и/или в файле книги. Первое разрешает простое извлечение параметров сервером приложений и предоставляет возможность для быстрого извлечения настройки панелей мониторинга с элементами управления слайсера и дополнительными решениями. Параметры книги могут быть сохранены при сохранении или публикации файла.
В одном примерном неограничивающем варианте осуществления информация, которая сохранена для каждого параметра, такая же как и информация, вводимая для каждого пользователя, хотя дополнительная информация также может быть сохранена, т.е. форматы сохранения параметров являются расширяемыми в соответствии с изобретением. Следующие свойства также могут быть сохранены для каждого параметра: заданное имя и порядок, в котором имена отображаются в UI либо OM сервера приложений.
В примерных неограничивающих вариантах осуществления коллекция ServerParameters (Параметры сервера) параметров сервера на уровне книги может включать в себя нижеследующее из Таблицы I, а объект ServerParameter (Параметр сервера) может включать в себя членов ниже в Таблице II:
Таблица IКоллекция ServerParameters параметров сервера
Add
Способ
Name, Order
Добавляет параметры в коллекцию. Добавление возвращает ошибку, если выбранное имя не является допустимым параметром.
Item
Объект
iParameters
Пользователь указывает число, и он возвращает соответствующий параметр.
Count
Свойство
Свойство только для чтения, которое возвращает число параметров.
Delete
Способ
Name
Удаляет параметр из коллекции. Возвращает ошибку, если нет параметров в коллекции по этому имени.
Clear
Способ
Удаляет все параметры.
Order
Таблица IIЧлены объекта ServerParameter
Name
Свойство
Имя параметра.
Order
Свойство
Порядок параметра.
Delete
Способ
Удаляет этот параметр из набора.
Редактирование содержимого ячейки сервером приложений
Данный раздел, в общем, описывает возможность пользователя редактировать содержимое ячейки сервером приложения либо с помощью фильтра SharePoint Portal Server (SPS), либо с помощью собственной области задач параметров книг сервера приложения. Тем не менее специалисты в данной области техники должны принимать во внимание, что альтернативные известные механизмы редактирования содержимого ячейки могут быть использованы в соответствии с изобретением, и что следующие сведения по реализации представлены для иллюстративных целей.
Для какого-нибудь фонового режима SPS используется для некоторых задач, выполняемых только сервером электронных таблиц. Сервер приложений, как описано в примерных вариантах осуществления данного документа, является веб-модулем, который, помимо прочего, подготавливает посредством рендеринга книги электронных таблиц, например, как динамический язык разметки гипертекста (DHTML). Сервер вычислений (CS) - это механизм вычислений, и он, в общем, содержит прикладные компоненты сервера электронных таблиц. Как описано в данном документе, веб-клиент (WFE) включает в себя интерфейсные компоненты сервера электронных таблиц, в том числе: сервер приложений, интерфейсы прикладного программирования (API) и прокси.
Как описано в предыдущем разделе, параметры книги, в соответствии с изобретением, включают в себя способ для автора книги выбирать поднабор ячеек в книге и помечать их как редактируемые пользователем. Эти ячейки затем могут быть сохранены в свойствах документа книги и раскрыты конечному пользователю либо посредством области задач в самом сервере приложений, либо посредством SPS-фильтра. Данный раздел описывает множество неограничивающих реализаций для этих решений.
Фиг.4A иллюстрирует примерный неограничивающий снимок экрана UI, показывающий сервер приложений с параметрами в соответствии с изобретением. С помощью изобретения пользователи могут задавать параметры при помощи сервера приложений без необходимости загрузки компонентов.
В этом отношении изобретение поддерживает множество сценариев параметризации, с тем чтобы пользователи могли выполнять стандартные задачи без необходимости возвращаться в клиентское программное обеспечение для работы с электронными таблицами. Например, параметризация работает только с интерфейсом SPS-слайсера, как описано в данном документе. В этом отношении изобретение позволяет пользователям получать параметры вне сервера приложений, чтобы управлять другими веб-модулями.
Для некоторых примерных неограничивающих сценариев, которые могут быть осуществлены в соответствии с сервером приложений по изобретению, рассматривается задача составления книги с редактируемыми ячейками. Например, предположим, что Джон создает отчеты по еженедельным продажам для высшего руководства. Сегодня Джон имеет книгу с подключениями к внешним данным, и каждую неделю он обновляет данные, а затем делает несколько снимков экрана книги, отфильтрованной для различных регионов, в которых они работают. После этого он вставляет эти изображения в электронную почту и отправляет сводную почту руководству.
Тем не менее после установки соответствующего программного обеспечения Джон переходит к разделу Sheet Data (Данные листа) и переделывает книгу с помощью Sheet Data, чтобы сделать ее еще более удобочитаемой. Он также имеет одну ячейку, которая сообщает регион, в верхней части книги. В ходе опубликования на сервере электронных таблиц Джон понимает, что он может задать определенные ячейки как параметры посредством изобретения, и принимает решение задать ячейку региона в качестве параметра книги. Когда книга загружается на сервер приложений, Джон с волнением видит, что появилась новая область задач, которая содержит редактируемое поле региона. Джон вводит "South" и щелкает Apply, а затем наблюдает, как сервер приложения обновляется с данными, полностью новыми для южного региона. Теперь Джону больше не нужно отправлять эти ежедневные почтовые сообщения с отчетами о состоянии.
В другом сценарии изобретение предоставляет возможность конструирования панели мониторинга. В качестве еще одного примера, Сэм конструирует панель мониторинга для старших вице-президентов своей организации и хочет, чтобы она отображала ключевые показатели эффективности (KPI), графики и листы данных, все из которых имеют простой и удобный в управлении элемент фильтрации. В соответствии с настоящим изобретением Сэм настраивает страницу с несколькими "открытыми" серверами приложений, некоторыми KPI и элемента управления SPS-слайсера. Затем Сэм переходит далее и назначает элемент управления слайсером, чтобы принять значения фильтра из различных частей на странице и назначает каждое из них одному элементу управления Report (Отчет).
Теперь, когда вице-президент переходит на страницу панели мониторинга и выбирает отчет из списка, все листы, графики и показатели KPI обновляются, чтобы отразить данные в этом отчете, поскольку Сэм задала все книги фильтроваться на основе выбранного отчета.
В соответствии с примерными неограничивающими реализациями изобретения параметры книги могут быть сохранены как свойства документа, и CS включает в себя возможность применять изменения к свойствам книги посредством частного API для CS.
В одном варианте осуществления изобретение предоставляет интерфейс, который обеспечивает доступ посредством преобразователя к параметру и значениям, заданным для него в слайсере, каждый раз, когда пользователь представляет страницу.
Чтобы установить соединение между SPS-слайсером и элементом управления по изобретению, в одном примерном неограничивающем варианте осуществления изобретения пользователь переходит в режим проектирования для страницы, на которой включен сервер приложений, и начинает перетаскивание элементов управления фильтрацией в Filter web part zone (Зона веб-модуля фильтрации). Пользователь затем может щелкнуть стрелку справа сверху в элементе управления и в этом раскрывающемся списке он выбирает Connections (Соединения), и всплывающее меню из соединения включает в себя параметр Get Filter Values From (Получить значения фильтрации из), который снова инструктирует переход к {SpreadsheetWebRenderer}.
После того как пользователь выбирает сервер приложений, ему предлагается выбрать из списка неназначенных параметров, который раскрывает сервер приложений, или, если он попытался установить соединение из элемента управления списком из нескольких значений, он принимает сообщение, указывающее то, что сервер приложений не раскрывает никаких параметров с несколькими значениями, и он не сможет установить соединение с сервером приложений с помощью этого элемента управления фильтрацией. При условии, что он пытается установить соединение из элемента управления с одним значением, пользователь затем выбирает параметр из списка, и элемент управления после этого считается установленным. В одном неограничивающем варианте осуществления, если параметр соединен с элементом управления фильтров, и область задач параметров книги видима, он становится отключенным в области задач.
В одном неограничивающем варианте осуществления параметр одной ячейки допускает одно значение от слайсера, и именно поэтому для каждого параметра изобретение передает флаг SupportsSingleValue (Поддерживает одно значение) в слайсер. Это означает, что слайсер разрешает пользователю устанавливать соединения только от элементов фильтра с одним значением к параметрам одной ячейки.
В одном примерном неограничивающем варианте осуществления значения отправляются в CS как пары имя-значение, так что не все параметры должны быть отправлены в CS, и их порядок не важен. Соответствующая обработка ошибок может быть применена, в соответствии с изобретением, в случае некорректной работы.
В примерных неограничивающих вариантах осуществления изобретения панель разворачивания/сворачивания предусмотрена сбоку, к примеру находится слева или справа от области задач параметров книги, но слева или справа от листа (соответственно), и дает возможность пользователю скрывать или показывать область задач. Панель инструментов может быть размещена над панелью разворачивания/сворачивания и областью задач параметров книги.
Панель сворачивания/разворачивания включает в себя изображение, которое зависит от того, свернута или развернута область задач, и изображение центрировано вертикально и горизонтально. В примерных неограничивающих вариантах осуществления изображения используются следующим образом.
Щелчок панели сворачивания/разворачивания, когда область задач видима, скрывает ее и отодвигает панель сворачивания/разворачивания на правый дальний край (или левый край в режиме справа-налево (RTL)) сервера приложений, и сетка и панель навигации листа увеличиваются по ширине с ней. Щелчок панели сворачивания/разворачивания, когда область задач скрыта, раскрывает ее и выдвигает панель сворачивания/разворачивания вместе с ней, а также уменьшает ширину сетки и панели навигации листа.
Пользователь также должен иметь возможность переходить к панели сворачивания/разворачивания и управлять ей с помощью клавиши ENTER.
Состояние области задач, будь она свернута или развернута, сохраняется в ходе обратной отправки в CS. Таким образом, если пользователь сворачивает область задач и затем выполняет действие, которое требует обратной отправки в CS, когда страница перезагружается, область задач должна остаться свернутой.
В одном примерном неограничивающем варианте осуществления область задач параметров книги запускается видимой и справа (слева в RTL-режиме) от всех элементов управления в сервере приложений, за исключением панели инструментов (при этом она размещается ниже).
Параметры, чтобы отображать, и что отображать в соответствующем текстовом поле, передаются на сервер приложений посредством CS. В различных неограничивающих вариантах осуществления в теле области задач параметров книги находятся именованные названия диапазонов и текстовые поля, в которые пользователь может вводить данные.
Для иллюстративных целей примерная реализация UI для области задач показана на фиг.4B. Когда пользователь первый раз открывает сервер приложений, если имеются параметры для этой книги, и область задач параметров книги не отключена посредством свойств веб-модуля, то область задач параметров книги становится видимой. В одном варианте осуществления параметры отображаются в том же порядке в области задач параметров книги, в котором они передаются на сервер приложений посредством CS.
В других вариантах осуществления свойство описания показано как подсказка TTIP, когда пользователь наводит указатель мыши на значок текстового поля, как показано на фиг.4C. Используемый значок может быть таким же, что и используется в электронной таблице, чтобы указывать пользователю то, что имеется комментарий для этой ячейки. Поскольку свойство Description является необязательным, если значение Description не предоставлено, то этот значок не показывается, и подсказка не показывается. Курсор мыши необязательно может оставаться указателем, когда находится над этим изображением.
Если имеется больше параметров, чем может уместиться в области задач, в одном варианте осуществления отображается полоса прокрутки, которая охватывает только секцию области задач, которая содержит параметры и их значения. Если пользователь просматривает книгу с параметрами на странице средства просмотра, область задач видима. Пользователь может скрывать или показывать область задач с помощью панели сворачивания/разворачивания. Строка информации имеет два состояния: включена, когда страница находится в режиме проектирования, и другое, - когда страница находится в режиме просмотра.
Другой тип параметра, который может поддерживаться посредством настоящего изобретения, - это страничное поле PivotTable (Сводная таблица), которое может допускать несколько значений.
Функционирование сервера вычислений и взаимодействие с сервером приложений
Как описано выше, в соответствии с изобретением, сервер электронных таблиц включает в себя возможность для книг быть параметризованными. Вызов приложений сервером приложений включает в себя возможность запрашивать список параметров и задавать их значения. Как описано выше, сервер приложений включает в себя механизм веб-рендеринга для рендеринга книг через веб. В этом отношении параметры позволяют авторам книги создавать одну электронную таблицу шаблонов, которая может быстро изменять свое содержимое на основе значения одного или нескольких параметров.
Например, автор книги конструирует калькулятор ипотечного кредита и создает параметры процентной ставки, платежей в счет погашения основной суммы и первоначального взноса. Пользователь применяет параметры, и ячейки вычисляются и возвращают соответствующие результаты. Параметры также позволяют серверу приложений принимать участие в сценариях панелей мониторинга интеллектуальных корпоративных ресурсов (BI), в которых одна веб-страница состоит из нескольких веб-модулей, которые все могут быть синхронизированы на основе значения слайсера.
Панель мониторинга BI - это средство для того, чтобы передавать действие состояния и управления, и зачастую она является комбинацией количественной информации, представляемой как отчеты, диаграммы, показатели и ключевые показатели эффективности, и количественного анализа, представляемого как комментарии автора панели мониторинга по предоставляемым количественным данным.
Параметр книги - это переменная, ассоциативно связанная с книгой, которая может быть обнаружена и задана посредством вызова сервера приложений. Внутренне параметр - это именованный диапазон с одной ячейкой, который "помечен" как параметр.
Одна из возможностей панелей мониторинга состоит в том, что они могут быть фильтрованы или ограничены на основе значения параметра (с помощью веб-модуля слайсера). Для книг, которые подготавливаются посредством рендеринга в сервере приложений, который является частью панели мониторинга BI, сервер приложений должен "обновиться" так, чтобы отразить параметры, которые назначены панели мониторинга BI.
Чтобы достичь этого, предусмотрен механизм, в соответствии с изобретением, для веб-модулей, чтобы передавать то, какой параметр(ы) они содержат, и механизм для задания его значения(й).
Чтобы сервер электронных таблиц участвовал в этом сценарии, когда пользователь изменяет параметр, к примеру, в модуле слайсера SharePoint, книга электронной таблицы, отображаемая в сервере приложений, отражает значение слайсера(ов).
Как описано в данном документе, вызывающие приложения (сервер приложений) могут запросить у сервера список параметров, ассоциативно связанных с книгой. В примерном варианте осуществления даже несмотря на то, что задание параметра фактически эквивалентно заданию значения ячейки, сообщения об ошибке предоставляются для пользователей, которые сообщают, что операция с параметром выполнена неудачно, а не то, что задание значения ячейки выполнено неудачно.
В другом аспекте изобретения операции книги, связанные с заданием параметров, оптимизированы. Например, вычисление приостанавливается независимо от режима вычислений до тех пор, пока все значения параметров не заданы. Дополнительно, изобретение обеспечивает то, что определение параметра (к примеру, именованный диапазон) по-прежнему удовлетворяет требованиям для представления как параметра, когда книга загружается. Дополнительно, вызывающие приложения (сервер приложений) могут задавать значение (одно) параметра.
Потребители этих панелей мониторинга переходят на панель мониторинга и могут изменять "проектный" параметр в веб-модуле параметра. После того как проектный параметр изменен, все веб-модули на странице (в том числе веб-модули сервера приложений и рендеринга Reporting Services) обновляются так, чтобы отразить данные, ассоциативно связанные с проектом, который выбрал потребитель панели мониторинга. Для сервера приложений могут быть использованы формулы данных листа, которые принимают значение ячейки параметра в качестве входных данных для функций.
Калькулятор ипотечного кредита требует, чтобы несколько параметров было введено, чтобы определить ежемесячный платеж. В этом сценарии кто-либо составляет книгу и создает именованные диапазоны для платежей в счет погашения основной суммы, процентной ставки, периода займа и первоначального взноса. Пользователь затем нажимает клавишу применения, и книга вычисляется, показывая ему его ежемесячный платеж.
В отношении извлечения информации параметров сервер вычислений (CS) предоставляет средство для вызывающих приложений, чтобы извлекать информацию параметров, включающую в себя одно или более из следующего: имя параметра, порядок параметра в книге (чтобы сервер приложений перечислял их в предусмотренном порядке), текущее значение параметра и описание параметра.
Имя параметра - это имя именованного диапазона, который он занимает. Порядок параметра задает порядок параметра для целей отображения и может быть задан множеством способов и форматов. CS может возвращать эту информацию в вызывающие приложения (сервер приложений). Помимо текущего значения параметра каждый параметр имеет необязательное описание, которое CS также может передавать в вызывающее приложение (сервер приложений).
CS предоставляет средство серверу приложений задавать значение(я) для каждого параметра в книге. В одном вызове CS одно или более значений параметров могут быть заданы. Как упоминалось, в одном аспекте изобретения вычисления могут быть приостановлены до тех пор, пока не будут заданы все значения параметров, которые являются частью обратной отправки. Задание значений параметров эквивалентно заданию значения в ячейке посредством способа SetCell().
Необязательно CS не изменяет явно или неявно форматы чисел на сервере на основе значения параметра.
В отношении приостановки вычислений и обновления данных, когда книга открыта, CS изобретения поддерживает возможность задавать значения ячеек до того, как книга вычислена или данные обновлены, независимо от режима вычислений книги или настроек обновления данных. После того как параметры заданы, книга возвращает режим вычисления, в котором она создана.
В одном варианте осуществления сервер приложений передает параметры как часть открытой книги, где имеются слайсеры на странице, которые имеют значения по умолчанию. В противном случае сервер приложений не передает значения параметров в качестве части своего запроса, чтобы открыть книгу.
Если книга находится в режиме вычислений вручную, это означает, что книга потенциально находится в режиме "грязных вычислений", и из этого режима пользователь может инициировать вычисления, чтобы увидеть изменения в книге вследствие изменения значений параметров.
Необязательно, чтобы все параметры книги задавались в результате операции задания параметров сервером приложений. Это может произойти, если модуль слайсера на веб-странице привязан к поднабору параметров, заданных в книге. В этом случае дополнительные параметры в книге сохраняют значения ячеек по умолчанию.
В примерных неограничивающих вариантах осуществления изобретения, когда книга загружается посредством CS, CS проверяет то, удовлетворяют ли по-прежнему параметры, заданные в книге, критериям, заданным для представления как параметры. Если это условие не удовлетворяется, CS возвращает ошибку. Эта проверка охватывает все параметры в книге, а не только параметры, которые попытался задать сервер приложений. Можно принимать во внимание, что критерий для представления как параметра может задаваться по-разному на основе требуемых характеристик системы, к примеру балансирования определенности системы в том, чем является параметр, и пользовательской гибкости задания параметров.
В отношении задания и извлечения параметров посредством механизма вычислений CS задание параметра изменяет значение в ячейке, и, в зависимости от режима вычислений, в котором находится книга (вручную, автоматически), книга либо выполняет, либо не выполняет вычисления.
Примерная неограничивающая последовательность снимков экрана
Фиг.5A-5K иллюстрируют примерную последовательность иллюстративных (неограничивающих) снимков экрана UI, которые демонстрируют способность изобретения в связи с возможностями веб-публикации, соответствующими книге, которая прогнозирует продажи на основе переменной, называемой приростом (к примеру, процентной ставке банковского счета).
На фиг.5A книга 500 включает в себя ячейки B3 и B4, которые помечают продажи "2005" и предоставляет значение в 2000 долларов для продаж за 2005 год соответственно. Ячейки C3 и C4 - это ячейки, которые, соответственно, помечают продажей "2006" и прогнозируют значение в 2200 долларов на основе темпа прироста с названием "Growth" N2, имеющего значение 10%, как показано в ячейке F3. Ячейки B3, C3, B4 и C4 совместно называются "Sales", как указано посредством N1.
После того как книга 500 создана, как описано выше, фиг.5B начинается посредством диалога/меню 502a, чтобы проиллюстрировать процесс, посредством которого пользователь может публиковать книгу серверу электронных таблиц, из которой дополнительно авторизованные пользователи могут просматривать книгу посредством сети, такой как веб-сеть, приложением, такого как браузер. Как проиллюстрировано, пользователь может выбрать вариант на 502a, который публикует книгу 500 на веб-сервере.
После того как инициирована, последовательность операций переходит к фиг.5C, на которой диалог/меню 502b иллюстрирует то, что пользователь может выбрать опубликовать поднабор книги, т.е. сделать так, что часть книги 500, такая как конкретный лист, является недоступной из веб-интерфейса, как только книга 500 опубликована. Например, может быть нежелательным с точки зрения автора книги предоставлять в совместное пользование собственную формулу, размещенную на Листе 3, но в то же время автор книги может захотеть открыть один или более параметров с Листа 3 пользователю.
Затем, как показано на фиг.5D, пользователь на 502c может выбрать вкладку параметров диалогового меню, которая раскрывает UI для выбора (указания) ячеек книги 500 в качестве параметров. Необязательно первоначально на 502d, как показано на фиг.5E, UI включает в себя все возможные параметры для книги 500 в соответствии с тем, как параметры могут быть заданы. Затем, например, как показано на фиг.5F и в соответствии с моделью прироста, пользователь на 502e выбрал "Growth" в качестве параметра. Хотя прирост является единственным параметром в этом примере, это служит для простоты понимания. Специалисты в данной области техники могут принимать во внимание, что модели и формулы электронных таблиц и ассоциативно связанные допущения могут стать очень сложными и, следовательно, могут подразумевать десятки или более параметров.
После выбора прироста в качестве параметра на 502e, как показано на 502f по фиг.5G, пользователь возвращается в основной UI публикации, на котором прирост показан как указанный в качестве параметра. В завершение, как показано на фиг.5H, на 502g пользователь публикует документ серверу электронных таблиц посредством активации соответствующего UI-элемента Publish (Публикация). После выбора варианта отображать книгу посредством веб-интерфейса книга 500, созданная посредством клиентского приложения, отображается как веб-книга 504, как показано на фиг.5I. Можно видеть, что список параметров LP отображается справа от книги 504, который включает в себя параметр прироста P и окно редактирования EB. Как упоминалось выше, в одном варианте осуществления вычисление и отображение книги 504 может быть задержано или приостановлено до тех пор, пока значение параметра для окна редактирования EB не будет введено и применено. В неограничивающем снимке экрана, показанном на фиг.5I, заданные значения дальше в создании книги 500 отображаются по умолчанию.
Далее на фиг.5J пользователь ввел новое значение в поле редактирования EB в 20% (вместо 10%, в данный момент используемых при вычислении и отображении по фиг.5I). В заключение, пользователь применяет новое значение, введенное в окно редактирования EB, и, как показано на фиг.5K, сервер вычислений пересчитывает модель на основе нового значения параметра в 20%, и книга 506 отображается после того, как соответствующие преобразования для отображения веб-документов выполнены. В этом случае можно видеть, что запроектированное значение на 2006 год изменилось до 2400 долларов с 2200 долларов на основе изменения темпа прироста с 10% до 20%. Таким образом, можно видеть преимущество публикации документа электронных таблиц на сервере и раскрытия параметров пользователям на основе их потребностей. Например, ипотечный банк может захотеть опубликовать калькулятор собственных средств, в который множество параметров (внутренняя стоимость, стоимость запасов, счета износа и т.д.) может быть введено в качестве параметров, и, таким образом, индивидуально подстраивать вычисление под пользователя. В то же время ипотечный банк может собирать эти данные от своих пользователей и более оптимально подстраивать свои общие предложения по услугам для пользователей.
Хотя указание параметров описано в некоторых вариантах осуществления в данной заявке как включаемое в операции публикации, автономное клиентское приложение также получает выгоду из указания параметров в соответствии с изобретением. Соответственно, изобретение не должно рассматриваться как ограниченное сценарием публикации книги для веб-интерфейса, а вместо этого должно рассматриваться как задаваемое в рамках области применения формулы изобретения.
Фиг.6 представляет блок-схему последовательности операций способа, аналогичную вышеописанной последовательности, но без конкретных ограничивающих подробностей. Например, на этапе 600 пользователь выбирает создать или отредактировать книгу, а на этапе 610 пользователь активирует компонент пользовательского интерфейса для указания параметров книги, что может быть сделано на этапе 620. Необязательно книга может быть опубликована на веб-сервере документов электронных таблиц для рендеринга документов электронных таблиц посредством веб-интерфейса. В будущем то, открывается ли документ электронных таблиц, включающий в себя указанные параметры, посредством клиента или просматривается посредством механизма веб-рендеринга, частный API выполняет на этапе 630 такое действие, чтобы обнаружить и извлечь информацию параметров из документа электронных таблиц, включающую в себя список параметров, которые параметризуют базовую модель, представляемую посредством документа электронных таблиц. После этого документ готов для отображения на этапе 640, где список параметров раскрывается, и компонент пользовательского интерфейса предоставляется для редактирования параметров в списке параметров. Затем необязательно на этапе 650 книга сама может быть отображена посредством вычислений на основе начального набора значений для параметров, задающих книгу, или альтернативно, как описано выше, это вычисление может быть приостановлено до тех пор, пока вся текущая информация, ассоциативно связанная с документом электронных таблиц, не будет принята. На этапе 660 пользователь может редактировать один или более параметров в списке параметров и запрашивать применения новых значений параметров к модели электронной таблицы. Соответственно, на этапе 670 механизм вычислений пересчитывает (или вычисляет, если приостановлено) документ электронных таблиц на основе новых значений параметров, введенных пользователем.
Примерные реализации интерфейса
Для любого обмена данными между несколькими компьютерами, например данными параметров, согласно методикам изобретения, совместно используемых между двумя компьютерами, предусмотрены интерфейсы для обработки различных операций на каждом компьютере, которые могут быть реализованы в аппаратных средствах и/или программном обеспечении и которые имеют такую функциональность, чтобы принимать, отправлять и/или обрабатывать данные некоторым образом, согласно соответствующим приложениям и услугам, запрашиваемым или предоставляемым. В той степени, в которой один или более интерфейсных объектов могут быть предоставлены, чтобы выполнить или реализовать любую часть систем и способов для сжатия и распаковки данных разметки, в соответствии с изобретением, изобретение предназначено для того, чтобы охватывать все эти варианты осуществления, и, таким образом, общее описание видов интерфейсов, которые могут быть предусмотрены или использованы при реализации или осуществлении изобретения, приводится ниже.
Интерфейс программирования (или проще, интерфейс) может рассматриваться как любой механизм, процесс, протокол для предоставления возможности одному или более сегментам кода обмениваться данными или осуществлять доступ к функциональности, предоставляемой посредством одного или более других сегментов кода. Альтернативно, интерфейс программирования может рассматриваться как один или более механизм(ов), способ(ов), вызов(ов) функций, модуль(ей), объект(ов) и т.д. компонента системы, допускающего соединение с возможностью обмена данными с одним или более механизмом(ами), способом(ами), вызовом(ами) функций, модулем(ями) и т.д. другого компонента(ов). Термин "сегмент кода" в предыдущем предложении служит для того, чтобы включать в себя одну или более инструкций или строк кода, и включает в себя, к примеру, модули кода, объекты, подпрограммы, функции и т.п., вне зависимости от применяемой терминологии и того, скомпилированы ли сегменты кода отдельно, предоставляются сегменты кода в качестве исходного, промежуточного или объектного кода, используются сегменты кода в исполняемой системе или процессе, размещены они на одной или различных машинах или распределены по нескольким машинам, реализована функциональность, предоставляемая посредством сегментов кода, полностью в программном обеспечении, полностью в аппаратных средствах или в сочетании аппаратных средств и программного обеспечения.
Абстрактно интерфейс программирования может рассматриваться обобщенно, как показано на фиг.14A или фиг.14B. Фиг.14A иллюстрирует интерфейс Interface1 в качестве канала, посредством которого обмениваются данными первый и второй сегменты кода. Фиг.14B иллюстрирует интерфейс как содержащий интерфейсные объекты I1 и I2 (которые могут быть, а могут не быть частью первого и второго сегментов кода), которые дают возможность первому и второму сегментам кода обмениваться данными посредством среды M. В свете фиг.14B можно рассматривать интерфейсные объекты I1 и I2 как отдельные интерфейсы одной системы, а также можно считать, что объекты I1 и I2 плюс среда M содержат интерфейс. Хотя фиг.14A и 14B иллюстрируют двунаправленный поток и интерфейсы на каждой стороне потока, определенные реализации могут иметь поток информации только в одном направлении (или не иметь потоков информации, как описано выше), либо могут иметь интерфейсный объект только на одной стороне. В качестве примера, но не ограничения такие термины, как интерфейс прикладного программирования (API), точка входа, способ, функция, подпрограмма, удаленный вызов процедуры и интерфейс модели компонентных объектов (COM), заключаются в определение интерфейса программирования.
Аспекты такого интерфейса программирования могут включать в себя способ, посредством которого первый сегмент кода передает информацию (при этом "информация" используется в самом широком смысле и включает в себя данные, команды, запросы и т.д.) во второй сегмент кода; способ, посредством которого второй сегмент кода принимает информацию, и структуру, последовательность, синтаксис, организацию, схему, синхронизацию и содержимое информации. В этом отношении сама базовая среда транспортировки может не представлять важности для работы интерфейса, будь среда проводной или беспроводной, или комбинацией вышеозначенного, пока информация передается способом, заданным посредством интерфейса. В определенных ситуациях информация может не передаваться в одном или обоих направлениях в традиционном смысле, поскольку перенос информации может либо выполняться посредством другого механизма (к примеру, информации, помещенной в буфер, файл и т.д. отдельно от потока информации между сегментами кода), либо отсутствовать, как в случае, когда сегмент кода просто осуществляет доступ к функциональности, выполняемой посредством второго сегмента кода. Любой или все эти аспекты могут быть важными в данной ситуации, к примеру, в зависимости от того, являются сегменты кода частью системы в слабосвязанной или сильносвязанной конфигурации, так что этот список должен рассматриваться как иллюстративный, а не ограничивающий.
Это понятие интерфейса программирования известно специалистам в данной области техники и очевидно из вышеприведенного подробного описания изобретения. Тем не менее имеются другие пути, чтобы реализовать интерфейс программирования, и, если они в явном виде не исключены, они также предназначены для того, чтобы охватываться посредством формулы изобретения, предоставляемой в конце этого описания изобретения. Эти другие пути, как считается, являются более сложными или комплексными, чем упрощенное представление фиг.14A и 14B, но они, тем не менее, выполняют аналогичную функцию, чтобы достичь того же итогового результата. Далее мы вкратце опишем некоторые иллюстративные альтернативные реализации интерфейса программирования.
А. Факторинг
Передача данных от одного сегмента кода в другой может осуществляться косвенно посредством разбиения передачи данных на несколько отдельных передач. Это схематично проиллюстрировано на фиг.15A и 15B. Как показано, некоторые интерфейсы могут быть описаны в отношении разделяемых наборов функциональности. Таким образом, функциональность интерфейсов по фиг.14A и 14B может быть разложена, чтобы достичь того же результата, как, к примеру, можно математически предоставить 24, или 2 умножить на 2 умножить на 3 умножить на 2. Соответственно, как проиллюстрировано на фиг.15A, функция, предоставляемая посредством интерфейса Interface1, может быть подразделена так, чтобы преобразовать обмен данными в интерфейсе на несколько интерфейсов Interface1A, Interface1B, Interface1C и т.д., при этом достигая того же результата. Как проиллюстрировано на фиг.15B, функция, предоставляемая посредством интерфейса I1, может быть подразделена на несколько интерфейсов I1a, I1b, I1c и т.д., при этом достигая того же результата. Аналогично, интерфейс I2 второго сегмента кода, который принимает информацию от первого сегмента кода, может быть разложен на несколько интерфейсов I2a, I2b, I2c и т.д. При разложении число интерфейсов, включенных в первый сегмент кода, не обязательно совпадает с числом интерфейсов, включенных во второй сегмент кода. В любом из случаев по фиг.15A и 15B функциональный смысл интерфейсов Interface1 и I1 остается таким же, как и на фиг.14A и 14B соответственно. Разложение интерфейсов также может следовать ассоциативным, коммуникативным и другим математическим свойствам, так что разложение может быть трудно обнаружить. Например, упорядочение операций может быть неважным, а, следовательно, функция, выполняемая посредством интерфейса, может осуществляться задолго до достижения интерфейса посредством другого фрагмента кода или интерфейса, или выполняться посредством отдельного компонента системы. Более того, специалисты в области техники программирования могут принять во внимание, что существует множество способов осуществления вызовов к различным функциям, которые достигают одинакового результата.
В. Переопределение
square (input, precision, output)
input, precision
output
precision
meaningless
additional
Precision
precision
precision
В некоторых случаях может быть возможным игнорировать, добавлять или переопределять определенные аспекты (к примеру, параметры) интерфейса программирования, при этом достигая требуемого результата. Это проиллюстрировано на фиг.16A и 16B. Например, допустим, что интерфейс Interface1 по фиг.14A включает в себя вызов функции , вызов, который включает в себя три параметра,  и , и который выдается от первого сегмента кода во второй сегмент кода. Если средний параметр не важен для данного сценария, как показано на фиг.16A, он вполне может быть проигнорирован или даже заменен на параметр (в данной ситуации). Также можно добавлять параметр , не представляющий важности. В любом случае функциональность возведения в квадрат может быть достигнута до тех пор, пока вывод возвращается после того, как входные данные возведены в квадрат посредством второго сегмента кода. может быть очень значимым параметром для определенного нисходящего потока или другой части вычислительной системы, тем не менее после того, как обнаружено, что необязателен для узкой цели возведения в квадрат, он может быть заменен или проигнорирован. Например, вместо передачи допустимого значения , бессмысленное значение, например дата рождения, может быть передано без отрицательного воздействия на результат. Аналогично, как показано на фиг.16B, интерфейс I1 заменен на интерфейс I1', переопределяясь так, чтобы игнорировать или добавить параметры в интерфейс. Интерфейс I2 аналогично может быть переопределен как I2', переопределяясь так, чтобы игнорировать лишние параметры или параметры, которые могут быть обработаны иным образом. Смысл в том, что в некоторых случаях интерфейс программирования может включать в себя аспекты, такие как параметры, которые не требуются для некоторой цели, так что они могут быть игнорированы или переопределены, либо обработаны иным образом для других целей.
С. Линейное кодирование
square (input, output)
input
output
input
Также может быть подходящим объединить часть или всю функциональность двух отдельных модулей кода так, чтобы "интерфейс" между ними изменил форму. Например, функциональность фиг.14A и 14B может быть преобразована в функциональность фиг.17A и 17B соответственно. На фиг.17A предшествующие первый и второй фрагменты кода по фиг.14A объединяются в модуль, содержащий их оба. В этом случае сегменты кода по-прежнему могут обмениваться данными друг с другом, но интерфейс может быть приспособлен к форме, которая в большей степени подходит к одному модулю. Таким образом, например, формальные выражения Call и Return более могут не требоваться, но аналогичная обработка или отклик(и), соответствующая интерфейсу Interface1, по-прежнему может осуществляться. Аналогично, как показано на фиг.17B, часть (или весь) интерфейса I2 из фиг.14B может быть записана линейно в интерфейс I1, чтобы сформировать интерфейс I1". Как проиллюстрировано, интерфейс I2 делится на I2a и I2b, и часть интерфейса I2a кодирована линейно с интерфейсом I1, чтобы сформировать интерфейс I1". В качестве конкретного примера предположим, что интерфейс I1 с фиг.14B выполняет вызов функции , который принимается посредством интерфейса I2, который после обработки значения, переданного с (чтобы возвести его в квадрат) посредством второго сегмента кода, передает обратно возведенный в квадрат результат с . В этом случае обработка, выполняемая посредством второго сегмента кода (возведение в квадрат ), может быть выполнена посредством первого сегмента кода без вызова к интерфейсу.
D. Разделение
Передача данных от одного сегмента кода в другой может осуществляться косвенно посредством разбиения передачи данных на несколько отдельных передач. Это схематично проиллюстрировано на фиг.18A и 18B. Как показано на фиг.18A, один или более фрагментов связующего программного обеспечения (разрывающий интерфейс(ы), поскольку они разрывают функциональность и/или функции интерфейса из исходного интерфейса) предоставлены, чтобы преобразовать передачу данных по первому интерфейсу Interface1, чтобы подчинить ее другому интерфейсу, в данном случае интерфейсам Interface2A, Interface2B и Interface2C. Это может быть выполнено, к примеру, если есть установленная база приложений, разработанных так, чтобы обмениваться данными с операционной системой, например, в соответствии с протоколом Interface1, но затем операционная система изменяется, чтобы использовать другой интерфейс, в данном случае интерфейсы Interface2A, Interface2B и Interface2C. Смысл в том, что интерфейс, используемый вторым сегментом кода, изменяется так, что он более не совместим с интерфейсом, используемым посредством первого сегмента кода, и поэтому промежуточное звено используется для того, чтобы сделать старый и новый интерфейсы совместимыми. Аналогично, как показано на фиг.18B, третий сегмент кода может быть введен с разрывающим интерфейсом DI1, чтобы принимать передаваемые данные из интерфейса I1, и с разрывающим интерфейсом DI2, чтобы передавать функциональность интерфейса, например, в интерфейсы I2a и I2b, переработанные так, чтобы работать с DI2, но предоставлять такой же функциональный результат. Так же DI1 и DI2 могут работать совместно, чтобы переносить функциональность интерфейсов I1 и I2 по фиг.14B в новую операционную систему, при этом предоставляя такой же или аналогичный функциональный результат.
Е. Переписывание
Еще один возможный вариант состоит в том, чтобы динамически переписать код, чтобы заменить функциональность интерфейса на что-либо другое, но то, что достигает того же итогового результата. Например, может быть система, в которой сегмент кода, представленный на промежуточном языке (к примеру, Microsoft IL, Java ByteCode и т.д.) предоставляется в оперативный (JIT) компилятор или интерпретатор в среде выполнения программ (такой как предоставляемая посредством структуры Net среды динамического режима Java или других аналогичных сред динамического режима). JIT-компилятор может быть написан так, чтобы динамически преобразовывать передачу от первого сегмента кода во второй сегмент кода, т.е. чтобы подчинять ее другому интерфейсу, как может потребоваться посредством второго сегмента кода (либо исходного, либо другого второго сегмента кода). Это проиллюстрировано на фиг.19A и 19B. Как можно видеть на фиг.19A, данный подход аналогичен сценарию разрыва, описанному выше. Это может выполняться, к примеру, если установленная база приложений разработана так, чтобы обмениваться данными с операционной системой в соответствии с протоколом Interface1, но затем операционная система изменяется, чтобы использовать другой интерфейс. JIT-компилятор может быть использован для того, чтобы подчинять "на лету" передачу данных из установленной базы приложений новому интерфейсу операционной системы. Как проиллюстрировано на фиг.19B, данный подход динамической перезаписи интерфейса(ов) может быть применен так, также чтобы динамически разлагать или иным образом изменять интерфейс(ы).
Следует отметить, что вышеописанные сценарии для достижения такого же или аналогичного результата, как интерфейс посредством альтернативных вариантов осуществления, также могут быть комбинированы различными способами, последовательно и/или параллельно, либо с другим промежуточным кодом. Таким образом, представленные выше альтернативные варианты осуществления не являются взаимоисключающими и могут сочетаться, сопоставляться или комбинироваться, чтобы формировать сценарии, одинаковые или эквивалентные для сценариев, представленных на фиг.14A и 14B. Также следует отметить, что как и в большинстве конструкций программирования, имеются другие похожие способы достижения одинаковой или аналогичной функциональности интерфейса, которые могут быть не описаны в данном документе, но тем не менее представляются посредством смысла и области применения изобретения, т.е. следует отметить, что это является, по меньшей мере, частично функциональностью, предоставляемой, и преимуществом, достигаемым посредством интерфейса, которые лежат в основе значения интерфейса.
Имеется несколько способов реализации настоящего изобретения, к примеру, посредством соответствующего API, комплекта инструментальных средств, кода драйверов, операционной системы, элемента управления, автономного или загружаемого программного объекта и т.д., которые позволяют приложениям и услугам использовать системы и способы для предоставления и активации параметров книги по изобретению. Изобретение предполагает использование изобретения с точки зрения API (или другого программного объекта), а также с точки зрения программного или аппаратного объекта, который принимает загруженную программу в соответствии с изобретением. Таким образом, различные реализации изобретения, описанные в данном документе, могут иметь аспекты, которые полностью находятся в аппаратных средствах, частично в аппаратных средствах и частично в программном обеспечении, а также в программном обеспечении.
Как упоминалось выше, хотя примерные варианты осуществления настоящего изобретения описаны в связи с различными вычислительными устройствами и сетевыми архитектурами, базовые концепции могут быть применены к любому вычислительному устройству или системе, в которой желательно иметь параметры книги. Например, алгоритм(ы) и аппаратные реализации изобретения могут быть применены к операционной системе вычислительного устройства, предоставлены как отдельный объект в устройстве, как часть другого объекта, как элемент управления многократного использования, как загружаемый объект с сервера, как "посредник" между устройством или объектом и сетью, как распределенный объект, как аппаратные средства в запоминающем устройстве, комбинации любого из вышеупомянутого и т.д. Хотя примерные языки программирования, имена и примеры выбираются в данном документе как представляющие различные варианты выбора, эти языки, имена и примеры не предназначены для того, чтобы быть ограничивающими. Специалисты в данной области техники должны принимать во внимание, что имеется множество способов предоставления объектного кода и спецификации, которые добиваются такой же, аналогичной или эквивалентной функциональности, достигаемой посредством различных вариантов осуществления изобретения.
Как упоминалось выше, описанные в данном документе различные методики могут быть реализованы в связи с аппаратными средствами или программным обеспечением или, если необходимо, с их сочетанием. Таким образом, способы и аппарат настоящего изобретения или его определенных аспектов или частей могут принимать форму программного кода (т.е. инструкций), заключенного в материальные носители, такие как гибкие диски, диски CD-ROM, жесткие диски или любой другой машиночитаемый носитель хранения, при этом, когда программный код загружен и исполнен машиной, например компьютером, машина становится устройством для использования изобретения на практике. В случае исполнения программного кода на программируемых компьютерах вычислительное устройство, в общем, включает в себя процессор, носитель хранения, читаемый процессором (включая энергозависимую и энергонезависимую память и/или элементы хранения), по меньшей мере, одно устройство ввода и, по меньшей мере, одно устройство вывода. Одна или более программ, которые могут осуществлять или использовать параметры рабочих книг настоящего изобретения, к примеру, посредством использования API-интерфейса обработки данных, повторно используемых элементов управления и т.п., предпочтительно реализованы в высокоуровневом процедурном или объектно-ориентированном языке программирования, чтобы обмениваться данными с вычислительной системой. Тем не менее при необходимости программы могут быть реализованы на языке ассемблера или машины. В любом случае язык может быть компилируемым или интерпретируемым языком и объединен с реализациями в аппаратных средствах.
Способы и устройства настоящего изобретения могут также быть осуществлены на практике через соединения, реализованные в форме компьютерного программного кода, который передается через среду передачи, например, по электрическим проводам или кабелю, через оптическое волокно или через любую другую форму передачи, причем когда программный код принимается и загружается в и исполняется машиной, например, в EPROM, матричную БИС, программируемое логическое устройство, клиентский компьютер и т.п., машина становится устройством для осуществления на практике изобретения. При реализации на процессоре общего назначения программный код объединяется с процессором для того, чтобы предоставить уникальное устройство, которое функционирует для того, чтобы применять настоящее изобретение. Кроме того, любые технологии хранения, используемые в соединении с настоящим изобретением, могут постоянно быть комбинацией аппаратных и программных средств.
В то время как настоящее изобретение было описано в связи с предпочтительными вариантами осуществления различных чертежей, должно быть понятно, что другие похожие варианты осуществления могут быть использованы, или модификации и дополнения могут быть сделаны в описанном варианте осуществления для выполнения той же функции настоящего изобретения без отклонения от нее. Например, хотя примерные сетевые окружения изобретения описываются в контексте сетевого окружения, например сетевое окружение с одноранговыми устройствами, специалисты в данной области техники поймут, что настоящее изобретение не ограничено этим, и что способы, описанные в данном приложении, могут применяться к любому вычислительному устройству и окружению, например к игровой консоли, карманному компьютеру, портативному компьютеру и т.д., проводному или беспроводному, и могут быть применены к любому количеству вычислительных устройств, соединенных через сеть передачи данных и взаимодействующих через сеть. Кроме того, должно быть подчеркнуто, что предполагается многообразие компьютерных платформ, в том числе операционные системы карманных устройств и другие специфичные для применения операционные системы, особенно в то время, как количество беспроводных сетевых устройств продолжает быстро увеличиваться.
Хотя примерные варианты осуществления ссылаются на использование настоящего изобретения в контексте конкретных конструкций языка программирования, изобретение не ограничено этим и предпочтительно может быть реализовано на любом языке так, чтобы предоставлять и активировать параметры рабочей книги в соответствии с изобретением. Кроме того, еще настоящее изобретение может быть реализовано в или параллельно в большом количестве устройств или микросхем обработки данных, и сохранение может быть подобным образом выполнено параллельно в большом количестве устройств. Поэтому настоящее изобретение не должно быть ограничено каким бы то ни было отдельным вариантом осуществления, а скорее должно быть истолковано в пределах широты и объема в соответствии с прилагаемой формулой изобретения.