Автоматизированная организация данных

on

Группа изобретений относится к средствам автоматизации обработки данных. Техническим результатом является обеспечение управления данными, хранимыми в операционной системе, посредством предоставления определенного конечным пользователем модуля программирования, интегрированного с лежащей в его основе файловой системой. Система содержит модуль программирования для конечного пользователя, интегрированный с лежащей в основе файловой системой и отображающий событие вычислительной системы на автоматическое действие, которое определено конечным пользователем. Система также включает в себя обработчик события, который отвечает на событие и заставляет, по меньшей мере, одно автоматическое действие быть выполненным после обнаружения идентифицированного события; и автоматически выполняют определенное конечным пользователем действие после обнаружения появления идентифицированного события. 3 н. и 16 з.п. ф-лы, 12 ил.

1. Система для управления данными, хранимыми в файловой системе, содержащая: файловую систему, выполненную с возможностью предоставлять доступ к сохраненным данным,модуль программирования для конечного пользователя, интегрированный с упомянутой лежащей в основе файловой системой и который отображает событие вычислительной системы на по меньшей мере одно автоматическое действие, которое определено конечным пользователем, при этом каждое из упомянутых по меньшей мере одного автоматического действия является функцией, предоставленной файловой системой; иобработчик события, который отвечает на упомянутое событие и вынуждает упомянутое по меньшей мере одно автоматическое действие выполняться в ответ на появление упомянутого события.

2. Система по п.1, в которой событие создано операционной системой.

3. Система по п.1, в которой событие создано управляющим приложением.

4. Система по п.1, в которой событие создано приложением пользователя.

5. Система по п.4, в которой автоматическое действие выполнено вторым приложением пользователя, которое отличается от приложения пользователя, которое создало событие.

6. Система по п.5, в которой файловая система является распределенной файловой системой.

7. Система по п.5, в которой распределенная файловая система распределена по множеству взаимодействующих по сети запоминающих устройств.

8. Способ управления данными, хранимыми в файловой системе, содержащий этапы:идентифицируют инициирующее событие на вычислительной системе, которое может быть использовано для инициирования определяемого пользователем действия над данными в интегрированной файловой системе;задают определенное конечным пользователем действие, которое должно быть предпринято после обнаружения идентифицированного события, причем это определенное конечным пользователем действие является функцией, предоставленной файловой системой; иавтоматически выполняют определенное конечным пользователем действие после обнаружения появления идентифицированного события.

9. Способ по п.8, в котором инициирующее событие является событием, которое создают по меньшей мере одним из: операционной системы, управляющего приложения и приложения пользователя.

10. Способ по п.8, в котором автоматическое выполнение определенного конечным пользователем действия выполняют по меньшей мере одним из: операционной системы, управляющего приложения и приложения пользователя.

11. Способ по п.8, дополнительно содержащий этап: обращаются к хранилищу данных, чтобы получить команды обработки для определенного конечным пользователем действия.

12. Способ по п.11, в котором обращение к хранилищу данных включает в себя доступ к упомянутой интегрированной файловой системе.

13. Способ по п.12, в котором обращение к интегрированной файловой системе включает в себя доступ к распределенной файловой системе.

14. Считываемый компьютером носитель, хранящий выполняемые компьютером инструкции, которые при выполнении их процессором, выполняют способ управления данными, содержащий этапы:идентифицируют инициирующее событие на вычислительной системе, которое может быть использовано для инициирования определяемого пользователем действия над данными в интегрированной файловой системе;задают определенное конечным пользователем действие, которое должно быть предпринято после обнаружения идентифицированного события, причем это определенное конечным пользователем действие является функцией, предоставленной файловой системой; и автоматически выполняют определенное конечным пользователем действие после обнаружения появления идентифицированного события.

15. Считываемый компьютером носитель по п.14, в котором инициирующее событие является событием, которое создано по меньшей мере одним из:операционной системы, управляющего приложения и приложения пользователя.

16. Считываемый компьютером носитель по п.14, в котором автоматическое выполнение определенного конечным пользователем действия включает в себя по меньшей мере одно из системы, управляющего приложения и приложения пользователя.

17. Считываемый компьютером носитель по п.14, дополнительно содержащий команды для:осуществления доступа к хранилищу данных, чтобы получить команды обработки для определенного конечным пользователем действия.

18. Считываемый компьютером носитель по п.14, в котором осуществление доступа к хранилищу данных включает в себя осуществление доступа к интегрированной файловой системе.

19. Считываемый компьютером носитель по п.18, в котором осуществление доступа к интегрированной файловой системе включает в себя соединение с удаленной файловой системой.

Ссылка на связанную заявкуНастоящая заявка испрашивает согласно § 119(e) раздела 35 Свода законов США приоритет предварительной заявки на патент США № 60/657,519 «AUTOMATED DATA ORGANIZATION», поданной 28 февраля 2005 г. Вышеупомянутая заявка, включающая в себя все приложения, тем самым включена по ссылке во всей полноте.Уровень техникиСовременные вычислительные системы могут включать в себя множество программных процессов, активных в любой конкретный момент времени в различных состояниях выполнения. Эти процессы могут быть инициализированы операционной системой, могут контролировать или обслуживать процессы, которые инициализированы в начальный момент времени или после запуска приложения пользователя, или могут быть сами приложением пользователя. Многие, если не большинство, этих процессов или особенностей этих процессов находятся вне способности пользователя осуществлять непосредственное управление. Поэтому, если функциональные возможности, предлагаемые этими процессами, должны быть доступны вообще, такой доступ обычно должен быть выполнен другим программным процессом.Программные приложения управляют информацией от имени конечных пользователей. Число программных приложений или процессов, выполняющихся на вычислительной системе, в общем случае является функцией количества данных, которое система должна обработать, и числа задач, которое система призвана исполнить. Наименее эффективными частями этих вычислительных режимов работы являются те, которые требуют взаимодействия с человеком. Несмотря на все более и более увеличивающуюся мощность машин, конечные пользователи обычно должны вручную обрабатывать большое количество компьютеризированной информации.Одним из главных компонентов вычислительной системы общего назначения является запоминающее устройство, такое как накопитель на жестком диске, которое обычно используется для постоянного хранения электронной информации, например файлов данных и выполнимых программ. Чтобы организовать электронную информацию так, чтобы она могла быть расположена и извлечена в пригодной для использования форме, может использоваться файловая система. Существует множество файловых систем, но все они обычно обеспечивают концептуальный организационный уровень для формата и расположения информации на запоминающем устройстве.Этот концептуальный организационный уровень, обеспеченный файловой системой, может использоваться программными процессами, например процессами операционной системы, для создания, доступа, извлечения, удаления и иным образом управления информацией, сохраненной на запоминающем устройстве. Чтобы защищать целостность файловой системы и гарантировать приверженность формату файловой системы, обычно только некоторым привилегированным программным процессам, подобным процессам ввода/вывода операционной системы, разрешен непосредственный доступ к файловой системе. Приложения и пользователи, которые обращаются (осуществляют доступ) к файловой системе, обычно должны делать это с помощью функций, предоставляемых операционной системой. Эти функции обычно скрыты от представления конечным пользователям, которые могут даже не знать о существовании этих функций. Обычно этот ограниченный доступ приводит к неспособности пользователя полностью использовать особенности файловой системы, чтобы сделать вычислительные задачи проще, например использовать атрибуты файловой системы для автоматизации задач, например, организации или расположения файлов.Обычно конечный пользователь управляет информацией со своего компьютера согласно циклу жизни информации. В течение этого цикла жизни конечный пользователь обычно создает информацию или получает информацию из некоторого источника, и информация затем сохраняется в файловой системе. В некоторый момент конечный пользователь извлекает информацию и предпринимает меры на основании этой информации — этот цикл может быть повторен много раз. Современные системы не обеспечивают конечному пользователю возможность автоматизации части этого цикла жизни способами, которые являются эффективными и индивидуализированными к потребностям конечного пользователя.Сущность изобретенияНиже представлено упрощенное изложение для обеспечения основного понимания. Это изложение не является обширным обзором. Оно не предназначено ни для идентификации ключевых/критических элементов, ни для очерчивания объема. Единственная цель состоит в том, чтобы представить некоторые концепции в упрощенной форме в качестве вводной части к более подробному описанию, представленному ниже. Дополнительно используемые здесь заголовки разделов обеспечиваются просто для удобства и не должны быть никаким образом приняты как ограничение.Модуль программирования (для) конечного пользователя предоставляет возможность конечным пользователям вычислительной системы идентифицировать события, которые могут служить в качестве инициаторов для одного или более определяемых пользователем действий. Конечные пользователи, используя этот модуль, могут определять задачи по обработке данных, которые должны быть автоматически выполнены при появлении выбранного случая. Эти задачи по обработке данных могут включать в себя организацию файлов и фильтрацию файлов по атрибутам или содержанию (контенту) помимо других задач. Исполнение таких задач может быть осуществлено одним или более компонентами вычислительной системы. Таким образом, с помощью модуля программирования (для) конечного пользователя пользователи могут формировать настроенные конечным пользователем программы, которые помогают в хранении и организации данных.Программы конечного пользователя, созданные с помощью модуля программирования конечного пользователя, могут быть созданы из одного или более базовых типов, которые могут быть объединены для формирования сложных объектов, которые могут использоваться для выполнения задач. Базовые типы могут быть далее объединены с другими компонентами, так чтобы выполнять более сложные задачи. Действия, которые должны быть выполнены, могут быть инициированы автоматически предварительно выбранным событием без необходимости для конечного пользователя инициализировать эти действия или взаимодействовать с вычислительной системой в то время, как выполняются задачи. Поэтому вместо необходимости выполнять обзор данных и принимать решения относительно того, где сохранить такие данные, пользователь может посредством использования вышеупомянутых базовых типов вынуждать такие данные автоматически фильтроваться и сохраняться в требуемом местоположении. Кроме того, могут быть автоматически предприняты действия при появлении события (например, прием данных). В одном примере пользователь может задать, что каждый раз при приеме сообщения по электронной почте от конкретного индивидуума будет вызвано приложение мгновенной передачи сообщений, и мгновенное сообщение будет доставлено по адресу конкретного контакта. Таким образом, можно видеть, что заданные действия могут происходить для неравноправных приложений посредством использования базовых типов (или комбинации базовых типов). В другом примере действия, определенные пользователем, могут быть явно вызваны командой от конечного пользователя.Чтобы облегчить применимость, система программирования конечного пользователя может быть интегрирована с файловой системой, чтобы предоставить однородный интерфейс к информации, сохраненной на вычислительной системе. Интеграция между модулем программирования конечного пользователя и файловой системой обеспечивает возможность для конечного пользователя определять правила и действия, которые нужно предпринять в отношении сохраненных данных, причем могут быть применены правила и предприняты действия в отношении данных совместно или без взаимодействия с пользователем. Этот тип программирующей системы (для) конечного пользователя может обеспечивать конечного пользователя способностью управлять данными, используя функции лежащей в основе файловой системы, которая иначе может быть скрыта и к которой будет запрещен доступ конечного пользователя.Раскрытые и описанные компоненты и способы содержат признаки, описанные ниже и конкретно указанные в формуле изобретения. Нижеследующее описание и прилагаемые чертежи подробно представляют некоторые иллюстративные аспекты. Эти аспекты являются показательными, однако компоненты и способы могут использоваться только некоторыми из различных раскрытых путей. Конкретные варианты выполнения раскрытых и описанных компонентов и способов могут включать в себя некоторые, многие или все такие компоненты, способы и их эквиваленты. Модификации конкретных вариантов выполнения и примеров, представленные ниже, станут очевидны из нижеследующего подробного описания при рассмотрении совместно с чертежами.Краткое описание чертежейФиг.1 изображает блок-схему системы программирования (для) конечного пользователя.Фиг.2 — блок-схему системы обработки (для) конечного пользователя.Фиг.3 — схематичную диаграмму схемы правил.Фиг.4 — схематичную диаграмму системы программирования конечного пользователя с интегрированной файловой системой.Фиг.5 — схематичную блок-схему системы программирования конечного пользователя с интегрированной файловой системой.Фиг.6 — схематичную блок-схему системы программирования конечного пользователя с интегрированной файловой системой.Фиг.7 — схематичную блок-схему системы программирования конечного пользователя с интегрированной файловой системой.Фиг.8 — блок-схему операций общего способа обработки, который может использоваться вместе с компонентами, которые раскрыты и описаны здесь.Фиг.9 — блок-схему операций общего способа обработки, который может использоваться вместе с компонентами, которые раскрыты и описаны здесь.Фиг.10 — схему цикла жизни информации.Фиг.11 — блок-схему примерного сетевого окружения.Фиг.12 — блок-схему примерной рабочей среды.Подробное описание изобретенияИспользуемые в настоящей заявке термины «компонент», «система», «модуль» и т.п. предназначены для указания на относящийся к применению компьютера объект, такой как аппаратные средства, программное обеспечение (например, при выполнении) и/или программно-аппаратные средства. Например, компонентом может быть процесс, выполняющийся на процессоре, процессор, объект, выполняемая программа, программа и/или компьютер. Так же как приложение, выполняющееся на сервере, так и этот сервер могут быть компонентами. Один или более компонентов могут постоянно находиться в процессе, и компонент может быть расположен на одном компьютере и/или распределен между двумя или больше компьютерами.Раскрытые компоненты и способы описаны со ссылками на чертежи, на которых аналогичные числовые обозначения используются для ссылок на аналогичные элементы. В нижеследующем описании с целью объяснения многочисленные конкретные подробности приведены для того, чтобы обеспечить полное понимание раскрытого предмета изобретения. Может быть очевидно, однако, что некоторые из этих конкретных подробностей могут быть опущены или объединены с другими в конкретном выполнении. В других случаях некоторые структуры и устройства показываются в форме блок-схем, чтобы облегчить описание. Дополнительно, хотя конкретные сформулированные примеры могут использовать терминологию, которая совместима с архитектурой клиент/сервер или даже могут быть примерами реализации клиент/сервер, специалистам в данной области техники понятно, что роли клиента и сервера могут быть полностью изменены, так что раскрытые и описанные компоненты и способы не ограничены архитектурой клиент/сервер и могут быть легко адаптированы для использования в других архитектурах, в частности, включая одноранговую (P2P) архитектуру, без отрыва от формы или объема раскрытых и описанных компонентов и способов. Далее, следует отметить, что, хотя представленные здесь конкретные примеры включают в себя или ссылаются на конкретные компоненты, реализация компонентов и способов, раскрытых и описанных здесь, не обязательно ограничена такими конкретными компонентами и может также использоваться в других контекстах.Основанные на искусственном интеллекте системы (например, явно и/или неявно обученные классификаторы) могут быть использованы совместно с выполнением логического вывода, и/или вероятностных определений, и/или основанных на статистике определений в соответствии с одним или более аспектами настоящего изобретения, как описано ниже. Используемый термин «логический вывод» относится в целом к процессу рассуждения или логическому выводу в отношении состояний системы, среды и/или пользователя, исходя из набора наблюдений, которые зафиксированы (захвачены) посредством событий и/или данных. Логический вывод может использоваться для идентификации специфического контекста или действия или может, например, генерировать распределение вероятности на основании состояний. Логический вывод может быть вероятностным, то есть вычислением распределения вероятности по состояниям, представляющим интерес, на основании рассмотрения данных и событий. Логический вывод может также относиться к способам, используемым для создания событий более высокого уровня из набора событий и/или данных. Такой логический вывод приводит к конструированию новых событий или действий из набора наблюдаемых событий и/или сохраненных данных о событиях, действительно ли события являются коррелированными в малой временной близости и исходят ли события и данные из одного или нескольких источников событий и данных или нет. Различные схемы и/или системы классификации, например машины опорных векторов, нейронные сети, экспертные системы, байесовские доверительные сети, нечеткая логика и механизмы слияния данных, помимо прочих, могут использоваться в связи с выполнением действия по автоматическому и/или логическому выводу в связи с компонентами и способами, раскрытыми и описанными ниже.Фиг.1 изображает схематичную блок-схему системы 100 программирования (для) конечного пользователя. Система 100 программирования конечного пользователя включает в себя операционную платформу 110, которая может обеспечивать среду обработки для системы 100 программирования конечного пользователя. В этом контексте операционная платформа 110 может включать в себя и аппаратные, и программные компоненты. В частности, операционная платформа 110 может быть операционной системой для персонального компьютера, автоматизированного рабочего места или сервера. Событие 120 может быть создано операционной платформой 110, причем событие 120 может служить индикатором того, что задача обработки выполняется или была выполнена. Событие, такое как событие 120, может быть обнаружено другими вычислительными компонентами и может использоваться в качестве инициирующего устройства, чтобы инициализировать выполнение заранее определенной вычислительной задачи.Модуль 130 программирования (для) конечного пользователя (МПКП, EUP) может обеспечивать компонент, который может использоваться конечным пользователем для определения действия, такого как определяемое пользователем действие 140, которое должно быть предпринято при появлении события 120. Следует отметить, что определяемое пользователем действие 140 может быть единственной задачей или может быть группой задач, которые должны быть выполнены. Модуль 130 EUP может обеспечивать интерфейс к системным функциям, которые могут использоваться вручную или предварительно могут быть только доступны другим программным компонентам, таким как, но не ограничиваясь ими, операционная система или сервисный компонент.Во время работы конечный пользователь обращается к модулю 130 EUP, чтобы идентифицировать событие, такое как событие 120, которое может использоваться для инициирования определяемого пользователем действия. Конечный пользователь также определяет действие или группу действий, которые конечный пользователь хочет, чтобы система выполнила автоматически при появлении этого идентифицированного события. Это событие затем связывается с определяемым пользователем действием, другими словами, при появлении события 120 операционная платформа исполняет заданное (определенное) пользователем действие.Например, конечный пользователь может идентифицировать прием сообщения электронной почты от конкретного человека в качестве инициирующего (запускающего) события. Конечный пользователь может затем создать действие так, чтобы после приема такого сообщения электронной почты сообщение было передано в определенную папку «почтового ящика», ответ, подтверждающий получение сообщения, послан отправителю, документ извлечен из файл-сервера и открыт в соответствующей программе, и услышаны звуки предупреждения для уведомления пользователя о том, что документ подготовлен на компьютере. Эти этапы могут быть выполнены автоматически, без вмешательства пользователя посредством использования системы 100.Фиг.2 изображает схематичную блок-схему системы 200 обработки (для) конечного пользователя. Система 200 обработки конечного пользователя включает в себя интерфейс 210 пользователя, который может обеспечивать доступ к системе для человека-пользователя. Интерфейсом 210 пользователя может быть любой подходящий человеко-машинный интерфейс, например графический пользовательский интерфейс, интерфейс командной строки или интерфейс на основе Web, помимо прочих, и может быть подсоединен к операционной платформе 220, которая может включать в себя и аппаратные, и программные компоненты. Интерфейс 210 пользователя также может быть связан с обработчиком 230 событий и хранилищем 240 данных о правилах, причем обработчик 230 событий может обнаруживать появление события 245 и обращаться к подсистеме 250 обработки.Во время работы интерфейс 210 пользователя обеспечивает доступ к обработчику 230 событий и хранилищу 240 данных о правилах для конечного пользователя, который может идентифицировать событие, подлежащее использованию в качестве запускающего (инициирующего) события и вызвать связывание этого события с определяемым пользователем действием. Определяемое пользователем действие может быть затем, в свою очередь, сохранено в хранилище 240 данных о правилах. Операционная платформа 220 создает событие 245, которое обнаруживается обработчиком 230 событий, которое может обращаться к хранилищу 240 данных о правилах, чтобы определить, связано ли определяемое пользователем действие с обнаруженным событием. Если это так, обработчик 230 событий обращается к подсистеме 250 обработки, чтобы управлять выполнением определяемого пользователем действия.Правила, которые нужно применить в течение создания или выполнения определенных конечным пользователем задач, могут соответствовать алгебре правил. Подробности соответствующей алгебры правил, которая может использоваться, могут значительно изменяться согласно конкретному выполнению модуля EUP. Один пример алгебры правил представлен и описан более подробно ниже. Примерная алгебра правил может включать в себя различные логические компоненты, которые могут быть объединены для формирования платформы правил. Среди таких компонентов находятся базовые элементы, которые могут служить в качестве стандартных (компоновочных) блоков для других элементов (терминов) и выражений. Термины и выражения, которые были сформированы из других терминов или выражений, могут самостоятельно использоваться в качестве стандартных блоков для создания более сложных терминов или выражений. Таким образом, могут быть созданы все более и более сложные правила для применения во время выполнения конкретной задачи конечного пользователя.Property(T) может описывать свойство типа T для конечного пользователя. Конечный пользователь может использовать свойство или свойства, чтобы описать другой логический компонент, такой как фильтр или действие. Свойством может быть некоторый общий дескриптор типа Т для конечного пользователя. При применении к различным типам, таким как T или Т-прим, может использоваться один и тот же дескриптор. Таким образом, Property(T) и Property(Т-прим) могут оба использоваться в качестве дескрипторов и могут быть различными компонентами. Правило, которое имеет тип Т входного элемента и тип О выхода, может быть определено как свойство типа O по типу T.Filter(T) может быть булевой (логической) функцией, которая может использоваться в качестве фильтра по элементам типа T. В частности, Filter(T) может быть правилом, которое возвращает тип Boolean как результат выполнения правила при обработке. Правило Filter(T), которое применяется к набору элементов, может фильтровать элементы, которые не удовлетворяют условию правила, посредством проверки значения для типа Boolean, возвращенного после выполнения Filter(T), для отдельного элемента в наборе. Элемент, который удовлетворяет условию правила Filter(T), может запрашивать примененное правило Filter(T) для возврата значения «True» («Истинно») для возвращенного типа Boolean.Подобным образом элемент, который не удовлетворяет условию примененного правила Filter(T), может запрашивать правило Filter(T) возвратить значение «False» («Ложь») для возвращенного типа Boolean. Правило Filter(T) может итерационно применяться к каждому элементу в наборе, чтобы получить поднаборы элементов, которые или удовлетворяют, или не удовлетворяют условию примененного правила Filter(T). Таким образом, могут быть созданы включающие или исключающие поднаборы. Включающий поднабор может иметь элементы, которые удовлетворяют условию примененного правила Filter(T) и которые запрашивают возвращенное булево (логическое) значение «Истинно», приводя к тем элементам, которые описаны как включающие. Исключающий поднабор может иметь элементы, которые не удовлетворяют условию примененного правила Filter(T) и которые запрашивают возвращенное булево значение «Ложь», приводя к тем элементам, которые описываются как исключающие. Любой поднабор может использоваться в дальнейшей обработке.Action(T) (действие) может быть создано как метод элемента типа T, причем этот метод может иметь некоторый побочный эффект, который создает результат. Как правило, Action(T) может использовать или требовать других параметров. Правило, имеющее входной тип T и выдающее замкнутое множество, может определять действие над элементами типа T. Set(T) является группировкой элементов типа T.Event(T) (событие) может использоваться для определения некоторого появления, представляющего интерес, и обычно ассоциируется с элементом данных, например данными события типа T. Event(T) может использоваться для определения простого события или может использоваться как стандартный блок для создания более сложного события, используя двоичную алгебраическую операцию. При объединении с Filter(T) Event(T) может использоваться для создания полученного (выведенного, Derived) Event(T). В алгебраических терминах:DerivedEvent(T) = Event(T) + Filter (T).Вообще, выведенное событие может быть создано, применяя фильтр к событию. Другие конструкции также могут быть сформированы, используя алгебраические принципы. Например, два фильтра по дополнительным типам элемента (например, два типа, которые оба являются подтипами одного и того же родительского типа) могут быть объединены следующим образом:Filter(T) = Filter1(T_subtype_1) объединение Filter2(T_subtype_2).Пакет может определять ориентированную на набор задачу, которая должна быть выполнена программным модулем. Семантика пакета может быть определена так, чтобы привести к выполнению некоторого, заранее определенного действия над каждым элементом в наборе. Как и с другими модулями, пакет может быть выполнен после ручной команды или после автоматического появления некоторого события. Пакет (Batch) может быть создан, объединяя набор с действием следующим образом:Batch = Set(T) + Action(T).Агент может определять некоторое действие, которое должно быть выполнено при появлении заранее определенного события, где заранее определенное событие может служить как инициатор, который может активизировать выполнение агента и исполнение действия, связанного с агентом. В алгебраических терминах:Agent = Event(T) + Action(T).Правила могут быть созданы, используя ряд условий, которые могут быть связаны некоторым логическим способом. Для каждого правила условия могут быть составлены рядом способов. Например, элементы, имеющие заданное свойство, могут быть описаны, используя:<Свойство> < оператор сравнения > <выражение>< Существующий фильтр >ANY/EVERY <назначение отношения> MATCHES <фильтр>(ЛЮБОЙ/КАЖДЫЙ <назначение отношения> СОВПАДАЕТ <фильтр>)ANY/EVERY <назначение отношения> IN < набор >(ЛЮБОЙ/КАЖДЫЙ <назначение отношения> В < набор >).Другие условия также возможны и могут использоваться для составления правила.Отдельные логические компоненты EUP могут быть оценены внутри приложения. Такие оценки могут быть выполнены в качестве фоновых задач и поэтому могут быть невидимыми для пользователя. Дополнительно или альтернативно эти задачи могут быть явно выполнены, подчиняясь команде, введенной пользователем. Вообще, несколько типов программ могут использоваться в качестве основной группы программ. Например, основной тип, такой как производный набор, может быть полностью программой конечного пользователя. Когда производный набор активизируется или выполняется, могут быть выполнены команды, связанные с логикой определения набора, и отображены результаты этого выполнения. Дополнительно производные наборы могут использоваться в алгебраических операциях. Например, два производных набора могут быть объединены следующим образом:Set(T) = Set1(T) Объединение Set2(T).В качестве другого примера агенты могут быть созданы для исполнения заданных действий при появлении заранее определенных событий. Как определено выше, Агент является событием Event(T), объединенным с действием Action(T). При появлении части события агента могут быть выполнены этапы обработки части действия агента. Таким образом, выполнение агента может быть запущено без какого-либо вмешательства конечного пользователя.К алгебре EUP можно обращаться через интерфейс прикладных программ (API), который может обеспечивать средства для доступа к типам и операциям объекта, предписанным алгеброй правил. Дополнительно API может предоставлять группу заранее определенных компонентов, таких как заранее сконструированные логические компоненты EUP, которые могут быть доступны непосредственно в качестве альтернативы к конструированию таких компонентов из базовых терминов.Фиг.3 изображает схематическую диаграмму иерархии 300 типов правил. Схема иерархии 300 типов правил может использоваться для организации типов в один или более функционирующих компонентов, таких как события, правила или программы конечного пользователя, как описано здесь. Дополнительно или альтернативно некоторый другой компонент или вариант одного или более этих описанных компонентов может быть создан согласно подробностям конкретного варианта выполнения. Созданные событие, правило или программа конечного пользователя могут использоваться по одиночке или в комбинации, по необходимости, чтобы выполнять некоторую задачу по обработке данных в зависимости от подробностей компонентов, которые собраны или определены конечным пользователем. В примере, представленном на этой фиг.3, событие может быть событием правила, например событием 320 правила, которое может запускать выполнение исполняемого компонента. Правило может быть логикой правила, например логикой 330 правила, которая может определять логику, которую нужно применить к вычислительному сценарию. Программа правила, например программа 340 правила, может быть программой конечного пользователя или другим выполнимым компонентом. В этом конкретном примере каждое из события 320 правила, логики 330 правила и программы 340 правила может быть связано с одним или более подкомпонентами. Соответственно, каждый из этих подкомпонентов может, например, быть простым типом элемента, например событием, или может вместо этого быть созданным конечным пользователем или сложным типом, например производным набором.Компонент 320 события правила может быть базовым типом для всех типов событий, используемых агентами платформы правил, созданными конечными пользователями, и может быть концептуально абстрактным и служить для обеспечения общего типа, на который может ссылаться каждый агент. Агент может ссылаться к экземпляру компонента события правила, например компонента 320 события правила, который может уведомлять агента, когда выполнять или запускать такое выполнение. Компонент 320 события правила может, например, являться или быть связанным с основным событием, например базовым 322 событием или производным (выведенным) событием, например фильтрованным событием 324. В одном примере базовое событие 322 может быть выведено из компонента 320 события правила. Тип базового события, например базового события 322, может действовать как перехватчик прерываний для приложения, чтобы подать входной элемент к системе правил, чтобы представить запуск логического события. Например, базовое событие может представлять такие события, как элемент, добавляемый в хранилище данных, или элемент хранилища данных, помимо прочего. Подача входного элемента посредством элемента события может сообщать факт, что событие произошло, и начинать процесс, который может приводить к запуску другого события.Фильтрованное событие 324 может также быть выведено (произведено) из компонента 320 события правила. Фильтрованное событие 324 может включать в себя ссылку на другое событие правила и ссылку на экземпляр типа для логики фильтра для использования с целью фильтрования запуска события. Фильтрованное событие 324 может запускаться на основании запуска его исходного компонента события правила, например компонента 320 события правила. После запуска исходного события (события-источника) фильтрованное событие 324 может принимать входной элемент, по которому событие-источник было запущено, и оценивать экземпляр его компонента логики фильтра по входному элементу. Фильтрованное событие 324 будет запущено, если и только если логика фильтра выдает оценку «Истина». В этом примере фильтрованное событие, например фильтрованное событие 324, не может возникнуть непосредственно, используя обращение к функции API, а скорее может возникнуть, только когда запущено его событие-источник, и его логика фильтра выдает оценку «Истина» для входного элемента, по которому запущено событие-источник.Компонент 330 логики правил может быть описан в качестве правила в том смысле, что компонент логики правил может иметь определенные этапы обработки, которые могут привести одну или более вычислительных задач к выполнению компонентом, который использует или иначе связан с компонентом 330 логики правил. Компонент 330 логики правил может являться или быть связан с логикой 332 фильтра, логикой 334 свойств, логикой 336 действий и логикой 338 ассоциаций. Логика 332 фильтра, логика 334 свойств, логика 336 действий и логика 338 ассоциаций могут использоваться для создания логики правил. Логика 332 фильтра может определять логику правил, которая фильтрует заданный экземпляр элемента входного типа. Выходной тип для логики 332 фильтра может быть булевым значением или пустым (null) значением. Логика 334 свойств может также определять правило. Определенное правило может вычислять значение заданного типа, когда задан конкретный экземпляр элемента, и поэтому может выступать как вычисленное свойство. Чтобы поддерживать эту концепцию, выходной тип логики 334 свойств может быть представлен как тип свойства.Логика 336 действий может определять правило, которое может генерировать последовательность действий для выполнения, когда задан конкретный экземпляр элемента указанного (специфицированного) входного типа. Выход логики 336 действий может быть объектом, который является перечислимым и который кодирует последовательность действий, которые должны быть выполнены. Логика 338 ассоциаций может быть выведена из определения правила и может определять правило, которое может генерировать набор элементов заданного целевого типа, когда задан конкретный экземпляр элемента типа источника. Выход логики 338 ассоциаций может быть экземпляром перечислимого элемента, который составляет набор элементов.Один класс терминов, описанных этой примерной алгеброй правил, включает в себя выполняемые компоненты. Эти выполняемые компоненты сами не включают в себя логические инструкции, а скорее являются программами-оболочками, которые могут создаваться конечным пользователем и служить для связывания вместе определения логики правил с входными коллекциями. Одним выполняемым компонентом может быть программа 340 правил. Эта программа 340 правил может формировать общий базовый тип для типов программы конечного пользователя. Главная функция программы 340 правил может заключаться в том, чтобы все экземпляры типов программы конечного пользователя, такие как пакеты и агенты, можно было продолжать хранить, их можно было извлечь и можно было отфильтровать на основании такого общего входного типа.Программа 340 правил может являться или быть связанной с другими компонентами, такими как запрос 342, агент 344 и пакет 346. Запрос 342 может представлять вычисленный результирующий набор элементов, которые могут быть оценены в соответствии со стриктурами (границами) запроса. Агент 344 может представлять действие или действия, которые должны быть выполнены после запуска события или появления некоторого события. Пакет 346 может представлять действие или действия, которые должны быть выполнены над коллекцией элементов. Конечный пользователь может комбинировать эти компоненты множеством способов для создания выполняемой программы правил.Фиг.4 схематично представляет блок-схему системы 400 программирования (для) конечного пользователя, которая включает в себя интегрированную файловую систему. Система 400 программирования конечного пользователя может выводить поддержку для своих функций программирования из специфических особенностей (свойств) этой лежащей в основе файловой системы. В частности, интеграция системы EUP с подходящей лежащей в основе файловой системой может обеспечивать основание, на котором каждый аспект вычислительной системы может быть сделан программируемым, с которым взаимодействует конечный пользователь.Система 400 программирования конечного пользователя включает в себя интерфейс 410 пользователя, который может быть любым подходящим интерфейсом пользователя, таким как графический пользовательский интерфейс, основанным на Web интерфейсом, основанным на тексте интерфейсом или интерфейсом командной строки, помимо прочих. Интерфейс 410 пользователя подсоединен к уровню 420 правил и модулю 430 программирования для конечного пользователя. Уровень 420 правил может включать в себя все заранее определенные компоненты системы EUP, включая созданные конечным пользователем агенты, пакеты и другие компоненты.Модуль 430 программирования (для) конечного пользователя обеспечивает механизм, посредством которого конечный пользователь может определять компоненты, такие как агенты. Модуль 430 программирования конечного пользователя наряду с интерфейсом 420 пользователя может обеспечивать многие, если не все, функциональные возможности, которые интегрированная среда разработки может предоставить разработчику традиционных программ. Такие функции могут включать в себя способность повторно использовать компоненты, обновлять компоненты, формировать компоненты с помощью инструмента перетаскивания (drug-and-drop) графических «штучек» или посредством действий по сценарию, помимо других подходов.Уровень 440 файловой системы может обеспечивать концептуальное представление того, как элементы данных сохранены на некоторой физической среде, такой как жесткий диск или оптический диск, помимо других. В этом конкретном примере представлена файловая система, которая выглядит тяжело на концепциях объектно-ориентированной структуры. Более конкретно, уровень 440 файловой системы может обеспечивать инфраструктуру, в которой элементы могут быть сохранены как часть полного выражения, причем к выражению можно обращаться через API и оценивать его, чтобы сформировать некоторый требуемый результат. Уровень 440 файловой системы может также включать в себя набор встроенных типов, которые могут использоваться только для целей устойчивости и которые не используются как параметры или результаты методов.Уровень 440 файловой системы может включать в себя группу логических операторов, таких как «не», «и» и «или». Дополнительно уровень 440 файловой системы может обеспечивать робастные конструкции программирования, такие как условные операторы, арифметические операторы, операторы соединения частей, даты, времени и строковые операторы, и явное или неявное преобразование типов, помимо прочего. Также обеспечиваются методы и возможности для вызова таких методов. Например, к различным конструкторам, деструкторам, средствам доступа к значению и механизмам установки значения можно обращаться через API.Среди функций поддержки, которые уровень 440 файловой системы может обеспечивать, имеются функции инфраструктуры для управления, наименования, совместного использования, сохранения, синхронизации и поиска данных. Уровень 440 файловой системы может обеспечивать все эти возможности для уровня 420 правил и модуля 430 программирования конечного пользователя, так чтобы конечный пользователь мог осуществлять доступ ко всем возможностям, которые файловая система 440 может предлагать в качестве части построения программы конечного пользователя. В представленных примерах схема правил должна соответствовать системе типов, поддерживаемой файловой системой. Также полная поверхность API для концепций программирования конечного пользователя следует стандартным моделям интерфейсов API файловой системы. Одним из побочных эффектов этих выборов структуры является то, что общие (родовые) приложения интерфейса пользователя, которые работают с элементами файловой системы, должны также работать с элементами программ конечного пользователя.Логически могут существовать два уровня схем в уровне 440 файловой системы. На первом уровне может существовать схема для кода разработчика. Эта схема кода разработчика может определять типы элементов и поведенческие аспекты этих элементов. Используя этот уровень схемы, разработчики совместно используют абстракции данных с общей структурой ссылки. На втором уровне может существовать схема для логики конечного пользователя. Этот уровень логики конечного пользователя может использоваться для обеспечения инфраструктуры для правил конечного пользователя.Системы типов как конечных пользователей, так и файловой системы 440 также могут быть тесно согласованы. В частности, в этом примере иерархия типов для типов конечного пользователя может быть упрощением иерархии типов для типов файловой системы. Некоторые типы в иерархии файловой системы могут потенциально быть опущены, потому что они являются нерелевантными для конечных пользователей. Дополнительно отображение (соответствие) или связывание могут быть созданы от каждого типа конечного пользователя к типу лежащей в основе файловой системы. Отображения или связывания могут использоваться, чтобы устранить разрыв между уровнем конечных пользователей и уровнем файловой системы. Связывания могут служить множеству целей, включая способность локализовать имена элементов схемы конечного пользователя. В частности, в этом примере связывание может быть правилом. В тривиальном примерном случае связывание может быть правилом с единственным высказыванием, чье условие всегда является истинным и чей результат является конкретным лежащим в основе свойством в отношении типа разработчика.Связывания могут также обеспечивать уровень косвенности между схемой уровня разработчика и схемой уровня конечного пользователя. Различные политики управления доступом могут применяться здесь в зависимости от конкретного выполнения. Например, разработчикам файловой системы может быть разрешено определить, какие свойства типов, которые создают разработчики, должны быть доступны для конечных пользователей. Альтернативно, конечным пользователям может быть дана возможность решить, к каким свойствам созданных разработчиком типов желает обратиться конечный пользователь. Также возможна некая комбинация этих двух подходов.Фиг.5 изображает схематичную блок-схему системы 500 программирования конечного пользователя, которая включает в себя интегрированную файловую систему. Система 500 программирования конечного пользователя может использоваться для настройки приложений, которые могут работать в пространстве, управляемом или принадлежащем конечному пользователю. Дополнительно или альтернативно система 500 программирования конечного пользователя может использоваться для создания компонентов, которые модифицируют поведение приложений, которые работают в других пространствах, таких как системные процессы или демоны (скрытые для пользователя служебные программы), помимо прочих.Система 500 программирования конечного пользователя включает в себя интерфейс 510 пользователя, который может быть любым подходящим интерфейсом пользователя, например графическим интерфейсом пользователя, основанным на Web интерфейсом, основанным на тексте интерфейсом или интерфейсом командной строки, помимо прочего. Также возможны специализированные интерфейсы, типа интерфейсов Брайля для слепых, и звуковые интерфейсы, помимо прочих. Интерфейс 510 пользователя подсоединен к уровню 520 приложений, который может включать в себя такие управляемые конечным пользователем приложения, как, например, клиенты электронной почты, текстовые процессоры, программы электронных таблиц и браузеры сети, помимо прочих. Дополнительно или альтернативно уровень 520 приложений может включать в себя так называемые системные процессы, которые предоставляют услуги другим выполняющимся компьютерным программам, программам просмотра системы доменных имен (DNS) и сетевых возможностей, помимо прочих.Уровень 530 правил подсоединен к уровню 520 приложений. Уровень 530 правил обеспечивает компоненты программирования для конечного пользователя и поддержку для уровня 520 приложений и может быть осуществлен таким же образом, как уровень 420 правил на фиг.4. Также модуль 540 программирования конечного пользователя подсоединен как к уровню 530 правил, так и к интерфейсу 540 пользователя. Модуль 540 программирования конечного пользователя может обеспечивать доступ к уровню 530 правил и возможность создать новые правила, почти как модуль 430 программирования конечного пользователя на фиг.4.Файловая система 550 может обеспечивать инфраструктуру хранения, к которой правила уровня 530 правил и другие программы конечного пользователя, которые могут быть созданы модулем 540 программирования конечного пользователя, могут обращаться или иначе использоваться уровнем 520 приложений. Любая подходящая файловая система может быть использована или адаптирована для использования в этом контексте. Файловая система, которая имеет API, который может быть интегрирован или отображен на API для функций программирования конечного пользователя, является особенно подходящей для этого использования.Во время работы конечный пользователь может взаимодействовать с системой 500 программирования конечного пользователя через интерфейс 510 пользователя. Конечный пользователь может использовать модуль 540 программирования конечного пользователя для создания правил, агентов или пакетов, помимо прочего, которые могут быть добавлены к уровню 530 правил. Конечный пользователь может также обращаться к приложениям уровня 520 приложений через интерфейс 510 пользователя.Когда событие или некоторый другой запускающий объект вынуждают правило активизироваться, сообщения могут быть переданы между уровнем 520 приложений и уровнем 530 правил. В зависимости от специфики активизации правила эти сообщения могут быть синхронными или асинхронными. Какое бы из правила или правил не были активизированы, они могут затем выполняться в соответствии с их структурой и осуществлять любые модификации, которые являются подходящими на уровне 550 файловой системы, используя отображенные или связанные части API файловой системы.Фиг.6 изображает схематичную блок-схему системы 600 программирования конечного пользователя, которая может использоваться для создания определенных конечным пользователем программных модулей, которые управляют электронной информацией, сохраненной в файловой системе. Эти программные модули могут автоматически применять правила, созданные конечным пользователем, для управления информацией, сохраненной в файловой системе, в соответствии с конкретными инструкциями от конечного пользователя. Такие инструкции могут включать в себя применение фильтров к информации группы или исполнение конкретных задач управления информацией, таких как организационные задачи, при появлении некоторого, заранее определенного события.Система 600 программирования конечного пользователя включает в себя модуль 610 программирования конечного пользователя, который может обеспечивать доступ к функциям поддержки программирования конечного пользователя, таким как создание или модификация правила и определение события. Модуль 610 программирования конечного пользователя, в частности, может быть осуществлен как любой из модулей программирования конечного пользователя, описанных выше со ссылками на другие чертежи. Программы конечного пользователя, созданные с использованием модуля 610 программирования конечного пользователя, могут выполняться автоматически, как с управляемой событиями программой, или могут быть вызваны конкретной командой от конечного пользователя.Человеко-машинный интерфейс 620 может обеспечивать доступ к функциям и свойствам модуля 610 программирования конечного пользователя. Множество компонентов могут использоваться для реализации человеко-машинного интерфейса 620 в зависимости от конкретных потребностей выполнения и желаний. Например, человеко-машинный интерфейс 620 может быть осуществлен как графический пользовательский интерфейс, например графический пользовательский интерфейс операционной системы. Альтернативно человеко-машинный интерфейс 620 может быть основан на web-браузере, может быть основанным на тексте интерфейсом, например на основе командной строки, может быть интерфейсом, основанным на восприятии по Брайлю, или может быть интерфейсом, основанным на речи, помимо прочих.Платформа 630 правил может включать в себя определенные конечным пользователем программы, созданные с использованием модуля 610 программирования конечного пользователя. Дополнительно стандартные блоки-компоненты, которые могут использоваться для создания программ конечного пользователя, могут быть включены в платформу 630 правил. Модуль 610 программирования конечного пользователя и человеко-машинный интерфейс 620 оба могут обращаться к платформе 630 правил, чтобы разрешить конечному пользователю создавать, изменять, удалять и вызывать выполнение программ конечного пользователя в платформе 630 правил.Платформа 630 правил подсоединена к файловой системе 640. Файловая система 640 может быть реализована как любая соответствующая файловая система, которая может поддерживать задачи организации и извлечения данных. В частности, файловая система 640, наряду с API, который обеспечивает доступ к функциям файловой системы 640, может быть совмещена с API платформы 630 правил, так чтобы функции платформы 630 правил могли быть отображены или связаны с функциями файловой системы 640. Интеграция платформы 630 правил с файловой системой 640, таким образом, эффективно предоставляет (открывает) функции файловой системы 640 конечному пользователю так, чтобы конечный пользователь мог использовать функции файловой системы для различных вычислительных задач, включающих в себя организацию информации и автоматизированные задачи обработки, помимо прочих. Доступ к функциям файловой системы 640 конечным пользователем осуществляется через платформу 630 правил, обеспечивая уровень защиты для файловой системы 640 от случайных или злонамеренных действий, которые могут разрушить или иначе повредить файловую систему. Например, конкретная функция, например перемещение файла из одного физического местоположения на запоминающем устройстве в другое местоположение без изменения логического расположения файла, может остаться не отображенной или не связанной с функцией модуля 610 программирования конечного пользователя или платформы 630 правил, предотвращая доступ конечного пользователя к этой функции.Файловая система 640 может накладывать логическую схему организации файла на одно или более запоминающих устройств 650, 660, 670 постоянного хранения (ЗУПХ, PS). Эти запоминающие устройства 650, 660, 670 постоянного хранения могут быть накопителями на жестком диске, на оптических дисках, устройствами на флэш-памяти или другими соответствующими запоминающими устройствами и могут работать независимо как отдельные диски, каждый из которых использует файловую систему. Дополнительно или альтернативно запоминающие устройства 650, 660, 670 постоянного хранения могут быть логическими разделами на одном или более физических накопителях на дисках. В этой конфигурации конечный пользователь может быть оповещен о факте, что имеются множество дисков или разделов, обеспечивающих пространство хранения. Запоминающие устройства 650, 660, 670 постоянного хранения могут также быть интегрированы как часть единственного логического тома хранения, как в массиве независимых дисковых накопителей с избыточностью (RAID). При конфигурировании в виде массива RAID к запоминающим устройствам 650, 660, 670 постоянного хранения можно обращаться как к единственному объекту, используя единственную файловую систему. Также запоминающие устройства 650, 660, 670 постоянного хранения могут быть частью архитектуры «сервер-хранилище данных» (SAN) или некоторой другой системы хранения.Во время работы система 600 программирования конечного пользователя может функционировать следующим образом. Конечный пользователь может обращаться к модулю 610 программирования конечного пользователя через человеко-машинный интерфейс 620 для создания программы конечного пользователя. Программа конечного пользователя постоянно находится на платформе 630 правил до тех пор, пока выполнение не будет вызвано командой от конечного пользователя или при появлении конкретного или заранее определенного события. Платформа 630 правил посылает сообщение файловой системе 640, которое требует, чтобы файловая система 640 исполнила некоторую задачу манипулирования информацией в отношении запоминающих устройств 650, 660, 670 постоянного хранения. После успешного завершения или неудачи запрошенной задачи и синхронно со средой передачи сообщений файловая система 640 посылает сообщение платформе 630 правил, чтобы сообщить программе конечного пользователя относительно результата запрошенной задачи. Альтернативно, как и с асинхронной системой передачи сообщений, файловая система 640 может исполнять или пытаться исполнять запрошенную задачу без посылки ответного сообщения платформе 630 правил. Информация о запрошенном действии отображается на человеко-машинном интерфейсе 620 для просмотра конечным пользователем.Фиг.7 схематично изображает блок-схему сетевой системы 700 программирования конечного пользователя, которая может использоваться для создания определенных конечным пользователем программных модулей, которые управляют электронной информацией, сохраненной на удаленной файловой системе, причем к информации можно обращаться по сети. Сетевые программные модули конечного пользователя могут автоматически применять правила, созданные конечным пользователем, чтобы осуществлять доступ к или управлять информацией, сохраненной на удаленной файловой системе. Сетевая система 700 программирования конечного пользователя включает в себя модуль 710 программирования конечного пользователя, который может обеспечивать доступ к функциям поддержки программирования для конечного пользователя, таким как создание правил, модификация и определение правил или идентификация запускающих событий. Модуль 710 программирования конечного пользователя, в частности, может быть осуществлен как любой из модулей программирования конечного пользователя, описанных выше со ссылками на другие чертежи. Совместно с такой реализацией программы конечного пользователя, созданные с использованием модуля 710 программирования конечного пользователя, могут выполняться автоматически, как при запускаемой событиями программе, или могут быть вызваны конкретной командой от конечного пользователя.Платформа 720 правил может включать в себя определенные конечным пользователем программы, созданные с использованием модуля 710 программирования конечного пользователя. Дополнительно компоненты стандартных блоков, которые могут использоваться для создания программ конечного пользователя, могут быть включены в платформу 720 правил. Модуль 710 программирования конечного пользователя и пользовательский интерфейс 730 могут оба обращаться к платформе 720 правил, чтобы позволить конечному пользователю создавать, модифицировать, удалять и вызывать выполнение программ конечного пользователя в платформе 720 правил. Платформа 720 правил может также обеспечивать сетевые или другие функции связи, например передачу сообщений, между программами конечного пользователя или другими компонентами платформы 720 правил и файловой системой 740. Чтобы это осуществить, платформа правил может использовать сеть 750. Сеть 750 может быть любой подходящей проводной или беспроводной сетью, может быть локальной сетью (LAN), глобальной сетью (WAN), интранет или Интернет, помимо прочих. В соответствии с этим вариантом выполнения платформа 720 правил может включать в себя сетевые компоненты, например стеки связи, подобные стеку протоколов управления передачей/протокол Интернет (TCP/IP), помимо прочих. Альтернативно платформа 720 правил может просто иметь доступ к таким функциям, предоставляемым другим компонентом, например операционной системой или сетевым приложением.Файловая система 740 может наложить организационную иерархию на удаленное запоминающее устройство 760. Удаленное запоминающее устройство может быть запоминающим устройством постоянного хранения, таким как дисковый накопитель, или постоянным запоминающим устройством любого другого типа, в частности, включая в себя типы, раскрытые и описанные со ссылками на другие чертежи. Дополнительно или альтернативно удаленное запоминающее устройство может быть базой данных или хранилищем данных другого типа, которое может обеспечивать доступ и особенности манипулирования способом, подобным таковому в файловой системе.Во время работы сетевая система 700 программирования (для) конечного пользователя может функционировать следующим образом. Конечный пользователь может обращаться к модулю 710 программирования конечного пользователя через пользовательский интерфейс 730, чтобы создать одну или более программ конечного пользователя. Эти программы конечного пользователя постоянно находятся на платформе 720 правил, пока выполнение не будет вызвано командой от конечного пользователя или до появления специфического или заранее определенного события. Платформа 720 правил использует сеть 750 для передачи сообщения к файловой системе 740, запрашивающего файловую систему 740 исполнить некоторую относящуюся к информации задачу в связи с удаленным запоминающим устройством 760. После успешного завершения или отказа запрошенной задачи файловая система 740 использует сеть 750 для передачи сообщения к платформе 720 правил, чтобы проинформировать программу конечного пользователя относительно результата запрошенной задачи. Информация о результате отображается на пользовательском интерфейсе 730 для просмотра конечным пользователем.Со ссылками на фиг.8-9 представлены последовательности операций в соответствии с различными способами или процедурами. Хотя, с целью простоты объяснения, одна или более методологий описанных здесь, например, в форме последовательности операций показывается и описывается как ряд действий, должно быть понятно, что ни проиллюстрированные и описанные способы и процедуры, ни любые компоненты, с которыми такие способы или процедуры могут использоваться, не обязательно ограничены этим порядком действий, так что некоторые действия могут происходить в отличном порядке и/или одновременно с другими действиями от тех, что показаны и описаны здесь. Например, специалисту понятно, что методология может быть альтернативно представлена как ряд взаимодействующих состояний или событий, например в виде диаграммы состояний. Кроме того, не все проиллюстрированные действия могут требоваться, чтобы осуществить методологию или процедуру.Фиг.8 изображает блок-схему процесса 800, который может использоваться вместе с компонентами, которые были раскрыты или описаны выше со ссылками на другие чертежи. Выполнение процесса 800 начинается в блоке (на этапе) 810 START (Начало) и переходит к этапу обработки, где к интерфейсу EUP обращается конечный пользователь. Конечный пользователь затем выбирает запускающее событие на этапе 810 процесса. Например, запускающим событием может быть прием сообщения электронной почты, создание документа или некоторое другое событие. На этапе 840 процесса определяется набор действий, которые могут включать в себя множество действий, единственное действие или не содержать никакого действия. Эти действия могут быть такими как перемещение файла в заданное местоположение, автоматический ответ на сообщение электронной почты или преобразование файла из одного формата в другой, помимо прочих. Этот набор действий связывается с событием на этапе 850 процесса. База правил обновляется новым связыванием на этапе 860 процесса. Обработка заканчивается на этапе END (конец) 870.Фиг.9 изображает блок-схему процесса 900, который может использоваться вместе с компонентами, которые были раскрыты или описаны выше со ссылками на другие чертежи. Обработка начинается на этапе 905 START и переходит к этапу 910 процесса, где вычислительная платформа запускает событие. На этапе 915 процесса компонент EUP обнаруживает событие. Обработка продолжается на этапе 920 процесса, где EUP обращается к хранилищу данных правил. На этапе 925 принятия решения определяется, существует ли связывание правила для обнаруженного события. Если да, обработка продолжается на этапе 930 процесса, где получают действия, определенные конечным пользователем. На этапе 935 процесса инициализируют или активизируют процессы, чтобы исполнить действия, определенные конечным пользователем. Сообщения о завершении получают от этих процессов на этапе 940 процесса.На этапе 945 принятия решения выполняют определение, завершились ли все процессы успешно. Если да, общий индикатор успешного завершения создают на этапе 955. Если нет, общее сообщение об ошибке создают на этапе 950 процесса. Обработка завершается и от этапа 950 процесса, и от этапа 955 процесса на этапе 960 END (Конец). Аналогично, если на этапе 925 принятия решения определено «нет», обработка заканчивается на этапе 960 END.Фиг.10 изображает блок-схему цикла 1000 жизни информации. Цикл жизни информации может вообще описывать существование элемента данных в вычислительной системе. Такое существование может начинаться, когда пользователь сначала создает или получает конкретный элемент данных, и завершается, когда пользователь удаляет элемент или иным образом отвергает данные. Цикл 1000 жизни информации включает в себя фазу 1010 организации, которая представляет момент, когда конечный пользователь создал или получил элемент информации и желает, чтобы этот элемент информации сохранялся и оставался ему доступным. Существуют, по меньшей мере, два способа, которые могут использоваться для организации данных. В первом способе свойствам элемента могут быть назначены значения. Например, элементу можно давать имя или некоторое другое описание, которое может быть сохранено как метаданные или атрибут, помимо прочего. Во втором способе могут быть назначены отношения элемента. Назначение отношений может помочь в определении местоположения элементов посредством ручной навигации или посредством поиска. В частности, некоторые отношения могут быть связаны со специальной семантикой организации в приложениях. Например, отношение включения для папки может быть общим иерархическим способом для организации информации согласно общей теме.Свойствам и отношениям могут быть назначены значения, по меньшей мере, двумя различными способами. Фактические значения могут быть осуществлены и поддерживаться с данными элемента. Дополнительно или альтернативно значения могут быть вычислены из других данных по запросу. В этом случае определение вычисления, которое должно быть выполнено для получения данных, может быть сохранено как метаданные. Вычисленные механизмы для организации данных являются подходящими, когда правила для организации данных являются хорошо определенными, легко выразимыми и полностью основанными на доступной информации. Вычисленные механизмы также хорошо масштабируются, чтобы иметь дело с большими объемами данных. Осуществленные (материализованные) механизмы являются подходящими, когда логика организации данных не может легко быть выражена или основана на информации, которая не может быть легко захвачена (получена), например, такой как контент или контекстная информация. Программы конечного пользователя могут определять вычисленные свойства и отношения. Такие программы могут также использоваться, чтобы автоматически поддерживать материализованные свойства и отношения.Фаза 1020 хранения может указывать, что пользователь сохраняет элемент информации в формате постоянного хранения, к которому можно обращаться позже. Форматы постоянного хранения, которые могут быть использованы, включают в себя файлы и объекты, помимо прочего. Подробности таких форматов постоянного хранения могут измениться согласно конкретным особенностям файловой системы, в которой сохранен формат постоянного хранения. Например, и накопитель на жестком диске, и оптический диск могут использоваться как запоминающие устройства постоянного хранения. Однако форматы файловой системы для накопителя на жестком диске очень отличаются от форматов файловой системы, таких как ISO 9660, которые могут использоваться на оптических дисках.Фаза 1030 нахождения может указывать период, когда конечный пользователь желает извлечь информацию, сохраненную в некотором формате постоянного хранения. Термин «нахождение» может включать в себя любое действие, которое может заставить элемент быть идентифицированным как доступный для конечного пользователя для воздействия на него. Имеются, по меньшей мере, три способа, которыми конечный пользователь может находить данные. В первом конечный пользователь может просматривать или осуществлять навигацию к данным. Таким образом, конечный пользователь начинает работу в некоторой стартовой точке, такой как домашний или опорный каталог. Отношения между или среди элементов данных могут обеспечивать пути для просмотра или прохождения элементов в памяти данных. Одним из конкретных примеров является навигация по иерархическому дереву каталогов.Во втором подходе конечный пользователь может выполнить запрос. Запрос, определенный конечным пользователем, может описывать поднабор элементов в хранилище данных, которые могут соответствовать некоторому декларативному описанию. Используя третий подход, событие может использоваться конечным пользователем для нахождения элемента. Событие этого типа может использоваться, чтобы привлечь внимание к некоторому конкретному элементу. Например, добавление файла к каталогу может быть событием, которое привлекает внимание к добавленному файлу.Каждый из этих подходов имеет сильные и слабые стороны. Основанные на запросе механизмы могут использоваться, когда логика, используемая для нахождения элементов, является хорошо определенной (четкой) и легко выраженной в терминах концепций, моделированных в хранилище данных. Выполнение запросов может быть масштабируемым и эффективным, однако выполнение запроса может также быть в вычислительном отношении затратным, даже когда используется относительно эффективный механизм запроса. Навигационные механизмы могут быть использованы для обеспечения гибкости, но требуют большего участия пользователя, чем запросы. Дополнительно навигационные механизмы не обязательно масштабируют так же, как это делают механизмы запроса, чтобы иметь дело с большими наборами данных.Запускаемые событиями механизмы являются подходящими для случаев, когда цель состоит в том, чтобы найти соответствующие данные в соответствующий момент времени без непосредственного участия пользователя. Существуют, по меньшей мере, два основных вида событий. Первый — событие приложения может быть вызвано выполнением конкретного приложения или набора приложений. Второй — событие изменения данных может быть вызвано любым действием, которое изменяет данные независимо от приложения, которое вызвало изменение в данных. Событие изменения данных может быть вызвано системой управления данными. Конкретные типы событий могут быть вызваны или синхронно или асинхронно. Для синхронных событий приложение или система ожидает ответ на событие перед продолжением. Для асинхронных событий никакой такой ответ не необходим прежде, чем вызвавшее (событие) приложение может продолжать обрабатывать свои задачи.Фаза 1040 использования может указывать, что конечный пользователь нашел и извлек данные и готов их использовать или иначе действовать в отношении данных. Основные действия над элементами можно обеспечивать приложениями, которые представляют (открывают) элементы конечному пользователю. Некоторые действия могут быть присущи типу элемента. Например, действие может быть использовано, чтобы установить свойство элемента. Другие действия могут быть присущи приложению, которое может использовать этот элемент. Примером является действие для отображения текста элемента сообщения в конкретном цвете.Вычисленные действия могут быть сконструированы из других действий, используя, по меньшей мере, один из следующих механизмов. Первый — могут использоваться действия над отношениями. В этой схеме может быть определено действие над элементом, чтобы включить в себя действия над адресатами или отношениями этих элементов. Например, когда отношения используются для определения набора элементов, например группы папок, вычисленные действия могут задавать однородные действия над всеми членами набора. Этот процесс может быть назван как пакет. Могут также использоваться условные действия. Существующие действия могут быть объединены с условной логикой, чтобы определить условное вычисленное действие. Например, если документ отмечен как конфиденциальный, может быть установлен флаг приоритета, чтобы указать высокий приоритет. Если документ не отмечен как конфиденциальный, флаг приоритета может быть установлен, чтобы указать, что документ имеет обычный приоритет. Дополнительно последовательность действий может быть создана так, что множество действий помещают в список, который должен быть выполнен последовательно. Например, может использоваться последовательность действий, чтобы напечатать документ и затем удалить документ. Действия, такие как эти, могут иметь побочные эффекты, которые могут создать ситуации, в которых порядок действий должен быть детерминированным, чтобы быть чувствительным к конкретному поведению.Чтобы обеспечивать дополнительный контекст для осуществления различных аспектов настоящего изобретения, фиг.11-12 и нижеследующее обсуждение предназначены для обеспечения краткого общего описания подходящей вычислительной среды, в которой могут быть осуществлены различные аспекты настоящего изобретения. В то время как изобретение описано выше, в общем контексте выполняемых компьютером команд компьютерной программы, которая выполняется на локальном компьютере и/или удаленном компьютере, специалистам очевидно, что изобретение также может быть осуществлено в комбинации с другими программными модулями. Обычно программные модули включают в себя подпрограммы, программы, компоненты, структуры данных и т.д., которые выполняют конкретные задачи и/или реализуют конкретные абстрактные типы данных.Специалистам очевидно, что способы согласно изобретению могут быть осуществлены на других конфигурациях компьютерной системы, включая однопроцессорные или многопроцессорные компьютерные системы, мини-компьютеры, универсальные компьютеры, также как персональные компьютеры, карманные вычислительные устройства, основанную на микропроцессорах, и/или программируемую бытовую электронику и т.п., каждая из которых может оперативно связываться с одним или более связанными устройствами. Проиллюстрированные аспекты изобретения могут быть также осуществлены в распределенных вычислительных средах, где некоторые задачи выполняются удаленными устройствами обработки, которые связаны через систему связи. Однако некоторые, если не все, аспекты изобретения могут быть осуществлены на автономных компьютерах. В распределенной вычислительной среде программные модули могут быть расположены на локальных и/или удаленных запоминающих устройствах хранения.Кроме того, раскрытые и описанные выше компоненты или процессы могут быть осуществлены как способ, устройство или продукт производства с использованием стандартных программных и/или технических способов для создания программного обеспечения, программно-аппаратного оборудования, аппаратных средств или любой их комбинации для управления компьютером, чтобы осуществить раскрытые и описанные компоненты или процессы. Термин «продукт изготовления», используемый здесь, предназначен для обозначения компьютерной программы, доступной из любого считываемого компьютером устройства, носителя или среды. Например, считываемые компьютером носители могут включать в себя, но не ограничиваться ими, магнитные запоминающие устройства, например жесткий диск, гибкий диск, и магнитные ленты, помимо прочего, оптические диски типа компакт-дисков (CD) и цифровые универсальные диски (DVD), помимо прочего, интеллектуальные карточки и устройства флэш-памяти, такие как платы, карты и ключевые «диски», помимо прочих. Дополнительно должно быть понятно, что может использоваться сигнал несущей, чтобы передавать считываемые компьютером электронные данные, такие как те, что использованы при передаче и получении электронной почты или при доступе к сети, такой как Интернет или локальная сеть (LAN). Конечно, специалисту понятно, что множество незначительных модификаций могут быть сделаны к этой конфигурации.Следует также заметить, что, хотя конкретные представленные примеры могут описывать или изображать системы или способ, которые основаны на поиске содержания файловых систем на персональном компьютере, настоящая заявка не ограничивается этой областью. Например, раскрытые и описанные компоненты и способы могут также использоваться в интранет, частной сети или Интернет. Дополнительно или альтернативно раскрытые и описанные компоненты и способы могут использоваться как часть архитектуры «сервер-хранилище данных» (SAN). Специалистам ясно, что раскрытые и описанные компоненты и способы могут использоваться для поиска и управления другими типами информации, включая Web-страницы, запросы баз данных, фотографическую информацию и звуковую или видео информацию, помимо прочего.Программирование конечного пользователя (EUP) может быть описано как способность конечного пользователя управлять всеми и каждым аспектом поведения программного приложения, главным образом предназначенного для работы с информацией. Принципы и компоненты EUP могут использоваться, чтобы приспосабливать и индивидуализировать автоматизированные задачи обработки информации, выполняемые программным приложением или множеством приложений под управлением конечного пользователя. По меньшей мере, три взаимосвязанных способа существуют для принципов и компонентов EUP, чтобы помочь пользователям.Согласно первому способу потенциально большое количество этапов обработки, которые конечный пользователь обычно должен был бы выполнить вручную, может быть автоматизировано согласно конкретным потребностям или желаниям конечного пользователя. Например, конечный пользователь, работающий с большой коллекцией цифровых изображений, сохраненных с очень высоким разрешением, может желать создать версии с более низким разрешением этих изображений для использования в Web-странице. Чтобы сделать это вручную, конечный пользователь обычно должен был открыть каждое отдельное изображение в программе редактирования, создать копию с более низким разрешением согласно различным параметрам настройки программы и сохранить версию с более низким разрешением с новым именем файла или в новом местоположении. EUP модуль может быть создан, чтобы выполнить эти задачи автоматически после добавления нового изображения к заданному каталогу.Во втором способе использования принципов EUP модуль EUP может выполнить значительное количество вычислений для конечного пользователя. Например, множество задач поиска является очень затратным в вычислительном отношении, и модуль EUP может автоматически выполнить поиски (и другие в вычислительном отношении затратные задачи) и сообщить о результатах этих поисков конечному пользователю. Дополнительно или альтернативно модуль EUP может выполнить такие задачи тогда, когда они специально вызваны или выполнены конечным пользователем. В третьем способе модуль EUP может функционировать автоматически без вмешательства конечного пользователя, таким образом, позволяя конечному пользователю сосредоточить внимание на других задачах вместо конкретной вычислительной задачи. Это автоматическое функционирование может увеличивать производительность конечного пользователя, освобождая конечного пользователя от выполнения вручную интенсивных по времени задач, таких как сортировка электронных файлов и группировка таких файлов в логические коллекции.Представленные здесь концепции и компоненты EUP обеспечивают обобщенную и гибкую платформу, на основе которой может быть создано широкое разнообразие вариантов реализации. Некоторые возможные реализации могут обеспечивать робастную платформу, которая может использоваться для поддержания программных задач конечного пользователя по всей платформе так, что каждое приложение пользователя может обращаться и извлекать выгоду из функций программирования конечного пользователя. Другие возможные реализации могут поддерживать такие функциональные возможности только для единственного приложения, а другие варианты реализации окажутся где-нибудь между этими двумя крайностями. Специалистам в данной области техники понятно из настоящего описания, что возможно много изменений и модификаций.Программы конечного пользователя могут определять все формы вычисленных действий, представленных в примерах, так же как и другие случаи. Одна примечательная форма включает в себя ассоциацию действия с событием и может быть названа как агент. Агент, который вовлекает синхронные события, может включать в себя два специальных случая, представляющих интерес. В первом случае такой агент может обеспечивать настройку приложения, выполняя действия, которые могут быть присущи приложению. Например, почтовое приложение может вызывать синхронное событие до посылки почтового сообщения. Результирующее действие агента может быть добавлением файла сигнатуры к сообщению. Когда действие агента является условным действием, агент может выбирать файл сигнатуры на основании свойств этого сообщения. Во втором случае включаются ограничения в отношении данных. Агент ограничения данных может действовать так, чтобы принимать или отклонять изменение данных, которые вызвали запуск события. Например, изменение в монопольном использовании (владении) файла может вызвать запуск события. Запущенное событие может инициировать действие агента, который оценивает изменение монопольного использования. На основании критериев, таких как идентификационная информация существующего владельца файла, нового владельца файла и пользователя, производящего изменение, агент ограничения данных может принимать или отклонять изменение информации монопольного использования (владения).Более сложные оценки возможны при использовании более сложных компонентов. Такие компоненты могут включать в себя различные компоненты искусственного интеллекта, которые могут идентифицировать или согласовывать (приводить в соответствие) с образцами или исполнять различные задачи классификации. Соответствующие компоненты искусственного интеллекта, которые могут использоваться, включают в себя нейронные сети и машины опорных векторов, помимо прочих. Раскрытые и описанные компоненты (например, агент, созданный для выполнения задач фильтрации или управления) могут использовать эти различные, основанные на искусственном интеллекте схемы для выполнения запрограммированных задач. Например, идентификация сложного шаблона данных и классификация новых данных как принадлежащих набору данных, который имеет сложный шаблон данных, может быть выполнена нейронной сетью, основанным на правилах компонентом обработки или SVM (машиной опорных векторов).Классификатор является функцией, которая отображает входной вектор атрибутов, X = (x1, x2, x3, x4,… xn), в доверие тому, что этот ввод принадлежит классу, то есть f(X) = доверие(класс). Такая классификация может использовать вероятностный и/или основанный на статистике анализ (например, разложение на параметры анализа и затраты) для прогнозирования или вывода действия, которое пользователь желает, чтобы оно было автоматически выполнено. В случае системы программирования конечного пользователя элементы данных могут быть классифицированы посредством проверки атрибутов этих элементов данных. Машина опорных векторов (SVM) является примером классификатора, который может использоваться. При работе SVM находится гиперповерхность в пространстве возможных вводов, причем эта гиперповерхность пытается разделить запускающие критерии от не запускающих событий. Интуитивно, это делает классификацию корректной для тестирования данных, которые являются близкими, но не идентичными обучающим данным. Другие ориентированные и неориентированные, примерные подходы классификации включают в себя, например, на основе байесовских наивов, байесовские сети, деревья решений и вероятностные модели классификации, обеспечивающие различные образцы независимости, которые могут использоваться. Термин «классификация», который используется здесь, также включает в себя статистическую регрессию, которая используется, чтобы разработать модели приоритета.Как должно быть понятно из настоящего описания, компоненты, раскрытые или описанные здесь, могут использовать классификаторы, которые явно обучены (например, посредством универсальных обучающих данных), а также неявно обучены (например, наблюдая поведение пользователя, получая внешнюю информацию…). Например, SVM конфигурируют с помощью фазы изучения или обучения в конструкторе классификатора и модуле выбора признаков. Таким образом, классификатор(ы) может(могут) использоваться, чтобы автоматически выполнить ряд функций, включая, но не ограничиваясь, определением, нужно ли устройству послать данные.Фиг.11 изображает схематическую блок-схему типовой вычислительной среды 1100, с которой раскрытые и описанные компоненты и процессы могут взаимодействовать. Система 1100 включает в себя одного или более клиента(ов) 1110. Клиент(ы) 1110 может быть аппаратным и/или программным (например, потоками, процессами, вычислительными устройствами). Система 1100 также включает в себя один или более сервер(ов) 1120. Сервер(ы) 1120 может быть аппаратным(и) и/или программным(и) (например, потоками, процессами, вычислительными устройствами). Серверы 1120 могут содержать потоки или процессы, чтобы выполнить преобразования, используя, например, раскрытые и описанные компоненты и процессы.Одно возможное средство связи между клиентом 1110 и сервером 1120 может быть в форме пакета данных, адаптированного для передачи между двумя или более компьютерными процессами. Система 1100 включает в себя инфраструктуру 1140 связи, которая может использоваться для облегчения связи между клиентом(ами) 1110 и сервером(ами) 1120. Клиент(ы) 1110 оперативно связаны с одним или более хранилищем(ами) 1150 клиентских данных, которое(ые) может(могут) использоваться, чтобы хранить информацию, локальную для клиента(ов) 1110. Аналогично сервер(ы) 1120 оперативно связаны с одним или более хранилищем(ами) 1130 данных сервера, которое(ые) может(могут) использоваться для хранения информации, локальной для серверов 1140.Со ссылками на фиг.12 примерная среда 1200 для осуществления различных аспектов изобретения включает в себя компьютер 1212. Компьютер 1212 включает в себя процессор 1214, системную память 1216 и системную шину 1218. Системная шина 1218 подсоединяет компоненты системы, включая, но не ограничиваясь ими, системную память 1216 к процессору 1214. Процессор 1214 может быть любым из различных доступных процессоров. Сдвоенные микропроцессоры и другие многопроцессорные архитектуры также могут использоваться в качестве процессора 1214.Системная шина 1218 может быть любой из нескольких типов шинных архитектур, включая шину памяти или контроллер памяти, шину периферийных устройств, или внешнюю шину, и/или локальную шину, используя любое множество доступных шинных архитектур, включая, но не ограничиваясь, архитектуру промышленного стандарта (ISA), микроканальную архитектуру (MSA), расширенную ISA (EISA), встроенный интерфейс накопителей (IDE), локальную шину VESA (VLB), системную шину с возможностью расширения (PCI), шину Card Bus, универсальную последовательную шину (USB), ускоренный графический порт (AGP), спецификацию PCMCIA, стандарт Firewire (IEEE 1394) и интерфейс малых компьютерных систем (SCSI).Системная память 1216 включает в себя энергозависимую память 1220 и энергонезависимую память 1222. Базовая система ввода-вывода (BIOS), содержащая основные подпрограммы для передачи информации между элементами в компьютере 1212, например, во время запуска, сохраняется в энергонезависимой памяти 1222. В качестве иллюстрации, но не ограничения, энергонезависимая память 1222 может включать в себя постоянное запоминающее устройство (ПЗУ, ROM), программируемое ROM (ППЗУ, PROM), электрически программируемое ROM (ЭППЗУ, EPROM), электрически стираемую ROM (EEPROM) или флэш-память. Энергозависимая память 1220 включает в себя оперативную память (RAM), которая выступает в качестве внешней кэш-памяти. В качестве иллюстрации, а не ограничения, RAM доступна во многих формах, таких как синхронная RAM (SRAM), динамическая RAM (DRAM), синхронная DRAM (SDRAM), SDRAM с двойной скоростью передачи данных (DDR SDRAM), расширенная SDRAM (ESDRAM), синхронная Synchlink DRAM (SLDRAM) и память по технологии Rambus RAM (DRRAM).Компьютер 1212 также включает в себя сменный/несменный, энергозависимые/энергонезависимые компьютерные носители данных. Например, фиг.12 иллюстрирует память 1224 на диске. Память 1224 на диске включает в себя, но не ограничивается ими, устройства, подобные дисководу на магнитном носителе, дисководу на гибком диске, накопитель на ленте, Jaz-накопитель, Zip-накопитель, LS-100 накопитель, плату флэш-памяти или карту памяти. Кроме того, память 1224 на диске может включать в себя носитель данных отдельно или в комбинации с другими носителями данных, включая, но не ограничиваясь, накопитель на оптических дисках типа компакт-дисков (CD-ROM), записываемые компакт диски (CD-R диски), перезаписываемые диски (CD-RW диск) или цифровой универсальный диск ROM (DVD-ROM). Чтобы облегчать подсоединение устройств памяти 1224 на диске к системной шине 1218, обычно используется сменный или несменный интерфейс, такой как интерфейс 1226.Должно быть понятно, что фиг.12 описывает программное обеспечение, которое действует в качестве посредника между пользователями и основными ресурсами компьютера, описанными в подходящей рабочей среде 1200. Такое программное обеспечение включает в себя операционную систему 1228. Операционная система 1228, которая может быть сохранена в памяти 1224 на диске, предназначена для того, чтобы управлять и распределять ресурсы компьютерной системы 1212. Системные приложения 1230 используют преимущество управления ресурсами операционной системой 1228 через программные модули 1232 и программные данные 1234, сохраненные или в системной памяти 1216, или в памяти 1224 на диске. Следует понимать, что настоящее изобретение может быть осуществлено с помощью различных операционных систем или комбинаций операционных систем.Пользователь вводит команды или информацию в компьютер 1212 через устройство(а) 1236 ввода данных. Устройства 1236 ввода данных включают в себя, но не ограничиваются ими, устройство позиционирования, такое как мышь, шаровой указатель, перо, сенсорную клавиатуру, клавиатуру, микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер, плату TВ-тюнера, цифровую камеру, цифровую видео камеру, Web-камеру и т.п. Эти и другие устройства ввода данных соединяются с процессором 1214 через системную шину 1218 с помощью интерфейсных портов 1238. Интерфейсный(ые) порт(ы) 1238 включает в себя, например, последовательный порт, параллельный порт, игровой порт и универсальную последовательную шину (USB). Устройство(а) вывода 1240 используют часть тех же портов, что и устройство(а) 1236 ввода данных. Таким образом, например, USB порт может использоваться, чтобы обеспечить ввод в компьютер 1212 и вывод информации из компьютера 1212 на устройство вывода 1240. Адаптер 1242 вывода обеспечивается для иллюстрации того, что имеются некоторые устройства 1240 вывода, подобные мониторам, динамикам и принтерам, помимо прочих устройств 1240 вывода, которые требуют специальных адаптеров. Адаптеры 1242 вывода включают в себя в качестве иллюстрации, а не ограничения, видео и звуковые платы, которые обеспечивают средства связи между устройством 1240 вывода и системной шиной 1218. Следует отметить, что другие устройства и/или системы устройств обеспечивают обе возможности ввода и вывода, такие как удаленные компьютеры 1244.Компьютер 1212 может работать в сетевой среде, используя логические соединения с одним или более удаленными компьютерами типа удаленного(ых) компьютера(ов) 1244. Удаленный(е) компьютер(ы) 1244 может быть персональным компьютером, сервером, маршрутизатором, сетевым PC, рабочей станцией, основанным на микропроцессорах прибором, одноранговым устройством или другим обычным сетевым узлом и т.п. и обычно включает в себя многие или все элементы, описанные в отношении компьютера 1212. Для краткости только запоминающее устройство 1246 хранения проиллюстрировано с удаленным(и) компьютером(ами) 1244. Удаленный(е) компьютер(ы) 1244 логически связан(ы) с компьютером 1212 через сетевой интерфейс 1248 и затем физически связан(ы) через соединение 1250 связи. Сетевой интерфейс 1248 охватывает проводные и/или беспроводные сети связи, такие как локальные сети (LAN) и глобальные сети (WAN). Технологии LAN включают в себя распределенный интерфейс передачи данных по волоконно-оптическим каналам (FDDI), распределенный проводной интерфейс передачи данных (СDDI), Ethernet, кольцо с передачей маркера и т.п. Технологии WAN включают в себя, но не ограничиваются ими, двухточечные соединения, сети с коммутацией каналов, подобные цифровым сетям с предоставлением комплексных услуг (ISDN), и их модификации, сети с коммутацией пакетов и цифровые абонентские линии (DSL).Соединение(я) 1250 связи относится к аппаратно/программному обеспечению, используемому для подключения сетевого интерфейса 1248 с шиной 1218. Хотя соединение 1250 связи показано для иллюстративной ясности внутри компьютера 1212, оно может также быть внешним к компьютеру 1212. Аппаратно/программное обеспечение, необходимое для соединения с сетевым интерфейсом 1248, включает в себя, только для целей иллюстрации, внутренние и внешние технологии, такие как модемы, включая в себя общеизвестные виды телефонных модемов, кабельные модемы и DSL модемы, адаптеры ISDN и платы Ethernet.Все, что описано выше, включает в себя иллюстративные примеры некоторых компонентов и способов. Конечно, невозможно описать каждую мыслимую комбинацию компонентов или методологий, но специалисту ясно, что возможно много дополнительных комбинаций и перестановок. Соответственно, все такие замены, модификации и изменения подпадают под форму и объем прилагаемой формулы изобретения.В частности, в отношении различных функций, выполняемых вышеупомянутыми описанными компонентами, устройствами, схемами, системами и т.п., термины (включая ссылку на «средства»), используемые для описания таких компонентов, предназначены, чтобы соответствовать, если иначе не обозначено, любому компоненту, который исполняет указанную функцию описанного компонента (например, функциональный эквивалент), даже при том, что не является структурно эквивалентным раскрытой структуре, которая исполняет функцию в проиллюстрированных выше примерах. В этом отношении должно быть также понятно, что раскрытые и описанные компоненты и способы могут включать в себя систему, так же как и считываемую компьютером среду (носитель), имеющую выполняемые компьютером команды для выполнения действий и/или событий различных раскрытых и описанных способов.Кроме того, в то время как конкретный признак, возможно, был раскрыт относительно только одного из нескольких вариантов выполнения, такой признак может быть объединен с одним или более признаками других вариантов выполнения, как может быть необходимо и выгодно для любого данного или специфического применения. Кроме того, до той степени, в которой термины «включают в себя» и «включая в себя» и их варианты используются или в подробном описании, или формуле изобретения, эти термины предназначены, чтобы обозначать содержание таким способом, который подобен термину «включение».