РАВНОПРАВНОЕ РАЗДЕЛЕНИЕ СИСТЕМНЫХ РЕСУРСОВ В ИСПОЛНЕНИИ РАБОЧЕГО ПРОЦЕССА
EQUITABLE DIVISION OF SYSTEM RESOURCES IN EXECUTION OF WORKING PROCESS

Уровень техники и область техники, к которой относится изобретение
[0001] Взаимосвязывание вычислительных систем способствовало развитию распределенных вычислительных систем, таких как так называемые "облачные" вычислительные системы. В этом описании "облачное вычисление" может быть системами или ресурсами для предоставления возможности повсеместного, удобного, сетевого доступа по запросу к разделяемому пулу конфигурируемых вычислительных ресурсов (например, сетей, серверов, хранилищ, прикладных программ, служб и т.д.), которые могут быть выделены и высвобождены, при этом требуя меньших усилий по управлению или меньшего взаимодействия с поставщиком службы. Облачная модель может состоять из различных характеристик (например, самообслуживание по запросу, широкий сетевой доступ, объединение в пул ресурсов, быстрая гибкость, измеряемая услуга и т.д.), моделей обслуживания (например, программное обеспечение как услуга ("SaaS"), платформа как услуга ("PaaS"), инфраструктура как услуга ("IaaS")) и моделей развертывания (например, частное облако, коллективное облако, публичное облако, гибридное облако и т.д.).
[0002] Некоторые поставщики облачных технологий используют подход разделенного масштабирования, чтобы предоставлять возможность масштабирования службы для увеличившегося использования. Служба реализует концепцию единиц масштабирования (конечной совокупности ресурсов), которые поддерживают известное множество пользователей. Емкость добавляется посредством добавления дополнительных единиц масштабирования при необходимости, когда пользовательские ограничения наталкиваются на существующие единицы масштабирования. Пользовательское ограничение определяется как заданное число пользователей, которые будут связаны с единицей масштабирования, которая будет выполнять все запросы их рабочих нагрузок.
[0003] Множество доступных ресурсов в единице масштабирования является конечным и фиксированным, но система должна иметь возможность иметь дело с изменяющимися нагрузками рабочих нагрузок, запрашиваемыми связанными пользователями, без дискредитации соглашения об уровне сервиса (SLA) конечного пользователя с точки зрения рабочих нагрузок с гарантией времени выполнения. Существуют различные способы потенциально решать проблему.
[0004] Одним способом является динамическое горизонтальное масштабирование или увеличение масштаба. Этот подход требует своевременного добавления или удаления системных ресурсов на основе факторов текущей потребности. Реализация такого подхода для работающей в реальном времени службы требует всего множества зависимых факторов, которые трудно реализовать и поддерживать, не говоря уже о буфере, который будет необходим с точки зрения емкости вследствие временных соображений при гибком расширении или сокращении.
[0005] Другим решением будет определение продолжительности рабочей нагрузки на основе анализа рабочего процесса. Целью будет предотвращение запуска рабочих нагрузок, превышающих некоторую продолжительность. Это решение может быть трудно реализовать. Например, рабочий процесс может содержать единичные вызовы, которые внутренне реализуются как бесконечные циклы, вызов которых будет предотвращаться. Дополнительно, ограничение набора действий, которые пользователю предоставляется возможность использовать в рабочих процессах, создает плохое пользовательское восприятие.
[0006] Изобретение, заявляемое в данном документе, не ограничивается вариантами осуществления, которые решают какие-либо недостатки или которые работают только в таких окружениях, которые описаны выше. Скорее, это описание предшествующего уровня техники предоставлено, только чтобы иллюстрировать одну примерную область технологии, где некоторые варианты осуществления, описанные в данном документе, могут быть применены на практике.
Сущность изобретения
[0007] Один вариант осуществления, иллюстрированный в данном документе, включает в себя способ, который может быть применен на практике в распределенном вычислительном окружении, которое предоставляет вычислительные ресурсы множеству арендаторов. Способ включает в себя действия для выделения ограниченного множества системных ресурсов арендаторам. Способ включает в себя идентификацию части ресурса. Способ дополнительно включает в себя идентификацию выполняющейся рабочей нагрузки арендатора. Характеристики контрольных точек идентифицируются для исполняющейся рабочей нагрузки арендатора. На основе характеристик контрольных точек и части ресурса идентифицируется событие вытеснения задачи.
[0008] Другой вариант осуществления включает в себя облачную службу, сконфигурированную, чтобы справедливо распределять ограниченное множество ресурсов арендаторам облачной службы. Облачная служба включает в себя службу планирования. Служба планирования конфигурируется, чтобы принимать рабочие нагрузки от арендаторов облачной службы. Облачная служба включает в себя множество исполнительных модулей, связанных со службой планирования. Исполнительные модули конфигурируются, чтобы принимать рабочие нагрузки от службы планирования. Исполнительные модули конфигурируются, чтобы исполнять рабочие нагрузки от арендаторов на основе частей ресурса в сочетании с оценкой регистрации состояния в контрольных точках рабочих нагрузок, так что события вытеснения задачи основываются на частях ресурсов и регистрации состояний в контрольных точках рабочих нагрузок.
[0009] Это краткое изложение сущности изобретения приведено для представления в упрощенной форме подборки идей, которые дополнительно описываются ниже в подробном описании. Данное краткое изложение сущности изобретения не предназначено ни для идентификации ключевых признаков или важнейших признаков заявляемого изобретения, ни для того, чтобы быть использованной в качестве помощи при определении объема заявляемого изобретения.
[0010] Дополнительные признаки и преимущества будут изложены в описании, которое следует ниже, и частично будут явствовать из описания или могут быть изучены при практическом использовании учений данного документа. Признаки и преимущества изобретения могут быть реализованы и получены посредством инструментов и комбинаций, детально указанных в прилагаемой формуле. Признаки настоящего изобретения станут полностью очевидными из следующего описания и прилагаемой формулы изобретения или могут быть изучены при практическом использовании изобретения, как изложено далее в данном документе.
Краткое описание чертежей
[0011] Чтобы описать способ, которым могут быть получены вышеупомянутые и другие преимущества и признаки, более подробное описание изобретения, вкратце описанного выше, должно быть представлено посредством ссылки на его конкретные варианты осуществления, которые проиллюстрированы на прилагаемых чертежах. Понимая то, что эти чертежи изображают только типовые варианты осуществления и, следовательно, не должны рассматриваться как ограничивающие их рамки, варианты осуществления будут описаны и объяснены с дополнительной спецификой и деталями посредством использования сопровождающих чертежей, на которых:
[0012] Фиг. 1 иллюстрирует облачную систему, сконфигурированную, чтобы справедливо распределять облачные ресурсы;
[0013] Фиг. 2 иллюстрирует событие вытеснения, возникающее, когда истекает временной интервал;
[0014] Фиг. 3 иллюстрирует событие вытеснения, возникающее в предварительно определенном фрагменте временного интервала;
[0015] Фиг. 4 иллюстрирует расширение временного интервала на основе регистрации состояния в контрольной точке, существующей в предварительно определенном фрагменте временного интервала;
[0016] Фиг. 5 иллюстрирует расширение временного интервала на основе регистрации состояния в контрольной точке, существующей в предварительно определенном фрагменте временного интервала; и
[0017] Фиг. 6 иллюстрирует способ предоставления ресурсов множеству арендаторов распределенных вычислительных систем.
Подробное описание изобретения
[0018] Некоторые варианты осуществления, иллюстрированные в данном документе, реализуют гарантированное исполнение частей ресурсов для рабочих нагрузок, которые могут сохраняться, вытесняться и позже возобновляться из последнего сохраненного состояния (т.е., рабочих нагрузок, которые имеют зафиксированные состояния в контрольных точках), в качестве способа обеспечивать равноправное разделение системных ресурсов. Многообразные различные ресурсы могут быть разделены на части. Например, может быть реализован временной интервал одного или более системных ресурсов. Таким образом, например, части могут быть одним или более из регулируемой во времени величины процессора, регулируемой во времени величины доступа к памяти, регулируемой во времени величины доступа к хранилищу, регулируемой во времени величины использования сети или их комбинациями. Альтернативно или дополнительно, часть ресурса может быть множеством команд (например, действий сценария). Альтернативно или дополнительно, часть ресурса может быть множеством операций процессора. Альтернативно или дополнительно, часть ресурса может быть объемом сетевых ресурсов, таким как объем данных, передаваемых по сети. Альтернативно или дополнительно, часть ресурса может быть объемом ресурсов хранения, таким как объем ввода/вывода (I/O) на и с запоминающих устройств. Альтернативно или дополнительно, часть ресурса может быть ресурсами среды выполнения "песочницы". Альтернативно или дополнительно, часть ресурса может быть объемом ресурсов памяти. И так далее. В то время как множество различных частей ресурсов может быть использовано отдельно или в комбинации, пример ниже иллюстрируется в контексте временных интервалов, но другие части ресурсов могут быть использованы вместо них.
[0019] Обращаясь теперь к фиг. 1, иллюстрируется пример. В примере, иллюстрированном на фиг. 1, облачная служба 100 выполняет рабочие нагрузки для арендаторов 102-1, 102-2, 102-3 по 102-n облачной службы 100. В примере иллюстрируются, что арендаторы отправляют рабочие нагрузки 104-1, 104-2, 104-3 по 104-n службе 106 планирования. Служба 106 планирования назначает рабочие нагрузки различным исполнительным модулям 108-1, 108-2 по 108-p. Исполнительные модули используют некоторые ресурсы облачной службы 100.
[0020] Чтобы гарантировать, что ресурсы разделяются справедливо, рабочим нагрузкам может быть предоставлена возможность использовать только заданное количество ресурсов, прежде чем рабочие нагрузки вытесняются, чтобы давать другим рабочим нагрузкам возможность быть выполненными. Если рабочие нагрузки не закончили работу при вытеснении, рабочие нагрузки будут повторно поставлены в очередь в службе 106 планирования, так что им может быть дана другая возможность использовать ресурсы облачной службы.
[0021] В одном типичном примере ресурсы будут разделены во времени. Таким образом, например, рабочей нагрузке может быть отведен некоторый интервал времени на выполнение, или на то, чтобы достигать контрольной точки, где работа по рабочей нагрузке может быть легко сохранена, так что рабочая нагрузка может быть продолжена из сохраненного состояния, когда рабочая нагрузка снова выделяется исполнительному модулю. Если рабочая нагрузка достигает контрольной точки и сохраняется, тогда рабочая нагрузка может быть вытеснена. Это сохраняет работу, которая была выполнена для рабочей нагрузки. Если рабочая нагрузка превышает интервал времени (или другое выделение части ресурса в других вариантах осуществления), тогда рабочая нагрузка вытесняется, даже если состояние не может быть сохранено. Это будет приводить в результате к потере работы, выполненной по рабочей нагрузке. Таким образом, рабочая нагрузка может быть назначена исполнительному модулю, такому как исполнительный модуль 108-1. Исполнительный модуль будет выполнять рабочая нагрузка до истечения, в этом примере, предварительно определенного интервала времени. Если время истекает без сохранения рабочей нагрузки, тогда рабочая нагрузка будет вытеснена. Если рабочая нагрузка достигает контрольной точки и сохраняется, рабочая нагрузка также будет вытеснена в этом случае.
[0022] Отметим, что справедливость необязательно означает, что ресурсы делятся равномерно.
Справедливость может учитывать несколько различных факторов, которые приводят в результате к тому, что некоторые арендаторы обеспечиваются большей долей ресурсов, чем другие арендаторы. Например, арендатору, который оплатил премимум-доступ для более высокого уровня обслуживания, чем другие арендаторы, может быть назначена большая доля ресурсов, которая реализуется как большая часть ресурсов. Дополнительно, как будет иллюстрировано подробно ниже, облачная служба 100 может предоставлять, в качестве стимула, большую гибкость для использования ресурсов, когда рабочие нагрузки согласуются с некоторыми стандартами.
[0023] В частности, варианты осуществления могут стимулировать регистрацию состояния в контрольной точке. Арендаторам, которые регистрируют состояние в контрольных точках своих рабочих нагрузок, некоторым образом может быть предоставлена некоторая гибкость в ограничениях части ресурсов. Таким образом, некоторые варианты осуществления могут принимать приближение к контрольным точкам во внимание как часть эвристики, используемой, чтобы определять, когда вытеснять рабочую нагрузку. Арендаторы могут структурировать регистрацию состояния в контрольной точке в своих рабочих нагрузках, чтобы обеспечивать предписанное приближение, чтобы предоставлять своим рабочим нагрузкам режим благоприятствования.
[0024] Последующее описание иллюстрирует пример, когда часть ресурса является временным интервалом процессора. Однако, должно быть понятно, как обсуждалось выше, что другие части ресурсов могут быть альтернативно или дополнительно использованы. Таким образом, последующий пример не должен истолковываться как ограничивающий рамки частей ресурсов только временными интервалами.
[0025] Некоторые варианты осуществления могут быть реализованы с помощью службы управления рабочим нагрузками Azure Automation Service, доступной от корпорации Microsoft из Рэдмонда, штат Вашингтон.
Однако, варианты осуществления могут быть использованы фактически любой системой с множеством арендаторов, которая должна обеспечивать равноправное разделение системных ресурсов, которая запускает рабочие нагрузки различной продолжительности (или другое выделение ресурса), которая поддерживает сохранение состояния во время работы.
[0026] В иллюстрированном примере запросы рабочих нагрузок (например, запросы 104-1 по 104-m), приходящие от арендаторов, помещаются в одну из очередей исполнительных модулей (например, очереди 110-1, 110-2 по 110-p), из которых они захватываются исполнительными модулями 108-1 по 108-p на основе доступности системных ресурсов. Каждый исполнительный модуль отвечает за обработку одной очереди.
[0027] Когда рабочая нагрузка загружается в память, время записывается. Во время работы рабочая нагрузка может быть сохранена множество раз. Когда сохранять рабочие нагрузки, решается автором рабочего процесса. В зависимости от того, когда истекает временной интервал исполнения, и когда рабочая нагрузка была в прошлый раз сохранена, рабочая нагрузка вытесняется. Могут быть реализованы различные правила вытеснения. Иллюстрируются некоторые конкретные примеры.
[0028] Например, со ссылкой на фиг. 2, рабочие нагрузки, которые не имеют какой-либо контрольной точки в последних 10% (или некоторой другой процентной доле или фрагменте) временного интервала исполнения, вытесняются, когда временной интервал исполнения истекает. Со ссылкой на фиг. 3, рабочие нагрузки, которые имеют контрольные точки в последних 10% (или некоторой другой выбранной процентной доле или фрагменте) временного интервала исполнения, вытесняются вскоре после того, как они сохраняются. Этот характер работы ведет к лучшему потребительскому восприятию, поскольку, когда повторно активируются, рабочие нагрузки продолжают свое исполнение с контрольной точки.
[0029] В одной разновидности варианты осуществления могут стимулировать режим работы с регистрацией состояния в контрольной точке посредством "награждения" рабочих нагрузок с частыми контрольными точками, предоставляя им возможность работать до 10% (или некоторой другой выбранной процентной доли или фрагмента) сверх временного интервала. Как иллюстрируется на фиг. 4 и 5, рабочим нагрузкам, которые имеют контрольные точки в последних 10% (или некоторой другой выбранной процентной доле или фрагменте) временного интервала, предоставляется возможность работать на 10% (или на другую выбранную процентную долю или фрагмент) дольше временного интервала или до тех пор, пока они не будут вытеснены (см. фиг. 4) или сохранены (см. фиг. 5).
[0030] Динамический статус вытесненной рабочей нагрузки не изменяется, но описание, которое указывает, что рабочая нагрузка больше не находится в памяти, присоединяется к рабочей нагрузке. Например, рабочие нагрузки, которые являются "работающими", становятся "работающими, ожидающими ресурсов".
[0031] Варианты осуществления могут содействовать назначению вытесненной рабочей нагрузки другому исполнительному модулю в качестве способа уравновешивать распределение рабочей нагрузки между множеством исполнительных модулей. Вариант осуществления может принимать во внимание ближайшую историю использования ресурса в исполнительных модулях при принятии решений о размещении рабочей нагрузки. Вытесненные рабочие нагрузки помещаются в конец одной из доступных очередей исполнительных модулей (например, одной из 110-1 по 110-p). Доступная очередь может быть выбрана случайно или на основе доступности ресурсов исполнительного модуля.
[0032] Когда вновь назначенный исполнительный модуль (например, один из 108-1 по 108-p) захватывает рабочая нагрузка снова из очереди, рабочая нагрузка повторно активируется с последней доступной контрольной точки.
[0033] Существуют некоторые лучшие практики относительно контрольных точек в рабочем процессе, которые содействуют этой модели исполнения. Пользователь должен гарантировать, что рабочая нагрузка сохраняется часто, и что исполнение является идемпотентным (т.е., если рабочая нагрузка запускается множество раз с контрольной точки, результаты являются одинаковыми). Если рабочая нагрузка не содержит контрольных точек или не управляет продолжением с существующей контрольной точки после множества попыток, тогда варианты осуществления могут помечать его как "потерявшее работоспособность" и прекращать пытаться повторно активировать его. Арендатор может также быть уведомлен об отказе. В некоторых вариантах осуществления варианты осуществления могут уведомлять арендатора, что рабочая нагрузка более вероятно достигнет цели, если имеет контрольную точку или чаще сохраняет состояние в контрольной точке.
[0034] Последующее обсуждение теперь обращается к ряду способов и действиям способа, которые могут быть выполнены. Хотя действия способа могут обсуждаться в некотором порядке или иллюстрироваться в блок-схеме последовательности операций как возникающие в конкретном порядке, конкретное упорядочивание обязательно не требуется, пока специально не заявлено, или требуется, поскольку действие зависит от другого действия, завершаемого перед выполняемым действием.
[0035] Обращаясь теперь к фиг. 6, иллюстрируется способ 600. Способ 600 может быть применен на практике в распределенном вычислительном окружении, которое предоставляет вычислительные ресурсы множеству арендаторов. Способ включает в себя действия для выделения ограниченного множества системных ресурсов арендаторам (справедливым образом). Способ включает в себя идентификацию части ресурса (этап 602). Например, часть ресурса может быть одним или более из: временного интервала, множества команд (например, действий сценария), процессорных ресурсов, сетевых ресурсов, ресурсов хранения, ресурсов среды исполнения "песочница", использования памяти, вводов/выводов и т.д.
[0036] В некоторых вариантах осуществления часть ресурса является динамически конфигурируемой. Таким образом, например, часть ресурса может изменяться по величине в зависимости от множества различных факторов. В одном примере часть ресурса может быть динамически переконфигурируемой на основе ручных настроек. Таким образом, администратор в облачной службе может вручную задавать размер части ресурса. Альтернативно или дополнительно, часть ресурса может быть динамически конфигурируемой на основе нагрузки. Таким образом, например, если существует небольшая потребность в ресурсах, части ресурса могут быть больше, чем когда существует высокая потребность в ресурсах. Альтернативно или дополнительно, части ресурса могут динамически конфигурироваться на основе времени дня, времени года, сезонов и т.д. Таким образом, облачная служба, с которой работают арендаторы для электронной торговли, может иметь меньшие выделения частей ресурсов во время сезона праздничных покупок, чем во время менее требовательных сезонов года.
[0037] Способ 600 дополнительно включает в себя идентификацию исполняющейся рабочей нагрузки арендатора (этап 604). Например, варианты осуществления могут идентифицировать рабочая нагрузка, исполняющаяся в исполнительном модуле (таком как один из исполнительных модулей 108-1 по 108-p).
[0038] Способ 600 дополнительно включает в себя идентификацию характеристик контрольных точек для исполняющейся рабочей нагрузки арендатора (этап 606). Рабочий процесс будет идентифицировать контрольные точки в рабочем процессе, которые могут быть идентифицированы облачной службой. Это может включать в себя идентификацию того, существуют ли контрольные точки в рабочем процессе, где в рабочем процессе существуют контрольные точки, как часто или последовательно выполняется для рабочего процесса регистрация состояния в контрольных точках, и т.д.
[0039] На основе характеристик контрольных точек и части ресурса способ 600 дополнительно включает в себя идентификацию события вытеснения задачи (этап 608). Местоположение контрольных точек может влиять на то, как и когда происходит событие вытеснения задачи. Например, в некоторых вариантах осуществления, идентификация события вытеснения задачи содержит вытеснение рабочей нагрузки арендатора до истечения срока действия части ресурса, когда регистрация состояния в контрольной точке происходит до истечения срока действия части ресурса. Пример этого иллюстрируется на фиг. 3 выше.
[0040] Альтернативно или дополнительно, идентификация события вытеснения задачи содержит вытеснение рабочей нагрузки арендатора в пределах некоторой предварительно определенной отсрочки истечения срока действия части ресурса, когда регистрация состояния в контрольной точке происходит в пределах предварительно определенной отсрочки истечения срока действия части процесса. Пример этого иллюстрируется выше на фиг. 5.
[0041] Способ 600 может дополнительно включать в себя определение, что рабочая нагрузка арендатора продолжает вытесняться без регистрации состояния в контрольной точке предварительно определенное число раз. В результате, способ 600 включает в себя выполнение корректирующей функции. Таким образом, например, как иллюстрировано на фиг. 2, рабочая нагрузка может быть вытеснена прежде, чем его состояние может быть сохранено в контрольной точке. Вытесненная рабочая нагрузка может быть повторно запланировано и снова повторно выполнено один или более дополнительных раз.
[0042] После того как была попытка повторного выполнения рабочей нагрузки предварительно определенное число раз, будет выполнено некоторое другое корректирующее действие. Это может быть корректирующее действие по рабочей нагрузке. Например, корректирующее действие может включать в себя прекращение работы рабочей нагрузки, чтобы предотвращать будущие попытки повторного выполнения рабочей нагрузки. Альтернативно или дополнительно, корректирующее действие может включать в себя расширение части ресурса, чтобы предоставлять некоторые дополнительные ресурсы, чтобы выполнять рабочую нагрузку. В некоторых вариантах осуществления это может быть выполнено посредством покупки премиум-доступа, автоматического начисления дополнительных сумм арендатору и т.д. Альтернативно или дополнительно, это может быть корректирующее действие, выполняемое относительно арендатора. Например, арендатор может быть уведомлен, что рабочая нагрузка не может быть выполнена вследствие недостаточной регистрации состояния в контрольных точках. В некоторых крайних случаях арендатор может быть отлучен от облачной службы или помещен в некоторое испытательное состояние за неподчинение требованиям регистрации состояний в контрольных точках.
[0043] Способ 600 может дополнительно включать в себя идентификацию, что не существует нагрузки на очередь рабочих нагрузок, и, в результате, не выполняется некоторое событие, даже если рабочая нагрузка превысила ограничения части ресурса, что обычно было бы причиной вытеснения рабочей нагрузки. Таким образом, например, если не существуют других рабочих нагрузок, ожидающих в очереди рабочих нагрузок, и рабочая нагрузка должна было быть вытеснена, могут быть предоставлены дополнительные ресурсы, чтобы предоставлять возможность рабочей нагрузке отработать.
[0044] Способ 600 может дополнительно включать в себя уведомление пользователя о конструктивной обработке (таком как расширение части ресурса на некоторую величину) его рабочей нагрузки на основе пользовательского использования контрольных точек. Например, арендатор может быть уведомлен в служебном отчете, предоставляемом на периодической основе, о величине конструктивной обработки его рабочих нагрузок, которая было предоставлена на основе использования арендатором регистрации состояния в контрольной точке. Альтернативно или дополнительно, каждый раз, когда предоставляется конструктивная обработка, предупреждение может выдаваться арендатору. Другие способы могут быть альтернативно или дополнительно использованы, чтобы предупреждать пользователя о благоприятном режиме.
[0045] Дополнительно, способы могут быть применены на практике посредством компьютерной системы, включающей в себя один или более процессоров и компьютерно-читаемых носителей, таких как память компьютера. В частности, память компьютера может хранить выполняемые компьютером инструкции, которые, когда исполняются одним или более процессорами, инструктируют выполнение различных функций, таких как этапы, перечисленные в вариантах осуществления.
[0046] Варианты осуществления настоящего изобретения могут содержать или использовать специализированный компьютер или компьютер общего назначения, включающий в себя аппаратные средства компьютера, которые обсуждаются более подробно ниже. Варианты осуществления, охватываемые объемом настоящего изобретения, также включают в себя компьютерно-читаемые носители для передачи или хранения на них машиноисполняемых инструкций и/или структур данных. Такими компьютерно-читаемыми носителями могу быть любые доступные носители, к которым можно осуществлять доступ посредством компьютерной системы общего назначения или специализированной компьютерной системы. Компьютерно-читаемые носители, которые хранят машиноисполняемые инструкции, являются физическими носителями хранения. Компьютерно-читаемые носители, которые переносят машиноисполняемые инструкции, являются средой передачи. Таким образом, в качестве примера, но не ограничения, варианты осуществления изобретения могут содержать, по меньшей мере, два определенно разных вида компьютерно-читаемых носителей: физические компьютерно-читаемые носители хранения и компьютерно-читаемая среда передачи.
[0047] Физические компьютерно-читаемые носители хранения включают в себя RAM, ROM, EEPROM, CD-ROM или другой накопитель на оптическом диске (такие как CD, DVD и т.д.), накопитель на магнитном диске или другие магнитные запоминающие устройства или любой другой носитель, который может использоваться, чтобы хранить желаемое средство кодирования программы в форме машиноисполняемых инструкций или структур данных, и к которому может быть осуществлен доступ посредством компьютера общего назначения или специализированного компьютера.
[0048] "Сеть" определяется как одна или более линий передачи данных, которые предоставляют возможность передачи электронных данных между компьютерными системами и/или модулями и/или другими электронными устройствами. Когда информация передается или предоставляется по сети или другому коммуникационному соединению (либо проводному, беспроводному, либо комбинации проводного или беспроводного) в компьютер, компьютер надлежащим образом рассматривает соединение как среду передачи. Среда передачи может включать в себя сеть и/или линии передачи данных, которые могут использоваться, чтобы переносить желаемое средство кодирования программы в форме машиноисполняемых инструкций или структур данных, и к которым может быть осуществлен доступ посредством компьютера общего назначения или специализированного компьютера. Комбинации вышеперечисленного также включаются в рамки компьютерно-читаемых носителей.
[0049] Дополнительно, при достижении различных компонентов компьютерной системы средство кодирования программы в форме машиноисполняемых инструкций или структур данных может передаваться автоматически из компьютерно-читаемой среды передачи на физические компьютерно-читаемые носители хранения (или наоборот). Например, машиноисполняемые инструкции или структуры данных, принятые по сети или линии передачи данных, могут быть буферизованы в RAM в модуле сетевого интерфейса (например, "NIC"), и затем, в конечном счете, переданы в RAM компьютерной системы и/или менее энергозависимые компьютерно-читаемые физические носители хранения в компьютерной системе. Таким образом, компьютерно-читаемые физические носители хранения могут быть включены в компоненты компьютерной системы, которые также (или даже в первую очередь) используют среду передачи.
[0050] Машиноисполняемые инструкции содержат, например, инструкции и данные, которые заставляют компьютер общего назначения, специализированный компьютер или специализированное устройство обработки выполнять определенную функцию или группу функций. Машиноисполняемые инструкции могут быть, например, двоичными кодами, инструкциями промежуточного формата, такими как на языке ассемблера, или даже исходным кодом. Хотя изобретение описано на языке, характерном для структурных признаков и/или методологических действий, следует понимать, что объем изобретения, определяемый прилагаемой формулой изобретения, не обязательно ограничен характерными признаками или этапами, описанными выше. Скорее, описанные признаки и этапы раскрыты как примерные формы реализации формулы изобретения.
[0051] Специалисты в данной области техники поймут, что изобретение может быть применено на практике в сетевых вычислительных окружениях со многими типами конфигураций компьютерной системы, включающими в себя персональные компьютеры, настольные компьютеры, портативные компьютеры, процессоры для обработки сообщений, "карманные" устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронную аппаратуру, сетевые ПК, миникомпьютеры, мейнфреймы, мобильные телефоны, PDA, пейджеры, маршрутизаторы, коммутаторы и т.п. Изобретение также может быть применено на практике в распределенных системных окружениях, где локальная и удаленная компьютерные системы, которые связаны (либо проводными линиями передачи данных, беспроводными линиями передачи данных или комбинацией проводных и беспроводных линий передачи данных) через сеть, обе выполняют задачи. В распределенном системном окружении программные модули могут размещаться как на локальных, так и на удаленных запоминающих устройствах.
[0052] Альтернативно, или в дополнение, функциональность, описанная в данном документе, может быть выполнена, по меньшей мере, частично, посредством одного или более аппаратных логических компонентов. Например, и без ограничения, иллюстративные типы аппаратных логических компонентов, которые могут быть использованы, включают в себя: программируемые пользователем вентильные матрицы (FPGA), программно-зависимые интегральные схемы (ASIC), программно-зависимые стандартные продукты (ASSP), однокристальные системы (SOC), сложные программируемые логические устройства (CPLD) и т.д.
[0053] Настоящее изобретение может быть осуществлено в других характерных формах без отступления от своего духа или характеристик. Описанные варианты осуществления должны рассматриваться во всех отношениях только как иллюстративные, а не ограничивающие. Рамки изобретения, следовательно, указаны скорее приложенной формулой изобретения, чем предшествующим описанием. Все изменения, которые подпадают под смысл и рамки равнозначности формулы изобретения, должны охватываться ее объемом.