|
(21), (22) Заявка: 2005116631/09, 31.05.2005
(24) Дата начала отсчета срока действия патента:
31.05.2005
(30) Конвенционный приоритет:
01.06.2004 US 10/858,190
(43) Дата публикации заявки: 20.11.2006
(46) Опубликовано: 20.04.2010
(56) Список документов, цитированных в отчете о поиске:
US 6640223 B1, 28.10.2003. RU 2174709 С1, 10.10.2000. DE 10056519 A1, 29.05.2002.
Адрес для переписки:
129090, Москва, ул. Б.Спасская, 25, стр.3, ООО “Юридическая фирма Городисский и Партнеры”, пат.пов. Ю.Д.Кузнецову, рег. 595
|
(72) Автор(ы):
БАТТАГИН Дэниел С. (US), КЭМПБЭЛЛ Джонни С. (US), ХОКИНГ Роберт Дж. (US), МЕГИДДО Эран (US), АСНАШ Ливиу (US), МАРТЫНОВ Александр (US), ВЕЛКЕР Брайан Л. (US), ЛЕВИН Ира (US)
(73) Патентообладатель(и):
МАЙКРОСОФТ КОРПОРЕЙШН (US)
|
(54) СПОСОБ, СИСТЕМА И УСТРОЙСТВО ДЛЯ ОБНАРУЖЕНИЯ ИСТОЧНИКОВ ДАННЫХ И СОЕДИНЕНИЯ С ИСТОЧНИКАМИ ДАННЫХ
(57) Реферат:
Изобретение относится к способу и системе для обнаружения источников данных и соединения с источниками данных. Технический результат заключается в повышении быстродействия системы и упрощения способа обнаружения источников данных. Система включает в себя серверный компьютер, выполненный с возможностью поддержания централизованно управляемого хранилища определений соединений данных. Также предоставляется клиентский компьютер, включающий в себя прикладную программу, выполненную с возможностью потребления данных из источника данных. Когда приложением принимается запрос на соединение с источником данных, из серверного компьютера извлекается список доступных источников. Если выбирается один из источников данных в списке, то файл соединения данных извлекается и используется с целью соединения с источником данных. Если отчет открывается приложением, которое включает в себя ссылку на источник данных, то используется хранилище, чтобы подтвердить соединение с источником данных. 2 н. и 6 з.п. ф-лы, 5 ил.
Предшествующий уровень техники
Генерирование отчетов является одной из задач, наиболее часто выполняемых пользователями прикладных программ работы с электронными таблицами. Чтобы составить отчет, часто необходим доступ к какому-либо источнику данных, расположенному во внешней компьютерной системе. Например, чтобы получить данные, необходимые для конкретного отчета, может быть необходимо осуществить доступ к данным, содержащимся в удаленной базе данных или кубе аналитической обработки в реальном времени (“OLAP”).
Чтобы осуществлять доступ к такому источнику данных, должно быть создано сетевое соединение с источником данных. Чтобы создать такое соединение, необходимо знать идентификационную информацию серверного компьютера, в котором содержатся данные, идентификационную информацию базы данных внутри этого серверного компьютера и часто другие знания, специфичные для баз данных или технологий данных. Во многих случаях, однако, составитель отчета не имеет быстрого доступа к этой информации. Поэтому для пользователя может быть очень трудно найти расположение источника данных и соединиться с источником данных.
Как только пользователь наконец оказывается способен соединиться с источником данных, информация, необходимая, чтобы соединиться с источником данных, может захватываться и сохраняться в файле соединения данных для будущего использования. Однако для одного пользователя компьютера не существует легкого способа совместно использовать файл соединения данных с множеством других пользователей. Поэтому во многих случаях каждый пользователь, нуждающийся в осуществлении доступа к тому же источнику данных, должен сам независимо найти местоположение информации, необходимой для соединения с источником данных, или создать такую информацию. Для каждого пользователя это может являться тщетным и отнимающим много времени. Когда какая-либо организация имеет большое число аналитиков, нуждающихся в подсоединении к одному и тому же источнику данных, это может вызывать весьма значительную неэффективность.
При составлении отчетов с соединениями к внешним источникам данных внутри отчета обычно хранится информация, которая описывает соединение с источником данных. Таким способом может заново устанавливаться соединение с источником данных, когда впоследствии отчет открывается. Однако, если местоположение источника данных изменяется или источник данных блокируется, отчет будет идентифицировать неверное местоположение или другие параметры (такие как имена, имена таблиц, имена каталогов, и т.д.) для этого источника данных. Когда отчет открывается, пользователь может быть приведен в замешательство в отношении того, почему источник данных недоступен. Более того, если организация использует большое количество отчетов, которые ссылаются на модифицированный источник данных, может быть трудно отследить каждый из отчетов и модифицировать эти отчеты, чтобы они ссылались на новое местоположение источника данных. Отчеты, соединенные с этим источником данных, являются бесполезными до тех пор, пока кто-нибудь не найдет местоположение этих отчетов и вручную не обновит ссылки на этот источник данных.
Использование внешних источников данных также может вызывать трудности для системных администраторов. В частности, системные администраторы в настоящее время не имеют какого-либо способа, чтобы централизованно задавать соединения с доверяемыми источниками данных и делать эти соединения доступными для конечных пользователей. Более того, не имеется легкого способа для системного администратора, чтобы делать определенные источники данных доступными для одной группы пользователей и недоступными для другой группы пользователей.
По отношению к этим и другим рассуждениям были созданы различные варианты осуществления настоящего изобретения.
Сущность изобретения
В соответствии с настоящим изобретением вышеописанные и другие проблемы решаются посредством способа, системы и устройства для обнаружения источников данных и соединения с источниками данных. Используя различные аспекты этого изобретения, может осуществляться быстрый доступ к информации, необходимой для соединения с источником данных, данные могут легко публиковаться и совместно использоваться с другими пользователями, могут модифицироваться способом, который не требует изменения отчетов, использующих этот источник данных, и можно легко администрировать соединения источников данных из некоторого центрального местоположения.
Согласно одному аспекту этого изобретения предоставляется система для содействия в обнаружении доступных источников данных. Система включает в себя серверный компьютер, выполненный с возможностью поддержания централизованно управляемого хранилища (репозитория) определений соединений данных. Каждое из определений соединений данных включает в себя файл соединения данных, который хранит информацию соединения для установления соединения с источником данных, такую как сетевой адрес и местоположение базы данных для этого источника данных. Каждое определение соединения данных также включает в себя одно или более свойств метаданных, описывающих это соединение. Например, эти свойства могут включать в себя имя, текстовое описание, ключевые слова для поиска, инструкции для получения мандатов (порции информации, подтверждающей полномочия) для этого источника данных, и другую информацию. Соединения данных могут добавляться в хранилище только системными администраторами или другими доверяемыми пользователями.
Согласно другим аспектам этого изобретения система также может включать в себя клиентский компьютер, включающий в себя прикладную программу, выполненную с возможностью потребления данных из источника данных. Например, прикладная программа может содержать прикладную программу работы с электронными таблицами, которая использует данные из некоторого источника данных при выполнении финансового анализа. Прикладная программа выполнена с возможностью предоставления улучшенного пользовательского интерфейса для нахождения местоположения соединений данных. Согласно этому аспекту изобретения может приниматься запрос, такой как запрос от пользователя, чтобы создать соединение с источником данных. Когда такой запрос принимается, приложение передает серверному компьютеру запрос на список доступных источников данных.
В ответ на прием от приложения запроса на список доступных источников данных серверный компьютер осуществляет поиск в хранилище в отношении доступных источников данных. Согласно аспектам этого изобретения поиск может ограничиваться источниками данных, для которых пользователь прикладной программы имеет привилегии безопасности, или ограничиваться источниками данных, имеющими метаданные, соответствующие условиям фильтра, предоставленным пользователем. Когда один или более источников данных идентифицируются внутри хранилища, серверный компьютер отвечает на запрос от клиентского приложения посредством списка соответствующих источников данных.
Прикладная программа дополнительно выполнена с возможностью отображения для пользователя списка доступных источников данных. Список источников данных может быть отсортирован и отфильтрован на основе метаданных, ассоциированных с каждым источником. Когда пользователь предоставляет выбор одного из источников данных, чтобы с ним соединиться, прикладная программа передает серверному компьютеру запрос на информацию соединения данных, соответствующую выбранному источнику. В ответ серверный компьютер возвращает файл соединения данных.
После того, как файл соединения данных будет возвращен к клиентскому компьютеру, прикладная программа может использовать содержимое этого файла, чтобы устанавливать соединение с источником данных. Затем данные могут быть извлечены из источника данных и использованы в вычислениях, выполняемых прикладной программой. Когда некоторый отчет сохраняется прикладной программой, внутри этого отчета может быть сохранена ссылка на файл соединения данных. В частности, внутри отчета может быть сохранен указатель на файл соединения данных, расположенный на серверном компьютере. Файл соединения данных также может быть вставлен внутрь отчета.
Когда отчет, который включает в себя ссылку на некоторый источник данных, впоследствии открывается прикладной программой, осуществляется определение в отношении того, является ли эта ссылка указателем или вставленным файлом соединения данных. Если ссылка является указателем, осуществляется определение в отношении того, содержится ли файл соединения, идентифицируемый этим указателем, в централизованно управляемом хранилище соединений данных. Если файла соединения нет в этом хранилище, отчет загружается без установления соединения с источником данных. Если файла соединения нет в хранилище и информация соединения кэширована в отчете, то используется информация соединения в отчете, чтобы открыть соединение с источником данных. Если файл соединения находится в хранилище, файл соединения копируется из хранилища на клиентский компьютер. Затем прикладная программа использует этот файл соединения, чтобы открыть соединение с источником данных, и использует данные из этого источника данных внутри отчета.
Если определено, что ссылка на источник данных в отчете является вставленным файлом соединения данных, сначала осуществляется определение в отношении того, существует ли этот файл соединения данных также в хранилище. Если файл соединения данных содержится в хранилище, осуществляется определение в отношении того, соответствует ли информация во вставленном файле соединения данных данным, содержащимся в файле соединения данных, хранимом в хранилище. Если данные соответствуют, используется содержимое вставленного файла соединения данных, чтобы открыть соединение с источником данных.
Если файла соединения данных нет в хранилище или если содержимое вставленного файла соединения данных не соответствует содержимому файла соединения данных в хранилище, осуществляется определение в отношении того, является ли этот отчет доверяемым. Если отчет не является доверяемым, никакого соединения с источником данных не осуществляется. Если отчет является доверяемым, используется содержимое вставленного файла соединения данных, чтобы открыть соединение с источником данных.
Согласно другим аспектам изобретения может предоставляться прикладная программа для содействия в администрировании содержимого хранилища. В частности, могут добавляться в хранилище или удаляться из хранилища определения соединений данных. Соединения данных могут также модифицироваться, чтобы изменять любые из ассоциированных свойств, включая местоположение указываемого источника данных. Разрешения также могут быть ассоциированы с определениями соединений данных так, чтобы только определенные группы пользователей или аудитории были уполномочены (авторизованы) для просмотра соединения данных и соединения с источником данных.
Это изобретение может также реализовываться как компьютерный процесс, вычислительная система или устройство, либо как промышленное изделие, такое как компьютерный программный продукт или машиночитаемые носители. Компьютерный программный продукт может представлять собой компьютерные носители данных, читаемые компьютерной системой и кодирующие компьютерную программу инструкций для исполнения компьютерного процесса. Компьютерный программный продукт может также являться распространяемым сигналом в среде, читаемым вычислительной системой и кодирующим компьютерную программу инструкций для исполнения компьютерного процесса.
Эти и различные другие признаки, а также преимущества, которые характеризуют настоящее изобретение, будут видны из чтения последующего подробного описания и обзора связанных чертежей.
Перечень чертежей
Фиг.1 – диаграмма компьютерной сети, показывающая операционную среду для вариантов осуществления этого изобретения;
Фиг.2 – диаграмма базы данных, показывающая структуру и содержимое центрально управляемого хранилища для определений соединений данных, используемых различными вариантами осуществления этого изобретения;
Фиг.3 – диаграмма архитектуры компьютерной системы, показывающая компьютерную систему, используемую в различных вариантах осуществления изобретения и обеспечиваемую различными вариантами осуществления изобретения;
Фиг.4 – блок-схема последовательности операций, показывающая способ обнаружения источника данных, используя хранилище соединений данных; и
Фиг.5 – блок-схема последовательности операций, показывающая аспекты изобретения для загрузки и использования отчета, который включает в себя ссылку на источник данных.
Подробное описание изобретения
Ссылаясь теперь на чертежи, на которых одинаковые ссылочные позиции представляют одинаковые элементы, будут описываться различные аспекты настоящего изобретения. В частности, фиг.1 и соответствующее обсуждение предназначаются для предоставления краткого, общего описания подходящей вычислительной среды, в которой могут реализовываться варианты осуществления этого изобретения. В то время, как это изобретение будет описываться в общем контексте программных модулей, которые исполняются в сочетании с программными модулями, которые исполняются в некоторой операционной системе на персональном компьютере, специалисты в данной области поймут, что это изобретение может также реализовываться в комбинации с другими типами компьютерных систем и программных модулей.
В общем программные модули включают в себя процедуры, программы, компоненты, структуры данных и другие типы структур, которые выполняют конкретные задачи или реализуют определенные абстрактные типы данных. Более того, специалисты в данной области примут во внимание, что это изобретение может использоваться на практике с другими конфигурациями компьютерных систем, включая ручные устройства, мультипроцессорные системы, микропроцессорную или программируемую бытовую электронику, миникомпьютеры, универсальные компьютеры (мейнфреймы) и т.п. Это изобретение может также использоваться на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки данных, которые связаны через сеть связи. В распределенной вычислительной среде программные модули могут располагаться как в локальных, так и в удаленных запоминающих устройствах.
Как показано на фиг.1, некоторое количество компьютеров может взаимодействовать через распределенную сеть 10, такую как Интернет. В частности, компьютер 2 может быть подсоединен к сети Интернет, которая включает в себя приложение 4 составления отчетов и приложение 6 потребления отчетов. Приложение 4 составления отчетов содержит прикладную программу для создания отчета данных. Например, согласно одному варианту осуществления этого изобретения приложение 4 составления отчетов содержит прикладную программу работы с электронными таблицами, такую как прикладная программа работы с электронными таблицами EXCEL от MICROSOFT CORPORATION. Например, отчет в виде электронной таблицы может быть создан с использованием данных из внешнего источника данных, такого как источник 16 данных. Как будет описано более детально ниже, источник 16 данных может содержать любой тип базы данных, включая реляционную базу данных или OLAP-куб.
Согласно аспектам этого изобретения компьютер 2 может также включать в себя приложение 6 потребления отчетов. Приложение 6 потребления докладов может также содержать прикладную программу работы с электронными таблицами, такую как прикладная программа работы с электронными таблицами EXCEL от MICROSOFT CORPORATION. Чтобы потреблять данные, приложение 6 потребления отчетов может загружать ранее составленный отчет, который включает в себя ссылку на внешний источник данных. Когда этот отчет исполняется, данные будут извлекаться из внешнего источника данных и включаться в финансовые вычисления, которые содержат этот отчет. Следует принять во внимание, что приложение 4 составления отчетов и приложение 6 потребления отчетов могут содержать одну и ту же прикладную программу или различные прикладные программы. Более того, следует принять во внимание, что приложение 4 составления отчетов и приложение 6 потребления отчетов могут содержать любую программу, которая соединяется с внешним источником данных.
Как показано на фиг.1, серверный компьютер 12B также подсоединяется к сети 10. Серверный компьютер 12B выполнен с возможностью предоставления шлюза источнику 16 данных. Серверный компьютер 12B также выполнен с возможностью приема и ответа на запросы на данные, хранимые внутри источника 16 данных. Соответственно, серверный компьютер 12B может быть выполнен с возможностью исполнения программного обеспечения базы данных для предоставления доступа к данным, содержащимся в источнике 16 данных, через сеть 10. Такое программное обеспечение базы данных широко известно специалистам в данной области.
Как также показано на фиг.1, серверный компьютер 12A также подсоединяется к сети 10. Как будет описано более детально в этом документе, серверный компьютер 12A выполнен с возможностью поддержания хранилища 14 соединений данных. Хранилище 14 соединений данных содержит центрально управляемое хранилище определений соединений данных. Каждое из определений соединений данных, хранимых внутри хранилища 14 соединений данных, включает в себя файл соединения данных, который хранит данные для установления соединения с источником данных, такие как сетевой адрес и местоположение базы данных для источника данных. Например, со ссылкой на серверный компьютер 12B, хранилище 14 соединений данных может хранить файл соединения данных, который определяет сетевой адрес серверного компьютера 12B и дополнительную информацию, необходимую, чтобы соединяться с источником 16 данных.
Согласно вариантам осуществления этого изобретения хранилище 14 соединений данных также может хранить одно или более свойств метаданных, ассоциированных с каждым файлом соединения данных. Свойства могут включать в себя, например, общее имя, посредством которого может указываться соединение данных, текстовое описание соединения данных, ключевые слова для поиска для этого соединения данных, инструкции для получения мандатов для доступа к источнику данных, и другую информацию.
Согласно другим аспектам этого изобретения серверный компьютер 12A может принимать и отвечать на запросы на файлы соединений данных, хранимые в хранилище 14 соединений данных. Например, когда приложение 4 составления отчетов используется, чтобы соединиться с источником 16 данных, приложение 4 составления отчетов может запросить от серверного компьютера 12A все файлы соединений данных, доступные для соединения. В ответ на это серверный компьютер 12A может осуществлять поиск доступных файлов соединения данных в хранилище 14 соединений данных и возвращать список этих файлов приложению 4 составления отчетов. Согласно аспектам этого изобретения поиск, выполняемый серверным компьютером 12A в хранилище 14 соединений данных, может ограничиваться источниками данных, для которых пользователь приложения 4 имеет привилегии безопасности. Альтернативно поиск в хранилище 14 соединений данных серверным компьютером 12A может ограничиваться источниками данных, имеющими ассоциированные с ними метаданные, которые соответствуют условиям фильтра, предоставленным пользователем компьютера 2. Когда один или более источников данных идентифицируются внутри хранилища 14, серверный компьютер 12A отвечает на запрос посредством списка соответствующих источников данных.
После того, как приложение 4 составления отчетов принимает список доступных источников данных, эти источники данных могут быть представлены пользователю компьютера 2. Список источников данных может также быть отсортирован и отфильтрован на основе метаданных, ассоциированных с каждым источником. Когда пользователь приложения 4 выбирает один из источников данных, чтобы с ним соединиться, прикладная программа 4 передает серверному компьютеру 12A запрос на файл соединения данных, соответствующий выбранному источнику данных. В ответ на это серверный компьютер 12A извлекает из хранилища 14 соответствующий файл соединения данных и возвращает этот файл приложению 4 составления отчетов.
После того, как файл соединения данных будет возвращен компьютеру 2, приложение 4 может использовать содержимое файла соединения, чтобы установить соединение с источником 16 данных. Затем данные могут извлекаться из источника данных и использоваться в вычислениях, выполняемых прикладной программой 4. Когда отчет сохраняется прикладной программой 4, внутри отчета может быть сохранена ссылка на файл соединения данных. В частности, внутри доклада может быть сохранен указатель на файл соединения данных, расположенный на серверном компьютере. Файл соединения данных также может быть вставлен внутрь сохраняемого доклада.
Когда отчет, который включает в себя ссылку на источник данных, впоследствии открывается приложением 6 потребления отчетов, приложение может быть выполнено с возможностью определения того, является ли эта ссылка указателем или вставленным файлом соединения данных. Если ссылка является указателем на файл соединения данных, приложение 6 может осуществлять определение в отношении того, содержится ли файл соединения в хранилище 14 соединений данных. Если файла соединения данных нет в хранилище 14, приложение 6 потребления отчетов загрузит этот доклад без установления соединения с источником данных. Если, однако, файл соединения данных располагается в хранилище 14, файл соединения данных копируется серверным компьютером 12A из хранилища в компьютер 2. Затем приложение 6 может использовать файл соединения, чтобы открывать соединение с источником 16 данных и использовать данные из источника 16 данных внутри отчета. Если определено, что ссылка на источник данных в докладе является вставленным файлом соединения данных, выполняется последовательность операций, чтобы определить, должен ли использоваться этот вставленный файл соединения данных. Эта последовательность операций описывается более детально ниже по отношению к фиг.5.
Как показано на фиг.1, компьютер 2 может также включать в себя инструментальное средство 8 администрирования для соединений данных. Инструментальное средство 8 администрирования позволяет администратору управлять содержимым хранилища 14 соединений данных. В частности, системный администратор может определять новые соединения, модифицировать свойства существующих соединений и определять группы пользователей, которым следует разрешить видеть доступные соединения. Таким способом могут быть открыто представлены определенные соединения определенным группам пользователей, в то время как другие соединения не предоставляются. Следует принять во внимание, что инструментальное средство 8 администрирования может содержать автономное приложение, исполняющееся на компьютере 2, или другой тип исполнения приложения на серверном компьютере 12A. Например, серверный компьютер 12A может предоставлять интерфейс языка гипертекстовой разметки (“HTML”) для управления содержимым хранилища 14 соединений данных. Также могут предоставляться другие типы интерфейсов для управления файлами соединения данных, хранимыми внутри хранилища 14 соединений данных.
Теперь со ссылкой на фиг.2 будут представлены дополнительные детали относительно содержимого хранилища 14 соединений данных. Как кратко обсуждалось выше, хранилище 14 выполнено с возможностью хранения файлов 18A-18N соединения данных. Файлы 18A-18N соединения данных хранят данные, необходимые для соединения с источником 16 данных. В частности, файл 18A соединения данных может хранить сетевой адрес серверного компьютера 12B, вмещающего источник 16 данных. Дополнительно, файл 18A соединения данных может хранить дополнительные данные, идентифицирующие конкретный источник 16 данных, доступный на этом серверном компьютере 12B. В файле 18A соединения данных, необходимом, чтобы получать соединение с источником 16 данных, также может храниться другая информация.
Согласно различным вариантам осуществления этого изобретения также хранятся свойства 20A-20N соединения данных, которые соответствуют каждому файлу 18A-18N соединения данных. Как показано на фиг.2, свойства 20A соединения данных определяют метаданные для файла 18A соединения данных. В частности, согласно одному варианту осуществления изобретения, здесь представляемого, метаданные включают в себя дружественное имя 22A соединения данных, текстовое описание 22B соединения данных и одно или более ключевых слов 22C, которые могут использоваться пользователем компьютера 2 для поиска конкретного соединения. Ключевые слова 22C могут фильтроваться серверным компьютером 12A при идентификации файлов соединения данных, которые должны возвращаться компьютеру 2.
Метаданные, хранимые внутри свойств 20A соединения данных, также могут включать в себя поле 22D типа, которое идентифицирует тип источника данных или поставщика, такой как OLEDB, ODBC, SOAP и т.д. Содержимое поля 22D типа может использоваться, чтобы определять, поддерживается ли ассоциированный поставщик. Согласно вариантам осуществления этого изобретения поле 22E извлечения мандатов также может предоставляться внутри метаданных для описания типа мандатов, необходимых для доступа к специальному источнику данных. Например, это поле может хранить одно из четырех значений, показывающих, следует ли запрашивать пользователя в отношении мандатов, либо для доступа к источнику данных никаких мандатов не требуется, интегрированы ли мандаты, например через использование протокола сетевой авторизации Kerberos, или хранятся ли мандаты в другом местоположении. В этом отношении может использоваться текстовое поле 22F запроса, чтобы определять текст, отображаемый с запросом в отношении мандатов, поставляемых пользователем. Например, пользователь может быть запрошен ввести его идентификационный номер служащего и пользовательское имя для мандатов, чтобы осуществлять доступ к базе данных.
Свойства 20A соединения данных также могут хранить поле 22G “создавший”, идентифицирующее пользователя, который создал файл соединения данных, поле 22H “модифицировавший”, которое идентифицирует пользователя, который последним модифицировал файл соединения данных, и поле 22I “дата модификации”, которое идентифицирует последнюю дату, когда файл соединения данных модифицировался. Свойства 20A соединения данных также могут хранить строку 22J соединения, необходимую для установления соединения с источником 16 данных. Строка 22J соединения может копироваться из содержимого соответствующего файла соединения данных. Согласно вариантам осуществления этого изобретения свойства 20A соединения данных могут также хранить поле 22K идентификатора (ID) приложения единой службы предъявления пароля (“SSO”), поле 22L SSO имени пользователя и пароль 22M SSO. Содержимое этих полей используется, когда значение поля 22E извлечения мандатов установлено, чтобы использовать хранимые мандаты. Эти поля идентифицируют службу хранимых мандатов, имя и пароль пользователя, которые должны использоваться, чтобы получить доступ к источнику 16 данных. Следует принять во внимание, что здесь также могут храниться и использоваться другие типы метаданных внутри свойств 20A соединения данных. Например, другие типы метаданных могут включать в себя поля QueryTimeOut и DataCacheLifetime (не показаны), которые идентифицируют значения, которые позволяют серверному компьютеру замещать установленные по умолчанию настройки, чтобы размещать настройки, специфические для конкретного соединения данных, и поле Location (Местоположение) (не показано), которое хранит имя серверного компьютера для баз данных. Надо принять во внимание, что поле Location может являться полезным для администрирования соединений на серверном компьютере. Дополнительные метаданные для описания запроса (такого как текст команды, обновить, вставить, удалить и выбрать) также могут храниться внутри свойств 20A соединения данных.
Теперь со ссылкой на фиг.3 будет описываться иллюстративная компьютерная архитектура для компьютера 2, используемого в различных вариантах осуществления этого изобретения. Компьютерная архитектура, показанная на фиг.3, показывает стандартный компьютер общего назначения, включающий в себя центральное устройство 24 обработки данных (“CPU”), системную память 26, включающую в себя оперативное запоминающее устройство 28 (“RAM”) и постоянное запоминающее устройство (“ROM”) 30, и системную шину 32, которая соединяет память с CPU 24. Базовая система ввода/вывода, содержащая базовые процедуры, которые помогают переносить информацию между элементами внутри компьютера, как во время запуска, хранится в ROM 30. Компьютер 2 дополнительно включает в себя массовое запоминающее устройство 34 для хранения операционной системы 36, прикладных программ и других программных модулей, которые будут описаны более детально ниже.
Массовое запоминающее устройство 34 соединено с CPU 24 через контроллер массовой памяти (не показан), подсоединенный к шине 32. Массовое запоминающее устройство 34 и его ассоциированные машиночитаемые носители обеспечивают энергонезависимое хранение данных для компьютера 2. Хотя описание машиночитаемых носителей, здесь содержащихся, ссылается на массовое запоминающее устройство, такое как жесткий диск или дисковод CD-ROM, специалистам в данной области следует принять во внимание, что машиночитаемые носители могут быть любыми доступными носителями, к которым компьютер 2 может осуществлять доступ.
В качестве примера, а не ограничения, машиночитаемые носители могут содержать компьютерные носители данных и коммуникационные среды. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или технологией для хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Компьютерные запоминающие носители включают в себя, но не в ограничительном смысле, RAM, ROM, EPROM, EEPROM, флэш-память или другую технологию твердотельной памяти, CD-ROM, универсальные цифровые диски (“DVD”), или другое оптическое средство хранения данных, магнитные кассеты, магнитную ленту, магнитное дисковое средство хранения данных или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения желаемой информации и к которому компьютер 2 может осуществлять доступ.
Согласно различным вариантам осуществления этого изобретения компьютер 2 может работать в сетевой среде, используя логические соединения с удаленными компьютерами через сеть 10, такую как Интернет. Компьютер 2 может подсоединяться к сети 10 через устройство 38 сетевого интерфейса, подсоединенное к шине 32. Следует принять во внимание, что устройство 38 сетевого интерфейса также может использоваться для соединения с другими типами сетей и удаленными компьютерными системами. Компьютер 2 также может включать в себя контроллер 40 ввода/вывода для приема и обработки ввода от некоторого количества других устройств, включая клавиатуру, мышь или электронное перо (не показанные на фиг.1). Аналогично контроллер 40 ввода/вывода может обеспечивать вывод на экран дисплея, принтер или другой тип устройства вывода.
Как кратко упомянуто выше, некоторое количество программных модулей и файлов данных могут храниться в массовом запоминающем устройстве 34 и RAM 28 компьютера 2, включая операционную систему 36, подходящую для управления работой подключенного к сети персонального компьютера, такую как операционная система WINDOWS XP от MICROSOFT CORPORATION, Redmond, Washington. Массовое запоминающее устройство 34 и RAM 28 могут также хранить один или более программных модулей. В частности массовое запоминающее устройство 34 и RAM 28 могут хранить приложение 4 составления отчетов и приложение 6 потребления отчетов. Согласно одному варианту осуществления этого изобретения эти приложения содержат прикладную программу работы с электронными таблицами EXCEL от MICROSOFT CORPORATION. Следует принять во внимание, однако, что чтобы осуществлять различные аспекты настоящего изобретения, могут использоваться другие прикладные программы от других производителей.
Как показано на фиг.3, массовое запоминающее устройство 34 может также хранить отчет 42. В вариантах осуществления изобретения, здесь описываемого, отчет 42 содержит файл электронной таблицы, который включает в себя ссылку на источник данных, внешний по отношению к компьютеру 2. Посредством использования ссылки на внешний источник данных отчет 42 может использовать данные, содержащиеся внутри внешних баз данных, при выполнении различных типов анализа.
Как показано на фиг.3, массовое запоминающее устройство 34 может также хранить инструментальное средство 8 администрирования. Как кратко обсуждалось выше, инструментальное средство 8 администрирования может предоставлять функциональные возможности для центрального управления файлами соединения данных, хранимыми в хранилище 14. Файлы соединения данных могут добавляться или удаляться в хранилище, используя инструментальное средство 8 администрирования. Дополнительно содержимое файлов соединения данных может модифицироваться, и их ассоциированные метаданные, хранимые в свойствах 20A соединения данных, также могут изменяться. Дополнительно через использование инструментального средства 8 администрирования системный администратор может классифицировать группы людей или индивидуумов, уполномоченных просматривать конкретные файлы соединения данных. Этим способом могут создаваться группы, или аудитории, для конкретных файлов соединения данных.
Следует принять во внимание, что серверные компьютеры 12A и 12B, показанные на фиг.1, могут включать в себя многие из стандартных компонентов, показанных по отношению к компьютеру 2 на фиг.3. Дополнительно серверный компьютер 12A может включать в себя портальное приложение 46 для приема и ответа на запросы о доступе к файлам соединения данных, хранимым в хранилище 14. Портальное приложение 46 может выполнять необходимые функции, чтобы предоставлять файлы соединения данных только уполномоченным пользователям, фильтровать поиски в хранилище 14 соединений данных и иным образом принимать и отвечать на запросы от компьютера 2 для доступа к хранилищу 14. Дополнительно портальное приложение 46 может предоставлять HTML – интерфейс для администрирования содержимого хранилища 14 соединений данных. Функции, описанные выше со ссылкой на инструментальное средство 8 администрирования, могут выполняться через основывающийся на Web интерфейс, предоставляемый портальным приложением 46. Согласно одному варианту осуществления этого изобретения портальное приложение 46 содержит серверное приложение служб WINDOWS SHARE POINT от MICROSOFT CORPORATION.
Как показано на фиг.3, серверный компьютер 12B также может включать в себя приложение 44 базы данных. Как известно специалистам в данной области, приложение 44 базы данных выполнено с возможностью приема и ответа на запросы на соединения с источником 16 данных. Следует принять во внимание, что серверный компьютер 12B может включать в себя другое стандартное программное обеспечение, такое как операционная система 36, и другие компоненты, известные специалистам в данной области.
Теперь со ссылкой на фиг.4 будет описываться иллюстративная процедура 400, показывающая процесс для обнаружения источника данных, используя хранилище соединений данных. Следует принять во внимание, что хотя варианты осуществления изобретения, здесь описываемого, представляются в контексте прикладной программы работы с электронными таблицами, это изобретение может использоваться с любым типом прикладной программы, которая соединяется с источником данных. Например, варианты осуществления изобретения, здесь описываемого, могут использоваться внутри прикладной программы презентаций, прикладной программы рисования или автоматизированного проектирования, прикладной программы обработки текстов или прикладной программы базы данных.
При чтении обсуждения процедур, здесь представленных, следует принять во внимание, что логические операции различных вариантов осуществления настоящего изобретения реализуются (1) как последовательность реализуемых компьютером действий или программные модули, исполняющиеся в вычислительной системе и/или (2) как взаимосвязанные машинные логические схемы или схемные модули внутри вычислительной системы. Реализация является предметом выбора, зависящего от требований производительности вычислительной системы, реализующей это изобретение. Соответственно логические операции, показанные на фиг.4-5, и реализация вариантов осуществления настоящего изобретения, здесь описываемого, указываются различно как операции, структурные устройства, действия или модули. Специалист в данной области техники поймет, что эти операции, структурные устройства, действия и модули могут реализовываться в программном обеспечении, во встроенных программах, в цифровой логике специального назначения и любой комбинации перечисленного без отклонения от сущности и объема настоящего изобретения, определяемого прилагаемой формулой изобретения.
Теперь со ссылкой на фиг.4 будет описываться иллюстративная процедура 400 для обнаружения доступных источников данных, используя содержимое хранилища 14 соединений данных. Процедура 400 начинается на операции 402, где приложение 4 составления отчетов принимает запрос на соединение с источником данных. Такой запрос может приниматься программно или от пользователя. В ответ на такой запрос приложение 4 составления отчетов передает запрос серверному компьютеру 12A, запрашивая идентификационную информацию доступных источников данных, на операции 404. Запрос может включать в себя идентификационную информацию пользователя приложения 4 составления отчетов и одно или более условий фильтра, предоставляемых пользователем, для фильтрации содержимого хранилища 14 соединений данных.
Используя информацию, предоставленную приложением 4 составления отчетов в запросе, серверный компьютер 12A выполнен с возможностью осуществления поиска в содержимом хранилища 14 соединений данных в отношении файлов соединения данных, к которым пользователь компьютера 2 уполномочен осуществлять доступ и которые соответствуют каким-либо условиям фильтра, предоставленным пользователем. Следует принять во внимание, что серверным компьютером 12А может быть осуществлен поиск метаданных, хранимых внутри свойств 20A-20N соединения данных для каждого файла 18A-18N соединения данных, чтобы идентифицировать список свойств соединения данных, для которых пользователь уполномочен осуществлять просмотр и которые соответствуют каким-либо условиям фильтра, предоставленным пользователем. После того, как серверным компьютером 12A определен список доступных файлов соединения данных, приложению составления отчетов возвращается список файлов для исполнения на компьютере 2.
На операции 406 приложение 4 составления отчетов отображает список доступных источников данных пользователю компьютера 2. Пользователю затем может быть предложено выбрать один из доступных источников данных из отображенного списка. На операции 408 приложение 4 составления отчетов принимает от пользователя выбор некоторого доступного источника данных. В ответ на прием такого выбора приложение 4 составления отчетов передает идентификационную информацию выбранного файла соединения данных серверному компьютеру 12A на операции 410.
В ответ на прием идентификационной информации конкретного файла соединения данных серверный компьютер 12A извлекает файл соединения данных из хранилища 14 соединений данных и передает файл соединения данных, включая информацию, необходимую для соединения с источником данных, приложению 4 составления отчетов. Приложение 4 составления отчетов принимает файл соединения данных от серверного компьютера 12A на операции 412.
После того, как файл соединения данных принят компьютером 2, может использоваться содержимое файла соединения данных для соединения с источником данных, таким как источник 16 данных, идентифицированный данными, содержащимися внутри файла соединения данных. После того, как соединение открывается, приложение 4 составления отчетов может извлекать данные из источника данных и использовать эти данные в отчете 42.
Когда пользователь приложения 4 составления отчетов выбирает сохранить отчет, внутри доклада может быть сохранен указатель на файл соединения данных. Указатель на файл соединения данных не содержит данных, необходимых для соединения с источником 16 данных. Скорее указатель на файл соединения данных содержит указатель на серверный компьютер 12A и идентификационную информацию файла соединения данных, хранимого в хранилище 14 соединений данных. Посредством использования указателя на файл соединения данных, хранимый в хранилище 14, когда документ открывается, нужно только модифицировать файл соединения данных, чтобы обновить все отчеты, которые ссылаются на него. Альтернативно внутрь отчета может быть вставлен файл соединения данных. Процесс связывания с файлом соединения данных или вставки файла соединения данных внутрь файла происходит на операции 416. Как только этот процесс выполняется, процедура 400 переходит на операцию 418, где она заканчивается.
Со ссылкой на фиг.5 будет описываться иллюстративная процедура 500 для загрузки и исполнения отчета, который включает в себя соединение с источником данных. Например, этот процесс может выполняться, когда используется приложение 6 потребления отчетов для загрузки и исполнения отчета 42, который включает в себя соединение с источником 16 данных. После того, как отчет идентифицирован и загружен, процедура 500 начинается на операции 502, где приложение 6 потребления отчетов определяет, вставлена ли внутрь отчета ссылка на соединение данных или создан ли указатель на файл соединения данных в хранилище 14. Если был создан указатель на файл соединения данных, хранимый в хранилище 14 соединений данных, процедура 500 переходит на операцию 504. На операции 504 от приложения 6 потребления отчетов серверному компьютеру 12A передается запрос, чтобы определить, содержится ли файл соединения внутри хранилища 14 соединений данных. Если файл соединения данных, указанный внутри отчета, не содержится внутри хранилища 14 соединений данных, процедура 500 переходит от операции 504 к операции 505. На операции 505 приложение 6 потребления отчетов определяет, кэширована ли в отчете информация из файла соединения. Если информация из файла соединения кэширована в отчете, процедура 500 ответвляется от операции 505 к операции 510, где приложение 6 потребления отчетов использует кэшированную информацию в файле соединения, чтобы установить соединение с источником 16 данных. Однако, если информация в файле соединения не кэширована в отчете, процедура 500 ответвляется от операции 505 к операции 506. На операции 506 с источником данных не осуществляется никакого соединения. Однако если файл соединения данных, указанный в отчете, содержится в хранилище 14, процедура 500 ответвляется от операции 504 к операции 508.
На операции 508 осуществляется запрос на соответствующий файл соединения данных из серверного компьютера 12A. Когда файл соединения данных принимается в приложении 6 потребления отчетов, он используется, чтобы создать соединение с источником 16 данных на операции 510. После того, как соединение с источником 16 данных установлено и данные могут передаваться, запрос, содержащийся внутри отчета 512, исполняется приложением 6 потребления отчетов. От операции 512 процедура 500 переходит к операции 514, где она заканчивается.
Если на операции 502 определяется, что файл соединения данных вставлен внутрь отчета, процедура 500 ответвляется от операции 502 к операции 516. На операции 516 приложение 6 потребления отчетов передает запрос серверному компьютеру 12A, чтобы определить, содержится ли вставленный файл соединения внутри хранилища 14. Если вставленный файл соединения данных содержится внутри хранилища 14, процедура 500 ответвляется от операции 516 к операции 526. На операции 526 приложение 6 потребления отчетов определяет, соответствует ли информация, вставленная внутрь отчета, содержимому файла соединения данных, хранимого в хранилище 14. Если содержимое вставленного файла соединения данных соответствует содержимому файла соединения данных, хранимого в хранилище 14, процедура 500 ответвляется от операции 526 к операции 522, где приложение 6 потребления отчетов использует содержимое вставленного файла соединения данных, чтобы установить соединение с источником 16 данных. На операции 524 запрос, содержащийся в докладе, исполняется приложением 6 потребления отчетов. Процедура затем переходит к операции 514, где она заканчивается.
Если на операции 516 определяется, что вставленный файл соединения не содержится в хранилище 14, или если на операции 526 определяется, что вставленный файл соединения данных не соответствует данным, хранимым в хранилище 14, процедура 500 переходит к операции 518. На операции 518 приложение 6 потребления отчетов определяет, является ли отчет доверяемым. Файл является доверяемым, если он сохранен в безопасном местоположении, в котором только высоко привилегированные пользователи (такие как администраторы или пользователи, наделенные правами администратора) имеют разрешение осуществлять сохранение, но к которому другие менее привилегированные пользователи имеют только доступ “только на чтение”. Если отчет является недоверяемым, процедура 500 ответвляется к операции 520, где не осуществляется никакого соединения с источником данных. Если, однако, отчет является доверяемым, процедура 500 переходит от операции 518 к операции 522, где устанавливается соединение с источником 16 данных, как определено во вставленном файле соединения данных, и этот запрос исполняется на операции 524. От операций 520 и 524 процедура 500 переходит к операции 514, где она заканчивается.
На основе вышесказанного следует принять во внимание, что различные варианты осуществления этого изобретения включают в себя способ, систему, устройство и машиночитаемый носитель для обнаружения источников данных и соединения с источниками данных. Вышеприведенное описание, примеры и данные предоставляют полное изложение производства и использования состава этого изобретения. Так как может быть реализовано много вариантов осуществления этого изобретения без отхода от сущности и объема этого изобретения, это изобретение характеризуется формулой изобретения, прилагаемой ниже.
Формула изобретения
1. Реализуемый компьютером способ обнаружения источника данных и соединения с источником данных, содержащий этапы, на которых принимают запрос на соединение с источником данных, причем этот запрос на соединение с источником данных представляет собой запрос на соединение с источником данных с целью получения данных для использования в отчете; в ответ на данный запрос передают централизованно управляемому хранилищу соединений данных запрос на список доступных источников данных; принимают список доступных источников данных от централизованно управляемого хранилища соединений данных и отображают этот список; принимают выбор одного из доступных источников данных из отображаемого списка; передают идентификационную информацию выбранного источника данных в централизованно управляемое хранилище соединений данных; в ответ на передачу идентификационной информации выбранного источника данных принимают из упомянутого хранилища файл соединения данных, имеющий хранящиеся в нем данные для установления соединения с выбранным источником данных, и метаданные, описывающие одно или более свойств этого источника данных, причем в метаданных содержится поле мандатов для описания полномочий на доступ к упомянутому источнику данных, причем данное поле мандатов содержит совокупность значений, указывающих, следует ли запрашивать пользователя на предмет мандатов, действительно ли для доступа к этому источнику данных никаких мандатов не требуется, интегрированы ли мандаты или хранятся ли мандаты в другом местоположении; используют данные, хранящиеся в файле соединения данных, для установления соединения с выбранным источником данных; сохраняют в отчете указатель на файл соединения, хранящийся в централизованно управляемом хранилище соединений данных; принимают запрос на открытие отчета; в ответ на этот запрос определяют, содержится ли файл соединения, идентифицированный упомянутым указателем, в централизованно управляемом хранилище соединений данных; в ответ на определение того, что файла соединения, идентифицированного данным указателем, нет в централизованно управляемом хранилище соединений данных, загружают отчет без установления соединения с упомянутым источником данных; и в ответ на определение того, что файла соединения, идентифицированного данным указателем, нет в централизованно управляемом хранилище соединений данных и что данные в файле соединения кэшированы в отчете, используют данные в файле соединения для установления соединения с упомянутым источником данных.
2. Способ по п.1, дополнительно содержащий этапы, на которых в ответ на определение того, что файл соединения, идентифицируемый указателем, находится в централизованно управляемом хранилище соединений данных, копируют файл соединения из централизованно управляемого хранилища соединений данных, используют данные, хранимые в файле соединения данных, для установления соединения с выбранным источником данных и исполняют отчет.
3. Способ по п.1, дополнительно содержащий этап, на котором вставляют файл соединения в отчет.
4. Способ по п.3, дополнительно содержащий этапы, на которых в ответ на запрос на открытие отчета определяют, содержится ли файл соединения, вставленный в отчет, в централизованно управляемом хранилище соединений данных; в ответ на определение того, что вставленный файл соединения находится в централизованно управляемом хранилище соединений данных, используют данные, хранящиеся во вставленном файле соединения данных, для установления соединения с выбранным источником данных и исполняют отчет.
5. Способ по п.4, дополнительно содержащий этапы, на которых в ответ на определение того, что вставленного файла соединения нет в централизованно управляемом хранилище соединений данных, определяют, является ли отчет доверяемым; в ответ на определение того, что отчет является доверяемым, используют данные, хранящиеся во вставленном файле соединения данных, для установления соединения с выбранным источником данных и исполняют отчет; и в ответ на определение того, что отчет является недоверяемым, загружают отчет без установления соединения с источником данных.
6. Система для обеспечения обнаружения источников данных, содержащая серверный компьютер, выполненный с возможностью поддержания централизованно управляемого хранилища для определений соединений данных, причем определения соединений данных содержат файл соединения данных, имеющий хранящиеся в нем данные для установления соединения с источником данных, и метаданные, описывающие одно или более свойств для этого источника данных, причем в метаданных содержится поле мандатов для описания полномочий на доступ к упомянутому источнику данных, причем данное поле мандатов содержит совокупность значений, указывающих, следует ли запрашивать пользователя на предмет мандатов, действительно ли для доступа к упомянутому источнику данных никаких мандатов не требуется, интегрированы ли мандаты или хранятся ли мандаты в другом местоположении; и клиентский компьютер, выполненный с возможностью исполнять прикладную программу для потребления данных из источника данных, при этом прикладной программой предписывается принимать запрос на соединение с источником данных, причем этот запрос на соединение с источником данных представляет собой запрос на соединение с источником данных с целью получения данных для использования в отчете; в ответ на данный запрос передавать централизованно управляемому хранилищу соединений данных запрос на список доступных источников данных; принимать список доступных источников данных от централизованно управляемого хранилища соединений данных и отображать этот список; принимать выбор одного из доступных источников данных из отображаемого списка; передавать идентификационную информацию выбранного источника данных в централизованно управляемое хранилище соединений данных; в ответ на передачу идентификационной информации выбранного источника данных принимать из упомянутого хранилища файл соединения данных; использовать данные, хранящиеся в файле соединения данных, для установления соединения с выбранным источником данных; сохранять в отчете указатель на файл соединения, хранящийся в централизованно управляемом хранилище соединений данных; принимать запрос на открытие отчета; в ответ на этот запрос определять, содержится ли файл соединения, идентифицированный упомянутым указателем, в централизованно управляемом хранилище соединений данных; в ответ на определение того, что файла соединения, идентифицированного данным указателем, нет в централизованно управляемом хранилище соединений данных, загружать отчет без установления соединения с упомянутым источником данных; и в ответ на определение того, что файла соединения, идентифицированного данным указателем, нет в централизованно управляемом хранилище соединений данных и в ответ на определение того, что данные в файле соединения кэшированы в отчете, использовать данные в файле соединения для установления соединения с упомянутым источником данных.
7. Система по п.6, в которой серверный компьютер дополнительно выполнен с возможностью определения списка доступных источников данных из централизованно управляемого хранилища на основе одного или более условий фильтра, предоставляемых серверному компьютеру с запросом на список доступных источников данных.
8. Система по п.7, в которой клиентский компьютер дополнительно выполнен с возможностью исполнения прикладной программы для управления содержимым централизованно управляемого хранилища, расположенного на серверном компьютере.
РИСУНКИ
|
|