СПОСОБ, СИСТЕМА И УСТРОЙСТВО ДЛЯ ОТКРЫТИЯ ОБЛАСТЕЙ РАБОЧЕЙ КНИГИ В КАЧЕСТВЕ ИСТОЧНИКА ДАННЫХ
METHOD, SYSTEM AND DEVICE FOR OPENING WORKBOOK REGIONS AS DATA SOURCE

Область техники, к которой относится изобретение
При формировании рабочих книг пользователи прикладных программ электронной таблицы часто используют данные из множества различных источников. Например, при создании рабочей книги в прикладной программе электронной таблицы пользователь может импортировать данные из другой рабочей книги, может ввести данные в рабочую книгу вручную или может получить данные, выполняя запросы к реляционной базе данных или к кубу аналитической обработки в реальном времени («OLAP»). Как только данные вводятся из любого из этих источников, пользователь обычно упорядочивает данные в рабочей книге в желательной конфигурации. В конце этого процесса пользователь создает рабочую книгу, которая включает табличную область данных, на которой может быть выполнен значимый числовой анализ.
Для того чтобы другие пользователи обратились к содержимому рабочей книги, могут быть сделаны копии рабочей книги или ее частей. Например, во многих сценариях рабочую книгу посылают другим пользователям через сообщение электронной почты («e-mail»). Пользователи, которые получают рабочую книгу, могут после этого производить анализ на рабочей книге или добавить данные, содержавшиеся в рабочей книге, к другой рабочей книге. Альтернативно, рабочая книга может быть сохранена на совместно используемом файловом ресурсе, где множество пользователей могут обратиться к содержимому рабочей книги. Для того чтобы совместно использовать содержимое рабочей книги, области данных могут также быть скопированы и вставлены в другие документы.
Хотя эти традиционные способы для совместного использования рабочей книги позволяют множеству пользователей обращаться к содержимому рабочей книги, эти способы не лишены недостатков. Во-первых, очень трудно управлять множественными копиями рабочей книги, которая может быть дублирована много раз на множестве компьютеров и сетевых доменов. В частности, очень трудно для системного администратора гарантировать, что рабочая книга защищена и что для нее часто выполняется резервное копирование. Кроме того, в случае совместно используемого файлового ресурса, может быть очень трудно множеству пользователей одновременно обратиться к рабочей книге. Например, если автор оригинальной рабочей книги должен модифицировать ее, то чрезвычайно трудно отследить всех пользователей, которые используют ее, и сделать так, чтобы они модифицировали свои копии. Во многих случаях приложение-клиент электронной таблицы блокирует рабочую книгу, когда она открыта одним пользователем, препятствуя, таким образом, другим получить доступ к файлу. Дополнительно, идентичные функции могут выполняться на различных копиях рабочей книги, вызывая, таким образом, дублирование усилий и сокращая производительность.
Именно исходя из этих и других соображений, были выполнены различные варианты воплощений данного изобретения.
Краткое описание изобретения
В соответствии с данным изобретением, упомянутые выше и другие проблемы решаются способом, системой и устройством для открытия областей рабочей книги в качестве источников данных. Открывая области в рабочей книге в качестве серверных источников данных, можно легко предоставить структурированный доступ к содержимому рабочей книги любой прикладной программой, способной соединяться и запрашивать серверный источник данных. Кроме того, поскольку области рабочей книги открыты как серверные источники данных при публикации рабочей книги, любой пользователь, имеющий возможность оперировать прикладной программой электронной таблицы, может легко создавать источники данных уровня предприятия.
Согласно одному аспекту изобретения, предоставляется система для открытия содержимого рабочей книги в качестве серверного источника данных и для использования серверного источника данных. Система включает в себя клиентский компьютер, способный выполнить прикладную программу электронной таблицы для создания рабочей книги. Рабочая книга может включать одну или более областей, которые содержат объекты данных. Как определяется в настоящем описании, объект данных включает любой объект на рабочем листе, который используется для хранения данных. Например, объекты данных могут включать, без ограничения, произвольную область ячеек, сводные таблицы, объекты исследования данных («DOE»), списки, базы данных и запросы к таблицам.
Прикладная программа электронной таблицы может также использоваться для генерации метаданных для каждого из объектов данных при создании рабочего листа. Метаданные могут быть сохранены вместе с рабочим листом. Метаданные могут использоваться серверным компьютером при получении и ответах на запросы для доступа к объектам данных в рабочей книге в качестве серверных источников данных. Создание метаданных для объектов данных может быть выполнено автоматическим способом прикладной программой электронной таблицы при создании данных, при публикации данных или в ответ на запрос пользователя сгенерировать метаданные. Также может быть предоставлено средство для того, чтобы позволить пользователю редактировать метаданные.
Прикладная программа электронной таблицы дополнительно реализована с возможностью публикации рабочей книги на серверном компьютере. Когда рабочая книга публикуется на серверном компьютере, пользователь может определить, что некоторые, никакие или все объекты данных в рабочей книге будут открыты как серверные источники данных. Рабочая книга тогда передается на серверный компьютер, где указанные источники данных открываются как серверные источники данных.
Согласно аспектам изобретения, система также включает в себя серверный компьютер, выполненный с возможностью исполнения серверной программы для открытия объектов данных в рабочей книге в качестве серверных объектов данных. Как это используется в настоящем описании, термины «источник данных» и «серверный источник данных» определенно относятся к базе данных, в которой могут быть выполнены запросы. Это определение включает реляционные базы данных (типа тех, что могут быть сформированы и запрашиваемы с использованием языка структурированных запросов («SQL»)), иерархические базы данных, многомерные базы данных (типа OLAP куба), или базы данных, которые объединяют аспекты реляционных и многомерных баз данных (типа объединенной размерной модели («UDM»)). Определение также включает базы данных, к которым можно сделать запрос через Веб-службы (службы, получающие и выдающие информацию через сеть Интернет или Интранет). Как также используется в настоящем описании, термин «запрос источника данных» означает запрос, направленный к источнику данных, типа SQL запроса.
Как только объекты данных рабочей книги были открыты, приложения-клиенты могут обнаружить и присоединиться к объектам данных как к серверным источникам данных. Когда запрос выдается в отношении объекта данных как серверного источника данных, серверный компьютер выполняет повторное вычисление рабочей книги. Если рабочая книга содержит ссылку на другой источник данных, любые данные, необходимые для повторного вычисления рабочей книги, могут быть получены из источника данных перед перерасчетом. Как только рабочая книга была повторно рассчитана, серверный компьютер выполняет генерацию представления (типа представления базы данных) идентифицированного объекта данных. Это может включать, например, генерацию временной базы данных или куба, соответствующих идентифицированному объекту данных.
Как только представление было сгенерировано, серверный компьютер исполняет требуемый запрос на представление. Результат запроса после этого возвращается запрашивающему клиентскому приложению. Этим способом, например, пользователь может легко создать рабочую книгу и опубликовать рабочую книгу на серверном компьютере, где ее объекты данных могут быть открыты как серверные источники данных. Другие пользователи, использующие клиентские приложения базы данных, типа OLAP клиента, могут после этого обнаружить источники данных, содержащиеся в рабочей книге, и выдать родные запросы к источникам данных.
Изобретение может быть осуществлено как компьютерный процесс, компьютерное устройство или как изготовляемый предмет, типа компьютерного программного продукта или читаемого компьютером носителя информации. Компьютерным программным продуктом могут быть компьютерные носители данных, читаемые компьютерной системой, и кодирующие команды компьютерной программы для выполнения компьютерного процесса. Компьютерный программный продукт может также представлять собой распространяющийся сигнал на носителе, читаемый компьютерной системой и кодирующий команды компьютерной программы для выполнения компьютерного процесса.
Эти и другие различные особенности, так же как и преимущества, которые характеризуют данное изобретение, будут очевидны из чтения нижеследующего подробного описания и обзора соответствующих чертежей.
Краткое описание нескольких видов чертежей
Фиг.1 является компьютерной сетевой диаграммой, иллюстрирующей аспекты нескольких компьютерных систем, используемых и обеспеченных различными вариантами воплощения изобретения;
Фиг.2 является архитектурной диаграммой компьютерной системы, иллюстрирующей аспекты компьютерной клиентской системы, используемой и обеспеченной различными вариантами воплощения изобретения;
Фиг.3 является блок-схемой, иллюстрирующей аспекты процесса для публикации области рабочей книги в качестве серверного источника данных согласно одному варианту воплощения изобретения;
Фиг.4 является экранной диаграммой, иллюстрирующей аспекты изобретения, предоставляющего средство, с помощью которого пользователь может редактировать метаданные, связанные с объектами данных в области рабочей книги; и
Фиг.5 является блок-схемой, иллюстрирующей аспекты процесса для получения и ответа на запросы для областей рабочей книги в качестве серверных источников данных согласно одному варианту воплощения изобретения.
Осуществление изобретения
Обратимся теперь к чертежам, в которых одинаковые ссылочные позиции представляют одинаковые элементы и где будут описаны различные аспекты данного изобретения. В частности, Фиг.1 и соответствующее обсуждение предназначены для того, чтобы обеспечить краткое, общее описание подходящей компьютерной среды, в которой варианты воплощения изобретения могут быть осуществлены. В то время как изобретение будет описано в общем контексте программных модулей, которые выполняются вместе с программными модулями, которые выполняются на операционной системе на персональном компьютере, специалисты в данной области техники распознают, что изобретение может также быть осуществлено в комбинации с другими типами программных модулей и компьютерных систем.
Вообще, программные модули включают подпрограммы, программы, компоненты, структуры данных и другие типы структур, которые выполняют специфические задачи или осуществляют специфические абстрактные типы данных. Кроме того, специалисты в данной области техники признают, что изобретение может быть реализовано на других конфигурациях компьютерных систем, включая ручные устройства, многопроцессорные системы или программируемую бытовую электронику на основе микропроцессора, мини-компьютеры, универсальные компьютеры и т.п. Изобретение также может быть реализовано в распределенных компьютерных средах, где задачи выполняются удаленными устройствами обработки, которые связаны через коммуникационную сеть. В распределенной компьютерной среде программные модули могут быть расположены как на локальных, так и на удаленных запоминающих устройствах памяти.
Обратимся теперь к Фиг.1, где будет описана иллюстративная среда для нескольких вариантов воплощения изобретения. Как показано на фиг.1, сеть 10 связывает клиентский компьютер 2 и несколько серверных компьютеров 12A-12C. Очевидно, что сеть 10 может включать в себя любой тип компьютерной сети, включая локальную сеть или глобальную сеть, типа Интернет. Сеть 10 обеспечивает среду для осуществления коммуникации между клиентским компьютером 2, серверными компьютерами 12A-12C и, потенциально, другими компьютерными системами, связанными или доступными через сеть 10.
Клиентский компьютер 2 включает в себя универсальный настольный или портативный компьютер, способный к выполнению одной или более прикладных программ. В частности, согласно различным воплощениям изобретения, компьютер 2 выполнен с возможностью исполнения клиентского приложения 4 электронной таблицы. Как известно специалистам в данной области техники, программа 4 клиентского приложения электронной таблицы предоставляет функциональные возможности для создания бюджетов, выполнения финансового прогноза и других финансовых и численно-ориентированных задач. Чтобы обеспечивать эти функциональные возможности, значения данных могут быть организованы, используя ячейки, и отношения между ячейками могут быть определены, используя формулы. Изменение в одной ячейке производит изменения в связанных ячейках. Программы электронных таблиц обычно обеспечивают графические возможности для вывода и разнообразие опций форматирования для текста, числовых значений и возможностей графа.
Согласно вариантам воплощения изобретения, клиентское приложение 4 электронной таблицы может использоваться для создания рабочей книги 6. Рабочая книга 6 является файлом, который создается программой электронных таблиц, которая содержит один или более рабочих листов (рабочий лист может также упоминаться здесь как «электронная таблица»). Рабочий лист является отдельной страницей, организованной в строки и столбцы в программе электронной таблицы, появляющийся на экране и используемый для создания отдельной таблицы.
Рабочие листы в рабочей книге 6 могут включать одну или более областей, которые содержат объекты данных. Как определено в настоящем описании, объект данных включает любой объект рабочего листа, который используется для хранения данных. Например, объекты данных могут включать, без ограничения, произвольную область ячеек, сводные таблицы, DOE, списки, базы данных и запросы к таблицам. Как будет описано более подробно, каждый из этих объектов данных может быть открыт как серверный источник данных, доступный с сервера 12A. Другие типы объектов данных, используемых в рабочей книге, могут также быть открыты как серверный источник данных.
Необходимо отметить, что, согласно одному варианту воплощения изобретения, клиентское приложение 4 электронной таблицы включает программу электронной таблицы EXCEL от MICROSOFT CORPORATION, Редмонд, Вашингтон. Необходимо отметить, однако, что различные аспекты изобретения, описанного здесь, могут использоваться с другими программами электронных таблиц от других изготовителей. Кроме того, хотя аспекты изобретения, описанные здесь, представлены в контексте программы электронных таблиц, необходимо отметить, что другие типы прикладных программ также могут использоваться для воплощения различных аспектов изобретения.
Согласно другим вариантам воплощения изобретения, клиентский компьютер 2 также может быть выполнен с возможностью исполнения клиентского приложения 8 OLAP. Клиентское приложение 8 OLAP включает прикладную программу, способную к соединению, запросу и использованию данных от источника данных OLAP. Например, клиентское приложение 8 OLAP может подключиться к серверному компьютеру 12B через сеть 10. С помощью программного обеспечения базы данных, выполняющегося на серверном компьютере 12B, клиентское приложение 8 OLAP может выдать запросы к источнику 16 данных. Серверный компьютер 12B при этом действует для получения и ответа на запросы от клиентского приложения 8 OLAP.
Как будет описано более детально ниже, клиентское приложение 8 OLAP может также выдать запросы к рабочей книге 6. Для того чтобы разрешить эту функциональность, клиентское приложение 4 электронной таблицы может опубликовать рабочую книгу 6 в хранилище 14, поддерживаемое компьютером 12C файлового сервера и доступное для серверного компьютера 12A. Приложение 13 сервера электронной таблицы, выполняемое на серверном компьютере 12A, может тогда анализировать рабочую книгу 6 для областей, включая объекты данных, и открывать объекты данных как серверные источники данных. Клиентское приложение 8 OLAP может тогда присоединиться к источникам данных, открытых приложением 12A сервера электронной таблицы тем же самым способом, каким оно подключилось бы к специализированному источнику данных OLAP, такому как предоставленный серверным компьютером 12B. Необходимо отметить, что клиентское приложение 4 электронной таблицы может действовать как потребитель данных от источника данных тем же самым способом, что и клиентское приложение 8 OLAP. Необходимо также отметить, что компьютер 2 может действовать для выполнения дополнительных клиентских приложений для запроса и использования данных из других типов баз данных. Необходимо дополнительно отметить, что в альтернативном варианте воплощения функции компьютера 2, описанные выше, могут быть разделены среди двух компьютерных устройств. Например, одно компьютерное устройство может действовать для выполнения приложения 4 электронной таблицы для того, чтобы опубликовать рабочую книгу 6, в то время как другое компьютерное устройство может действовать для выполнения клиентского приложения для использования данных.
Как это используется в настоящем описании, термины «источник данных» и «серверные источники данных» определенно относятся к базе данных, в которой могут быть выполнены запросы. Это определение включает реляционные базы данных (типа баз данных SQL), иерархические базы данных, многомерные базы данных (типа OLAP куба) или базы данных, которые объединяют аспекты реляционных и многомерных баз данных (типа UDM). Определение также включает базы данных, к которым может выполняться запрос через Веб-службы. Так же как используется в настоящем описании, термин «запрос к источнику данных» означает запрос, направленный к источнику данных, типа запроса SQL.
Приложение 13 сервера электронной таблицы включает серверную прикладную программу, которая может выполняться без использования экрана дисплея (автономно). Приложение 13 сервера электронной таблицы действует для выполнения многих функций клиентского приложения 4 электронной таблицы на серверном компьютере. Например, приложение 13 сервера электронной таблицы может загрузить и вычислить рабочую книгу 6. Как будет описано ниже, приложение сервера электронной таблицы 13 также обеспечивает функциональные возможности для того, чтобы открыть области в рабочей книге 6 для совместимых клиентов через сеть 10. Дополнительные подробности относительно различных функций, выполняемых клиентским приложением 4 электронной таблицы и приложением 13 сервера электронной таблицы, будут показаны ниже при рассмотрении фиг.2-5.
Обратимся теперь к фиг.2, где будет описана иллюстративная архитектура компьютерной системы для компьютера 2, используемого в различных вариантах воплощения изобретения. Архитектура компьютерной системы, показанная на фиг.2, иллюстрирует обычный настольный или портативный компьютер, включающий центральный процессорный модуль 5 («CPU»), системную память 7, включая оперативную память 9 («RAM») и постоянное запоминающее устройство 11 («ROM»), и системную шину 12, которая соединяет память с CPU 5. Базовая система ввода-вывода, содержащая основные подпрограммы, которые помогают передавать информацию между элементами в компьютере, например во время запуска, сохраняется в ROM 11. Компьютер 2 дополнительно включает в себя запоминающее устройство 24 большой емкости для хранения операционной системы 18, прикладных программ и других программных модулей, которые будут описаны более детально ниже.
Запоминающее устройство 24 большой емкости связано с центральным процессором 5 через контроллер запоминающего устройства большой емкости (не показан), связанный с шиной 12. Запоминающее устройство 24 большой емкости и связанные с ним читаемые компьютером носители информации обеспечивают энергонезависимую память для компьютера 2. Хотя описание читаемых компьютером носителей, содержавшееся здесь, относится к запоминающему устройству большой емкости, например, жесткого диска или устройства CD-ROM, специалисты в данной области техники признают, что читаемые компьютером носители могут быть любыми доступными носителями, к которым можно обратиться компьютером 2.
В качестве примера, но не ограничения, читаемые компьютером носители могут включать в себя компьютерные носители данных и коммуникационные носители. Компьютерные носители данных включают энергозависимые и энергонезависимые, сменные и несменные носители, осуществленные любым способом или технологией для хранения информации, такой как читаемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают, но не ограничены этим, RAM, ROM, EPROM, EEPROM, флэш-память или другие твердотельные технологии памяти, CD-ROM, цифровые универсальные диски («DVD») или другую оптическую память, магнитные кассеты, магнитную ленту, магнитную память на диске или другие магнитные запоминающие устройства, или любые другие носители информации, которые могут использоваться для хранения желательной информации и к которой можно обратиться компьютером 2.
Согласно различным вариантам воплощения изобретения, компьютер 2 может работать в сетевой среде, используя логические подключения к удаленным компьютерам через сеть 10, типа сети Интернет. Компьютер 2 может соединиться с сетью 10 через модуль 20 сетевого интерфейса, связанного с шиной 12. Необходимо отметить, что модуль 20 сетевого интерфейса может также использоваться для соединения с другими типами сетей и удаленных компьютерных систем. Компьютер 2 может также включать контроллер 22 ввода-вывода для получения и обработки ввод от множества других устройств, включая клавиатуру, мышь или электронное перо (не показанные на фиг.2). Точно также контроллер 22 ввода-вывода может предоставить вывод на экран дисплея, принтер или другой тип устройств вывода.
Как кратко упоминалось выше, множество программных модулей и файлов данных могут быть сохранены в запоминающем устройстве 24 большой емкости и оперативной памяти 9 компьютера 2, включая операционную систему 18, подходящую для управления операциями сетевого персонального компьютера, типа операционной системы WINDOWS XP от MICROSOFT CORPORATION, Редмонд, Вашингтон. Запоминающее устройство 24 большой емкости и оперативная память 9 может также хранить один или более программных модулей. В частности, запоминающее устройство 24 большой емкости и оперативная память 9 могут хранить клиентское приложение 4 электронной таблицы и клиентское приложение 8 OLAP, как описывалось выше. Запоминающее устройство 24 большой емкости и оперативная память 9 могут также хранить рабочую книгу 6, созданную клиентским приложением 4 электронной таблицы.
Согласно одному варианту воплощения изобретения, прикладная программа 4 электронной таблицы также действует для генерации метаданных 26 для каждого из объектов данных, содержащихся в рабочей книге. Метаданные 26 могут быть автоматически сгенерированы клиентским приложением 4 электронной таблицы или создаваться вручную пользователем. Метаданные 26 могут храниться в рабочей книге 6 и сохраняться вместе с рабочей книгой. Метаданные 26 могут использоваться серверным компьютером 12A при получении и ответе на запросы обращения к объектам данных в рабочей книге в качестве серверных источников данных. Как пример, прикладная программа 10 электронной таблицы может создать метаданные 26 для поля в рабочей книге, названного «ПОЧТОВЫЙ ИНДЕКС». Метаданные 26 могут указать название поля и могут установить в качестве типа данных для поля номер. Метаданные 26 могут также указать, что заданное по умолчанию соединение частей для поля является «суммой». Этот процесс может быть выполнен автоматически прикладной программой 4 электронной таблицы при создании источника данных, публикации источника данных, или в ответ на пользовательский запрос сгенерировать метаданные.
Необходимо отметить, что в вариантах воплощения изобретения программа 4 клиентского приложения электронной таблицы действует для обеспечения средства, позволяющего пользователю редактировать метаданные 26, созданные прикладной программой 4 электронной таблицы для объектов данных, содержащихся в рабочей книге 6. Например, используя вышеупомянутый пример, пользователь может счесть несоответствующим генерацию суммы почтовых индексов. Соответственно, пользователь может использовать средство, предоставленное клиентским приложением электронной таблицы 4, для редактирования метаданных 26, чтобы указать, что заданное по умолчанию соединение частей для поля «ПОЧТОВЫЙ КОД» не должно быть суммой, но должно скорее быть количеством. Измененные метаданные 26 могут тогда быть сохранены в рабочей книге 6 и опубликованы на серверном компьютере 12A. Этим способом серверный компьютер 12A может лучше ответить на запросы источника данных о данных, содержавшихся в этом поле. Иллюстративный интерфейс пользователя для редактирования метаданных 26, сгенерированных для объектов данных в рабочей книге клиентским приложением 4 электронной таблицы, будет описан более детально ниже при рассмотрении фиг.4.
Необходимо отметить, что серверные компьютеры 12A-12C могут включать в себя многие из обычных компьютерных компонентов, проиллюстрированных на фиг.2 и описанных выше. Дополнительно, серверный компьютер 12A может действовать для хранения и выполнения приложения 13 сервера электронной таблицы. Компьютер 12C файлового сервера может действовать для хранения и выполнения приложения 28 файлового сервера для получения и ответа на запросы о файлах, сохраненных в хранилище 14, например рабочей книги 6. Необходимо отметить, что серверные компьютеры 12A-12C могут включать другие обычные компоненты, не проиллюстрированные на фиг.2, но известные специалистам в данной области техники.
Обратимся теперь к фиг.3, где будет описана иллюстративная подпрограмма 300, иллюстрирующая процесс, выполняемый в соответствии с программой 4 клиентского приложения электронной таблицы для того, чтобы опубликовать область рабочей книги в качестве серверного источника данных. При чтении обсуждения подпрограмм, представленных здесь, необходимо оценить, что логические операции различных вариантов воплощения данного изобретения осуществлены (1) как последовательность осуществимых на компьютере действий или программных модулей, выполняющихся на компьютерной системе и/или (2) как связанные машинные логические схемы или модули схемы в компьютерной системе. Реализация является вопросом выбора, зависящего от требований работы компьютерной системы, осуществляющей изобретение. Соответственно, логические операции, проиллюстрированные на фиг.3 и 5 и составляющие варианты воплощения данного изобретения, описанного здесь, упомянуты по-разному как операции, структурные устройства, действия или модули. Как может отметить специалист в данной области техники, эти операции, структурные устройства, действия и модули могут быть осуществлены в программном обеспечении, во встроенном программном обеспечении, в специальной цифровой логике и любой их комбинации, не отклоняясь от духа и объема данного изобретения в соответствии с приложенной формулой изобретения.
Подпрограмма 300 начинается с операции 302, где пользователь использует клиентское приложение 4 электронной таблицы для создания рабочей книги 6. В частности, как описывается здесь, пользователь может использовать различные средства, предоставленные клиентским приложением 4 электронной таблицы для создания объектов данных в рабочей книге, включая области ячеек, сводных таблиц, DOE, списков, баз данных, запросов к таблицам и других объектов данных. Пользователь также может вручную ввести данные или создать запрос в рабочей книге 6 из источника данных 16. Различные функции и методологии, которые могут использоваться в клиентском приложении 4 электронной таблицы для создания рабочей книги 6, фактически неограниченны и известны специалистам в данной области техники.
От операции 302 подпрограмма 300 переходит к операции 304, где клиентское приложение 4 электронной таблицы генерирует метаданные 26 для использования серверным приложением 13 в ответе на запросы об обращении к рабочей книге 6 в качестве источника данных. В частности, клиентское приложение 4 электронной таблицы может анализировать различные источники данных, содержащиеся в рабочей книге 6, для идентификации данных, которые могут использоваться для описания различных источников данных в рабочей книге 6. Например, относительно реляционного источника данных клиентское приложение 4 электронной таблицы может идентифицировать названия столбцов и различные типы данных источников данных, содержавшихся в рабочей книге 6. Относительно многомерных источников данных, клиентское приложение 4 электронной таблицы может идентифицировать измерения, иерархию, и заданные по умолчанию соединения частей для различных источников данных.
Значения для этих свойств могут быть также установлены клиентским приложением 4 электронной таблицы интеллектуальным способом. Например, по отношению к полю данных строки, клиентское приложение 4 электронной таблицы может указать заданное по умолчанию соединение частей, как являющееся количеством. По отношению к числовым полям данных, клиентское приложение 4 электронной таблицы может установить заданное по умолчанию соединение частей в виде суммы. Другие типы интеллектуальных решений могут быть сделаны клиентским приложением 4 электронной таблицы для идентификации метаданных в рабочей книге 6 и устанавливающие свойства для метаданных.
От операции 304 подпрограмма 300 переходит к операции 306, где клиентское приложение 4 электронной таблицы определяет, сделал ли пользователь запрос на редактирование метаданных, сгенерированных клиентским приложением 4 электронной таблицы. Как кратко описывалось выше, клиентское приложение 4 электронной таблицы может предоставить интерфейс пользователя для редактирования сгенерированных метаданных. Может быть полезно, например, позволить пользователю отменить интеллектуальные решения, сделанные клиентским приложением 4 электронной таблицы при идентификации метаданных в рабочей книге 6 и установке различных свойств для метаданных.
Если, при операции 306, клиентское приложение 4 электронной таблицы решает, что запрос на редактирование метаданных был получен, подпрограмма 300 переходит к операции 308. При операции 308 клиентское приложение 4 электронной таблицы получает отредактированные метаданные от пользователя. Иллюстративный интерфейс пользователя, позволяющий пользователю редактировать метаданные, будет описан более детально ниже при рассмотрении фиг.4. От операции 308 подпрограмма 300 переходит к операции 310.
Если, при операции 306, приложение-клиент электронной таблицы 4 решает, что запрос на редактирование метаданных не был получен, подпрограмма 300 переходит к операции 310. При операции 310 метаданные 26, сгенерированные клиентским приложением 4 электронной таблицы и потенциально отредактированные пользователем, сохраняются с рабочей книгой 6. Сохранение рабочей книги 6 может произойти автоматически или может произойти в ответ на пользовательский запрос.
От операции 310 подпрограмма 300 переходит к операции 312, где рабочая книга 6, включая метаданные 26, публикуется приложением 13 сервера электронной таблицы. Публикация рабочей книги 6 может произойти в ответ на указание пользователя или может произойти автоматически. Например, публикация рабочей книги 6 может включать загрузку электронной таблицы в серверный компьютер 12A или, с точки зрения программы, генерацию электронной таблицы и посылки ее на серверный компьютер 12A через прикладной программный интерфейс сервера («API»). Когда рабочая книга 6 опубликована для приложения 13 сервера электронной таблицы, рабочая книга 6 сохраняется в хранилище 14. Приложение 13 сервера электронной таблицы также уведомляется относительно существования рабочей книги 6, и различные объекты данных, содержавшиеся в рабочей книге, могут тогда быть открыты как серверные источники данных. Необходимо отметить, что пользователю можно разрешить определить, какие из различных объектов данных в рабочей книге 6 открываются приложением 13 сервера электронной таблицы как источники данных. Альтернативно, все объекты данных в рабочей книге 6 могут быть открыты как объекты данных, или пользователю можно разрешить указать, что никакие объекты данных в рабочей книге 6 не открываются как источники данных.
Как только рабочая книга 6 была размещена в хранилище 14 и проанализирована приложением сервера электронной таблицы 13, клиентскими приложениями базы данных, типа клиентского приложения 8 OLAP или клиентского приложения 4 электронной таблицы, могут использоваться для запроса к содержимому рабочей книги 6 в качестве источника данных. Дополнительные подробности относительно различных функций, выполняемых приложением 13 сервера электронной таблицы для открытия содержимого рабочей книги 6 в качестве источника данных и получения и ответа на запрос к источнику данных, будут описаны более детально ниже относительно фиг.5. От операции 312 подпрограмма 300 переходит к операции 314, где она заканчивается.
Обратимся теперь к фиг.4, где будет описан иллюстративный интерфейс пользователя для разрешения пользователю редактировать метаданные, сгенерированные клиентским приложением 4 электронной таблицы для различных источников данных, содержавшихся в рабочей книге 6. Фиг.4 показывает окно 30 интерфейса пользователя, включающего множество компонентов интерфейса пользователя для редактирования метаданных. В частности, список 32 предназначен для того, чтобы перечислить каждое из доступных полей 34A-34N для источников данных, содержащихся в рабочей книге 6. Отношения между различными полями 34A-34N могут быть проиллюстрированы в списке 32, чтобы указать отношения между различными полями, идентифицированными клиентским приложением 4 электронной таблицы. Например, как показано на фиг.4, поля времени, года, месяца и даты могут быть независимыми друг от друга для того, чтобы указать иерархию среди различных полей.
Несколько кнопок 36A-36F интерфейса пользователя могут также быть предназначены для того, чтобы позволить пользователю упорядочить порядок и иерархию полей 34A-34N, показанных в списке 32. Например, кнопки 36A-36D интерфейса пользователя позволяют пользователю упорядочивать различные поля вверх, вниз, вправо или влево соответственно. Кнопка 36E интерфейса пользователя может использоваться для копирования одного из полей 34A-34N, и кнопка 36F интерфейса пользователя может использоваться для создания нового поля данных.
Как также показано на фиг.4, одно из полей, идентифицированных в списке 32, может быть выбрано пользователем, и свойства для поля можно показать в окне 30 интерфейса пользователя. Например, как показано на фиг.4, было выбрано поле 34N, представляющее собой почтовый индекс. Соответственно, имя поля отображено, используя текст 38. Также показан тип данных и соединение частей, назначенное полю почтового индекса клиентским приложением 4 электронной таблицы. Всплывающее меню 40A может быть предоставлено для того, чтобы изменить свойства типа данных, например от номера до строки. Точно также всплывающее меню 40B может быть предоставлено для того, чтобы позволить пользователю изменять значение поля соединения частей от суммы до количества. Необходимо отметить, что другие типы операций редактирования, кроме проиллюстрированных на фиг.4 и описанных здесь, можно разрешить через другое окно 30 интерфейса пользователя. Когда пользователь завершил редактирование, может быть выбрана кнопка 42 для сохранения модификации или может быть выбрана кнопка 44 для отмены изменения.
Обратимся теперь к фиг.5, где будет описана иллюстративная подпрограмма 500, иллюстрирующая действие приложения 13 сервера электронной таблицы для получения и ответа на запросы об областях рабочей книги в качестве источников данных. Подпрограмма 500 начинается с операции 502, где приложение сервера 13 электронной таблицы открывает различные области рабочих книг, содержавшихся в хранилище 14, в качестве серверных источников данных. Согласно одному воплощению изобретения, источники данных открываются через менеджера подключения данных типа того, что описан в одновременно зарегистрированной заявке на патент США, имеющий название «Method, System, and Apparatus for Discovering and Connecting to Data Sources», который явно включен здесь по ссылке (Attorney Docket No. 60001.0338US01). Альтернативно, источники данных, содержащиеся в рабочей книге, сохраненной в хранилище 14, могут быть открыты, используя другие типы интерфейсов серверного анализа, типа UDM. Как только приложение 13 сервера электронной таблицы открыло различные источники данных, клиентское приложение типа клиентского приложения 8 OLAP или клиентского приложения 4 электронной таблицы может обнаружить источники и выдать запросы к различным источникам данных.
Подпрограмма 500 переходит от операции 502 к операции 504, где приложение 13 сервера электронной таблицы получает запрос на соединение с рабочей книгой в качестве серверного источника данных. Например, при операции 506 приложение сервера электронной таблицы 13 может получить родной запрос к объекту данных, содержащемуся в области рабочей книги. Например, клиентское приложение OLAP может выдать родной запрос OLAP приложению 13 сервера электронной таблицы. Альтернативно, другие типы запросов могут быть выданы приложению 13 сервера электронной таблицы типа ODB, ODBC, XML-A и запросов SQL. Могут также использоваться другие типы стандартов для запроса к базе данных, известные специалистам в данной области техники.
При операции 508 приложение сервера 13 электронной таблицы загружает рабочую книгу 6, содержащую источник данных, к которому был направлен запрос. Как только рабочая книга 6 была загружена приложением 13 сервера электронной таблицы, подпрограмма 500 переходит к операции 510, где приложение сервера электронной таблицы 13 определяет, включает ли рабочая книга 6 ссылку на другой источник данных. Например, как описывалось кратко выше, рабочая книга может включать ссылку на источник данных, типа источника 16 данных.
Если рабочая книга 6 включает ссылку на другой источник данных, подпрограмма 500 переходит к операции 512, где приложение сервера электронной таблицы 13 запрашивает источник 16 данных о любых данных, требуемых для вычисления рабочей книги 6. Как только эти данные получены приложением сервера электронной таблицы 13, рабочая книга 6 модифицируется с учетом полученных данных.
Если, при операции 510, определяется, что рабочая книга 6 не включает ссылку на другой источник данных, подпрограмма 500 переходит к операции 514. При операции 514 приложение 13 сервера электронной таблицы повторно вычисляет содержимое рабочей книги 6. Необходимо отметить, что пересчет содержимого рабочей книги может быть «большим добавлением». «Большое добавление» допускает вычисления электронной таблицы на серверном источнике данных. От операции 514 подпрограмма 500 переходит к операции 516, где приложение сервера электронной таблицы 13 генерирует представление базы данных пересчитанной рабочей книги. В частности, временное представление базы данных, типа реляционной базы данных или OLAP куба, генерируется приложением 13 сервера электронной таблицы. Представление базы данных временно генерируется для выполнения требуемого запроса к идентифицированному источнику данных.
Как только представление базы данных требуемой рабочей книги было сгенерировано, подпрограмма 500 переходит к операции 518, где приложение сервера электронной таблицы 13 выполняет требуемый запрос к представлению базы данных пересчитанной рабочей книги. В ответ на выполнение запроса генерируется результат запроса, который удовлетворяет начальному запросу, полученному от клиентского приложения. От операции 518 подпрограмма 500 переходит к операции 520, где приложение 13 сервера электронной таблицы отвечает на первоначальный запрос запроса идентифицированным результатом запроса. От операции 520 подпрограмма 500 переходит к операции 522, где она заканчивается.
Базируясь на вышесказанном, необходимо отметить, что различные варианты воплощения изобретения включают способ, систему, устройство и читаемый компьютером носитель информации для открытия и использования области в рабочей книге в качестве серверных источников данных. Вышеупомянутая спецификация, примеры и данные обеспечивают законченное описание изготовления и использования состава изобретения. Так как могут быть сделаны много вариантов воплощений изобретения, не отступая от сущности и объема изобретения, изобретение полностью находится в прилагаемой формуле изобретения.