РАСШИРЕНИЕ ОТВЕТОВ НА ОБРАЩЕНИЯ К БАЗЕ ДАННЫХ, ИСПОЛЬЗУЯ ДАННЫЕ ИЗ ВНЕШНИХ ИСТОЧНИКОВ ДАННЫХ
ENRICHING DATABASE QUERY RESPONSES USING DATA FROM EXTERNAL DATA SOURCES

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0000] Настоящее изобретение относится, в общем, к базам данных и, в частности, к расширению ответов на обращения к базе данных, используя данные из внешних источников данных.
УРОВЕНЬ ТЕХНИКИ
[0001] Функционирование программного приложения зависит от рационального использования вычислительных ресурсов.
Следовательно, поддержка сохранения данных и механизмов их обработки является необходимой для обеспечения положительного восприятия со стороны пользователей.
[0002] Такие программные приложения включают в себя приложения баз данных, которые осуществляют доступ к внутренней базе данных предприятия, содержащей структурированные записи данных (например, табличные данные). Приложения баз данных создаются на базовой инструментальной платформе разработки для системы администрирования баз данных. Когда пользователь передает обращение к базе данных, приложение баз данных использует доступ к внутренней базе данных и (обычно) предоставляет ответ, состоящий из табличных данных, которые согласуются с обращением к базе данных.
[0003] В дополнение к внутренним данным, пользователи иногда хотят осуществлять доступ к данным из внешнего источника или источников данных, с тем чтобы просматривать такие данные наряду с полученными данными внутренней базы данных. Для того чтобы это делать, необходимо разработать приложение (поставщик источников данных), которое понимает, как обмениваться информацией с каждым внешним источником, например, понимает его модель аутентификации, протоколы связи (строки подключения) и/или любую другую информацию, такую как требования по биллингу. Разработка такого приложения лежит за пределами квалификации и/или она слишком трудоемкая для типичного автора обращений, который, вообще говоря, хочет всего лишь анализировать данные.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Этот раздел «Сущность Изобретения» предоставляется для того, чтобы представить подборку показательных концепций в упрощенном виде, которые дополнительно описываются ниже в разделе «Подробное Описание». Этот раздел «Сущность Изобретения» не предназначается для того, чтобы идентифицировать ключевые признаки или существенные признаки заявляемого изобретения, а также не предназначается он и для его использования каким-либо образом, ограничивающим объем заявляемого изобретения.
[0005] Кратко, разнообразные аспекты изобретения, описанного в настоящем документе, предназначаются для поддержания и обслуживания механизма преобразований, который позволяет, чтобы данные, полученные в результате обращений к внутренним базе данных, были расширены данными из внешних источников данных, используя непосредственные команды для обращений. В одном аспекте, механизм преобразований обеспечивает получение внешних данных, потому что не требует наличия отдельных поставщиков для различных внешних источников данных. Автору обращений или разработчику приложений не нужно сталкиваться с тем, каким образом обращения к базе данных подвергаются аутентификации, каким образом табличные данные импортируются из внешних источников данных, или каким образом пользователю выставляют счета за использование доступа, например.
[0006] В другом аспекте, сервер расширений использует механизм преобразований, чтобы объединять внутреннюю базу данных с табличными данными из одной или больше внешних баз данных. Поскольку внутренняя база данных может включать в себя не общедоступные (то есть частные) данные, сервер расширений предоставляет возможность прозрачного пополнения необщедоступных данных разнообразной общедоступной информацией.
[0007] В одном аспекте, сервер расширений извлекает параметры из обращения к базе данных, из которых идентифицируется логический объект. Логический объект включает в себя компоновку типов данных в виде компонент, которых показатели запрашиваются пользователем. Параметры также включают в себя показатели, которые используются в качестве критериев поиска и т.п., для того чтобы отбирать данные из внешних источников данных. Используя эти параметры, механизм преобразований инициирует вызовы подходящих собственных функций протокола, чтобы запрашивать данные из внешних источников данных.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Настоящее изобретение, в качестве примера, но не ограничения, иллюстрируется на сопроводительных чертежах, на которых одинаковые ссылочные цифры обозначают подобные элементы и среди которых:
[0009] Фиг.1 представляет блок-схему, иллюстрирующую иллюстративную систему для расширения ответов на обращения к базе данных, используя данные из внешних источников данных.
[0010] Фиг.2 представляет схему последовательности операций, иллюстрирующую этапы для расширения ответов на обращения к базе данных, используя данные из внешних источников данных, в соответствии с одним иллюстративным вариантом осуществлений.
[0011] Фиг.3 представляет схему последовательности операций, иллюстрирующую этапы для использования каталога для передачи запросов разнообразной информации на внешний источник данных, в соответствии с одним иллюстративным вариантом осуществлений.
[0012] Фиг.4 представляет схему последовательности операций, иллюстрирующую этапы для конвертации данных из внешних источников данных в расширенный ответ на обращение к базе данных, в соответствии с одним иллюстративным вариантом осуществлений.
[0013] Фиг.5 представляет схему последовательности операций, иллюстрирующую этапы для создания каталога для преобразовывания обращений к базе данных в собственные запросы на внешний источник данных, в соответствии с одним иллюстративным вариантом осуществлений.
[0014] Фиг.6 представляет собой схему последовательности операций, иллюстрирующую этапы для задания соответствия компонент логического объекта внешним источникам данных, согласно одному иллюстративному варианту осуществления.
[0015] Фиг.7 представляет блок-схему, представляющую иллюстративные, не ограничивающие, сетевые окружения, в которых могут осуществляться разнообразные варианты воплощения, описанных в настоящем документе.
[0016] Фиг.8 представляет блок-схему, представляющую иллюстративную, но не ограничивающую, вычислительную систему или рабочее окружение, в которых могут осуществляться один или больше аспектов разнообразных вариантов воплощения, описанных в настоящем документе.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЙ
[0017] Разнообразные аспекты технологии, описанной в настоящем документе, предназначаются, вообще говоря, для того, чтобы дополнять ответы на обращения к базе данных, используя данные, которые извлекаются из внешних источников данных. Обращение к базе данных включает в себя один или больше параметров, задающих один или больше критериев для отбора данных из внешних источников данных. Один иллюстративный параметр включает в себя идентификатор логического объекта (например, наименование) для группы типов данных. Каждый тип данных может включать в себя один или больше других типов данных. Другие иллюстративные параметры включают в себя один или больше показателей для одного или больше типов данных из группы типов данных. Некоторые другие иллюстративные параметры могут представлять собой контекстуальные параметры, которые ограничивают показатели, возвращаемые внешним источником данных, по отношению к конкретному времени и/или местоположению, например. Поскольку расширенные ответы на обращение к базе данных включают в себя табличные данные, группа типов данных определяет один или больше столбцов, в то время как упомянутые одно или больше показателей определяют одну или больше строк. В одном иллюстративном варианте осуществлений, данные столбца внутри каждой строки табличных данных соответствуют этим одному или больше показателям.
[0018] В одном иллюстративном варианте осуществлений, обращение к базе данных имеет отношение к расширению данных компании разнообразной информацией, иллюстрируемой как в качестве примера финансовая информация, такая как стоимости ценных бумаг, статистические данные персонала, отчеты о прибыли, показатели рыночной капитализации ("market caps"), недавние цены биржевых котировок и/или тому подобное. Один или больше внешних источников данных, таких как финансовые средства массовой информации, фондовые рынки, поисковые системы и/или тому подобное, предоставляют различную финансовую информацию для одного или больше наименований компаний, в ответ на вызовы собственных функций или обращения ("запросы"), запрашивающие такие данные. Типы данных, которые определяют части разнообразной финансовой информации, составляют логический объект. Следовательно, обращение к базе данных включает в себя наименование логического объекта и одно или больше наименований компаний в качестве параметров.
[0019] Иллюстративный логический объект включает в себя некоторое количество компонент (то есть типов данных), включая компоненты, представляющие численность персонала, рыночную капитализацию (market cap) и стоимость ценных бумаг. Многие другие компоненты могут быть включены в состав логического объекта, например, руководство компании, валовой оборот, штат, где была произведена регистрация, годы существования и т.д. Для доступа к таким данным из внешнего источника, механизм преобразований предоставляет один или больше иллюстративных параметров, включающих в себя любую из компонент логического объекта (например, идентифицированных в пользовательском запросе), и дает команду программным средствам обеспечения связи, работающим на подходящем внешнем источнике данных, исполнять собственную функцию. Следовательно, программные средства обеспечения связи возвращают показатели для численности персонала, показатель рыночной капитализации и/или стоимости ценных бумаг, например, если таковые конкретизируются.
[0020] В качестве примера, рассмотрим предприятие с таблицей "companies" под названием (name) C, содержащей строки наименований компаний со столбцом данных о почтовых индексах (zipcode) (среди, вероятно, многих других столбцов) для разнообразных строк компаний. Рассмотрим случай, когда внутренняя база данных не включает в себя данные биржевых котировок (stock ticker) или численность персонала (num_employees) для каждой компании, но когда такая информация является доступной из внешних источников. Чтобы просматривать данные, отформатированные как name, zipcode, ticker и num_employees, в предшествующие времена нужно было иметь прикладное приложение (поставщик), для слияния результатов внутренних обращений с данными из внешних источников. С помощью расширений данных, пользователю нужно всего лишь задать заранее определенный логический объект (например, "CompanyFinancial"), который включает в себя подходящие компоненты, такие как ticker, num_employees, market_cap и т.д., и подать подходящее обращение:
SELECT name, zipcode, ticker, num_employees
FROM Companies с
ENRICH on CompanyFinancial (c.name).
[0021] Первая строка задает столбцы данных для получения, из которых name и zipcode являются доступными из внутренней базы данных предприятия, в то время как ticker и num_employees являются доступными из внешнего источника (или источников). Вторая строка обозначает таблицу, которую обогащают. Третья строка представляет собой расширение данных, в которой задается заранее определенный логический объект "CompanyFinancial", который включает в себя компоненты для внешних данных, где параметр c.name задает для каких компаний возвращать внешние данные, а именно, для тех, которые находятся в таблице "Companies c". Отметим, что пользователь может просматривать логический объект "CompanyFinancial", чтобы определять, что требуемые столбцы данных (ticker и num_employees в этом примере) будут удовлетворены посредством задания этого логического объекта.
[0022] Если одна из компонент логического объекта, такая как численность персонала, не является доступной (или она остается неизвестной) из одного источника данных, механизм преобразований может дать команду программным средствам обеспечения связи, работающим в другом внешнем источнике данных, исполнять другую собственную функцию, чтобы использовать доступ к неизвестной компоненте логического объекта. Следовательно, механизм преобразований заменяет потребность в одном или больше отдельных поставщиках данных для обмена информацией с каждым типом внешнего источника данных.
[0023] Поскольку внешний источник данных может использовать уникальный или патентованный протокол (например, интерфейс прикладного программирования (API)) для передачи данных, механизм преобразований осуществляет доступ к конфигурационным данным (например, хранящимся в каталоге), чтобы сконфигурировать вызов функции или удаленный запрос, которые являются совместимыми с таким протоколом. Вызов функции или удаленный запрос включают в себя критерии для идентификации некоторой из разнообразной информации (например, финансовой информации), чтобы использовать ее для расширения. После того, как механизм преобразований инициирует вызов функции или запрос, внешний источник данных возвращает данные, согласующиеся с такими критериями. Поскольку данные систематизируются в соответствии с собственным форматом, механизм преобразований конвертирует данные в форму совместимых табличных данных.
[0024] Например, механизм преобразований может вызывать функцию, запрашивающую стоимость ценных бумаг конкретной компании из базы данных фондового рынка. Такой вызов включает в себя специфическое наименование компании (или символ), наряду с некоторым указанием (например, атрибутом), указывающим, что запрашивается стоимость ценных бумаг. Стоимость ценных бумаг передается в механизм преобразований в собственном формате. Механизм преобразований извлекает стоимость ценных бумаг и внедряет стоимость ценных бумаг в табличные данные, которые формируют часть расширенного ответа на обращение к базе данных. В свою очередь, табличные данные могут использоваться, чтобы заполнять один или больше столбцов внутренней базы данных предприятия, включающих в себя частные данные.
[0025] Как уже упоминалось выше, некоторые из иллюстративных параметров могут включать в себя контекстуальные параметры, которые определяют местоположение и/или показатель времени. Механизм преобразований использует контекстуальные параметры для того, чтобы идентифицировать данные, которые соответствуют показателям местоположения и/или времени, из внешнего источника данных. Например, механизм преобразований использует специфические дату/время в качестве параметра вызова собственной функции для того, чтобы отбирать стоимость ценных бумаг в конкретные дату/время. В качестве другого примера, механизм преобразований инициирует вызов другой собственной функции для вычисления средней стоимости ценных бумаг за временной интервал (например, за некоторое количество дней).
[0026] В альтернативном иллюстративном варианте осуществлений, обращение к базе данных включает в себя параметры для частных данных компании разнообразной информацией о новостях в конкретном географическом местоположении (или вокруг него), которое может быть представлено в виде физического местоположения (например, в виде географических или геодезических координат) или в виде местоположения интернет ресурса (например, в виде адреса Интернет - Протокола (IP)). Например, механизм преобразований может инициировать вызов собственной функции для новостей, относящихся к компаниям внутри диапазона некоторого местоположения согласно Системе глобального позиционирования (GPS). Вызов собственной функции может дополнительно запрашивать новости, относящиеся к компаниям, в течение конкретного периода времени, такие как хронологические новости или текущие новости.
[0027] Фиг.1 представляет блок-схему, иллюстрирующую иллюстративную систему для расширения ответов на обращения к базе данных, используя данные из внешних источников данных. Иллюстративная система (например, реализованная в одном сервере среди многих серверов) может обеспечивать действие разнообразных служб баз данных. Иллюстративная система включает в себя различные иллюстративные компоненты, такие как обработчик 102 SQL, сервер 104 расширений и механизм 106 преобразований, как это описывается в настоящем документе. Сервер 104 расширений может представлять собой один или больше серверов, содержащих службу расширений.
l
n
[0028] Обработчик 102 SQL принимает обращения к базе данных, включающие в себя разнообразные параметры (то есть иногда называемые параметрами расширений), такие как идентификатор логического объекта. Сервер 104 расширений может осуществлять доступ к данным логического объекта 108 и проверять, что каждая компонента в обращении является доступной из внутренних данных 109 или же посредством логического объекта, который согласуется с идентификатором логического объекта. Что касается внешних компонент логического объекта, сервер 104 расширений использует механизм 106 преобразований для доступа к данным на одном или больше внешних источников 110-110 данных и отбирает показатели для разнообразных компонент логического объекта. Эти показатели могут сохраняться в виде табличных данных внутри расширенного ответа на обращение к базе данных, который передается на обработчик 102 SQL посредством сервера 104 расширений. В одном варианте осуществлений, обработчик 102 SQL сконфигурирован заполнять части (например, один или больше столбцов табличных данных) внутренней базы 109 данных расширенным ответом на обращение к базе данных.
l
n
[0029] Для того, чтобы знать, как обмениваться информацией с каждым внешним источником, механизм преобразований осуществлеяет доступ к каталогу 112 с информацией, сохраняемой для каждого источника данных, который соответствует компоненте логического объекта. Например, в каталоге 112 имеются записи для каждого внешнего источника данных 110-110, причем каждая запись определяет протокол для обмена информацией с внешним источником данных, включая вызовы собственных функций, форматы данных, биллинговые процедуры, учетные данные безопасности и/или тому подобное. Каждый может легко оценить, что вместо каталога, или в дополнение к нему, может использоваться любой пригодный механизм для определения такой информации, включая обслуживание протокола и/или связанных с ним данных, в другом хранилище данных, жесткое программирование протокола и/или связанных с ним данных, в механизма преобразований и т.д.
[0030] Сервер 104 расширений и механизм 106 преобразований могут сохраняться и эксплуатироваться на локальном компьютере и/или в сети, чтобы управлять доступом к локальным и/или сетевым базе данных. Альтернативно, сервер 104 расширений и/или механизм 106 преобразований могут быть включены в состав приложений облачных вычислений (cloud computing), где локальный компьютер, в основном, эксплуатируется в качестве интерфейса для совместного использования вычислительных ресурсов в центре обработки данных удаленного сервера. В течение того времени, когда приложения облачных вычислений сохраняют табличные данные в некоторой внутренней базе данных, эта внутренняя база данных не сохраняется на локальном компьютере, например.
l
n
[0031] В соответствии с одним иллюстративным вариантом осуществлений, сервер 104 расширений может использовать политику 114, чтобы задавать соответствие каждой из разнообразных компонент логического объекта на подходящему внешнему источнику данных среди множества источников 110-110 данных. Например, стратегия 114 может включать в себя предпочтения, ассоциированные с отбором подходящего внешнего источника данных. В качестве более конкретного примера, политика 114 может обозначать предпочтение бесплатным информационным службам перед коммерческими/платными информационными службами, в соответствии с которым сервер 104 расширений отбирает коммерческую/платную информационную службу только в том случае, если бесплатной возможности выбора не существует; кроме того, в политике может быть определено и ограничение на цену. В качестве другого примера, политика 114 может назначать высокий приоритет конкретному источнику данных. В случае, когда показатель для компоненты логического объекта не может быть получен или вычислен, сервер 104 расширений использует этот конкретный источник данных для доступа к данным для расширения ответа на обращение к базе данных.
l
n
1
n
[0032] В соответствии с одним иллюстративным вариантом осуществлений, множество внешних источников 110-110 данных включает в себя любой тип удаленной или Интернет - службы данных (например, информационные web-каналы, сообщения, коммерческие или бесплатные базы данных, поисковые системы и/или тому подобное), из которой извлекаются табличные данные, и они затем используются, чтобы сгенерировать расширенный ответ на обращение к базе данных. Каждый из внешних источников данных 110–110 реализует конкретный протокол, который позволяет другим компьютерным системам осуществлять доступ к табличным данным. Конкретный протокол может включать в себя интерфейс прикладного программирования, в котором вызов некоторых функций приводит к извлечению части табличных данных. Поскольку некоторые функции являются собственными для этого конкретного протокола, они могут быть названы как собственные функции.
[0033] Входные параметры для собственных функций идентифицируют части табличных данных, которые будут возвращены. Например, механизм 106 преобразований вызывает функцию с входными параметрами, задающими наименование компании и запрашиваемый тип данных, такой как текущая стоимость ценных бумаг. Один из внешних источников данных осуществляет поиск по базе данных, которая предоставляет стоимости ценных бумаг, и возвращает табличные данные, состоящие из наименования компании и текущей стоимости ценных бумаг. В качестве другого примера, механизм 106 преобразований может запрашивать стоимость ценных бумаг в течение предшествующего дня, такого как день накануне. В дополнение к наименованию компании, входные параметры включают в себя параметр, задающий день.
[0034] Фиг.2 представляет собой схему последовательности операций, иллюстрирующую этапы для расширения ответов на обращения к базе данных, используя данные из внешних источников данных, в соответствии с одним иллюстративным вариантом осуществлений. Этапы, изображенные на Фиг.2, начинаются на этапе 202 и переходят к этапу 204, когда обращения к базе данных обрабатываются обработчиком 102 SQL. Этап 204 представляет собой распознавание параметров расширений внутри обращения к базе данных и передачу обращения к базе данных на сервер 104 расширений.
[0035] Этап 206 иллюстрирует извлечение параметров расширений из обращения к базе данных, которые включают в себя идентификатор логического объекта, и один или больше показателей для одной или больше компонент логического объекта. Как это описывается в настоящем документе, эти компоненты логического объекта включают в себя типы данных, ассоциированные с расширением обращения к базе данных. Результаты из внешних источников данных соответствуют одному или больше показателям, как это также описывается в настоящем документе. Этап 208 представляет собой задания соответствия компонент логического объекта внешним источникам данных. Один иллюстративный вариант осуществлений этапа 208 иллюстрируется на Фиг.6, в котором политика определяет, какой внешний источник данных использовать для получения данных для конкретной компоненты логического объекта.
[0036] Этап 210 реализует механизм 106 преобразований, который производит и передает собственные запросы разнообразных данных на внешние источники данных. Собственные запросы конфигурируются, в соответствии с протоколом для соединения с внешними источниками данных, для исполнения совместимых команд и получения результатов. В одном примере, собственные запросы включают в себя вызовы собственных функций, которые реализуются внешними источниками данных. На Фиг.3 показан иллюстративный вариант осуществлений этапа 210, в котором используется каталог для преобразования обращения к базе данных в форму таких вызовов собственных функций, запрашивающих данные для компонент логического объекта.
[0037] Этап 212 предназначается для обработки данных, принятых от внешних источников данных, в качестве ответа на собственные запросы. В одном иллюстративном варианте осуществлений, механизм 106 преобразований конвертирует данные, предоставленные внешним источником данных, в табличные данные, которые используются, чтобы сгенерировать расширенный ответ на обращение к базе данных. Сервер 204 расширений передает расширенный ответ на обращение к базе данных в обработчик 102 SQL, который возвращает представление расширенного табличного ответа и/или внедряет табличные данные во внутреннюю таблицу внутренней базы данных, например, в соответствии со схемой. Внутренняя таблица может обновляться автоматически на запланированной основе и тому подобное, например, посредством автоматического генерирования нового обращения на предмет внешних данных и использования этих данных в расширенном ответе данных, чтобы внедрять обновленные данные.
[0038] В необязательном порядке, сервер 204 расширений собирает статистические данные, касающиеся связанных с биллингом действий, диагностики источников данных и/или тому подобное. Эти статистические данные могут использоваться в разнообразных целях, таких как контроль расходов на биллинг, анализ источников данных и обновление политики. Например, политики может включать в себя ограничение использования для конкретного источника данных. Если статистические данные показывают, что ограничение использования было достигнуто, другой источник данных может быть отобран исходя из политики. Этап 214 представляет собой завершение расширений ответов на обращения к базе данных.
[0039] Фиг.3 представляет собой схему последовательности операций, иллюстрирующую этапы для использования каталога для передачи запросов разнообразной информации во внешний источник данных, в соответствии с одним иллюстративным вариантом осуществлений. Эти запросы конфигурируются так, чтобы представлять собой собственную команду для внешнего источника данных. Сервер 104 расширений использует механизм преобразований для создания этих запросов на основе обращения к базе данных, которое передается от обработчика 102 SQL. Этапы, изображенные на Фиг.3, начинаются на этапе 302 и переходят к этапу 304, где сервер 104 расширений осуществляет доступ к каталогу, реализуя механизм 106 преобразований.
[0040] Этап 306 представляет собой исследование записи в каталоге, ассоциированной с внешним источником данных. Этап 308 относится к идентификации протокола для обмена информацией с внешним источником данных. Каталожная запись определяет протокол для обмена информацией с внешним источником данных, включая вызовы собственных функций, форматы данных, биллинговые процедуры, учетные данные безопасности и/или тому подобное. Следовательно, такой протокол используется механизмом 106 преобразований для инициирования одного или больше вызовов собственных функций к внешнему источнику данных.
[0041] Этап 310 предназначается для установления соединения с внешним источником данных. Протокол каталожной записи также включает в себя местоположение, такое как IP-адрес, а так же любые процедуры аутентификации для внешнего источника данных. Например, имя пользователя учетной записи и пароль могут быть востребованы при доступе к внешнему источнику данных. После установления сеанса (например, сеанса HTTP или HTTPS), механизм 106 преобразований отбирает одну или больше конкретных баз данных или таблиц и инициирует вызовы, запрашивающие разнообразную информацию, как это иллюстрируется посредством этапа 312. Эти вызовы включают в себя вызовы собственных функций, ассоциированных с API внешнего источника данных. Этап 314 относится к завершению использования каталога, чтобы передавать запросы разнообразной информации во внешний источник данных.
[0042] Фиг.4 представляет собой схему последовательности операций, иллюстрирующую этапы для конвертации данных из внешних источников данных в форму расширенного ответа на обращение к базе данных, в соответствии с одним иллюстративным вариантом осуществлений. Этапы, изображенные на Фиг.4, начинаются на этапе 402 и переходят к этапу 404, когда механизм 106 преобразований принимает данные от внешних источников данных, в ответ на собственные запросы разнообразной информации, такой как финансовая информация или информация о новостях.
[0044] Этап 410 предназначается для возвращения представления расширенной таблицы и/или заполнения внутренней базы данных, используя расширенный ответ на обращение к базе данных. С помощью сервера 104 расширений, табличные данные, созданные из показателей, которые были возвращены конкретным внешним источником данных, могут быть внедрены в некоторую таблицу или в один или больше столбцов внутри внутренней базы данных, в соответствии с одним иллюстративным вариантом осуществлений. В одном примере, табличные данные совместно используют подобную схему с помощью некоторой таблицы, что переводит функционирование по внедрению в ряд операций по копированию данных. Альтернативно, упомянутая некоторая таблица представляет собой незаполненную или временную таблицу вне пределов реляционной парадигмы, ассоциированной с внутренней базой данных. Этап 412 означает завершение расширенного ответа на обращение к базе данных.
[0045] Фиг.5 представляет собой схему последовательности операций, иллюстрирующую этапы для создания каталога, чтобы преобразовывать обращения к базе данных в собственные запросы к внешнему источнику данных, в соответствии с одним иллюстративным вариантом осуществлений. Каталог образует часть механизма 106 преобразований. Этапы, изображенные на Фиг.5, начинаются на этапе 502 и переходят к этапу 504, когда механизм 106 преобразований генерирует незаполненную запись в каталоге.
[0046] Как это объясняется дополнительно ниже, механизм 106 преобразований сохраняет разнообразную информацию в незаполненной записи в каталоге, такую как протокол для обмена информацией с внешним источником данных, в соответствии с одним иллюстративным вариантом осуществлений. Протокол определяет вызовы собственных функций для запрашивания информации и форматы для систематизации запрашиваемой информации. В одном примере, протокол требует разнообразных учетных данных, таких как имя пользователя и пароль.
[0047] Этап 506 предназначается для соединения с внешним источником данных. Например, механизм 106 преобразований создает сеанс, использующий IP-адрес, с помощью интерфейса к внешнему источнику данных, такого как интерфейс прикладного программирования (API). Механизм 106 преобразований приступает к обмену информацией с внешним источником данных через этот интерфейс, что представляется этапом 508. В некоторых вариантах осуществлений, механизм 106 преобразований использует интерфейс для перечисления каждой имеющейся в наличии базы данных, и отбирает подходящую базу данных в ответ на политику, как это описывается в настоящем документе.
[0048] Этап 510 относится к определению требований для использования протокола, ассоциированного с внешним источником данных. В одном иллюстративном варианте осуществлений, механизм 106 преобразований идентифицирует функции, которые исполняются интерфейсом и сконфигурированы для возвращения разнообразной информации. Эти функции являются собственными для внешнего источника данных, и они предоставляют возможность доступа к одной или больше баз данных, имеющихся в наличии. Механизм 106 преобразований также определяет, какие учетные данные необходимы для поиска по одной или больше базе данных, имеющимся в наличии, в соответствии с одним примером. В альтернативном примере, механизм преобразований также определяет, используется ли уникальный формат или запатентованный формат для обмена данными с внешней базой данных. Любая информация, касающаяся требований касаемо использования протокола, сохраняется в незаполненной записи в каталоге, как это представляется этапом 512. Будучи заполненной, упомянутая запись в каталоге используется, чтобы обновлять каталог, что показывается этапом 514.
[0049] Этап 516 представляет собой принятие решения относительно того, обновлять ли дополнительно каталог другой записью для следующего внешнего источника данных. Если имеются еще внешние источники данных для изучения, этапы 504-514 повторяются. Если, с другой стороны, нет больше внешних источников данных для изучения, выполняется этап 516, во время которого завершается создание каталога. Каталог может быть перестроен и/или обновлен в любое подходящее время, например, всякий раз, как только добавляется новый источник данных или он изменяет свой протокол.
[0050] Фиг.6 представляет собой схему последовательности операций, иллюстрирующую этапы для задания соответствия компонент логического объекта внешним источникам данных, согласно одному иллюстративному варианту осуществлений. Каждая компонента логического объекта включает в себя тип данных, показатель или показатели которого расширяют ответ на обращение к базе данных. Как уже упоминалось в настоящем раскрытии, обращение к базе данных задает логический объект, который представляет собой компоновку типов данных. Этапы, изображенные на Фиг.6, начинаются на этапе 602 и переходят к этапу 604, когда механизм 106 преобразований изучает компоненту логического объекта.
[0051] Этап 606 относится к идентификации согласующихся внешних источников данных для компоненты логического объекта. Согласующиеся внешние источники данных конфигурируются таким образом, чтобы предоставлять информацию, которая соответствует компоненте логического объекта. Например, согласующиеся внешние источники данных предоставляют данные, имеющие тот же тип данных, что и компонента логического объекта. Данные, предоставляемые согласующимися внешними источниками данных, могут потребовать дополнительной обработки. В качестве примера, такие данные включают в себя показатели, которые алгоритм использует в качестве входных параметров для вычисления другого показателя, который сохраняется в компоненте логического объекта.
[0052] После идентификации согласующихся внешних источников данных, этап 608 предназначается для доступа к политике, чтобы отобрать подходящий источник для запрашивания разнообразной информации, что представляется как этап 610. В одном иллюстративном варианте осуществлений, политика включает в себя предпочтения для конкретных внешних источников данных, основанные на различных факторах, таких как требования по биллингу, характеристики работы и/или тому подобное. В одном примере, политика указывает предпочтение для бесплатных источников данных. В таком случае, только бесплатные источники из согласующихся внешних источников данных считаются пригодными для выбора. Если больше чем один согласующийся внешний источник данных является бесплатным, то любой из них может быть отобран.
[0053] Этап 612 представляет принятие решения относительно того, следует ли задавать соответствие другой компоненты логического объекта подходящему внешнему источнику данных. Если еще остались компоненты логического объекта, сервер расширений, посредством механизма 106 преобразований, возвращается к Этапу 604 и повторяет каждый этап вплоть до 610 для следующей компоненты логического объекта. Если, с другой стороны, компонент логического объекта больше нет, задание соответствия компонент логического объекта завершается, что представляется этапом 614.
[0054] Фиг.7 предоставляет структурную схему иллюстративного окружения сетевых или распределенных вычислений. Окружение распределенных вычислений состоит из вычислительных объектов 710, 712 и т.д. и вычислительных объектов или устройств 720, 722, 724, 726, 728 и т.д., которые могут включать в свой состав программы, способы, хранилища данных, программируемые логические средства, и т.д., как это представляется иллюстративными приложениями 730, 732, 734, 736, 738. Следует понимать, что вычислительные объекты 710, 712 и т.д. и вычислительные объекты или устройства 720, 722, 724, 726, 728 и т.д. могут содержать различные устройства, такие как персональные цифровые помощники (PDA), аудио/видео устройства, мобильные телефоны, MP3-плееры, персональные компьютеры, ноутбуки и т.д.
[0055] Каждый вычислительный объект 710, 712 и т.д., и вычислительные объекты, или устройства 720, 722, 724, 726, 728 и т.д., могут осуществлять связь с одним или больше другими вычислительными объектами 710, 712 и т.д., и вычислительными объектами, или устройствами 720, 722, 724, 726, 728 и т.д. посредством коммуникационной сети 740, либо напрямую, либо опосредованно. Несмотря на то, что она иллюстрируется в виде единого элемента на Фиг.7, коммуникационная сеть 740 может состоять из других вычислительных объектов и вычислительных устройств, которые предоставляют службы для системы на Фиг.7, и/или может представлять собой многочисленные взаимосвязанные сети, которые не показаны. Каждый вычислительный объект 710, 712 и т.д. или вычислительный объект или устройство 720, 722, 724, 726, 728 и т.д., может также содержать приложение, такое как приложения 730, 732, 734, 736, 738, которое имеет возможность использования интерфейса API или другого объекта, программного обеспечения, встроенного микропрограммного обеспечения (firmware) и/или аппаратных средств, пригодных для обмена информацией с приложением или для реализации приложения, предоставленного в соответствии с разнообразными вариантами воплощения раскрытия настоящего изобретения.
[0056] Имеется разнообразие систем, компонент и сетевых конфигураций, которые поддерживают окружения распределенных вычислений. Например, вычислительные системы могут соединяться между собой посредством проводных или беспроводных систем, локальных сетей или широко распределенных сетей. В настоящий момент, многие сети подсоединяются к Интернету, который предоставляет инфраструктуру для широко распределенных вычислений и охватывает многие различные сети, хотя любая сетевая инфраструктура может использоваться для иллюстративных обменов данными, выполняемых в отношении систем, как это описывается в разнообразных вариантах воплощения.
[0057] Таким образом, может быть использовано множество сетевых топологий и сетевых инфраструктур, таких как архитектура клиент/сервер, архитектура одноранговой связи, или гибридные архитектуры. "Клиент" представляет собой член класса или группы, которые используют обслуживание от другого класса или группы, к которым он не относится. Клиент может представлять собой процесс, например, грубо говоря, ряд инструкций или задач, которые запрашивают службу, предоставляемую другой программой или процессом. Клиентский процесс использует запрашиваемую службу, и ему самому нет необходимости "знать" какие-либо рабочие подробности о другой программе или службе.
[0058] В архитектуре клиент/сервер, в частности, в сетевой системе, клиент обычно представляет собой компьютер, который осуществляет доступ к совместно используемым сетевым ресурсам, предоставляемым другим компьютером, например, сервером. В иллюстрации на Фиг.7, в качестве не ограничивающего примера, вычислительные объекты или устройства 720, 722, 724, 726, 728, и т.д. могут рассматриваться как клиенты, а вычислительные объекты 710, 712 и т.д. могут рассматриваться как серверы, где вычислительные объекты 710, 712 и т.д., действуя в качестве серверов, предоставляют информационные службы, такие как прием данных из клиентских вычислительных объектов или устройств 720, 722, 724, 726, 728 и т.д., сохранение данных, обработка данных, передача данных на клиентские вычислительные объекты или устройства 720, 722, 724, 726, 728 и т.д., хотя любой компьютер может рассматриваться как клиент, сервер, или и то и другое, в зависимости от обстоятельств.
[0059] Сервер, как правило, представляет собой удаленную компьютерную систему, доступ к которой осуществляется по удаленной или локальной сети, такой как инфраструктуры беспроводных сетей или Интернета. Клиентский процесс может быть активным в первой компьютерной системе, и серверный процесс может быть активным во второй компьютерной системе, которые осуществляют связь друг с другом по среде передачи данных, что предоставляет, таким образом, обеспечивая распределенные функциональные возможности и позволяет многочисленным клиентам использовать в своих интересах возможности сбора информации на сервере.
[0060] В сетевом окружении, в котором коммуникационная сеть 740 или информационный канал представляет собой Интернет, например, вычислительные объекты 710, 712 и т.д. могут представлять собой веб-серверы, с которыми другие вычислительные объекты или устройства 720, 722, 724, 726, 728 и т.д. обмениваются информацией посредством любого из числа известных протоколов, таких как гипертекстовый протокол передачи (HTTP). Вычислительные объекты 710, 712 и т.д., действующие в качестве серверов, могут также выступать в качестве клиентов, например, вычислительных объектов или устройств 720, 722, 724, 726, 728 и т.д., как это может быть собственным для окружения распределенных вычислений.
ИЛЛЮСТРАТИВНОЕ ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО
[0061] Как уже упоминалось, преимущественно, описанные в настоящем документе методологии могут быть применены к любому устройству. Можно понять, поэтому, что карманные, переносные и другие вычислительные устройства, а также вычислительные объекты всех видов предполагаются для использования в связи с разнообразными вариантами воплощения. Соответственно, удаленный компьютер общего назначения на Фиг.8, описанный ниже, представляет собой всего лишь один пример вычислительного устройства.
[0062] Варианты воплощения могут частично осуществляться посредством операционной системы, для использования разработчиком служб для устройства или объекта, и/или могут включаться в состав прикладного программного обеспечения, которое эксплуатируется, чтобы выполнять один или больше функциональных аспектов разнообразных вариантов воплощения, описанных в настоящем документе. Программное обеспечение может описываться в общем контексте инструкций, исполняемых компьютером, таких как программные модули, исполняемые одним или больше компьютерами, такими как клиентские рабочие станции, серверы или другие устройства. Специалисты в данной области техники поймут, что компьютерные системы обладают разнообразием конфигураций и протоколов, которые могут использоваться для передачи данных, и таким образом, никакую конкретную конфигурацию или протокол нельзя рассматривать как ограничительные.
[0063] Фиг.8, таким образом, иллюстрирует пример пригодного окружения 800 вычислительной системы, в котором могут быть осуществлены один или несколько аспектов вариантов воплощения, описанных в настоящем документе, хотя, как уже ясно видно из вышесказанного, окружение 800 вычислительной системы представляет собой всего лишь один пример пригодного вычислительного окружения и не предназначается для того, чтобы предлагаться в качестве какого-либо ограничения относительно объема использования или функциональных возможностей. Дополнительно, окружение 800 вычислительной системы не предназначается для того, чтобы интерпретироваться как находящееся в какой-либо зависимости по отношению к какой-нибудь компоненте или к комбинации компонент, проиллюстрированных в иллюстративном окружении 800 вычислительных систем.
[0064] Обращаясь к Фиг.8, иллюстративное удаленное устройство для реализации одного или больше вариантов воплощения включает в себя вычислительное устройство общего назначения в виде компьютера 810. Компоненты компьютера 810 могут включать в себя, но не ограничиваются этим, блок 820 обработки данных, системную память 830 и системную шину 822, которая подсоединяет разнообразные компоненты системы, включая системную память, к блоку 820 обработки данных.
[0065] Компьютер 810, как правило, включает в свой состав разнообразие машиночитаемых носителей, которые могут представлять собой любые имеющиеся в наличии носители, к которым компьютер 810 может осуществлять доступ. Системная память 830 может включать в себя компьютерные носители информации в виде энергозависимых и/или энергонезависимых запоминающих устройств, таких как постоянное запоминающее устройство (ROM) и/или оперативное запоминающее устройство (RAM). В качестве примера, но не в качестве ограничения, системная память 830 может также включать в себя операционную систему, программы приложений, другие программные модули и данные программ.
[0066] Пользователь может вводить команды и информацию в компьютер 810 через устройства 840 ввода данных. Монитор или другой тип устройств отображения также подсоединяется к системной шине 822 через интерфейс, такой как интерфейс 850 вывода данных. В дополнение к монитору, компьютеры могут также включать в свой состав другие периферийные устройства вывода данных, такие как динамики и принтер, соединение с которыми может быть осуществлено через интерфейс 850 вывода данных.
[0067] Компьютер 810 может эксплуатироваться в сетевой или распределенной среде, используя логические соединения с одним или больше другими удаленными компьютерами, такими как удаленный компьютер 870. Удаленный компьютер 870 может представлять собой персональный компьютер, сервер, маршрутизатор, сетевой PC, одноранговое устройство или другой общий сетевой узел, либо любое другое удаленное устройство, использующее или передающее аудиовизуальную информацию, и может включать в себя любые из элементов, описанных выше по отношению к компьютеру 810. Логические соединения, изображенные на Фиг.8, включают в себя сеть 872, такую как локальная сеть (LAN) или глобальная сеть (WAN), но могут также включать в себя другие сети/информационные каналы. Такие сетевые окружения являются общепринятыми в домах, офисах, компьютерных сетях масштаба предприятия, внутрикорпоративных сетях и Интернете.
[0068] Как уже упоминалось выше, в то время как иллюстративные варианты воплощения были описаны в связи с разнообразными вычислительными устройствами и сетевыми архитектурами, основополагающие концепции могут быть применены к любой сетевой системе и любому вычислительному устройству или системе, в которых требуется повысить эффективность использования ресурсов.
[0069] Кроме того, имеются многочисленные пути реализации таких же или подобных им функциональных возможностей, например, подходящий интерфейс API, набор инструментов, код драйвера, операционная система, элемент управления, автономный или загружаемый объект программного обеспечения и т.д., которые дают возможность для приложений и служб выгодным образом использовать технологии, которые предоставляются в настоящем документе. Таким образом, варианты воплощения в настоящем документе рассматриваются с точки зрения интерфейса API (или другого объекта программного обеспечения), а так же и с точки зрения объекта программного обеспечения или объекта аппаратного обеспечения, которые осуществляют один или больше вариантов воплощения, как это описывается в настоящем документе. Таким образом, разнообразные варианты воплощения, описанные в настоящем документе, могут представлять собой аспекты, которые находятся полностью в аппаратных средствах, частично в аппаратных средствах и частично в программном обеспечении, так же как и полностью в программном обеспечении.
[0070] Слово "иллюстративный" используется в настоящем документе в смысле «служащий примером, или образцом представителем, или иллюстрацией». Для предотвращения сомнений, изобретение, раскрытое в настоящем документе, не ограничивается такими примерами. В дополнение, любой аспект или конструкция, описанные в настоящем документе как "иллюстративные", не обязательно должны рассматриваться в качестве предпочтительных или преимущественных по сравнению с другими аспектами или конструкциями, а также они не предназначаются для того, чтобы заведомо исключать эквивалентные иллюстративные структуры и методологии, известные обычным специалистам в данной области техники. Кроме того, в тех случаях, когда используются термины "включает в себя", "обладает", "вмещает в себя" и другие подобные слова, для предотвращения сомнений, такие термины следует трактовать как инклюзивные, аналогично термину "содержащий" в качестве открытого переходного слова, заведомо не исключая каких-либо дополнительных или других элементов, когда этот термин используется в формуле изобретения.
[0071] Как уже упоминалось, разнообразные технологии, описанные в настоящем документе, могут быть осуществлены в связи с аппаратными средствами или программным обеспечением или, где это необходимо, в связи с комбинацией того и другого. Как это используется в настоящем документе, термины "компонента", "модуль", "система" и т.п. аналогичным образом подразумеваются относящимися связанной с компьютером сущности, т.е. либо к аппаратным средствам, либо к комбинации аппаратных и программных средств, либо к программному обеспечению, либо к программному обеспечению в режиме исполнения. Например, компонента может представлять собой, но не в ограничительном смысле, процесс, работающий на процессоре, процессор, объект, исполнимую программу, поток исполнения, программу и/или компьютер. В качестве иллюстрации, как приложение, работающее на компьютере, так и сам компьютер могут представлять собой компоненту. Одна или больше компонент могут располагаться внутри процесса и/или потока исполнения, и компонента может быть локализована на одном компьютере и/или распределена между двумя или больше компьютерами.
[0072] Вышеупомянутые системы были описаны по отношению к взаимодействию между несколькими компонентами. Следует понимать, что подобные системы и компоненты могут включать в себя такие компоненты или задаваемые подкомпоненты, некоторые из задаваемых компонент или подбкомпонент и/или дополнительные компоненты, и в соответствии с разнообразными перестановками и комбинациями вышеперечисленного. Подкомпоненты могут также быть реализованы в виде компонент, коммуникативно подсоединенных к другим компонентам, а не включенных в состав родительских (иерархических) компонент. Дополнительно, можно отметить, что одна или больше компонент могут быть объединены в единую компоненту, предоставляющую совокупные функциональные возможности, или разбиты на несколько отдельных субкомпонент, и что один или больше любых промежуточных уровней, такие как уровень управления, могут быть предоставлены для того, чтобы коммуникативно подсоединяться к таким подкомпонентам для предоставления интегрированных функциональных возможностей. Любые компоненты, описанные в настоящем документе, могут также взаимодействовать с одной или больше другими компонентами, специальным образом не описанными в настоящем документе, но, вообще говоря, известными специалистам в данной области техники.
[0073] Имея в виду иллюстративные системы, описанные в настоящем документе, технологии, которые могут осуществляться в соответствии с описанным изобретением, могут также быть поняты с помощью обращения к схемам последовательных операций на разнообразных чертежах. В то время как, в целях простоты объяснения, методологии показываются и описываются в виде серии этапов, должно быть понято и оценено, что разнообразные варианты воплощения не ограничиваются порядком этапов, поскольку некоторые этапы могут выполняться в других порядках и/или одновременно с другими этапами, по сравнению с тем, как это изображается и описывается в настоящем документе. Там, где непоследовательный, или разветвленный, поток операций иллюстрируется посредством схемы последовательности операций, следует понимать, что могут быть реализованы разнообразные другие ветви, пути последовательности операций и порядки этапов, приводя к такому же или аналогичному результату. Кроме того, некоторые проиллюстрированные блоки являются необязательными при осуществлении методологий, описанных здесь.
ЗАКЛЮЧЕНИЕ
[0074] В то время как изобретение допускает разнообразные модификации и альтернативные построения, некоторые проиллюстрированные варианты его воплощения показываются на чертежах, и они были подробно описаны выше. Следует понимать, однако, что не имеется какого-либо намерения ограничивать изобретение рамками специфических раскрытых форм, а напротив, намерение состоит в том, чтобы охватывать все модификации, альтернативные построения и эквиваленты, попадающие в пределы истинного смысла и объема изобретения.
[0075] В дополнение к разнообразным вариантам воплощения, описанным в настоящем документе, нужно понимать, что другие подобные варианты воплощения могут использоваться, или модификации и добавления могут быть сделаны к описанному(ым) варианту(ам) воплощения для выполнения той же самой или эквивалентной функции соответствующего(их) варианта(ов) воплощения, не отклоняясь от сути при этом. Еще дополнительно, многочисленные микросхемы, обрабатывающие информацию, или многочисленные устройства могут совместно использовать работу одной или большего количества функций, описанных в настоящем документе, и, аналогично с этим, сохранение данных может осуществляться параллельно на многочисленных устройствах. В соответствии с этим, изобретение не должно быть ограничиваемым никаким единственным вариантом воплощения, а скорее должно быть рассмотрено в широте охвата, в истинном смысле и объеме, определяемом прилагаемой формулой изобретения.