СПОСОБ И СИСТЕМА (ВАРИАНТЫ) ДЛЯ ОБРАБОТКИ ЗАПРОСА
REQUEST PROCESSING METHOD AND SYSTEM (VERSIONS)

РОДСТВЕННЫЕ ЗАЯВКИ
В настоящей заявке заявляется конвенционный приоритет по заявке US 12/576,097 под названием "Системы и способы обработки запросов, получаемых на интерфейсе прикладных программ", поданной 8 октября 2009 г., полное содержание которой вводится ссылкой в настоящую заявку.
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к области передачи данных. Более конкретно, в изобретении предлагаются системы и способы обработки запросов, получаемых на интерфейсе прикладных программ.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Система может содержать интерфейс прикладных программ (API), который используется для приема запросов от клиентского устройства. Запрос может содержать задание, в котором у системы запрашивается передача данных в клиентское устройство. Другой запрос может содержать задание, в котором системе предлагается считывать данные из клиентского устройства. В некоторых случаях объем данных может быть таким большим, что время, необходимое для выполнения задания, может быть чрезмерным.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Варианты осуществления изобретения, которые являются лишь примерами и никоим образом не ограничивают его объем, иллюстрируются на фигурах прилагаемых чертежей, на которых показано:
фигура 1 - блок-схема системы, в которой обрабатывается запрос, полученный на интерфейсе прикладных программ, по одному из вариантов осуществления изобретения;
фигура 2А - структура задания по одному из вариантов осуществления изобретения;
фигура 2В - блок-схема узла обработки по одному из вариантов осуществления изобретения;
фигура 3А - структура информации о локальных ресурсах по одному из вариантов осуществления изобретения;
фигура 3В - структура информации об удаленных ресурсах по одному из вариантов осуществления изобретения;
фигура 4 - структура информации максимального коэффициента использования по одному из вариантов осуществления изобретения;
фигура 5 - блок-схема системы, в которой обрабатывается запрос, полученный на интерфейсе прикладных программ, по одному из вариантов осуществления изобретения;
фигура 6 - приложения торговой площадки и платежные приложения по одному из вариантов осуществления изобретения;
фигура 7 - блок-схема таблиц по одному из вариантов осуществления изобретения;
фигура 8 - блок-схема способа обработки запроса, полученного на интерфейсе прикладных программ, по одному из вариантов осуществления изобретения;
фигура 9А - блок-схема способа планирования подзаданий, имеющих разные приоритеты, для параллельной обработки по одному из вариантов осуществления изобретения;
фигура 9В - блок-схема способа планирования подзаданий, имеющих одинаковые приоритеты, для параллельной обработки по одному из вариантов осуществления изобретения;
фигура 10А - блок-схема способа выполнения задач по одному из вариантов осуществления изобретения;
фигура 10В - блок-схема способа выполнения задач по одному из вариантов осуществления изобретения;
фигуры 11-19 - примеры различных интерфейсов по одному из вариантов осуществления изобретения;
фигура 20 - блок-схема устройства в форме вычислительной системы по одному из вариантов осуществления изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В нижеприведенном описании различные конкретные детали указаны для обеспечения полного понимания некоторых вариантов осуществления настоящего изобретения. Однако среднему специалисту в данной области техники будет ясно, что настоящее изобретение может быть осуществлено и без некоторых таких конкретных деталей.
Как описано ниже, в соответствии с различными иллюстративными вариантами осуществления изобретения и с формулой изобретения предлагаются системы и способы обработки запросов, получаемых на интерфейсе прикладных программ. Различные варианты осуществления изобретения описаны ниже со ссылками на прилагаемые фигуры.
На фигуре 1 приведена блок-схема системы 3, в которой обрабатывается запрос, полученный на интерфейсе прикладных программ, в соответствии с одним из вариантов осуществления изобретения. Как показано на фигуре 1, в состав системы 3 входит клиентское устройство 5, содержащее программу-клиент 11, которая формирует запрос и передает его по сети 7 в сетевую систему 9. Сетевая система 9 может, в свою очередь, содержать сервер 13 интерфейса прикладных программ, в состав которого входит модуль 15 интерфейса прикладных программ, содержащий интерфейс 17 прикладных программ (API), принимающий запросы. Например, интерфейс 17 API, который принимает запросы, может содержать набор стандартных программ, данные, структуры данных, классы объектов и/или протоколы, обеспечиваемые библиотеками, и/или операционные системы, которые используются для приема запросов и реагирования на них. Каждый запрос может определять задание 19, которое требует считывания информации из клиентского устройства 5. В другом примере задание 19 может требовать передачи информации из сетевой системы 9 в клиентское устройство 5. Кроме того, в одном из вариантов информация может быть разделена на отдельные части, которые могут обрабатываться параллельно.
Вообще говоря, модуль 15 интерфейса прикладных программ может асинхронно обрабатывать запрос, сохраняя задание 19 в логической базе 21 данных, работающей в режиме распределения/объединения ("scatter-gather"), для параллельной обработки одноранговой сетью 23 с распределением/объединением. Например, одноранговая сеть 23 с распределением/объединением может распределять задание 19 путем формирования из него подзаданий 20, планирования выполнения подзаданий 20 для обработки с учетом доступности локальных и удаленных ресурсов, независимой параллельной обработки подзаданий 20 до их завершения, сбора (объединения) результатов выполнения каждого подзадания 20 и передачи результатов выполнения задания 19 в клиентское устройство 5. Соответственно, запрос может включать задание, которое относится к большим массивам данных. Такое задание 19 может быть разбито на подзадания 20 для параллельной обработки одноранговой сетью 23 с распределением/объединением, которая оптимальным образом использует локальные и удаленные ресурсы и затем отвечает на запрос в асинхронном режиме.
Сервер 13 интерфейса прикладных программ может также содержать модуль 18 контроля для сбора, записи, доступа и формирования статистических отчетов по заданию 19 и по подзаданиям 20. Модуль 18 контроля может использоваться устройство 22 контроля, которое передает команды и принимает статистическую информацию и информацию отслеживания хода процесса в форме интерфейсов пользователя и отчетов.
Логическая база данных с распределением/объединением данных
Логическая база 21 данных содержит таблицу 35 заданий, очередь 25 заданий, очередь 29 повторного выполнения заданий, таблицу 31 подзаданий, очередь 27 подзаданий, очередь 53 повторного выполнения подзаданий, информацию 55 о локальных ресурсах, информацию 33 об удаленных ресурсах и статистическую информацию 34.
Задания
Таблица 35 заданий может использоваться для первоначальной записи задания 19, которое принимается в запросе. Далее, после получения задания 19 в запросе для него может формироваться событие 37 задания, которое записывается в очереди 25 заданий. Событие 37 задания может вызывать обработку задания 19 одноранговой сетью 23 с распределением/объединением. Например, событие 37 задания может считываться одноранговой сетью 23 с распределением/объединением, и соответствующее задание 19 может обрабатываться в течение заданного интервала времени, после чего событие 37 задания записывается в очередь 29 повторного выполнения заданий с заданным временем ожидания. После истечения заданного времени ожидания задание 19 может снова считываться одноранговой сетью 23 с распределением/объединением для дальнейшей обработки. Соответственно, событие 37 задания может многократно считываться из очереди 29 повторного выполнения заданий и снова записываться в очередь 29, пока задание 19 не будет выполнено. Одноранговая сеть 23 с распределением/объединением может обрабатывать задание 19 с формированием подзаданий 20, которые записываются в таблице 31 подзаданий. Например, одноранговая сеть 23 с распределением/объединением может обрабатывать некоторое задание 19 с формированием двадцати подзаданий 20, которые записываются в таблице 31 подзаданий. Одноранговая сеть 23 с распределением/объединением может также планировать событие 51 подзадания в очереди 27 подзаданий в соответствии с идентификацией удаленных ресурсов, которые доступны для соответствующего подзадания 20.
Подзадания
Подзадания 20 могут обрабатываться параллельно одноранговой сетью 23 с распределением/объединением. Подзадания 20 могут соответствовать событиям 51 подзаданий, которые записываются в очереди 27 подзаданий. Событие 51 может считываться из очереди 27 подзаданий, и соответствующее подзадание 20 может обрабатываться одноранговой сетью 23 с распределением/объединением до его полного выполнения или до его прерывания с записью события 51 подзадания в очереди 53 повторного выполнения подзаданий с соответствующим заданным временем ожидания. После истечения заданного времени ожидания событие 51 подзадания может снова считываться одноранговой сетью 23 с распределением/объединением для дальнейшей обработки. Соответственно, событие 51 подзадания может многократно считываться из очереди 53 повторного выполнения подзаданий и снова записываться в очередь 53, пока соответствующее подзадание 20 не будет выполнено. Каждое подзадание 20 может включать одну или несколько задач 39, в которых указываются конкретные операции, которые должны быть выполнены, как это будет описано ниже.
Одноранговая сеть с распределением/объединением
Одноранговая сеть 23 с распределением/объединением может содержать множество узлов 26 обработки, которые используют логическую базу 21 данных с распределением/объединением для обработки заданий 19 и подзаданий 20. Соответственно, производительность и объем памяти одноранговой сети 23 с распределением/объединением может быть увеличена путем добавления узлов 26 обработки или снижена при уменьшении их количества.
Узлы 26 обработки могут обеспечивать начальную обработку задания 19 путем разделения его на подзадания 20. Например, узел 26 обработки может формировать подзадания 20 по заданию 19, записывать подзадания 20 в таблицу 31 подзаданий и записывать событие 51 подзадания в очередь 27 подзаданий. Подзадания могут содержать задачи 39. Обычно задачи 39 содержат команды, которые могут выполняться для обработки части информации, выделенной для подзадания 20. Затем узел 26 обработки может определять возможность планирования выполнения одного или нескольких подзаданий 20. Узел 26 обработки может запланировать выполнение одного или нескольких подзаданий 20 в зависимости от доступности локальных и удаленных ресурсов 41, которые могут использоваться для выполнения соответствующих подзаданий 20. Например, узел 26 обработки может поместить событие 51 подзадания в очередь 53 повторного выполнения подзаданий в соответствии с идентификацией доступных локальных и удаленных ресурсов 41. При помещении подзадания 20 в очередь 53 повторного выполнения подзаданий оно становится видимым для других узлов 26 обработки в одноранговой сети 23 с распределением/объединением. Соответственно, некоторый узел 26 обработки в одноранговой сети 23 с распределением/объединением может затем найти событие 51 подзадания в очереди 53 повторного выполнения подзаданий и осуществлять обработку подзадания 20. С другой стороны, подзадания 20 могут не планироваться для выполнения в случае недоступности локальных и удаленных ресурсов 41. В этом случае узел 26 обработки может ожидать, пока не станут доступными ресурсы, достаточные для планирования выполнения подзадания 20.
В одном из вариантов узлы 26 обработки могут использовать информацию 55 о локальных ресурсах для определения доступности локальных ресурсов для обработки подзаданий 20. Например, локальные ресурсы могут включать запоминающие устройства и процессоры, связанные с пулом узлов 26 обработки. В одном из вариантов локальные ресурсы для пула узлов 26 обработки могут быть приведены (нормализованы) к одной величине, как это будет описано ниже. Соответственно, некоторый узел 26 обработки может определять, доступны ли достаточные локальные ресурсы в его пуле, перед обработкой подзадания 20.
В одном из вариантов узлы 26 обработки могут использовать информацию 33 об удаленных ресурсах для определения доступности удаленных ресурсов 41 для обработки подзаданий 20. В одном из вариантов удаленные ресурсы 41 могут включать пул 43 ресурсов серверов баз данных и пул 45 ресурсов серверов API. Пул 43 ресурсов серверов баз данных может включать серверы баз данных, которые обеспечивают доступ к базам 47 данных. Пул 45 ресурсов серверов API может включать серверы API, которые обеспечивают доступ в сети к клиентскому устройству 5 и к другим устройствам.
Другие компоненты
Статистическая информация 34 может использоваться для хранения статистических данных, исходных данных, данных мониторинга хода процесса и других данных, обеспечивающих управление заданиями 19 и подзаданиями 20.
Конкурирующие процессы 49 могут конкурировать с одноранговой сетью 23 с распределением/объединением за выделение удаленных ресурсов 41. В одном из вариантов одноранговая сеть 23 с распределением/объединением может быть ограничена в использовании ею удаленных ресурсов в зависимости от ожидаемого или действительного коэффициента использования удаленных ресурсов 41 конкурирующими процессами 49. Например, конкурирующие процессы 49 могут характеризоваться максимальным (например, пиковым) и минимальным коэффициентом использования удаленных ресурсов 41 в некотором интервале времени. Одноранговая сеть 23 с распределением/объединением может быть ограничена в использовании ею удаленных ресурсов 41 во время пикового использования удаленных ресурсов 41 конкурирующими процессами 49. И наоборот, одноранговая сеть 23 с распределением/объединением может не ограничиваться в использовании ею удаленных ресурсов 41 во время неинтенсивного или минимального использования удаленных ресурсов 41 конкурирующими процессами 49.
В одном из вариантов узлы 26 обработки в одноранговой сети 23 с распределением/объединением могут использовать механизм повторного выполнения для доступа к удаленному ресурсу 41.
Соответственно, узлы 26 обработки могут различать исправимые ошибки и ошибки, не допускающие восстановления. В случае определения исправимой ошибки узел 26 обработки может обращаться повторно к удаленному ресурсу 41 (например, к базе данных или к интерфейсу прикладных программ). В случае определения ошибки, не допускающей восстановления, узел 26 обработки может зафиксировать отказ выполнения задания.
Специалисту в данной области техники будет ясно, что обработка задания 19 может выполняться многими узлами 26 обработки в разные интервалы времени. Для обеспечения диагностики отказов и отслеживания работы многочисленных узлов 26 обработки может использоваться модуль 18 контроля для централизованного сбора и отображения такой информации и для дополнительного формирования интерфейсов пользователя, содержащих такую информацию, которая может быть отображена на устройстве 22 контроля. Интерфейсы пользователя могут содержать задаваемые элементы интерфейса, которые могут быть использованы для перехода от задания 19 к подзаданиям 20, от подзадания 20 к задачам 39, от задачи 39 к устройству (например, к узлу 26 обработки) или к процессу, которые выполняют задачу 39, и от узла 26 обработки, выполняющего задачу 39, к журналу, который может содержать регистрируемые события, характеризующие процесс выполнения задачи 39.
На фигуре 2А приведена структура задания 19 в соответствии с одним из вариантов осуществления изобретения. Задание 19 включает идентификатор 60 модуля задания, тип 61 задания и информацию 63 задания. Идентификатор 60 модуля задания может использоваться для идентификации модуля задания (описывается ниже). Тип 61 задания может использоваться для идентификации типа задания 19. Например, сетевая система 9 может обладать возможностями обработки различных типов заданий 19 для одного идентификатора 60 модуля задания. Информация 63 задания может использоваться для идентификации автора задания 19, функций, которые должны выполняться, приоритета задания 19, типа и количества локальных и удаленных ресурсов, используемых заданием 19 и связанными с ним подзаданиями 20, сетевого адреса данных, типа данных, объема данных и другой информации, используемой заданием 19.
На фигуре 2В представлена блок-схема узла 26 обработки в соответствии с одним из вариантов осуществления изобретения. Узел 26 обработки может содержать локальные ресурсы 71 и распределенные приложения 73 интерфейсов прикладных программ (например, модули). Как показано на фигуре 2В, локальные ресурсы 71 содержат три процессора 75. В других вариантах может использоваться большее или меньшее количество процессоров 75. Как показано на фигуре 2В, локальные ресурсы 71 содержат также запоминающее устройство 77, имеющее определенный объем, который может быть увеличен или уменьшен. Другие варианты могут содержать дополнительные запоминающие устройства.
Распределенные приложения 73 интерфейсов прикладных программ включают базовую структуру 79 распределения/объединения (SGF) и модули 83 заданий. Каждый модуль 83 задания соответствует интерфейсу 17 прикладных программ в модуле 15 интерфейсов прикладных программ (не показан) и идентификатору 60 модуля задания в задании 19. Соответственно, в базовой структуре 79 распределения/объединения могут использоваться узлы 26 для обработки нового задания 19 путем добавления модуля 83 задания к распределенным приложениям 73 интерфейсов прикладных программ и добавления интерфейса 17 прикладных программ к модулю 15 интерфейсов прикладных программ (не показан). Базовая структура 79 распределения/объединения может использовать идентификатор 60 задания в задании 19 для вызова соответствующего модуля 83 задания для обработки задания 19. Соответственно, функции, которые могут выполняться базовой структурой 79 распределения/объединения, остаются неизменными для всех заданий 19. В отличие от указанного, функции, которые могут выполняться соответствующим модулем 83 задания, являются специфичными для задания 19 и соответствующего интерфейса 17 прикладных программ.
Базовая структура 79 распределения/объединения может содержать модуль 85 управления. Модуль 85 управления может содержать такие компоненты, как блок 87 выполнения заданий, планировщик 89 и блок 91 выполнения подзаданий. Модуль 85 управления и его компоненты могут вызывать компоненты модуля 83 задания для обработки задания 19. Модуль 83 задания содержит такие компоненты, как блок 93 предварительной обработки задания, анализатор 95 задания, блок 97 последующей обработки задания и блок 99 обработки задач.
Модуль 85 управления может координировать взаимодействие с другими модулями, которые выполняются в узле 26 обработки, и определять доступность локальных ресурсов узла 26 для обработки заданий 19. Например, модуль 85 контроллера может определять доступность необходимого количества процессоров 75 и объема памяти запоминающего устройства 77 узла 26 обработки.
Блок 87 выполнения задания может вызывать соответствующий блок 93 предварительной обработки задания по идентификатору 60 модуля задания в задании 19. Блок 93 предварительной обработки задания может выполнять предварительные действия по подготовке задания 19 для дальнейшей обработки. Например, блок 93 предварительной обработки задания может вычислять приоритет задания 19. В одном из вариантов приоритет задания 19 может быть высоким, средним или низким. Кроме того, блок 93 предварительной обработки задания может извлекать из задания наименование пользователя и записывать его в информацию профиля пользователя. В другом варианте блок 93 предварительной обработки задания может извлекать из задания наименование пользователя и записывать его в лотах, предлагаемых пользователем для аукционной или прямой продажи.
В другом варианте лоты или пользователь могут также записываться в транзакциях, связанных с лотами, с откликами на лоты и с другими типами информации. В некоторых вариантах блок 93 предварительной обработки задания может записывать один тип информации в другой тип информации путем обращения к серверу баз данных. Блок 87 выполнения задания может также вызывать соответствующий анализатор 95 задания по идентификатору 60 модуля задания в задании 19. Анализатор 95 задания может разбивать задание 19 на подзадания 20, которые содержат задачи 39. В одном из вариантов анализатор 95 задания может разбивать задание 19 на подзадания, соответствующие одинаковым объемам работы. Например, подзадания 20 могут быть определены на основе равных количеств лотов, транзакций, объема данных и т.п. Наконец, блок 87 выполнения задания может вызвать блок 97 последующей обработки задания для объединения результатов выполнения подзаданий 20.
Планировщик 89 может использовать приоритет задания и информацию 33 об удаленных ресурсах (не показана) для определения доступности удаленных ресурсов 41 (не показаны) для выполнения подзаданий 20. Например, планировщик 89 может поместить событие 51 подзадания для подзадания 20 в очередь 27 подзаданий в зависимости от приоритета задания 19 (высокий, средний, низкий), от удаленных ресурсов 41, необходимых для выполнения подзадания 20 и определения доступности удаленных ресурсов 41. Кроме того, планировщик 89 может поместить задание 19 в очередь 29 повторного выполнения заданий после определения того, что время обработки для задания 19 истекло. В одном из вариантов планировщик 89 работает в соответствии с концепцией равнодоступности ресурсов. Например, планировщик 89 может обеспечивать равнодоступность ресурсов путем назначения удаленных ресурсов заданиям 19 таким образом, чтобы обработка двух заданий, имеющих одинаковый объем (например, объем данных, подлежащих обработке) и одинаковый приоритет, заканчивалась в одно и то же время, если их обработка была начата в одно и то же время.
Блок 91 выполнения подзаданий может идентифицировать подзадание 20 в очереди 27 подзаданий и обращаться к соответствующему блоку 99 обработки задач в соответствии с идентификатором 60 модуля задания для выполнения задач 39 в подзадании 20.
На фигуре 3А приведена структура информации 55 о локальных ресурсах в соответствии с одним из вариантов осуществления изобретения. Информация 55 о локальных ресурсах может включать различные записи, которые соответствуют различным пулам узлов 26 обработки. Информация 55 о локальных ресурсах может включать информацию 110 текущего коэффициента использования и информацию 112 максимального коэффициента использования. Информация 110 текущего коэффициента использования может использоваться для записи текущего коэффициента использования локальных ресурсов (например, процессоров, запоминающих устройств и т.п.) подзаданиями 20 для связанного с ними пула узлов 26 обработки. Например, информация 110 текущего коэффициента использования может записываться как нормализованная характеристика использования ресурсов, которая может увеличиваться на одно приращение при перемещении события 51 подзадания в очередь 53 повторного выполнения подзадании и уменьшаться на одно приращение при завершении подзадания 20. Характеристика ресурсов, используемых определенным подзаданием 20 (например, величина, увеличиваемая или уменьшаемая на одно приращение), может определяться требованиями к локальным ресурсам, как это указывается в информации 63 задания в соответствующем задании 19. На фигуре 3В приведена структура информации 33 об удаленных ресурсах в соответствии с одним из вариантов осуществления изобретения. Информация 33 об удаленных ресурсах может включать различные записи, которые соответствуют различным удаленным ресурсам 41. Например, информация 33 об удаленных ресурсах может поддерживаться для пула 43 ресурсов серверов баз данных. Или же информация 33 об удаленных ресурсах может поддерживаться для пула 45 ресурсов серверов API. Информация 33 о локальных ресурсах может включать информацию 111 текущего коэффициента использования и информацию 113 максимального коэффициента использования. Информация 111 текущего коэффициента использования может использоваться для записи текущего коэффициента использования локальных ресурсов (например, процессоров, запоминающих устройств и т.п.) подзаданиями 20. Например, информация текущего коэффициента использования может записываться как нормализованная характеристика использования ресурсов, которая может увеличиваться на одно приращение при перемещении события 51 подзадания в очередь 53 повторного выполнения подзадании и уменьшаться на одно приращение при завершении подзадания 20. Характеристика ресурсов, используемых определенным подзаданием 20 (например, величина, увеличиваемая или уменьшаемая на одно приращение), может определяться требованиями к удаленным ресурсам, как это указывается в информации 63 задания в соответствующем задании 19.
На фигуре 4 приведена структура информации 113 максимального коэффициента использования в соответствии с одним из вариантов осуществления изобретения. Как показано на фигуре 4, информация 113 максимального коэффициента использования включает информацию 115 времени и максимальный коэффициент 117 использования. Информация 115 времени может быть в форме текущего времени дня (например, в 24-часовом формате). В соответствии с одним из вариантов максимальный коэффициент 117 использования может быть нормализованной величиной, представляющей максимальное количество удаленных ресурсов 41, которые могут использоваться одноранговой сетью 23 с распределением/объединением в соответствующий момент времени. Например, на фигуре 4 указано, что максимальная нормализованная величина удаленных ресурсов 41, которые могут использоваться одноранговой сетью 23 с распределением/объединением в восемь часов утра, равна пяти. Этот максимальный коэффициент использования имеет наименьшую величину, поскольку он соответствует пиковому использованию удаленных ресурсов 41 конкурирующими процессами 49. В одном из вариантов максимальная нормализованная величина удаленных ресурсов 41, которая может использоваться одноранговой сетью 23 с распределением/объединением, может формироваться на основе статистических данных по использованию удаленных ресурсов 41 конкурирующими процессами 49. В другом варианте максимальная нормализованная величина удаленных ресурсов 41, которая может использоваться одноранговой сетью 23 с распределением/объединением, может формироваться в режиме реального времени на основе измеряемого использования удаленных ресурсов 41 конкурирующими процессами 49. Соответственно, одноранговая сеть 23 с распределением/объединением может быть ограничена максимальной нормализованной величиной удаленных ресурсов 41, определяемой на основе статистических величин или измеряемых минимального и максимального коэффициентов использования удаленных ресурсов 41 конкурирующими процессами 49.
На фигуре 5 приведена блок-схема сетевой системы 201, в рамках которой может быть реализован один из вариантов осуществления изобретения. Система 201 соответствует системе 3 на фигуре 1, и, соответственно, если не указано иное, для указания одинаковых или сходных элементов используются одинаковые или сходные ссылочные номера. В состав системы 201 входи сетевая торговая площадка 203, которая обеспечивает функциональные возможности сервера по сети 7 (например, по сети Интернет или по региональной сети (WAN)) одному или нескольким клиентам. На фигуре 5 иллюстрируется веб-клиент 205 (например, браузер, такой как Internet Explorer, разработанный компанией Microsoft Corporation), выполняемый на клиентском устройстве 207 и программа-клиент 11, выполняемая на клиентском устройстве 5.
Сервер 13 интерфейсов прикладных программ (API) и веб-сервер 209 связаны с одним или несколькими серверами 211 приложений и обеспечивают с ними программный интерфейс и веб-интерфейс. Серверы 211 приложений содержат одно или несколько приложений 213 торговой площадки и платежных приложений 215. В свою очередь, серверы 211 приложений, как показано на фигуре 5, соединены с одним или несколькими серверами 217 баз данных, которые обеспечивают доступ к одной или нескольким базам 47 данных. Серверы 211 приложений могут также включать вышеописанную одноранговую сеть 23 с распределением/объединением.
Приложения 213 торговой площадки могут обеспечивать ряд функций и услуг торговой площадки пользователям, которые получают доступ к сетевой торговой площадке 203. Платежные приложения 215 аналогичным образом могут обеспечивать пользователям ряд услуг и функций по осуществлению платежей. Платежные приложения 215 могут обеспечивать пользователям возможность аккумулирования средств на счетах для последующей оплаты за продукты (например, товары или услуги), к которым пользователи получают доступ через приложения 213 торговой площадки. Средства могут аккумулироваться в обычной валюте, такой как доллары США, или в условной валюте, такой как "баллы". Хотя приложения 213 торговой площадки и платежные приложения 215, показанные на фигуре 5, формируют часть сетевой торговой площадки 203, будет ясно, что в других вариантах платежные приложения 215 могут формировать часть услуги платежей, которая может быть четко отделена от сетевой торговой площадки 203.
Кроме того, хотя в сетевой системе 201, схема которой показана на фигуре 5, используется архитектура клиент-сервер, однако варианты настоящего изобретения, конечно, не ограничиваются только такой архитектурой и могут найти применение, например, в распределенной одноранговой системе. Различные приложения 213 торговой площадки и платежные приложения 215 могут быть также реализованы как автономное программное обеспечение, которое необязательно имеет возможности работы в сети.
Веб-клиент 205 и мобильная программа-клиент 11 получают доступ к различным приложениям 213 торговой площадки 213 и к платежным приложениям 215 через веб-интерфейс, обеспечиваемый веб-сервером 209. Аналогично, программа-клиент 11 получает доступ к различным услугам и функциям, обеспечиваемым приложениями 213 торговой площадки и к платежным приложениям 215 через программный интерфейс, обеспечиваемый сервером 13 API. Программа-клиент 11 может быть, например, приложением продавца (например, приложением TurboLister, разработанным компанией еВау Inc., г.Сан-Хосе, штат Калифорния, США), которое дает возможность продавцам создавать и управлять предложениями продаж на сетевой торговой площадке 203 в режиме офлайн и осуществлять обмен информацией в пакетном режиме между программой-клиентом 11 и сетевой торговой площадкой 203. Как показано на фигуре 5, сервер 13 API содержит модуль 15 интерфейса прикладных программ, логическую базу 21 данных с распределением/объединением, модуль 18 монитора и пул 45 ресурсов сервера API, которые уже были описаны.
На фигуре 5 также показано приложение 28 третьей стороны, выполняемое на сервере 30 третьей стороны, с программным доступом к сетевой системе 201 через программный интерфейс, обеспечиваемый сервером 13 API. Например, приложение 28 третьей стороны может, используя информацию, считываемую из сетевой торговой площадки 203, обеспечивать одну или несколько функций и возможностей на веб-сайте третьей стороны. Веб-сайт третьей стороны может обеспечивать, например, одну или несколько функций по продвижению продукта, функции торговой площадки и функции платежей, которые поддерживаются соответствующими приложениями сетевой системы 201.
Приложения торговой площадки и платежные приложения
На фигуре 6 приведена блок-схема, иллюстрирующая приложения 213 торговой площадки и платежные приложения 215, которые в одном из вариантов обеспечиваются как часть сетевой системы 201. Приложения 213 торговой площадки и платежные приложения 215 могут размещаться на специализированных или универсальных серверах, как показано на фигуре 5, которые соединены между собой для обеспечения обмена информацией. Сами приложения соединены между собой и с различными источниками данных (например, через соответствующие интерфейсы) с возможностью обмена информацией, так чтобы обеспечивалось прохождение информации между приложениями или чтобы обеспечивалась возможность совместного использования ими общих данных. Приложения могут также получать доступ к одной или к нескольким базам 47 данных через серверы 217 баз данных, как показано на фигуре 5.
Сетевая торговая площадка 203 может обеспечивать ряд механизмов публикации, предложений продаж и задания цен, которые: позволяют продавцу осуществлять предложение к продаже товаров или услуг (или публиковать относящуюся к ним информацию); дают покупателю возможность выражать интерес или указывать желание приобрести такие товары или услуги; и обеспечивают возможность назначения цены для транзакции, относящейся к товарам или услугам. Для этой цели приложения 213 торговой площадки, показанные на фигуре 6, содержат по меньшей мере одно приложение 221 публикации и одно или несколько приложений 223, которые поддерживают предложения, сделанные в формате аукциона, и механизмы назначения цены (например, английский, голландский, китайский и двойной аукционы, аукцион с резервированной ценой и аукцион второй цены и т.п.). Различные приложения 223 аукционов могут также обеспечивать ряд возможностей для поддержки предложений продаж, сделанных в форматах аукционов разных типов, например аукциона с резервированной ценой, в котором продавец может указать минимальную цену для выставленного им лота.
Ряд приложений 225 для продаж с фиксированной ценой поддерживают форматы предложений продаж с фиксированной ценой (например, традиционный систематизированный перечень типа рекламы или в форме каталога) и перечни товаров "" (закупка всей партии). В частности, предложения продаж типа "" (в том числе по технологии Buy-It-Now ("купить сейчас"), разработанной компанией еВау Inc., г.Сан-Хосе, штат Калифорния, США) могут делаться вместе с предложениями в формате аукционов и могут позволять покупателю приобретать товары или услуги, которые также предлагаются к продаже через аукцион, за фиксированную цену, которая обычно выше стартовой цены аукциона.
Приложения 227 магазинов позволяют продавцу группировать предложения продаж в "виртуальном" магазине, который может иметь товарный знак или иным образом индивидуализируется продавцом. Такой виртуальный магазин может также предлагать различные мероприятия по продвижению товаров, по стимулированию покупателей и другие средства, которые будут разработаны под конкретного продавца.
Приложения 229 репутации позволяют пользователям, участвующим в транзакциях с использованием сетевой торговой площадки 203, устанавливать, формировать и поддерживать репутацию, которая может быть доступна для потенциальных торговых партнеров. Например, если сетевая торговая площадка 203 поддерживает личные продажи, пользователи могут получать информацию об истории сделок потенциального партнера или другую справочную информацию, к которой можно было обратиться для оценки надежности и авторитетности партнеров по сделкам. Приложения 229 репутации позволяют пользователю со временем установить репутацию в рамках сетевой торговой площадки 203, например, на основе информации обратной связи, получаемой от других партнеров по транзакциям. Другие потенциальные партнеры по сделкам могут затем обращаться к репутации для оценки надежности и авторитетности.
Приложения 231 персонализации позволяют пользователям сетевой торговой площадки 203 персонализировать некоторые аспекты своего взаимодействия с сетевой торговой площадкой 203. Например, пользователь может с помощью приложения 231 персонализации создавать персонализованную справочную страницу, на которой может просматриваться информация, касающаяся транзакций, участником которых является (или являлось) некоторое лицо. Кроме того, приложение 231 персонализации может обеспечивать возможность пользователю персонализировать свои предложения продаж или другие аспекты взаимодействия с сетевой системой 201 и другими сторонами.
Сетевая система 201 может поддерживать несколько торговых площадок, которые могут быть адаптированы к требованиям различных регионов. Одна из версий сетевой системы 201 может быть адаптирована к требованиям Соединенного Королевства, а другая версия может быть адаптирована для США. Некоторые из этих версий могут работать в качестве независимых торговых площадок, или же могут быть адаптированы (или локализованы) представления базовой торговой площадки. Соответственно, сетевая система 201 может содержать ряд приложений 233 локализации, которые адаптируют информацию (и/или представление информации) сетевой системы 201 в соответствии с заданными критериями (например, географическими, демографическими или рыночными критериями). Например, приложения 233 локализации могут использоваться для обеспечения локализации информации для региональных веб-сайтов, управление работой которых осуществляет сетевая система 201 и доступ к которым может быть обеспечен через соответствующие серверы 13 и 209.
Навигация по сетевой торговой площадке 203 может обеспечиваться одним или нескольким приложениями 235 навигации. Например, принимающий модуль может принимать информацию запроса поиска объектов на сетевой торговой площадке 203, и приложение обработки может обрабатывать этот запрос. Приложение просмотра может обеспечивать пользователям возможность просмотра различных рубрик, каталогов или структур учетных данных, которые служат для классификации предложений продаж в сетевой системе 201. Могут обеспечиваться различные другие приложения навигации для дополнения приложений поиска и просмотра информации.
Для обеспечения визуального представления предложений продаж, доступных через сетевую систему 201, в информативном и привлекательном виде, приложения 213 сетевой площадки могут содержать одно или несколько приложений 237 изображений, с помощью которых пользователи могут загружать изображения для включения в состав предложений продаж. Приложение 237 изображений также обеспечивает включение изображение в просматриваемые предложения продаж. Приложения 237 изображений могут также поддерживать одну или несколько функций продвижения товаров, например, галереи изображений, которые представляются потенциальным покупателям. Например, продавцы могут дополнительно оплачивать включение изображения в галерею изображений для целей продвижения товаров.
Приложения 239 создания предложений продаж обеспечивают продавцам возможности удобного формирования предложений продаж, относящихся к товарам или к услугам, которые они хотят продать через сетевую торговую площадку 203, а приложения 241 управления предложениями продаж обеспечивают продавцам возможность управления такими предложениями. В частности, в тех случаях, когда некоторый продавец создал и/или опубликовал большое количество предложений продажи, управление этими предложениями представляет определенную проблему. Приложения 241 управления предложениями продаж обеспечивают ряд функций (например, автоматическое упорядочение списков предложений, средства контроля запасов товаров и т.п.) для помощи продавцу в управлении его предложениями.
Помощь продавцу в управлении его предложениями также оказывает одно или несколько приложений 243 управления действиями, которые обычно осуществляются после размещения предложений. Например, после завершения аукциона, обеспечиваемого одним или несколькими приложениями 223, продавец может захотеть оставить информацию обратной связи, относящуюся к определенному покупателю. Для этой цели приложение 243 управления может обеспечивать интерфейс для одного или нескольких приложений 229 репутации, чтобы обеспечить продавцу удобную возможность передать информацию обратной связи в отношении различных покупателей в приложения 229 репутации.
Приложения 245 разрешения споров могут обеспечивать механизмы, посредством которых могут разрешаться споры, возникающие между сторонами транзакций. Например, приложения 245 разрешения споров могут обеспечивать процедуры, в которых стороны направляются через ряд шагов в попытке разрешения спора. В том случае, когда спор не может быть разрешен посредством таких процедур, он может быть передан на разрешение третьему лицу, посреднику или арбитру.
Различные приложения 247 предотвращения мошенничества могут реализовывать механизмы выявления и предотвращения мошенничества для снижения вероятности мошенничества на сетевой торговой площадке 203.
Приложения 251 передачи сообщений могут обеспечивать формирование и доставку пользователям сетевой торговой площадки 203 сообщений, в которых пользователям может сообщаться о состоянии предложений продажи на сетевой торговой площадки 203 (например, сообщений покупателям о предложении цены, превышающей их предложение, в процессе проведения аукциона или обеспечение пользователей рекламной и коммерческой информацией). Соответствующие приложения 251 передачи сообщений могут использовать любую сеть или систему доставки сообщений для доставки сообщений пользователям. Например, приложения 251 передачи сообщений могут обеспечивать доставку сообщений электронной почты, мгновенных сообщений, коротких сообщений (SMS), текстовых сообщений, факсимильных сообщений или голосовых сообщений (например, в системе VoIP) по проводной сети (например, сети Интернет), сообщения традиционной службы телефонной связи, или по беспроводным сетям (например, мобильным, сотовым, WiFi (например, по технологиям IEEE 802.11, включая стандарты 802.11n, 802.11b, 802.11g и 802.11а)), по сетям общемировой совместимости широкополосного беспроводного доступа (например, WiMAX - IEEE 802.16).
Приложения 253 стимулирования сбыта поддерживают различные функции, которые доступны продавцам, для повышения продаж через сетевую торговую площадку 203. Приложения 253 стимулирования сбыта могут также обеспечивать различные возможности, которые могут быть включены продавцами, для контроля и отслеживания результатов стратегий стимулирования сбыта, используемых продавцами.
Сама сетевая торговая площадка 203 или одна или несколько сторон, которые участвуют в транзакциях, могут использоваться программы лояльности, которые поддерживаются одним или несколькими приложениями 255 стимулирования лояльности покупателей. Например, покупатель может получать баллы лояльности или поощрительные баллы за транзакции, организованные и/или заключенные с конкретным продавцом, и затем покупателю может быть предложено вознаграждение в соответствии с накопленными баллами лояльности.
Сетевая торговая площадка 203 может также содержать вышеупомянутые распределенные приложения 73 интерфейса прикладных программ.
Структуры данных
На фигуре 7 приведена блок-схема высокого уровня взаимодействия объектов, на которой показаны различные таблицы 301 и логические базы 303 данных, которые могут поддерживаться внутри баз 47 данных и которые используются приложениями 213, и Таблица 305 пользователя содержит запись зарегистрированных пользователей сетевой торговой площадки 203. Пользователь в рамках сетевой торговой площадки 203 может действовать в качестве продавца, покупателя или в том и другом качестве. В одном из вариантов покупателем может быть пользователь, который имеет накопленные средства (например, в обычной валюте или в условных единицах) и, соответственно, имеет возможность обменять накопленные средства на объекты, предложенные для продажи на сетевой торговой площадке 203.
Таблицы 301 также включают таблицу 307 объектов, в которой поддерживаются записи для товаров и услуг, которые доступны или были доступны для транзакций через сетевую торговую площадку 203. Записи объектов в таблице 307 могут быть связаны с записями одного или нескольких пользователей в таблице 305 пользователей, так чтобы можно было связать продавца и одного или нескольких действительных или потенциальных покупателей в записи объектов.
Таблица 309 транзакций содержит запись для каждой транзакции (например, транзакция покупки или продажи), относящейся к объектам, для которых имеются записи в таблице 307 объектов.
Таблица 311 заказов может быть заполнена записями заказов, каждая из которых связана с одним заказом. В свою очередь, каждый заказ может быть связан с одной или несколькими транзакциями, записи для которых имеются в таблице 309 транзакций.
Записи предложений цен в таблице 313 предложений цен могут относиться к предложениям цен на сетевой торговой площадке 203 в связи предложениями продаж в форме аукционов, поддерживаемых приложением 42 аукционов. В одном из вариантов одним или несколькими приложениями 229 репутации может использоваться таблица 315 обратной связи для создания и поддержания записей репутации, относящихся к пользователям. Для поддержания истории выполненных транзакций, участником которых является пользователь, может использоваться таблица 317 документирования. Одна или несколько таблиц 319 характеристик используются для записи характеристик, относящихся к объектам, для которых имеются записи в таблице 307 объектов. В одном из примеров таблицы 319 характеристик могут содержать указание валюты, связанной с определенным объектом, которое идентифицирует валюту цены для соответствующего объекта, как это задано продавцом.
В таблице 321 поиска может записываться информация поиска, которая была введена пользователем (например, покупателем), который осуществляет поиск определенного типа объекта. Как это уже указывалось, может также использоваться логическая база 21 данных с распределением/объединением.
Способы работы
На фигуре 8 приведена блок-схема способа 401 обработки запроса, полученного на интерфейсе прикладных программ, по одному из вариантов осуществления изобретения. В левой части блок-схемы, представленной на фигуре 8, указаны действия, выполняемые в клиентском устройстве 5. В середине блок-схемы указаны действия, выполняемые на сервере 13 интерфейса прикладных программ (например, в сетевом компьютере). Справа указаны действия, выполняемые на узле 26 обработки (например, в сетевом компьютере). Действия, указанные справа ближе к середине блок-схемы, выполняются базовой структурой 79 распределения/объединения, и действия, указанные правее, выполняются модулями 83 заданий.
Выполнение способа 401 начинается на стадии 403, на которой клиентское устройство 5 передает в сервер 13 API запрос, содержащий задание 19. В одном из вариантов задание 19 может содержать запрос на добавление предложений продаж к предложениям, имеющимся на сетевой торговой площадке 203, путем считывания информации таких предложений из клиентского устройства 5.
На стадии 405 сервер 13 API принимает запрос, записывает задание 19 в таблицу 35 заданий, формирует событие 37 задания и записывает его в очередь 25 заданий.
На стадии 407 модуль 86 управления на узле 26 обработки может определить, что для обработки задания 19 имеется достаточное количество локальных ресурсов. Например, в соответствии с одним из вариантов модуль 85 контроллера может определить, что для обработки задания 19 имеется достаточное количество процессоров 75 и достаточный объем запоминающего устройства 77. Затем модуль 85 управления может запустить блок 87 выполнения задания.
На стадии 409 блок 87 выполнения задания может запустить блок 93 предварительной обработки задания в соответствии с типом задания, указанным в задании 19, и на стадии 411 блок 93 осуществляет предварительную обработку задания 19. Например, блок 93 предварительной обработки задания может определить, что задание 19 содержит запрос на добавление предложений продаж к предложениям на сетевой торговой площадке 203, и попытается определить, что пользователь, направивший этот запрос, имеет учетную запись на сетевой торговой площадке 203. Например, блок 93 предварительной обработки задания может направить запрос на поиск пользователя в таблице 305 пользователей. На стадии 413 блок 87 выполнения задания может запустить блок 95 анализа задания. На стадии 415 блок 95 анализа задания может разбивать задание 19 на подзадания 20, которые содержат задачи 39. В одном из вариантов блок 95 анализа задания может разделить задание 19 и сформировать подзадания 20, состоящие из соответствующих задач 39, в соответствии с категориями на сетевой торговой площадке 203, к которым должны быть отнесены предложения продаж. Например, в задании 19 может быть указано, что десять предложений продаж должны быть добавлены в категорию игрушек, пять предложений должны быть добавлены в категорию книг и три предложения должны быть добавлены в категорию устройств IPod. Соответственно, блок 95 анализа задания может создать три подзадания 20, которые содержат соответствующие задачи 39 для категорий игрушек, книг и устройств IPod. Например, каждое подзадание 20 может содержать задачи 39 по считыванию информации предложений продаж, которые должны быть добавлены в соответствующую категорию, из клиентского устройства 5 и задачу по добавлению предложений продаж в соответствующую категорию в соответствии с информацией предложений, считанной из клиентского устройства 5.
На стадии 419 планировщик 89 может планировать события 51 подзаданий в очереди 27 подзаданий и/или события 51 подзаданий в очереди 53 повторного выполнения подзаданий при условии, что имеются соответствующие локальные и удаленные ресурсы 41 для обработки подзаданий 20, как это будет описано ниже.
На стадии 421 блок 91 выполнения подзаданий, на том же или на другом узле 26 обработки, может считывать событие 51 подзадания из очереди 27 подзаданий или из очереди 53 повторного выполнения подзаданий и запускать соответствующий блок 99 обработки задач в зависимости от типа задания, указанного в соответствующем задании 19. Необходимо понимать, что стадия 421 может выполняться параллельно несколькими узлами 26 обработки. Узлы 26 обработки могут продолжать обработку событий 51 подзаданий, пока не будут завершены все события 51 подзаданий, связанных с заданием 19. На стадии 423 блок 99 обработки задач может выполнять задачи 39 в подзаданий 20. В рассматриваемом примере блок 99 обработки задач может выполнять задачу 39 с использованием сервера 13 API из пула 45 ресурсов сервера API для запроса информации предложений продаж из клиентского устройства 5, как показано штрихпунктирной линией, ведущей на стадию 425, на которой клиентское устройство 5 получает запрос на информацию предложений продаж. В соответствии с запросом клиентское устройство 5 может передать информацию предложений продаж в блок 99 обработки задач на узле 26 обработки. Кроме того, на стадии 423 блок 99 обработки задач может выполнять задачу, которая использует сервер базы данных в пуле 43 ресурсов серверов баз данных для добавления предложений продаж в таблицу 307 объектов на сетевой торговой площадке 203. На стадии 427 блок 87 выполнения задания определяет, что все подзадания 20, связанные с заданием 19, выполнены, и запускает блок 97 последующей обработки задания. На стадии 429 блок 97 последующей обработки задания может объединять результаты выполнения задач каждого подзадания 20 и передавать результаты выполнения задания в клиентское устройство 5.
На стадии 431 клиентское устройство 5 может получать результаты выполнения задания. Например, результаты выполнения задания могут включать информацию, которая указывает, был ли выполнен или нет запрос на добавление предложений продаж.
Рассмотренный пример относится к случаю, когда обработка задания 19 выполняется вплоть до его завершения без прерываний. Тем не менее специалисту в данной области техники будет ясно, что обработка задания 19 может быть прервана из-за недостатка локальных ресурсов 71 или по каким-либо иным причинам. В таких случаях событие задания может быть помещено в очередь 29 повторного выполнения заданий и задано время ожидания, по истечении которого может осуществляться дальнейшая обработка задания 19, как это уже описывалось.
На фигуре 9А приведена блок-схема способа 451 планирования подзаданий 20, имеющих разные приоритеты, для параллельной обработки по одному из вариантов осуществления изобретения. Способ 451 соответствует стадии 419 на фигуре 8. Способ 451 начинается на стадии 453, на которой планировщик 89 пытается планировать подзадания 20 с высоким приоритетом. Например, планировщик 89 может попытаться определить доступность удаленных ресурсов 41 для обработки некоторого подзадания 20, как это описано ниже. Если удаленные ресурсы 41 доступны, то планировщик 89 может записать событие 51 подзадания в очередь 27 подзаданий, как это уже указывалось. На стадии 455 планировщик 89 пытается планировать подзадания 20 со средним приоритетом, и на стадии 457 планировщик 89 пытается планировать подзадания 20 с низким приоритетом.
На фигуре 9В приведена блок-схема способа 475 планирования подзаданий, имеющих одинаковые приоритеты, для параллельной обработки по одному из вариантов осуществления изобретения. Способ 475 соответствует стадии 453, 455 или 457 на фигуре 9А. Способ 475 начинается на стадии 477, на которой планировщик 89 определяет локальные ресурсы 71, которые необходимы для выполнения подзадания 20. В одном из вариантов количество локальных ресурсов 71 для подзадания может быть определено по информации 63 задания для соответствующего задания 19. На стадии 479 планировщик 89 определяет количество локальных ресурсов 71, которые используются в настоящий момент для обработки подзаданий 20. Например, локальные ресурсы 71, которые используются в настоящий момент для обработки подзаданий 20, могут быть определены по информации 110 текущего коэффициента использования. На стадии 481 планировщик 89 может определять максимальный коэффициент использования локальных ресурсов 71, которые могут использоваться для обработки подзаданий 20. Например, максимальный коэффициент использования локальных ресурсов 71 может быть определен по информации 112 максимального коэффициента использования. На стадии 483 планировщик 89 может предварительно принять решение планировать подзадание 20 на основе локальных ресурсов 71, необходимых для его выполнения, локальных ресурсов 71, использующихся в настоящий момент для обработки подзаданий 20, и максимального коэффициента использования локальных ресурсов 71 для обработки подзаданий 20. Например, планировщик 89 может определить, что планирование подзаданий 20 может резко увеличить текущий коэффициент использования на величину, которая меньше максимально допустимого коэффициента использования локальных ресурсов 71. Если планировщик 89 определяет, что имеются достаточные ресурсы для обработки подзадания 20, то следует переход на стадию 485. В противном случае следует переход на стадию 495.
На стадии 485 планировщик 89 определяет наличие достаточного количества удаленных ресурсов 41 для использования подзаданием 20.
На стадии 485 блок 89 планирования определяет удаленные ресурсы 41, необходимые для выполнения подзадания 20. В одном из вариантов количество удаленных ресурсов 41 для подзадания 20 может быть определено по информации 63 задания для соответствующего задания 19. На стадии 487 планировщик 89 определяет количество удаленных ресурсов 41, которые используются в настоящий момент для обработки подзаданий 20. Например, удаленные ресурсы 41, которые используются в настоящий момент для обработки подзаданий 20, могут быть определены по информации 111 текущего коэффициента использования. На стадии 489 планировщик 89 может определять максимальный коэффициент использования удаленных ресурсов 41, которые могут использоваться для обработки подзаданий 20. Например, максимальный коэффициент использования удаленных ресурсов 41 может быть определен по информации 113 максимального коэффициента использования. На стадии 491 планировщик 89 может предварительно принять решение планировать подзадание 20 на основе удаленных ресурсов 41, необходимых для его выполнения, удаленных ресурсов 41, использующихся в настоящий момент для обработки подзаданий 20, и максимального коэффициента использования удаленных ресурсов 41 для обработки подзаданий 20. Например, планировщик 89 может определить, что планирование подзаданий 20 может резко увеличить текущий коэффициент использования на величину, которая меньше максимально допустимого коэффициента использования удаленных ресурсов 41. Если планировщик 89 определяет, что имеются достаточные ресурсы для обработки подзадания 20, то следует переход на стадию 493. В противном случае следует переход на стадию 495.
На стадии 493 планировщик 89 осуществляет планирование подзадания 20. Например, подзадание 20 помещается в очередь 27 подзаданий, задание 19 помещается в очередь 25 заданий, и на этом выполнение способа заканчивается.
На стадии 495 планировщик 89 помещает задание 19 в очередь 29 повторного выполнения заданий и подзадание 20 в таблицу 31 подзаданий, и на этом выполнение способа заканчивается. Вышеописанный способ 475 может повторяться для других подзаданий 20, имеющих такой же приоритет, которые находятся в очереди 27 подзаданий.
На фигуре 10А приведена блок-схема способа 501 параллельного выполнения подзаданий 20 по одному из вариантов осуществления изобретения. Способ 501 начинается в первом процессоре 75 на стадии 503, на которой блок 99 обработки задач передает в клиентское устройство 5 запрос информации предложений продаж в отношении первой группы предложений. Блок 99 обработки задач может передать запрос в клиентское устройство 5 в отношении предложений продаж, которые должны быть добавлены в категорию игрушек. На стадии 505 первый процессор 75 может получить информацию первой группы предложений продаж (например, предложений продаж, которые должны быть добавлены в категорию игрушек). На стадии 507 первый блок 75 обработки может автоматически добавить первую группу предложений продаж к предложениям на сетевой торговой площадке 203. Например, первый процессор 75 может добавить первую группу предложений продаж в категорию игрушек.
На стадии 509 во втором процессоре 75 блок 99 обработки задач передает в клиентское устройство 5 запрос информации предложений продаж в отношении второй группы предложений. На фигуре 10А показано, что второй процессор 75 находится на том же узле 26 обработки, что и первый процессор 75, однако специалисту в данной области техники будет понятно, что второй процессор 75 может находиться на другом узле 26 обработки. Блок 99 обработки задач может передать запрос в клиентское устройство 5 в отношении предложений продаж, которые должны быть добавлены в категорию книг. На стадии 511 второй процессор 75 может получить информацию второй группы предложений продаж (например, предложений продаж, которые должны быть добавлены в категорию книг). На стадии 513 второй процессор 75 может автоматически добавить вторую группу предложений продаж к предложениям на сетевой торговой площадке 203. Например, второй процессор 75 может добавить вторую группу предложений продаж в категорию книг.
На фигуре 10В приведена блок-схема способа 521 параллельного выполнения подзаданий 20 по одному из вариантов осуществления изобретения. Способ 521 начинается в первом процессоре 75 на стадии 523, на которой блок 99 обработки заданий передает в клиентское устройство 5 информацию транзакций в отношении первой группы предложений продаж. Блок 99 обработки задач может передавать информацию транзакций в форме транзакций для предложений продаж в категории игрушек, которые связаны с определенным пользователем, и на этом выполнение подзадания 20 заканчивается.
На стадии 525 во втором блоке 75 обработки блок 99 обработки задачи передает в клиентское устройство 5 информацию транзакций в отношении второй группы предложений продаж. Блок 99 обработки задач может передавать информацию транзакций в форме транзакций для предложений продаж в категории книг, которые связаны с определенным пользователем, и на этом выполнение подзадания 20 заканчивается.
На фигуре 11 приведена блок-схема, иллюстрирующая интерфейс 531 пользователя, обеспечивающий включение и временное прекращение выполнения повторно выполняемого задания 19 в соответствии с одним из вариантов. Интерфейс 531 пользователя может использоваться для включения или временного прекращения выполнения текущего задания 19, которое выполняется через определенные промежутки времени. Интерфейс 531 пользователя включает элементы 533, 535, 537 и 541 интерфейса пользователя в форме параметров поиска, обеспечивающих идентификацию текущих заданий 19 для их отображения, включения и временного прекращения выполнения. Элемент 533 интерфейса пользователя может использоваться для ввода модуля 81 задания. Например, пользователь, использующий устройство 22 контроля, может выбрать модуль 81 задания из ниспадающего меню. Элемент 535 интерфейса пользователя может использоваться для ввода состояния задания: "активно" или "приостановлено". Соответственно, активное задание 19 может быть приостановлено, и наоборот. Элемент 537 интерфейса пользователя может использоваться для ввода идентифицированного узла 26 обработки, в результате чего поиск заданий 19 ограничивается назначенным узлом 26 обработки. В одном из вариантов элемент 537 интерфейса пользователя может использоваться для ввода идентификатора "ВСЕ" для узлов 26 обработки. Элемент 539 интерфейса пользователя может использоваться для ввода вышеуказанных параметров поиска. После ввода параметров поиска с помощью элемента 539 интерфейса пользователя модуль 18 контроля принимает параметры поиска, идентифицирует запрошенные данные в статистической информации 34 и отображает запрошенные данные в зоне 540 отображения.
Интерфейс 531 пользователя обеспечивает другой подход к включению и приостановке выполнения текущего задания 19. Элемент 541 интерфейса пользователя может использоваться для ввода идентификатора задания для идентификации определенного повторно выполняемого задания 19. После ввода параметров поиска модуль 18 контроля может идентифицировать повторно выполняемое задание 19 и отображает это задание 19 в зоне 540 отображения.
Зона 540 отображения содержит столбцы 543, 545, 547, 549, 551, 553, 557 и 559. В столбце 543 отображается идентификатор повторно выполняемого задания, который связан с конкретным заданием 19 и однозначно идентифицирует задание 19 среди других заданий 19. В столбце 545 отображается состояние задания, как это уже было указано. В столбце 547 отображается тип периодичности для выполнения задания. Например, периодичность выполнения задания может быть стандартной: ежедневно, еженедельно, ежемесячно, раз в два месяца и т.п. В столбце 549 отображается временной интервал для выполнения задания. Указанный временной интервал идентифицирует момент времени для запуска выполнения задания 19 внутри интервала периодичности его выполнения. В столбце 551 может отображаться момент времени запуска выполнения задания 19. В столбце 553 может отображаться информация по заданию, которая может быть собрана для задания 19. Собираемая информация может быть определена создателем модуля 81 задания. В одном из вариантов ячейки столбца 553 могут использоваться для отображения всплывающего окна 555, которое содержит информацию, связанную с соответствующим заданием 19. Столбец 557 может использоваться для отображения даты создания задания 19. Столбец 559 может использоваться для отображения даты последнего обновления задания 19 на интерфейсе 531 пользователя.
На фигуре 12 приведена иллюстрация интерфейса 561 пользователя, обеспечивающего контроль задания 19 в соответствии с одним из вариантов. Интерфейс 561 пользователя содержит элементы 563, 565, 567, 569, 571, 573 и 577 интерфейса в форме параметров поиска для идентификации заданий 19 с целью их контроля. Элемент 563 интерфейса пользователя может использоваться для ввода модуля 81 задания. Например, на фигуре 12 иллюстрируется интерфейс 561 пользователя с заданием модуля "BDX" задания для элемента 563 интерфейса. Элемент 565 интерфейса пользователя может использоваться для ввода типа задания. Тип задания может быть определен создателем модуля 81 задания. Элемент 567 интерфейса пользователя может использоваться для ввода состояния задания. Например, состояниями задания могут быть: "завершено" и "отказ". Элемент 569 интерфейса пользователя может использоваться для ввода приоритета задания. Например, приоритет задания может быть определен создателем модуля 81 заданий. В одном из вариантов приоритет задания может принимать одно из следующих значений: "низкий", "средний" и "высокий". Элемент 571 интерфейса пользователя может использоваться для ввода идентификатора узла 26 обработки, как это уже указывалось. Элемент 573 интерфейса пользователя может использоваться для ввода временного окна. Например, любое задание 19, которое выполняется в заданном временном окне, может быть отображено на интерфейсе 561 пользователя. Элемент 575 интерфейса пользователя может использоваться для ввода ранее описанных параметров поиска. После ввода параметров поиска с помощью элемента 575 интерфейса пользователя модуль 18 контроля принимает параметры поиска, идентифицирует запрошенные задания 19 в статистической информации 34 и отображает задания 19 в зоне 576 отображения.
Интерфейс 561 также обеспечивает отображение информации по определенному заданию 19. Например, элемент 577 интерфейса пользователя может использоваться для отображения идентификатора задания с распределением/объединением для идентификации определенного задания 19. После ввода параметров поиска с помощью элемента 575 интерфейса пользователя модуль 18 контроля принимает параметр поиска в форме идентификатора задания с распределением/объединением, идентифицирует запрошенное задание 19 в статистической информации 34 и отображает задание 19 в зоне 576 отображения.
Зона 576 отображения содержит столбцы 579, 581, 583, 585, 587, 589, 591, 593, 595, 597, 574, 578, 580, 582, 584 и 586. В столбце 579 отображается идентификатор задания базовой системы с распределением/объединением (SGF), который связан с определенным заданием 19 и однозначно идентифицирует его среди других заданий 19. В столбце 581 отображается идентификатор модуля задания, который связан с конкретным заданием 19 и однозначно идентифицирует задание 19 среди других заданий 19, обрабатываемых определенным модулем 83 задания. В столбце 583 отображается тип задания, как это уже было описано. В столбце 585 отображается состояние задания, как это уже было описано. В столбце 587 отображается приоритет задания, как это уже было описано. В столбце 589 отображается идентификатор последней задачи 39 задания 19, которая выполняется в заданном временном окне. В столбце 591 отображается время начала выполнения задания 19. В столбце 593 отображается дата создания задания 19. В столбце 595 отображается дата и время последней модификации задания 19. В столбце 597 отображается, был ли достигнут для задания заданный уровень обслуживания (SLO). Например, заданный уровень обслуживания может определять стандарты обслуживания, которые могут быть применены к действительным характеристикам выполнения задания 19 для определения их уровня относительно заданного уровня обслуживания. В столбце 574 может отображаться состояние повторного выполнения задания 19. Например, задание 19 может выполняться в режиме с повторным выполнением или без повторного повторения (однократное выполнение). В столбце 578 может отображаться время, прошедшее от начала до конца выполнения задания 19. В столбце 580 может отображаться общее количество задач 39 в задании 19. В столбце 582 может отображаться количество задач 39, которые были успешно завершены заданием 19. В столбце 584 могут отображаться задачи 39, которые завершены заданием 19. В столбце 580 может отображаться уникальный идентификатор для базового события.
На фигуре 13 приведена иллюстрация интерфейса 601 пользователя, обеспечивающего контроль статистической информации для совокупности заданий 19, в соответствии с одним из вариантов. Интерфейс 601 пользователя содержит элементы 603, 605, 607, 609, 613 и 615 интерфейса в форме параметров поиска для отображения статистической информации по всем заданиям 19. Элемент 603 интерфейса пользователя может использоваться для ввода идентификатора модуля 81 задания. Например, на фигуре 13 иллюстрируется интерфейс 601 пользователя с заданием идентификатора "BDX" для элемента 603 интерфейса. Элемент 605 интерфейса пользователя может использоваться для ввода типа задания, как это уже описывалось. Элемент 607 интерфейса пользователя может использоваться для ввода приоритета задания. Элемент 609 интерфейса пользователя может использоваться для ввода состояния задания, как это уже описывалось. Элемент 613 интерфейса пользователя может использоваться для группирования заданий 19 по типу задания, и/или по приоритету задания, и/или по состоянию задания. Элемент 615 интерфейса пользователя может использоваться для ввода временного окна, как это уже описывалось. После ввода параметров поиска с помощью элемента 617 интерфейса пользователя модуль 18 контроля принимает параметры поиска, идентифицирует совокупность заданий 19 в статистической информации 34 и отображает запрошенную информацию для совокупности заданий 19 в зоне 619 отображения.
Зона 619 отображения содержит столбцы 621, 623, 625, 627, 629, 631, 633, 635, 637, 639, 641, 643 и 645. Столбцы 621, 623 и 625 вместе идентифицируют совокупность заданий 19 в соответствии с типом задания, приоритетом задания и состоянием задания соответственно, которые обрабатываются модулем 83 "BDX" задания. В столбце 627 может отображаться количество заданий 19 в отображаемой совокупности заданий 19. В столбце 629 может отображаться количество повторно обрабатываемых заданий 19 в отображаемой совокупности заданий 19. В столбцах 631, 633 и 635 могут отображаться количества задач, как это уже описывалось, для отображаемой совокупности заданий 19. В столбце 637 может отображаться минимальное время выполнения задания 19 в отображаемой совокупности заданий 19. В столбце 639 может отображаться максимальное время выполнения задания 19 в отображаемой совокупности заданий 19. В столбце 641 может отображаться среднее время выполнения задания 19, вычисляемое для совокупности заданий 19. В столбце 641 может отображаться максимальный уровень обслуживания для определенного задания 19 в отображаемой совокупности заданий 19, и в столбце 645 может отображаться средний уровень обслуживания для совокупности заданий 19.
На фигуре 14 приведена иллюстрация интерфейса 651 пользователя, обеспечивающего контроль статистической информации для совокупности заданий 19, в соответствии с одним из вариантов. Зона 651 отображения содержит столбцы 653, 655, 657, 659, 661, 663, 665, 667, 669, 671, 673, 675, 677, 679, 681, 683 и 685. Столбцы 653, 655, 657, 659 и 661 могут совместно идентифицировать некоторую совокупность заданий 19 в соответствии с модулем 81 задания, наименованием пользователя, типом задания, приоритетом задания и состоянием задания соответственно. В столбце 655 может отображаться наименование пользователя, создавшего идентифицированную совокупность заданий 19. В столбце 663 может отображаться количество заданий 19 в отображаемой совокупности заданий 19. В столбце 665 может отображаться количество повторно обрабатываемых заданий 19 в отображаемой совокупности заданий 19. В столбце 667 может отображаться средний уровень обслуживания для отображаемой совокупности заданий 19. В столбце 669 может отображаться количество заданий 19, имеющих недостаточный уровень обслуживания (SLO). В столбце 671 может отображаться среднее время выполнения для отображаемой совокупности заданий 19. В столбцах 673 и 675 могут отображаться соответственно максимальное и минимальное времена выполнения заданий 19. В столбце 677 может отображаться среднее количество задач для отображаемой совокупности заданий 19. В столбцах 679 и 681 могут отображаться соответственно максимальное и минимальное количества задач, соответствующих конкретным заданиям 19. В столбце 683 может отображаться среднее время заданий с недостаточным уровнем SLO. В столбце 685 может отображаться максимальное время заданий 19 с недостаточным уровнем SLO.
На фигуре 15 приведена иллюстрация интерфейса 689 пользователя, обеспечивающего контроль статистической информации для совокупности задач, в соответствии с одним из вариантов. Зона 689 отображения содержит столбцы 691, 693, 694, 695, 696, 697, 698 и 699. Столбцы 691, 693, 694 и 695 совместно идентифицируют некоторую совокупность задач 39 в соответствии с удаленным ресурсом 41, действием, состоянием задачи и кодом причины соответственно. В столбце 696 может отображаться количество задач 39 в совокупности задач. В столбце 697 может отображаться среднее время доступа к удаленному ресурсу для совокупности задач. В столбцах 698 и 699 могут отображаться соответственно максимальное и минимальное времена доступа некоторой задачи 39 задания 19 к удаленному ресурсу 41.
На фигуре 16 приведена иллюстрация интерфейса 701 пользователя, обеспечивающего контроль подзаданий 20, связанных с заданием 19. Интерфейс 701 пользователя может содержать элементы 703, 705, 707 и 709 интерфейса пользователя в форме параметров поиска для идентификации статистической информации 34, которая должна отображаться. Элемент 703 интерфейса пользователя может использоваться для ввода идентификатора задания с распределением/объединением для идентификации определенного задания 19. Например, пользователь, использующий устройство 22 контроля, может ввести идентификатор задания с распределением/объединением. В другом варианте элемент 703 интерфейса пользователя может использоваться для ввода идентификатора задания с распределением/объединением, который был выбран из столбца 579 на интерфейсе 561 пользователя, показанного на фигуре 12. Элемент 705 интерфейса пользователя может использоваться для ввода состояния подзадания. В одном из вариантов могут использоваться следующие состояния подзаданий: "создано", "запланировано" и "завершено". Элемент 707 интерфейса пользователя может использоваться для ввода идентификатора подзадания для идентификации подзадания 20. Элемент 709 интерфейса пользователя может использоваться для ввода ранее описанных параметров поиска. После ввода параметров поиска с помощью элемента 709 интерфейса пользователя модуль 18 контроля принимает параметры поиска, идентифицирует запрошенные данные в статистической информации 34 и отображает запрошенные данные в зоне 710 отображения.
Зона 710 отображения содержит столбцы 711, 713, 715, 717, 719, 721, 723, 725, 727, 729 и 731. В столбце 711 может отображаться идентификатор подзадания 20, связанного с указанным заданием 19. Выбирая какой-либо из идентификаторов подзаданий 20, можно получить отображение интерфейса пользователя с задачами для выбранного подзадания 20, как это будет описано ниже. В столбце 713 может отображаться состояние подзадания, как это уже было описано. В столбце 715 может отображаться наименование ресурса. Столбец 717 может использоваться для отображения даты создания подзадания 20. Столбец 719 может использоваться для отображения даты и времени последней модификации подзадания 20. В столбце 721 может отображаться полная стоимость локальных ресурсов. В столбце 723 может отображаться полная стоимость удаленных ресурсов. В столбце 725 может отображаться текущая стоимость локальных ресурсов. В столбце 727 может отображаться текущая стоимость удаленных ресурсов. В столбце 729 может отображаться глобальный идентификатор пользователя. В столбце 731 может отображаться элемент интерфейса пользователя, который может быть выбран.
На фигуре 17 приведена иллюстрация интерфейса 751 пользователя, обеспечивающего контроль задач 39, связанных с подзаданием 20, в соответствии с одним из вариантов. Интерфейс 751 пользователя может содержать элементы 753, 755, 757 и 759 интерфейса пользователя в форме параметров поиска для идентификации задач 39 для отображения. Элемент 753 интерфейса пользователя может использоваться для ввода идентификатора задания с распределением/объединением для идентификации определенного задания 19. Например, пользователь, использующий устройство 22 контроля, может ввести идентификатор задания с распределением/объединением для идентификации определенного задания 19. Элемент 755 интерфейса пользователя может использоваться для ввода идентификатора подзадания с распределением/объединением для идентификации определенного подзадания 20. Например, пользователь, использующий устройство 22 контроля, может ввести идентификатор подзадания с распределением/объединением. В другом варианте в элементе 753 интерфейса пользователя может автоматически вводиться идентификатор задания с распределением/объединением и в элементе 755 может автоматически вводиться идентификатор подзадания с распределением/объединением на основе выбора идентификатора подзадания с распределением/объединением, который был выбран ранее из столбца 711 на интерфейсе 701 пользователя, как показано на фигуре 16. Элемент 757 интерфейса пользователя может использоваться для ввода состояния задачи. В одном из вариантов могут использоваться следующие состояния задач: "создана", "запланирована", "завершена", "отказ" и "недопустима". Элемент 759 интерфейса пользователя может использоваться для ввода идентификатора задачи для идентификации определенной задачи 39. Элемент 761 интерфейса пользователя может использоваться для ввода ранее описанных параметров поиска. После ввода параметров поиска с помощью элемента 761 интерфейса пользователя модуль 18 контроля может принимать параметры поиска, идентифицировать запрошенные данные для задачи 39 в статистической информации 34 и отображать запрошенные данные в зоне 763 отображения.
Зона 763 отображения может содержать столбцы 765, 767, 769, 771, 773, 775, 777, 779, 781 и 783. В столбце 765 может отображаться идентификатор задачи для подзадания 20, связанного с указанным заданием 19. В столбце 767 может отображаться одно из вышеуказанных состояний задачи. В столбце 769 может отображаться наименование действия (например, наименование действия в отношении удаленного источника 41). В столбце 771 может отображаться отсчет повторений, представляющий количество повторных выполнений задачи 39. В столбце 773 может отображаться идентификатор порядка. Например, задачи в задании 19 могут быть упорядочены от 1 до 100 для целей идентификации соответствующих задач. В столбце 775 может отображаться дата создания задачи. В столбце 777 отображается дата и время последней модификации задачи 39. В столбце 779 может отображаться элемент интерфейса пользователя, который может задаваться для отображения интерфейса пользователя, содержащего информацию, характеризующую устройство (например, узел 26 обработки) или процесс, которые обеспечивают обработку задачи 39, как это будет описано ниже. В столбце 781 может отображаться запрос, и в столбце 783 может отображаться ответ. Поля запроса и ответа могут быть адаптированы пользователем приложения для записи величин, относящихся к запросу и ответу соответственно.
На фигуре 18 приведена иллюстрация интерфейса 780 пользователя, обеспечивающего отображение информации, относящейся к устройству (например, к узлу 26 обработки) или к процессу, которые выполняют задачу 39, для одного из вариантов изобретения. Интерфейс 781 пользователя содержит столбцы 782, 785, 787, 789, 791, 793, 795 и 797. В столбце 782 может отображаться идентификатор процесса, который идентифицирует процесс, обрабатывающий задачу 39. В столбце 785 может отображаться идентификатор задания с распределением/объединением, который идентифицирует задание 19, связанное с подзаданием 20, содержащим задачу 39. В столбце 787 может отображаться идентификатор устройства, который идентифицирует узел 26 обработки, выполняющий задачу 39. В столбце 789 может отображаться идентификатор процесса, который идентифицирует процесс, обрабатывающий задачу 39. В столбце 791 может отображаться дата создания процесса. В столбце 793 может отображаться дата и время последней модификации процесса. В столбце 795 может отображаться элемент интерфейса пользователя, который может быть выбран для отображения информации документирования для задачи 39, как это описывается ниже более подробно. В столбце 797 может отображаться ключ раздела. Например, в ключе раздела может быть записана величина раздела таблицы базы данных. Записи, созданные в одном и том же временном интервале, могут быть добавлены с одной и той же величиной раздела и с указанным сроком хранения. В одном из вариантов после истечения срока хранения записи в разделе могут удаляться для эффективного использования объема памяти базы данных.
На фигуре 19 приведена иллюстрация интерфейса 799 пользователя, обеспечивающего отображение информации документирования, относящейся к устройству (например, к узлу 26 обработки) или к процессу, которые выполняют задачу 39, для одного из вариантов изобретения. Интерфейс 799 пользователя может отображаться путем выбора элемента интерфейса пользователя из столбца 795 интерфейса 781 на фигуре 18. Как показано, интерфейс 799 пользователя содержит различные записи документирования, упорядоченные по времени и содержащие различную информацию.
Вышеописанные интерфейсы пользователя содержат элементы интерфейса пользователя и столбцы для отображения информации. Однако специалистам в данной области техники будет ясно, что интерфейсы пользователя могут быть также реализованы как машинный интерфейс (например, стандартный обобщенный язык описания документов - SGML), содержащий элементы машинного интерфейса, голосовой интерфейс, содержащий элементы голосового интерфейса, кинетический интерфейс, содержащий элементы кинетического интерфейса, или иной тип интерфейса, содержащий элементы интерфейса.
В некоторых вариантах способы, рассмотренные в настоящем описании, могут быть реализованы в распределенном или нераспределенном программном приложении, разработанном в соответствии с трехуровневой архитектурой, причем различные компоненты компьютерных программ, осуществляющие такой способ, могут быть отнесены к одной или к нескольким из указанных трех уровней. Некоторые варианты могут содержать первый уровень в качестве интерфейса (например, интерфейсный уровень), который относительно независим от обработки приложений. Второй уровень может быть логическим уровнем, на котором осуществляется обработка в форме логических и/или математических операций с данными, введенными через интерфейсный уровень, и передача результатов обработки на интерфейсный уровень и/или на уровень хранения информации. Такие логические и/или математические операции могут относиться к определенным бизнес-правилам или процессам, которые определяют в целом работу программного приложения. Третий уровень (хранение данных) может быть постоянным или оперативным запоминающим устройством. В некоторых случаях уровни могут сливаться друг с другом, в результате чего может возникать двухуровневая архитектура или даже одноуровневая архитектура. Например, могут быть объединены уровни интерфейса и логической обработки или уровни логической обработки и хранения информации, как в случае с программным приложением с встроенной базой данных. Такая трехуровневая архитектура может быть реализована с использованием одной технологии или, как это будет описано ниже, с использованием нескольких технологий. Такая трехуровневая архитектура (и технологии ее реализации) может выполняться на двух или более вычислительных системах, организованных по схеме сервер-клиент, "точка-точка" или по какой-либо другой подходящей схеме. Кроме того, эти три уровня могут быть распределены между несколькими вычислительными системами как различные компоненты программного обеспечения.
Некоторые варианты могут включать вышеуказанные уровни и процессы или операции, которые их составляют, написанные как один или несколько программных компонентов. Общим моментом для большинства таких компонентов является способность формирования, использования и обработки данных. Эти компоненты и функциональные возможности, связанные с каждым из компонентов, могут использоваться клиентом, сервером или одноранговыми вычислительными системами. Такие компоненты могут быть реализованы в вычислительной системе на стандартной основе. Такие программные компоненты могут быть написаны на объектно-ориентированном языке программирования с использованием технологии программирования, ориентированной на компоненты или на объекты, такой как библиотека визуальных компонентов (VCL), библиотека компонентов кроссплатформенного программирования (CLX), компоненты Java (JB), компоненты Java для предприятий (EJB), объектная модель программных компонентов (СОМ), распределенная объектная модель программных компонентов (DCOM) или другой подходящей технологии. Эти компоненты могут быть связаны с другими компонентами через различные интерфейсы и затем скомпилированы в одно законченное программное приложение сервера, клиента и/или однорангового узла. Кроме того, эти интерфейсы API могут обмениваться информацией по различным распределенным протоколам программирования как распределенные вычислительные компоненты.
В некоторых вариантах могут использоваться дистанционный запрос процедур для реализации одного или нескольких вышеуказанных компонентов в распределенной среде программирования как распределенных вычислительных компонентов. Например, компонент интерфейса (например, уровень интерфейса) может размещаться в первой вычислительной системе, которая удалена от второй вычислительной системы, содержащей компонент логической обработки (например, логический уровень). Первая и вторая вычислительная системы могут быть организованы по схеме сервер-клиент, "точка-точка" или по какой-либо другой подходящей схеме. Эти различные компоненты могут быть написаны с использованием вышеуказанных объектно-ориентированных технологий программирования, причем для их написания может быть использован один и тот же язык или для этого используются разные языки. Могут быть реализованы различные протоколы для обеспечения возможности обмена информацией между различными компонентами независимо от языков программирования, использованных для написания этих компонентов. Например, компонент, написанный на языке C++, может быть способен обмениваться информацией с другим компонентом, написанным на языке программирования Java, с использованием протокола распределенной обработки, такого как общая архитектура брокера объектных запросов (CORBA), простой протокол доступа к объектам (SOAP) или любой другой подходящий протокол. Некоторые варианты могут включать использование одного или нескольких таких протоколов с различными протоколами, указанными в модели взаимодействия открытых систем (OSI) или в модели набора протоколов TCP/IP (протокол управления передачей/межсетевой протокол), для определения протоколов, используемых сетью для передачи данных.
В некоторых вариантах может использоваться модель OSI или модель набора протоколов TCP/IP для определения протоколов, используемых сетью для передачи данных. При применении этих моделей система передачи данных между сервером и клиентом или между одноранговыми вычислительными системами представляется как последовательность примерно пяти уровней: уровень приложений, транспортный уровень, сетевой уровень, уровень передачи данных и физический уровень. В случае программного обеспечения, имеющего трехуровневую архитектуру, различные уровни (например, уровни интерфейса, логической обработки и хранения данных) располагаются на уровне приложений набора протоколов TCP/IP. В реализации, в которой используется модель набора протоколов TCP/IP, данные из приложения, находящегося на уровне приложений, загружаются в поле загрузки данных сегмента TCP, находящегося на транспортном уровне. Этот сегмент TCP также содержит информацию о порте для удаленного принимающего программного приложения. Этот сегмент TCP загружается в поле загрузки данных IP-дейтаграммы, находящейся на сетевом уровне. Затем эта IP-дейтаграмма вставляется в кадр, находящийся на уровне передачи данных. Затем этот кадр кодируется на физическом уровне, и данные передаются по сети, такой как Интернет, локальная вычислительная сеть (LAN), региональная сеть (WAN) или какая-либо иная подходящая сеть. Иногда Интернет указывается как сеть сетей. В этих сетях для обмена данными могут использоваться самые разные протоколы, такие как уже упомянутые протоколы TCP/IP, и дополнительно асинхронный режим передачи (ATM), системная сетевая архитектура (SNA), SDI или какой-либо иной подходящий протокол. Сети могут быть организованы по разным схемам (например, по схеме звезды).
На фигуре 20 приведена схема устройства в форме вычислительной системы 800, которая может выполнять набор команд для обеспечения выполнения этим устройством одного или нескольких способов, рассмотренных в настоящем описании. В других вариантах устройство является автономным или может быть соединено по сети с другими устройствами. В сетевом варианте устройство может работать как сервер? или как клиент в сетевой среде клиент-сервер, или же как одноранговый узел в схеме одноранговой сети. Вычислительное устройство может быть сервером, клиентским компьютером, персональным компьютером (ПК), планшетным ПК, декодирующей приставкой (STB), карманным персональным компьютером (КПК), сотовым телефоном, веб-устройством, сетевым маршрутизатором, коммутатором или мостом или любым другим устройством, способным выполнять наборы команд (последовательные или другие), определяющие действия, которые должны быть выполнены этим устройством. Кроме того, в то время как в описании рассматривается одно устройство, термин "устройство" также охватывает любое множество устройств, которые по отдельности или совместно выполняют набор (или наборы) команд для осуществления одного или нескольких описанных здесь способов.
Рассматриваемый вариант вычислительной системы 800 содержит один или несколько процессоров 802 (например, центральный процессор, графический процессор или оба), оперативное запоминающее устройство 804 и статическое запоминающее устройство 806, которые обмениваются информацией друг с другом по шине 808. Вычислительная система 800 может содержать дополнительно устройство 810 отображения информации, например, жидкокристаллический дисплей или дисплей на электронно-лучевой трубке. Вычислительная система 800 также содержит устройство 812 ввода информации, например клавиатуру, указывающее устройство 814, например мышь, дисковод 816, устройство 818 сигнализации, например громкоговоритель? и устройство 820 сетевого интерфейса.
Дисковод 816 содержит машиночитаемый носитель 822, на котором хранится один или несколько наборов команд, например программы 824, которые обеспечивают осуществление одного или нескольких описываемых способов или функций. Программы 424 могут также полностью или по меньшей мере частично находиться в оперативном запоминающем устройстве 804, или в статическом запоминающем устройстве 806 и/или в процессоре 802 при их выполнении компьютерной системой 800. Оперативное запоминающее устройство 804 и процессор 802 также могут составлять машиночитаемый носитель. Программы 824 могут также передаваться или приниматься по сети 826 с помощью устройства 820 сетевого интерфейса.
Применения, которые могут включать устройство и системы различных вариантов, содержат различные электронные и вычислительные системы. Функции некоторых вариантов реализуются в двух или более специализированных, соединенных между собой, аппаратных модулей или устройств, которые могут обмениваться управляющими или информационными сообщениями, или в частях специализированной интегральной схемы. Таким образом, рассматриваемая система может быть реализована с использованием аппаратных средств, аппаратных средств с прошитыми программами и программных средств. В рассматриваемых вариантах вычислительная система (например, автономная система или система клиент-сервер), конфигурируемая в соответствии с применением, может представлять собой "модуль", который конфигурируется и работает для выполнения определенных вышеуказанных функций. В других вариантах "модуль" может быть реализован с использованием механических или электронных средств. Например, модуль может содержать специализированные схемы или логические компоненты, которые конфигурируются один раз (например, с использованием специализированного процессора) для выполнения определенных функций. Модуль может также содержать программируемые схемные или логические компоненты (например, находящиеся внутри универсального процессора или другого программируемого процессора), которые могут конфигурироваться с использованием программного обеспечения для выполнения определенных функций. Будет ясно, что решение по реализации модуля с использованием механических средств, в специализированных и конфигурируемых один раз схемах или в схемах с возможностью многократного конфигурирования (например, с помощью программных средств) может приниматься по соображениям временных и материальных затрат. Соответственно, термин "модуль" должен пониматься в смысле материального объекта, представляющего собой физическую структуру, сконфигурированную один раз (например, прошитая программа) или многократно конфигурируемую (например, программно) для работы определенным образом и/или выполнения определенных функций, рассмотренных в настоящем описании.
Хотя машиночитаемый носитель 822 показан в рассматриваемом варианте в форме одного носителя, однако термин "машиночитаемый носитель" охватывает варианты одного или нескольких носителей (например, централизованная или распределенная база данных и/или буферная память и серверы), в которых сохраняются один или несколько наборов команд (программ). Термин "машиночитаемый носитель" также охватывает любой носитель, который может обеспечивать хранение и кодирование набора команд, которые могут быть выполнены устройством и которые обеспечивают выполнение этим устройством одного или нескольких способов, рассмотренных в настоящем описании. Соответственно, термин "машиночитаемый носитель" охватывает твердотельные запоминающие устройства, оптические и магнитные носители (перечень не является исчерпывающим). Как уже указывалось, программы могут передаваться по сети с использованием среды передачи. Термин "среда передачи" включает любую среду, которая способна хранить, кодировать и переносить команды программ для передачи и выполнения устройством, и включает цифровые или аналоговые сообщения или другие нематериальные среды для обеспечения передачи такого программного обеспечения.
Рассмотрение вариантов осуществления изобретения в настоящем описании предназначено для обеспечения общего понимания структуры этих вариантов, и они не должны рассматриваться как полное описание всех элементов и признаков устройства и систем, которые могут использоваться в описанных структурах. Для специалистов в данной области техники после ознакомления с вышеприведенным описанием будет очевидны и многие другие варианты. Могут использоваться другие варианты и их производные, в которых могут быть сделаны структурные и логические замены и изменения без выхода за пределы объема настоящего изобретения.
Прилагаемые фигуры приведены всего лишь для целей иллюстрации и могут быть не в масштабе. Некоторые их части могут быть увеличены, в то время как другие могут быть минимизированы. Соответственно, описание и чертежи должны рассматриваться скорее как иллюстративные, а не как ограничивающие объем изобретения материалы.
Таким образом, в изобретении предлагаются системы и способы обработки запросов, получаемых на интерфейсе прикладных программ. Хотя настоящее изобретение описано на примере нескольких вариантов его осуществления, специалистам в данной области техники будет ясно, что изобретение не ограничивается описанными вариантами и может быть осуществлено с различными изменениями в пределах его сущности и объема, определяемого прилагаемой формулой. Таким образом, вышеприведенное описание должно рассматриваться как иллюстративный, а не ограничивающий документ.