Регистрация и извлечение информации об изменении таблицы базы данных, которая может использоваться для признания недействительными элементов кэша
Иллюстрации
Показать всеИзобретение относится к управлению содержимым в кэше. Техническим результатом является расширение функциональных возможностей. Сервер обеспечивает ответы Web, которые могут содержать содержимое из таблиц данных в базе данных. Сервер поддерживает кэш (например, в системной памяти), в котором может храниться содержимое (включая содержимое из таблиц данных) для повышения эффективности последующего обеспечения этого содержимого для удовлетворения запросов клиентов Web. Сервер осуществляет мониторинг таблиц данных в отношении изменений, и при изменении в конкретной таблице данных элементы в кэше, зависимые от конкретной таблицы данных, признаются недействительными. Дополнительно, в ответ на запрос Web клиента на ответ Web сервер назначает зависимость кэша от базы данных по меньшей мере части созданного ответа Web (например, для содержимого, извлеченного из таблицы данных) на основе команд, исполняемых при создании ответа Web. По меньшей мере часть созданного ответа Web впоследствии кэшируется в области кэша в сервере. 2 н. и 10 з.п. ф-лы, 5 ил.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится к управлению содержимым в кэше. Более конкретно, настоящее изобретение относится к регистрации и извлечению уведомлений об изменениях таблицы базы данных, которые могут использоваться для признания недействительными элементов кэша.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Вычислительные системы и относящаяся к ним технология влияют на многие аспекты жизни общества. Действительно, возможности обработки информации, обеспечиваемые вычислительной системой, преобразовали образ жизни и способы работы. Многие задачи (например, электронная обработка текста, планирование и управление базами данных), которые до появления вычислительной системы выполнялись вручную, сейчас обычно выполняются вычислительными системами. Последнее время осуществлялось соединение вычислительных систем друг с другом для формирования проводных и беспроводных вычислительных сетей, через которые вычислительные системы могут осуществлять электронную связь для совместного использования данных. В результате многие задачи, выполняемые в вычислительной системе (например, речевая связь, электронная почта для организации связи с абонентами, электронная конференц-связь, web-просмотр (браузинг)), включают электронную связь с одной или большим количеством других вычислительных систем через проводные и/или беспроводные вычислительные сети.
В частности, значимым механизмом обмена информацией стала всемирная паутина ("WWW"). В основном, доступ к содержимому WWW осуществляется согласно модели клиент/сервер. "Web-браузер" в вычислительной системе-клиенте передает запрос на доступ к содержимому (контенту), поддерживаемому "web-сервером" в вычислительной системе-сервере. Когда это предусмотрено, впоследствии web-сервер предоставляет Web-браузеру запрошенное содержимое.
Одним способом сделать содержимое доступным для Web-браузеров является создание разработчиком статической web-страницы, которая включает набор жестко закодированных машиночитаемых инструкций, например, на языке гипертекстовой разметки ("HTML"). Затем web-страница хранится в доступном для web-сервера месте (например, в вычислительной системе-сервере, в сети, соединенной с базой данных и т.д.). Web-сервер в ответ на запрос из Web-браузера может передать статическую web-страницу в Web-браузер (например, в результате ввода пользователем, приводящего к доступу Web-браузера к унифицированному указателю информационного ресурса ("URL"), соответствующему статической web-странице). После получения статической web-страницы Web-браузер может представить содержимое статической web-страницы (например, текст, графические данные и т.д.) в вычислительной системе-клиенте.
Для экономии сетевых ресурсов Web-браузер может также кэшировать копию статической web-страницы в вычислительной системе-клиенте (например, в системной памяти или в запоминающем устройстве большой емкости). При последующем запросе статической web-страницы Web-браузер до инициализации нового сетевого запроса в web-сервер осуществляет попытку разместить статическую web-страницу из кэша. Если web-страница размещена в кэше, то Web-браузер вместо инициализации сетевого запроса извлекает статическую web-страницу в кэше. Так как доступ к локально хранимым данным может быть осуществлен более эффективно, то кэширование статических web-страниц в вычислительной системе-клиенте уменьшает время ожидания, связанное с представлением содержимого статической web-страницы.
Часто запрашиваемые статические web-страницы, для уменьшения времени ожидания, могут также кэшироваться в вычислительной системе-сервере (что обычно определяется, как кэширование при выводе данных). Например, чтобы устранить необходимость извлечения web-страницы из устройства памяти большой емкости при каждом запросе web-страницы, часто запрашиваемая web-страница может кэшироваться в системной памяти в вычислительной системе-сервере. Благодаря своей статической сущности, статические web-страницы могут быть кэшированы (в вычислительной системе-клиенте или в вычислительной системе-сервере) в продолжение длительных периодов времени, потенциально неограниченно.
Однако использование статических web-страниц, по существу, не допускает представление Web-браузером данных в реальном масштабе времени или индивидуально конфигурируемых данных. Часто требуется представление в Web-браузере динамических данных (например, ежедневных данных о продажах, текущем курсе акций и т.д.). Соответственно, были разработаны механизмы для включения динамических данных в динамические web-страницы, предназначенные для представления в Web-браузере. Одним механизмом для включения динамических данных в динамические web-страницы является использование модульных фрагментов машиноисполняемых инструкций (обычно определяемых как "сценарии").
Сценарии могут быть разработаны с использованием языков сценариев, например, таких как JavaScript и VBScript, и внедрены наряду с инструкциями HTML и расширяемой спецификации языка, предназначенного для создания страниц WWW ("XML"), в файл страницы (например, файл Активных Страниц Сервера ("ASP")). При приеме запроса на динамическую web-страницу компьютерная система-сервер перенаправляет запрос в модуль обработки (например, модуль ASP), который обрабатывает соответствующий файл страницы. Модуль обработки исполняет любые сценарии, включенные в файл страницы, и формирует соответствующие инструкции HTML для возвращения в ответ на запрос. Сценарии могут содержать машиноисполняемые инструкции для доступа к данным из динамических местоположений, например, таких как база данных, поддерживающая текущие данные продаж или биржевых ставок. Так как сценарии, по существу, исполняются при приеме запроса, то они могут использоваться для формирования динамических web-страниц, которые содержат данные реального масштаба времени.
Подобно статическим web-страницам, динамическая web-страница может быть кэширована для обеспечения более эффективного доступа к динамической web-странице. Однако динамическое содержимое (например, котировка цен), включенное в динамическую web-страницу, обычно является действительным в течение ограниченного периода времени (например, до изменения значений в местоположении, где было извлечено динамическое содержимое). Часто динамическое содержимое (например, биржевая ставка) является действительным в течение очень короткого периода времени, например всего несколько секунд. Когда значение динамического содержимого изменяется, динамическое содержимое в кэше может стать недействительным. Например, при изменении курса акций с 20.00$ до 21.00$ значение в кэше в 20.00$ не является действительным (или даже корректным). Когда динамическое содержимое, не являющееся действительным, остается в кэше, остается некоторая потенциальная возможность предоставления web-сервером в Web-браузер неправильного динамического содержимого. Например, если курс акций, не являющийся действительным, остается в кэше, то web-сервер может извлечь из кэша курс акций, не являющийся действительным, вместо повторного выполнения сценария для извлечения из базы данных обновленного курса акций. Соответственно, были разработаны механизмы управления кэшем, которые направлены на обеспечение действительности динамического содержимого в кэше.
Некоторые механизмы управления кэшем автоматически удаляют динамическое содержимое из кэша в определенные интервалы времени, например, каждые десять минут. Однако, если значение динамического содержимого изменяется между заданными интервалами времени, то все еще существует потенциальная возможность того, что в кэше останется динамическое содержимое, не являющееся действительным. Например, если заданный интервал времени составляет пять минут, и значение динамического содержимого обновляется через одну минуту после того, как оно было кэшировано, то значение динамического содержимого становится недействительным, но остается в кэше по меньшей мере в течение четырех минут. В течение указанных четырех минут web-сервер, вместо исполнения сценария извлечения обновленного значения динамического содержимого, может некорректно извлечь значение динамического содержимого в кэше.
Дополнительно, удаление содержимого в определенные интервалы времени может привести к удалению из кэша значения, которое остается действительным. Например, если заданный интервал времени составляет десять минут, и значение динамического содержимого остается действительным в течение десяти минут после его кэширования, то значение динамического содержимого, тем не менее, удаляется из кэша. Следовательно, потенциально существуют препятствия для более эффективного извлечения значения динамического содержимого в ответ на последующий запрос.
Другие механизмы управления кэшем отслеживают или осуществляют мониторинг файлов (например, файлов XML), которые хранятся в вычислительной системе-сервере, и, при изменении отслеживаемого файла, признаются недействительными значения динамического содержимого из отслеживаемого файла, находящиеся в кэше. Еще одни механизмы управления кэшем осуществляют мониторинг элементов кэша, и один элемент кэша признается недействительным, когда становится недействительным другой элемент кэша. Соответственно, некоторые механизмы управления кэшем приводят к зависимости действительности элементов кэша от времени, соответствующего файла или другого соответствующего элемента кэша.
Однако существующие механизмы управления кэшем (включая механизмы, использующие зависимости от времени, файла и кэша) не достаточно хорошо приспособлены для признания недействительными значения динамического содержимого в кэше, извлеченные из местоположений, которые являются внешними по отношению к компьютерной системе-серверу. Например, Web-браузер может запросить web-страницы, которые должны содержать значения динамического содержимого из нескольких различных таблиц в базе данных. Соответственно, в вычислительной системе-сервере может быть осуществлена обработка файла страницы с соответствующими сценариями для извлечения значений динамического содержимого и формирования соответствующих инструкций HTML.
Однако извлечение данных из базы данных потребляет ресурсы базы данных и сети. При необходимости выполнения вычислений на извлеченных данных также потребляются дополнительные ресурсы вычислительной системы-сервера. Дополнительно, вычислительная система-сервер может одновременно запрашивать базу данных на несколько различных частей динамического содержимого, которые будут включены в различные web-страницы. Также каждый из нескольких вычислительных систем-серверов может осуществлять доступ к динамическому содержимому из одной базы данных.
Следовательно, одна база данных может одновременно предоставлять динамическое содержимое в несколько вычислительных систем-серверов, где каждая вычислительная система-сервер одновременно запрашивает базу данных в отношении различных частей динамического содержимого. В результате одна база данных становится ресурсом, который используется совместно несколькими вычислительными системами-серверами, и, вследствие этого, потенциально ограничивает масштабируемость. То есть добавление большего количества вычислительных систем-серверов не всегда повышает эффективность, так как каждая вычислительная система-сервер ограничена по меньшей мере временем, необходимым для извлечения содержимого из одной базы данных. Дополнительно, при преждевременном удалении содержимого из кэша (например, в заданный интервал времени) может потребоваться повторный запрос вычислительной системы-сервера к базе данных, даже если динамическое содержимое в кэше остается действительным. В среде с несколькими серверами преждевременное удаление содержимого в кэше может потребовать ненужные затраты ресурсов совместно используемой базы данных, вследствие этого также ограничивая масштабируемость и, возможно, существенно. Соответственно, будут выгодны механизмы для конфигурирования элементов кэша, зависимых от изменений в таблицах базы данных, и для признания недействительными элементов кэша на основе изменений в таблицах базы данных.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Принципы настоящего изобретения, ориентированные на системы, способы, компьютерные программные продукты и структуры данных для регистрации и извлечения информации об изменении таблиц базы данных, которая может использоваться для признания недействительными элементов кэша, преодолевают вышеупомянутые проблемы, характерные для предшествующего уровня техники. Вычислительная система-клиент с браузером может быть подсоединена через сеть к вычислительной системе-серверу, которая может формировать и предоставлять ответы Web (например, web-страницы и/или результаты web-услуг) в вычислительную систему-клиент. Вычислительная система-сервер осуществляет доступ по меньшей мере к части содержимого для ответов Web из таблиц данных в базе данных. Вычислительная система-сервер поддерживает кэш (например, в системной памяти), который может хранить предоставляемое содержимое для повышения эффективности последующего предоставления этого содержимого для удовлетворения запросов Web клиентов.
Вычислительная система-сервер выбирает таблицу данных (например, в ответ на ввод пользователя), содержащуюся в базе данных (например, в базе данных SQL языка структурированных запросов), которая должна отслеживаться в отношении изменения данных. В таблицу уведомлений об изменениях (также содержится в базе данных) вставляется запись, соответствующая выбранной таблице данных. Соответствующая запись содержит информацию контроля версий для выбранной таблицы данных, например, такую как идентификатор (ИД, ID) изменения. Выбранной таблице данных назначается триггер (процедура, запускаемая автоматически при возникновении определенных условий), который при изменении содержимого в выбранной таблице данных приводит к обновлению информации контроля версий для выбранной таблицы данных в таблице уведомлений об изменениях.
В ответ на изменение содержимого (например, вставку, удаление или обновление записи) в выбранной таблице данных обновляется соответствующая информация контроля версий в таблице уведомлений об изменениях. Время от времени или в ответ на запрос на извлечение содержимого в кэше вычислительная система-сервер запрашивает таблицу уведомлений об изменениях в отношении информации контроля версий, соответствующей одной или большему количеству таблиц в базе данных. Запрос может быть сконфигурирован для запрашивания информации контроля версий для всех отслеживаемых таблиц данных, представленных в таблице уведомлений об изменениях, для запрашивания информации контроля версий для отслеживаемых таблиц данных с ожидающими обработки зависимостями кэша, или для запрашивания информации контроля версий для отслеживаемых таблиц данных, которые были изменены (например, посредством включения в запрос текущей информации контроля версий). В ответ на запрос из базы данных в вычислительную систему-сервер возвращается обновленная информация контроля версий. Основываясь на конфигурации запроса, база данных может возвратить, например, информацию контроля версий для всех отслеживаемых таблиц данных, информацию контроля версий для отслеживаемых таблиц данных с ожидающими обработки зависимостями кэша, или информацию контроля версий для отслеживаемых таблиц данных, которые были изменены.
В виде другого варианта, вычислительная система-сервер может выдать запрос таблице уведомлений об изменениях и запросить, чтобы выданный запрос был задержан в вычислительной системе-сервере до обновления информации контроля версий для запрошенной таблицы (таблиц). Например, вычислительная система-сервер может выдать запрос, который задерживается в вычислительной системе-сервере, пока текущая информация о версии не превысит заданное пороговое значение. Выданный запрос блокировки может быть выполнен синхронно, чтобы соответствующий поток в вычислительной системе-сервере был блокирован, пока не будут доступны результаты. С другой стороны, выданный запрос блокировки может быть выполнен асинхронно, чтобы соответствующий поток в вычислительной системе-сервере не был блокирован, и, когда становятся доступны результаты, в вычислительной системе-сервере активируется обратный вызов (например, в отдельном потоке).
Вычислительная система-сервер определяет, что содержимое в кэше является зависимым от одной из таблиц данных (например, в результате предварительно назначенной зависимости кэша от базы данных). Вычислительная система-сервер сравнивает текущую информацию контроля версий (принятую в списке) с информацией контроля версий в кэше (например, информацией контроля версий, кэшированной совместно с частью содержимого в кэше). Указанное сравнение может включать в себя сравнение принятого ИД изменения с ИД изменения в кэше. Когда это предусмотрено, например, когда содержимое в таблице данных изменяется после кэширования части содержимого, основанного на таблице данных, часть содержимого в кэше удаляется из кэша. Соответственно, содержимое в кэше, которое является зависимым от отслеживаемой таблицы данных, может быть в предусмотренном случае признано недействительным и удалено из кэша. Предусмотренное признание недействительным и удаление содержимого в кэше снижает вероятность включения вычислительной системой-сервером в ответ кэшированного Web содержимого, являющегося недействительным. Дополнительно, также уменьшается возможность удаления действительных данных (например, что может произойти при зависимости от времени), вследствие этого потенциально увеличивая эффективность формирования ответов Web.
В некоторых вариантах осуществления содержимое в кэше находится в виде объектов или результатов, используемых для формирования ответа Web, например, в виде табличных данных, объектов, коллекций или частичных ответов. Кэширование таких промежуточных результатов предусмотрено, когда результаты могут быть использованы для формирования более одного ответа Web, где каждый ответ Web содержит дополнительную дифференцирующую информацию (например, индивидуальную настройку или включение другой релевантной информации). В других вариантах осуществления ответ Web кэшируется полностью. Кэширование ответа Web полностью предусмотрено, когда ответ Web полностью может совместно использоваться по нескольким запросам Web. При кэшировании ответа Web полностью ответ Web может продвигаться вплоть до кэширования в нижних уровнях вычислительной системы-сервера, например, в кэше ответа режима ядра. Соответственно, при признании ответа Web недействительным он удаляется из кэша нижнего уровня.
Вычислительная система-сервер может принять запрос Web клиента на ответ Web, который должен содержать запрошенное содержимое, находящееся в таблице данных. Таблицей данных может быть таблица данных, которая, в основном, доступна для других приложений, которые могут изменять содержимое в таблице данных, включая запрошенное содержимое. Вычислительная система-сервер определяет, что по меньшей мере часть содержимого, которое должно быть включено в ответ Web, в текущее время не находится в кэше вычислительной системы-сервера. Вычислительная система-сервер осуществляет доступ к запрошенному содержимому из таблицы данных и создает ответ Web, содержащий запрошенное содержимое.
Вычислительная система-сервер назначает зависимость кэша от базы данных по меньшей мере части созданного ответа Web на основе инструкций, исполняемых при создании ответа Web. Назначение зависимости кэша от базы данных может включать назначение зависимости ответа Web от таблицы данных или назначение зависимости содержимого, основанного на данных, извлеченных из таблицы данных, от таблицы данных. Зависимость кэша от базы данных может быть назначена посредством использования директивы или программного кода, включенных в файл страницы (например, в файл Активных Страниц Сервера ("ASP")), который обрабатывается в вычислительной системе-сервере для создания ответа Web. В вычислительной системе-сервере кэшируется по меньшей мере часть созданного ответа Web. Соответственно, в ответ на последующие запросы Web на созданный ответ Web вычислительная система-сервер может извлекать по меньшей мере часть созданного ответа Web в кэше. При извлечении содержимого в кэше (возможно, ответа Web полностью) осуществляется экономия как ресурсов вычислительной системы-сервера (так как не выполняются повторно части файла страницы), так и ресурсов сети и базы данных (так как не происходит повторного запроса к базе данных и, следовательно, данные не передаются через сеть). Соответственно, при сокращении обработки уменьшается время ожидания, и при сокращении одновременного доступа к совместно используемым ресурсам, таким как база данных, увеличиваются ресурсы, требуемые для ответа на запрос Web, и повышается масштабируемость.
Дополнительные признаки и преимущества изобретения будут изложены в последующем описании и частично будут очевидны из описания, или могут стать понятны при практическом осуществлении изобретения. Признаки и преимущества изобретения могут быть реализованы посредством инструментальных средств и комбинаций, точно определенных в формуле изобретения. Указанные и другие признаки настоящего изобретения будут более ясны из последующего описания и формулы изобретения, или могут стать понятны при практическом осуществлении изобретения, как описано далее.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Для описания способа, которым могут быть реализованы упомянутые выше, а также другие преимущества и признаки изобретения, будет приведено более подробное описание изобретения, кратко описанного выше, в отношении его конкретных вариантов осуществления, которые поясняются приложенными чертежами. Следует учесть, что указанные чертежи изображают только типичные варианты осуществления изобретения и не должны рассматриваться, как ограничивающие его объем, изобретение будет описано и пояснено более конкретно и подробно посредством использования приложенных чертежей.
Фиг.1 - возможная сетевая архитектура, обеспечивающая конфигурирование элементов кэша зависимых от изменений в таблицах базы данных, и признание элементов кэша недействительными на основе изменений в таблицах базы данных, согласно принципам настоящего изобретения.
Фиг.2 - возможная блок-схема последовательности операций способа конфигурирования базы данных для предоставления уведомлений об изменениях таблицы, согласно принципам настоящего изобретения.
Фиг.3 - возможная блок-схема последовательности операций способа для признания недействительной части содержимого в кэше, согласно принципам настоящего изобретения.
Фиг.4 - возможная блок-схема последовательности операций способа доступа к содержимому для представления в запрашивающую вычислительную систему-клиент, согласно принципам настоящего изобретения.
Фиг.5 - соответствующая операционная среда для принципов настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Настоящее изобретение распространяется на способы, системы, компьютерные программные продукты и структуры данных для регистрации и извлечения информации об изменении таблиц базы данных, которая может быть использована для признания недействительными элементов кэша. Вычислительная система-клиент с браузером может быть подсоединена через сеть к вычислительной системе-серверу, который может формировать и предоставлять в вычислительную систему-клиент ответы Web (например, web-страницы и/или результаты web-услуг). Вычислительная система-сервер осуществляет доступ по меньшей мере к части содержимого для ответов Web из таблиц данных в базе данных. Вычислительная система-сервер поддерживает кэш (например, в системной памяти), в котором может храниться предоставляемое содержимое (включая содержимое из таблиц данных) для повышения эффективности последующего предоставления этого содержимого для удовлетворения запросов Web клиентов.
Вычислительная система-сервер (например, в ответ на ввод пользователя) конфигурирует таблицу данных в базе данных для обеспечения таблицы уведомлений об изменениях, при изменении (например, вставке, удалении, обновлении) содержимого в таблице данных, обновленной информацией контроля версий (например, ИД изменений). Вычислительная система-сервер, время от времени или в ответ на запрос на извлечение содержимого в кэше, запрашивает таблицу уведомлений об изменениях в отношении обновленной информации контроля версий для соответствующих таблиц данных. В ответ база данных предоставляет обновленную информацию контроля версий для таблиц данных, соответствующих запросу. Вычислительная система-сервер может использовать обновленную информацию контроля версий для признания недействительными элементов кэша (например, на основе предварительно назначенных зависимостей кэша от базы данных).
В некоторых вариантах осуществления вычислительная система-сервер принимает запрос Web клиента на ответ Web, который должен содержать запрошенное содержимое, содержащееся в таблице данных. Вычислительная система-сервер определяет, что по меньшей мере часть содержимого, которое должно быть включено в ответ Web, в настоящее время не находится в кэше вычислительной системы-сервера. Вычислительная система-сервер осуществляет доступ к запрошенному содержимому из таблицы данных и создает ответ Web, содержащий запрошенное содержимое. Вычислительная система-сервер назначает зависимость кэша от базы данных по меньшей мере части созданного ответа Web на основе инструкций, исполняемых при создании ответа Web. В вычислительной системе-сервере кэшируется упомянутая по меньшей мере часть созданного ответа Web.
Варианты осуществления настоящего изобретения могут содержать компьютер специального или общего назначения, содержащий различные вычислительные аппаратные средства и программное обеспечение, как описано более подробно ниже. В частности, варианты осуществления в пределах объема настоящего изобретения содержат машиночитаемый носитель информации для переноса или хранения на нем машиноисполняемых инструкций или структур данных. Таким машиночитаемым носителем информации может быть любой доступный носитель информации, к которому может осуществить доступ компьютер общего или специального назначения. В виде возможного варианта, но не ограничения, такой машиночитаемый носитель информации может включать в себя ОЗУ (RAM), ПЗУ (ROM), электрически стираемое программируемое ПЗУ (EEPROM), компакт-диск (CD-ROM) или другие физические носители информации, такие как оптический диск, магнитный диск или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для переноса или хранения требуемых средств программного кода в виде машиноисполняемых инструкций или структур данных, и к которому может осуществить доступ компьютер общего или специального назначения.
При передаче или предоставлении в компьютер через сеть или другое соединение связи (проводное, беспроводное, или комбинацию проводного или беспроводного) информации компьютер, по существу, интерпретирует такое соединение, как машиночитаемый носитель. Следовательно, любое такое соединение, по существу, охватывается термином “машиночитаемый носитель”. Комбинации упомянутых выше носителей также должны быть включены в диапазон машиночитаемых носителей информации. Машиноисполняемые инструкции содержат, например, инструкции и данные, которые предписывают компьютеру общего назначения, компьютеру специального назначения или специализированному устройству обработки данных, такому как графический процессор (GPU), выполнение определенной функции или группы функций.
В этом описании и в последующей формуле изобретения "вычислительная система" определена как один или большее количество программных модулей, один или большее количество аппаратных блоков или как их комбинации, которые осуществляют совместную работу для выполнения операций в отношении электронных данных. Например, определение вычислительной системы включает в себя аппаратные компоненты персонального компьютера, а также программные модули, например операционную систему персонального компьютера. Физическая компоновка модулей является не существенной. Вычислительная система может содержать один или большее количество компьютеров, соединенных через сеть. Аналогично, вычислительная система может содержать одно физическое устройство (например, мобильный телефон или персональное информационное устройство (PDA)), где внутренние блоки (такие как память и процессор) осуществляют совместную работу для выполнения операций в отношении электронных данных.
В этом описании и в последующей формуле изобретения "ответ Web" определен как страница, читаемая для человека, например, такая как web-страница, и/или результаты web-услуг. Web-страница может быть извлечена из сети, например, такой как всемирная паутина ("WWW"), посредством доступа к соответствующему унифицированному указателю информационного ресурса ("URL"), Web-страница может содержать одну или большее количество инструкций языка гипертекстовой разметки ("HTML"), которые представимы в Web-браузере, например браузере 102. Web-услуга обеспечивает механизм для связи (возможно, независимо от взаимодействия с пользователем) различных приложений из различных источников, без необходимости разработки заказных инструкций. Web-услуги могут интегрировать несколько различных технологий, например, расширяемую спецификацию языка, предназначенного для создания страниц WWW, ("XML") для разметки данных с помощью тэгов (неотображаемых элементов разметки) данных, простой протокол доступа к объектам ("SOAP") для передачи данных, язык описания web-услуг ("WSDL") для описания доступных услуг, и универсальную систему предметного описания и интеграции ("UDDI") для перечисления доступных услуг. Web-услуги могут совместно использовать бизнес логику, данные и процессы посредством программного интерфейса через сеть.
В этом описании и в последующей формуле изобретения "запрос Web" определен как запрос на "ответ Web". Для инициирования запроса Web могут быть введены пользователем соответствующие команды в интерфейс пользователя. Например, пользователь в вычислительной системе-клиенте 101 может ввести в браузер 102 соответствующие команды для доступа к URL, соответствующему web-странице. С другой стороны, запрос Web может быть инициирован приложением. Например, приложение web-услуг в вычислительной системе-клиенте 101 может инициировать запрос Web к приложению web-услуг в вычислительной системе-сервере 111.
Для знающих технику очевидно, что изобретение может быть практически осуществлено многими видами конфигураций вычислительной системы, включая персональные компьютеры, портативные вычислительные устройства, многопроцессорные системы, сверхмалые вычислительные устройства, универсальные компьютеры и т.д. Изобретение также может быть практически осуществлено в средах распределенной системы, где задания выполняются как локальными, так и удаленными вычислительными системами, которые связаны (проводным образом, беспроводным образом или их комбинацией) через сеть. В среде распределенной системы программные модули и соответствующие структуры данных могут быть размещены как в локальных, так и в удаленных запоминающих устройствах.
Фиг.1 иллюстрирует возможную сетевую архитектуру 100, обеспечивающую конфигурирование элементов кэша зависимыми от изменений в таблицах базы данных и признание недействительными элементов кэша на основе изменений в таблицах базы данных, согласно принципам настоящего изобретения. Прямоугольные элементы в сетевой архитектуре 100 (например, браузер 102, модуль 132 интерфейса кэша, модуль 133 создания ответа, модуль 136 интерфейса базы данных, триггер 167 и триггер 177) представляют исполняемые модули, способствующие реализации принципов настоящего изобретения. Прокручиваемые элементы (элементы 121 и 126 кэша, содержимое 134 ответа, записи 151 и 156 и данные 163 и 164) представляют данные, обрабатываемые исполняемыми модулями. Соответственно, исполняемые модули и прокручиваемые элементы, указанные в сетевой архитектуре 100, совместно взаимодействуют для реализации принципов настоящего изобретения.
Внутри сетевой архитектуры 100 вычислительная система-клиент 101 и вычислительная система-сервер 111 подсоединены к сети 106 посредством соответствующих линий 103 и 104 связи, соответственно. Сеть 106 может быть локальной сетью (ЛС, LAN), глобальной сетью (ГС, WAN) или даже Интернет. Вычислительная система-клиент 101 содержит браузер 102, который может передавать запросы Web (например, запросы протокола передачи гипертекстовых файлов ("HTTP")) на web-страницы и получать web-страницы, возвращаемые вычислительной системе 101 в ответ на запрос Web. Браузер 102 также может представлять в вычислительной системе-клиенте 101 полученное содержимое web-страницы (например, текст, графические данные, видеоданные и звуковые данные). Вычислительная система-клиент 101 также может содержать приложения web-услуг, которые осуществляют связь с соответствующими приложениями web-услуг в вычислительной системе-сервере 111.
Вычислительная система-сервер 111 содержит модуль 133 создания ответа, который может создавать ответы Web в ответ на запросы Web клиента. Модуль 133 создания ответа может осуществлять обработку файлов страницы, например, таких как файлы активных страниц сервера ("ASP"), для создания web-страниц. Файл страницы может содержать инструкции и/или команды на нескольких различных языках, например, таких как язык гипертекстовой разметки ("HTML"), расширяемая спецификация языка, предназначенного для создания страниц WWW ("XML"), JavaScript и VBScript. Модуль 133 создания ответа может осуществлять обработку инструкций и/или команд в файле страницы для формирования содержимого для ответа Web. Модуль 133 создания ответа может быть сконфигурирован для формирования web-страниц, например, в ответ на запрос Web из браузера, и сконфигурирован для сформированных результатов web-служб, например, в ответ на запрос Web из приложения web-службы.
Вычислительная система-сервер 111 соединена с базой данных 141 (например, базой данных SQL) посредством линии 107 связи. Модуль 136 интерфейса базы данных может осуществлять передачу команд базы данных через линию 107 связи в базу данных 141. Команды базы данных могут использоваться для манипулирования содержимым (например, добавления, удаления или изменения строк или записей) или извлечения содержимого из базы данных 141. Модуль 136 интерфейса базы данных может получать ввод пользователя (например, из клавиатуры или мыши), который преобразуется в команды базы данных и передается в базу данных 141. Альтернативно, модуль 136 интерфейса базы данных может получать входные данные из модуля 133 создания ответа, запрашивающего содержимое для включения в ответ Web. В ответ модуль 136 интерфейса базы данных может извлекать содержимое из базы данных 141 и предоставлять извлеченное содержимое модулю 133 создания ответа. Модуль 133 создания ответа, для создания соответствующего ответа Web, может комбинировать извлеченное содержимое со статическим содержимым в содержимое 134 ответа.
База данных 141 может хранить информацию контроля версий для таблиц данных, содержащихся в базе данных 141. Модуль 136 интерфейса базы данных может извлекать информацию контроля версий для таблиц данных и предоставлять извлеченную информацию контроля версий модулю 132 интерфейса кэша. Модуль 132 интерфейса кэша может использовать извлеченную информацию контроля версий для определения того, когда должны быть признаны недействительными (и впоследствии удалены) элементы из кэша 112. Например, основываясь на извлеченной информации контроля версий, модуль 132 интерфейса кэша может определить, когда следует признать недействительным элемент 121 кэша или элемент 126 кэша. Кэш 112 может быть областью хранилища данных с сокращенным временем ожидания, например, такой как системная память вычислительной системы-сервера 111.
Информация контроля версий мож