Активация данных конечного пользователя
Иллюстрации
Показать всеИзобретение относится к области создания заданий обработки данных конечным пользователем. Техническим результатом является обеспечение доступа для конечного пользователя к функциям вычислительной системы и компоновки групп этих функций в соответствии с потребностями отдельных конечных пользователей. Система для создания заданий обработки данных содержит модуль программирования конечного пользователя, который позволяет конечному пользователю связывать одно или несколько действий, заданных конечным пользователем, с, по меньшей мере, одним доступным вычислительным компонентом. Система также включает в себя платформу правил, которая обеспечивает связывание одного или нескольких действий, заданных конечным пользователем, с доступным вычислительным компонентом, так что объединенная программа конечного пользователя создается с использованием доступного вычислительного компонента. Предусмотрены также способы использования системы. 3 н. и 10 з.п. ф-лы, 14 ил.
Реферат
Перекрестная ссылка на родственную заявку
Данная заявка притязает на приоритет согласно ст. 35 кодекса США §119(e), предварительной патентной заявки за № 60/657,330, озаглавленной «Активация данных конечного пользователя», поданной 28 февраля 2005 г., которая в полном объеме сим включена сюда посредством ссылки.
Уровень техники
Современные вычислительные системы могут иметь сотни программных процессов, активных в одно и то же время в различных состояниях выполнения. Эти процессы могут представлять собой фоновые процессы, инициированные операционной системой, процессами слежения или обслуживания, которые инициализируются в начальный момент или при запуске приложения, или сами приложения. Пользователь не в состоянии непосредственно управлять многими, если не большинством, из этих процессов или признаков этих процессов. Поэтому, если функциональные возможности, обеспечиваемые этими процессами, подлежат полному доступу, такой доступ обычно должен осуществляться посредством другого программного процесса.
Количество процессов, действующих в вычислительной системе, обычно является функцией объема данных, который система должна обрабатывать, и количества заданий, которые система должна выполнять. В общем случае наименее эффективными частями этих вычислительных заданий являются те, которые требуют взаимодействия с человеком. Кроме того, правильно реализованный вычислительный процесс обычно может выполнять сложные и повторяющиеся задания точнее, чем оператор-человек. Это обуславливает необходимость в системах и способах, способствующих уменьшению необходимости во взаимодействии с человеком при выполнении заданий обработки.
В общем случае, чтобы полностью использовать функциональные возможности, обеспечиваемые вычислительными процессами, конечный пользователь должен быть опытным программистом. Многие доступные функции остаются неиспользованными конечными пользователями, которые всего лишь имеют опыт работы на компьютере, но не имеют навыков программирования компьютера. Это часто происходит потому, что конечные пользователи часто даже не знают о существовании некоторых функциональных возможностей, встроенных в вычислительную систему. Многие из тех же самых пользователей извлекли бы большую пользу из возможности доступа к функциям более низкого уровня вычислительных компонентов. Современные системы не предоставляют конечному пользователю возможности доступа к функциям вычислительной системы и компоновки групп этих функций в соответствии с потребностями отдельных конечных пользователей.
Сущность изобретения
Ниже представлена упрощенная сущность для обеспечения понимания основных принципов и общего обзора. Эта сущность не является исчерпывающим описанием. Она также не призвана ни идентифицировать ключевые/критические элементы, ни ограничивать объем. Ее единственной целью является представление некоторых концепций в упрощенной форме в порядке прелюдии к более подробному описанию, представленному ниже. Кроме того, используемые здесь заголовки разделов обеспечены только для удобства и никоим образом не подлежат рассмотрению в порядке ограничения.
Модуль программирования конечного пользователя можно использовать для создания программ конечного пользователя, которые могут объединять функциональные возможности компонентов вычислительной системы. Эти компоненты могут представлять собой фрагменты кода программного обеспечения, присутствующего в вычислительной системе, например, помимо прочего, процессы операционной системы, фоновые процессы, демоны и автономные приложения. Выполнение модуля программирования конечного пользователя может происходить автоматически в ответ на некоторое запускающее событие, заданное конечным пользователем, и может выполнять вычислительные задания, заданные конечным пользователем, без вмешательства конечного пользователя. Дополнительно или альтернативно программа конечного пользователя может выполняться по команде конечного пользователя.
Конечные пользователи могут использовать платформу правил как основу для создания компонентов, которые выполняют задания, указанные самими конечными пользователями. Конечные пользователи могут, используя платформу правил, предписывать, чтобы задания обработки данных выполнялись автоматически по наступлении выбранного события или выполнялись вручную по команде конечного пользователя. Такие задания могут выполняться одним или несколькими компонентами вычислительной системы. Один или несколько компонентов вычислительной системы могут участвовать в общей обработке, осуществляемой программой конечного пользователя.
Программа конечного пользователя может обеспечивать настраиваемые функциональные возможности для уже существующих компонентов, например, приложений пользователя. Эти функциональные возможности можно создавать, обращаясь к платформе правил и связывая задания с различными средствами управления уже существующих компонентов, например элементами графического (или другого) интерфейса пользователя. Таким образом, конечные пользователи могут расширять и модифицировать функциональные возможности, обеспечиваемые стандартными компонентами, например автономными приложениями.
Раскрытые и описанные компоненты и способы содержат один или несколько признаков, описанных ниже и конкретно указанных в формуле изобретения. В нижеследующем описании и прилагаемых чертежах подробно описаны некоторые конкретные иллюстративные компоненты и способы. Однако эти компоненты и способы указывают лишь некоторые из возможностей применения раскрытых компонентов и способов. Конкретные реализации раскрытых и описанных компонентов и способов могут включать в себя некоторые, многие или все такие компоненты и способы, а также их эквиваленты. Вариации представленных здесь конкретных реализаций и примеров явствуют из нижеследующего подробного описания, приведенного совместно с чертежами.
Краткое описание чертежей
Фиг.1 - системная блок-схема системы программирования конечного пользователя.
Фиг.2 - системная блок-схема модуля программирования конечного пользователя.
Фиг.3 - системная блок-схема системы обработки конечного пользователя.
Фиг.4 - системная блок-схема системы программирования конечного пользователя, включающей в себя удаленные компоненты.
Фиг.5 - системная блок-схема автоматической системы программирования конечного пользователя.
Фиг.6 - системная блок-схема безопасной системы программирования конечного пользователя.
Фиг.7 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.8 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.9 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.10 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.11 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.12 - логическая блок-схема общей последовательности обработки, которую можно использовать с различными компонентами, раскрытыми и описанными здесь.
Фиг.13 - схема вычислительной среды, в которой можно реализовать различные раскрытые и описанные компоненты и способы.
Фиг.14 - системная блок-схема сетевой среды, в которой можно реализовать различные раскрытые и описанные компоненты и способы.
Осуществление изобретения
Используемые в этой заявке термины «компонент», «система», «модуль» и т.п. следует рассматривать как компьютерную сущность, например оборудование, программное обеспечение (например, выполняющееся) и/или программно-аппаратное обеспечение. Например, компонентом может быть процесс, действующий на процессоре, процессор, объект, выполняемый модуль, программа и/или компьютер. Кроме того, приложение, выполняющееся на сервере, и сервер могут быть компонентами. В процессе могут присутствовать один или несколько компонентов, и компонент может размещаться на одном компьютере и/или быть распределен между двумя или более компьютерами.
Раскрытые компоненты и способы описаны со ссылкой на чертежи, снабженные сквозной системой обозначений. В нижеследующем описании в целях объяснения многочисленные детали изложены для обеспечения исчерпывающего понимания раскрываемого предмета. Однако очевидно, что в конкретной реализации некоторые из этих конкретных деталей могут быть опущены или скомбинированы с другими. В других примерах определенные структуры и устройства показаны в виде блок-схемы для облегчения описания. Дополнительно, хотя в описании конкретных примеров может применяться терминология, согласующаяся с архитектурами клиент/сервер, или даже могут быть приведены примеры реализаций клиент/сервер, специалистам в данной области очевидно, что клиент и сервер могут меняться ролями, что раскрытые и описанные компоненты и способы не ограничиваются архитектурами клиент/сервер и могут быть легко адаптированы для использования в других архитектурах, например архитектурах равноправных устройств (P2P), без отклонения от сущности или объема раскрытых и описанных компонентов и способов. Кроме того, следует заметить, что хотя представленные здесь конкретные примеры включают в себя или опираются на конкретные компоненты, реализация раскрытых и описанных здесь компонентов и способов не обязана ограничиваться этими конкретными компонентами и может применяться в других контекстах.
Следует также понимать, что хотя представленные здесь конкретные примеры могут описывать или изображать системы и способы, базирующиеся на компонентах персональных компьютеров, использование раскрытых и описанных здесь компонентов и способов не ограничивается этой областью. Например, раскрытые и описанные компоненты и способы можно использовать в распределенной или сетевой вычислительной среде. Дополнительно или альтернативно раскрытые и описанные компоненты и способы можно использовать на одном сервере, доступном для множественных клиентов. Специалистам в данной области очевидно, что раскрытые и описанные компоненты и способы можно использовать для создания других компонентов и выполнения других способов для самых разных вычислительных устройств.
На фиг.1 показана системная блок-схема системы 100 программирования конечного пользователя. Система 100 программирования конечного пользователя может использоваться для создания вычислительного компонента, который может выполнять вычислительные задания, описанные или заданные конечным пользователем. Вычислительный компонент может выполнять задания, которые иначе конечному пользователю пришлось бы выполнять вручную, вводя одну или несколько команд посредством интерфейса пользователя. Дополнительно или альтернативно вычислительный компонент может выполнять задания с использованием функциональных возможностей, которые обычно напрямую недоступны конечному пользователю.
Система 100 программирования конечного пользователя включает в себя операционную платформу 110, которая обеспечивает среду обработки для системы 100. В этом контексте операционная платформа 110 может включать в себя аппаратные компоненты, программные компоненты или аппаратные и программные компоненты в совокупности. Среди этих реализаций, конкретно рассматриваемых для использования в качестве операционной платформы 110, можно выделить операционные системы на базе программного обеспечения, вычислительные устройства с операционными системами, выполненные в виде программно-аппаратного обеспечения, и встроенные системы.
Различные события, происходящие в вычислительной среде, можно рассматривать как значимые и использовать для генерации уведомления. Такие события могут включать в себя, помимо прочего, создание, изменение и удаление файла, прием сообщения электронной почты и запуск или выполнение приложения. Уведомление 120 может быть создано операционной платформой 110 для указания, что в вычислительной среде произошло некоторое событие. Уведомление 120 может служить указателем того, что задание обработки может или должно быть выполнено. Уведомление 120 может иметь вид сообщения, передаваемого между вычислительными компонентами, флага обработки или другого подходящего указателя. В частности, форма уведомления 120 сильно зависит от реализации и может варьироваться в соответствии с признаками, обеспечиваемыми операционной платформой 110, помимо прочего.
Модуль 130 программирования конечного пользователя (ПКП) может обеспечивать компонент, которым конечный пользователь может оперировать для задания действия, например программы 140 конечного пользователя, которое должно выполняться автоматически при наступлении события или, альтернативно, при поступлении команды от конечного пользователя. Конечный пользователь может обращаться к модулю 130 ПКП для создания программы конечного пользователя, которая содержит группу заданий управления данными или обработки информации, выбранных среди доступных функций вычислительной системы. Например, можно создать программу конечного пользователя для обнаружения, когда сообщение электронной почты поступает от указанного пользователя, для проверки сообщения на наличие вложенных файлов и для сохранения любых вложенных файлов в указанной директории. Эти действия могут осуществляться автоматически без активного участия конечного пользователя помимо первоначального создания программы конечного пользователя.
Модуль 130 ПКП может включать в себя интерфейс пользователя, который позволяет пользователю идентифицировать или указывать конкретное действие, которое может осуществлять вычислительный компонент. Этот интерфейс пользователя может представлять собой, помимо прочего, графический интерфейс пользователя (ГИП), интерфейс командной строки (ИКС), текстовый интерфейс или веб-интерфейс. Интерфейс пользователя также может представлять собой разновидность среды программирования конечного пользователя, подобной интегрированной среде разработки, используемой разработчиками программного обеспечения для написания, компиляции и тестирования программного кода. В частности, интерфейс пользователя может представлять собой графическую среду разработки, которая позволяет пользователю выбирать графические элементы, представляющие различные программные функции или объекты данных, и компоновать эти элементы в программу конечного пользователя.
Следует заметить, что программа 140 конечного пользователя может быть единичным заданием или группой заданий, подлежащих выполнению. Модуль 130 ПКП может обеспечивать интерфейс к функциям, включенным в вычислительную систему, которыми можно оперировать вручную или автоматически, или ранее доступным только другим программным компонентам, например, но без ограничения, операционной системе, служебному компоненту, приложению или другому вычислительному компоненту. Конечный пользователь может использовать интерфейс модуля 130 ПКП для построения вычислительного компонента, который использует эти функции вычислительной системы для выполнения разнообразных вычислительных заданий.
Один конкретный пример включает в себя организацию электронной почты и файлов. Конечный пользователь может задавать действие, которое должно производиться по приеме сообщения электронной почты, имеющего вложенный файл. Например, конечный пользователь может указывать, что при получении сообщения электронной почты из определенного домена (или пользователя в этом домене), которое включает в себя файловое вложение, вложенный файл нужно сохранить в указанной директории, проверить на вирусы, после чего открыть с использованием конкретной программы. Чтобы задать это действие, конечный пользователь может обратиться к списку конкретных функций, доступных в вычислительной системе. В этом примере используемые функции включают в себя обнаружение новых сообщений электронной почты, сохранение файлов, проверку на вирусы и открытие файла. Конечный пользователь может использовать модуль ПКП 130 для агрегирования этих функций в единую программу, заданную конечным пользователем, и указать правила, которые инициируются событиями, которые приведут к выполнению агрегированных функций. В данном случае первое событие может инициироваться получением сообщения электронной почты. Программа, заданная конечным пользователем, может обрабатывать правила для определения, поступило ли сообщение электронной почты от заранее указанного отправителя, и, если да, то включает ли в себя сообщение электронной почты файловое вложение. При выполнении обоих условий правила модуль, заданный пользователем, может сохранить вложенный файл в заранее определенной директории. Затем модуль, заданный конечным пользователем, может активировать антивирусную программу для обнаружения вирусов в сохраненном файле. Если проверка показывает, что сохраненный файл не содержит вирусов, то модуль, заданный пользователем, может запустить приложение, например текстовый редактор, программу редактирования фотографий или другое подходящее приложение, и предписать открытому приложению открыть сохраненный файл. Все эти этапы могут осуществляться автоматически без вмешательства конечного пользователя.
Обработка правил, описанная в вышеприведенном примере, может осуществляться с использованием платформы 150 правил, которая дает возможность конечному пользователю задавать условия или сценарии, которые переключаются на определенные задания обработки. Платформа 150 правил может включать в себя логику, которая позволяет конечному пользователю задавать одно или несколько действий, которые могут осуществляться автоматически или по команде конечного пользователя. Эти правила могут быть присоединены к или объединены с программами или агентами, которые могут выполняться с использованием элементов интерфейса пользователя, например, путем щелканья (или щелканья правой кнопкой и т.д.) по кнопкам, ссылкам, меню или другим элементам интерфейса. Дополнительно или альтернативно иконки для модулей, заданных конечным пользователем, или даже автономных приложений, заданных конечным пользователем, можно создавать и запускать путем двойного щелканья по иконке или иной активации выполнимого кода, связанного с иконкой. Такие действия можно добавлять к уже существующим компонентам, которые имеют действия или функции, спроектированные разработчиком, или можно создавать как автономные компоненты, созданные конечным пользователем. Платформа правил может использовать отражение связей и элементов, установленных системой или приложением, для создания и выполнения компонентов, заданных конечным пользователем. В этом контексте и везде, где необходимо или имеет смысл, под связями можно понимать ссылки или отображения между представлением функции или объекта данных, например графическим элементом в интерфейсе пользователя, который представляет функцию или файл, и кодом более низкого уровня, который фактически осуществляет функцию при своем выполнении или содержит объект данных.
На фиг.2 показана системная блок-схема модуля 200 программирования конечного пользователя. Модуль программирования конечного пользователя может использоваться как часть всего интерфейса пользователя, которая позволяет конечному пользователю задавать и создавать компонент программы, заданной конечным пользователем. В частности, модуль 200 программирования конечного пользователя может использоваться как модуль 130 программирования конечного пользователя, показанный на фиг.1. Конечный пользователь может обращаться к модулю 200 программирования конечного пользователя для отыскания функций или объектов данных, которые доступны для использования, и для компоновки этих функций или объектов данных в программы конечного пользователя.
Модуль 200 программирования конечного пользователя включает в себя модуль 210 кода. Модуль 210 кода может обращаться к хранилищу 220 данных кода. Хранилище 220 данных кода включает в себя программный код более низкого уровня, включающий в себя функции и объекты данных, которые доступны для использования, как часть компонента действия, заданного конечным пользователем. Следует заметить, что в некоторых реализациях, например в реализации, где используется отражение связей, методы, обеспечиваемые схемой отражения, можно использовать для динамического отыскания доступного кода альтернативно или дополнительно к поддержанию набора описателей в хранилище 220 данных кода.
Модуль 210 кода может обеспечивать описание сущности каждого доступного фрагмента кода или объекта данных, например любого кода в хранилище 220 данных кода, в формате, считываемом человеком. Дополнительно или альтернативно модуль 210 кода может выдавать машинно-считываемые описатели или идентификаторы кода в хранилище 220 данных кода на модуль 230 отображения. Модуль 230 отображения может отображать или связывать код из хранилища 220 данных кода с одним или несколькими действиями конечного пользователя. Таким образом, надлежащий вычислительный компонент, который обеспечивает некоторые функциональные возможности, можно согласовать с описанием действия, которое должно производиться по желанию конечного пользователя.
Модуль 240 действия конечного пользователя может обращаться к действию конечного пользователя, которое может быть описано, задано или указано конечным пользователем, и может обеспечивать надлежащий описатель для этого действия конечного пользователя в форме, которую модуль 230 отображения может использовать для согласования или связывания действия конечного пользователя с кодом, обеспечиваемым модулем 210 кода. Например, кодовый описатель может быть связан с действием конечного пользователя, которое хранится в хранилище данных 250 действия конечного пользователя. Это действие конечного пользователя может представлять собой, например, команду «сохранить файл Х в директории Y» или какое-либо другое подходящее действие. Соответствующий описатель кода в хранилище 220 данных кода может быть согласован с действием конечного пользователя модулем 230 отображения для отображения действия конечного пользователя на некоторый фрагмент кода. Одно или несколько таких согласованных действий конечного пользователя и фрагментов кода можно использовать как часть модуля 260 действия, заданного конечным пользователем, или готовой программы конечного пользователя.
Рассмотрим возможный пример одного режима работы модуля 200 программирования конечного пользователя. Пользователь может обратиться к модулю 200 программирования конечного пользователя через интерфейс пользователя, например ГИП, ИКС или любой другой подходящий человеко-машинный интерфейс. Конечный пользователь может использовать компоненты интерфейса пользователя для задания одного или нескольких действий конечного пользователя. Дополнительно или альтернативно пользователь может выбрать одно или несколько действий конечного пользователя из набора заранее заданных действий конечного пользователя, которые хранятся в хранилище данных 250 действия конечного пользователя.
Модуль 240 действия конечного пользователя обеспечивает или обращается к описателю, связанному с действием конечного пользователя, которое было задано или выбрано конечным пользователем. Этот описатель может обеспечивать машинно-интерпретируемое описание функциональных возможностей, нужных конечному пользователю. Модуль 240 действия конечного пользователя может выдавать этот описатель на модуль 230 отображения.
Модуль 230 отображения может выдавать описатель на модуль 210 кода. Модуль 210 кода использует описатель для поиска фрагмента кода, который имеет соответствующий описатель и который обеспечивает функцию обработки, нужную конечному пользователю. Модуль 210 кода, найдя такой фрагмент кода в хранилище 220 данных кода, выдает идентификатор найденного фрагмента кода на модуль 230 отображения. Затем модуль 230 отображения согласует или связывает действие конечного пользователя с фрагментом кода для создания модуля 260 действия, заданного пользователем.
На фиг.3 показана системная блок-схема системы 300 обработки конечного пользователя. Система 300 включает в себя модуль 310 программирования конечного пользователя, который обеспечивает доступ к системе для пользователя-человека. Модуль 310 программирования конечного пользователя связан с операционной платформой 320, которая может включать в себя аппаратные и программные компоненты. Модуль 310 программирования конечного пользователя также обращается к набору заданий 330, заданных конечным пользователем, и платформе 340 правил. Задания 330, заданные конечным пользователем, включают в себя задания к логике действия. Интерфейс 350 пользователя обеспечивает интерфейс верхнего уровня между системой 300 и конечным пользователем-человеком и включает в себя элементы управления для компонентов.
Для выполнения некоторых из описанных заданий система 300 обработки конечного пользователя может применять алгебру правил. Хотя здесь описана конкретная алгебра правил, вместо нее можно использовать вариант этой алгебры правил или совершенно другую алгебру правил. Следует также заметить, что вместо раскрытой и описанной алгебры правил можно использовать другой подходящий компонент.
Рассматриваемая алгебра правил может иметь пять основных термов: свойство, фильтр, событие, действие и набор. Свойство может описывать атрибуты типа данных конечного пользователя. Конечный пользователь может использовать свойства для описания фильтров и действий. Фильтр может задавать булеву функцию, которую можно использовать как экран обработки применительно к типам данных. Фильтр может возвращать значения «истина» или «ложь». Событие может задавать интересующее явление. События могут быть связаны с одним или несколькими типами данных. Действие - это метод побочного эффекта для типа данных, которое выполняет некоторую функцию обработки. Действие может принимать нуль или более входных параметров. Набор - это совокупность типов данных.
Свойства, фильтры и действия можно строить с помощью правил. В каждом правиле можно использовать различные условия, в том числе сравнение свойства с выражением, совпадение целевого объекта с фильтром и определение, принадлежит ли целевой объект набору. Построенные элементы, например вышеупомянутые, можно использовать как части программ конечного пользователя. Например, выведенный набор может быть законченной программой конечного пользователя или может подлежать соединению (объединению) с другим набором для создания более сложной программы конечного пользователя. Набор можно связать с действием для создания пакета. Пакет может задавать наборно-ориентированное задание, подлежащее выполнению. Пакеты можно выполнять вручную или планировать их выполнение в заранее определенное время или согласно расписанию. Из события и действия можно создать агент. Агент задает действие, подлежащее выполнению по наступлении некоторого события.
Для поддержки использования алгебры правил можно использовать файловую систему, которая может хранить объекты или типы данных способом, который непосредственно поддерживает запросы этих объектов или типов данных. Метаданные об этих объектах или типах данных могут храниться совместно с самими объектами и использоваться для поддержки запросов и действий. Для хранения этих объектов или типов данных можно использовать различные файловые системы. Файловая система может обеспечивать физическую организационную модель, основанную на свойствах элементного уровня и межэлементных отношениях. В такой файловой системе объекты или типы данных могут быть организованы динамически на основе выполнения правил, предназначенных для выбора и компоновки объектов или типов данных различными способами.
На фиг.4 показана системная блок-схема системы 400 программирования конечного пользователя, включающей в себя удаленные компоненты. Система 400 программирования конечного выбора и агрегирования объектов или типов данных различными способами.
На фиг.4 показана системная блок-схема системы 400 программирования конечного пользователя, включающей в себя удаленные компоненты. Система 400 программирования конечного пользователя может использоваться для получения уже существующих модулей программирования конечного пользователя из удаленного места. В частности, модули программирования конечного пользователя, которые можно получить, согласуются с одним или несколькими действиями, заданными пользователем, в локальной вычислительной системе.
Система 400 программирования конечного пользователя включает в себя действие 410, заданное пользователем. Действие 410, заданное пользователем, может быть описанием некоторого вычислительного задания, выполнение которого желает конечный пользователь, причем это вычислительное задание должно выполняться вручную, например по конкретной команде пользователя, чтобы можно было переключать на выполнение в ответ на некоторое событие согласно некоторому расписанию. Кроме того, действие 410, заданное пользователем, может включать в себя или быть связано с конкретным идентификатором или описателем, который позволяет другим компонентам определять, что функция или функции запрошены действием 410, заданным пользователем.
Интерфейс 420 программирования конечного пользователя может обеспечивать средство, позволяющее пользователю указывать или задавать действия, подлежащие использованию. Описания указанных или заданных действий интерфейса 420 программирования конечного пользователя.
Сервер 440 модулей может пересылать полученное описание действия 410, заданного конечным пользователем, на компонент 450 согласования. Компонент 450 согласования может использовать переданное ему описание для поиска в библиотеке 460 модулей для отыскания одного или нескольких модулей программирования конечного пользователя, которые могут обеспечивать функциональные возможности, необходимые конечному пользователю. Затем компонент согласования может посылать копии согласующихся модулей программирования конечного пользователя на сервер модулей для передачи на интерфейс 420 программирования конечного пользователя по сети 430. Дополнительно или альтернативно сервер 440 модулей может выдавать список доступных модулей программирования конечного пользователя на интерфейс 420 программирования конечного пользователя и ожидать команду на передачу одного из модулей программирования конечного пользователя в списке. Специалистам в данной области очевидно, что сервер 440 модулей может быть реализован, помимо прочего, как веб-сервер или сервер протокола передачи файлов (FTP). Дополнительно или альтернативно поиски и загрузки модулей могут быть обеспечены как веб-услуги.
Различные компоненты, раскрытые и описанные здесь, например, в связи с задачами идентификации или согласования, могут применять различные схемы на основе искусственного интеллекта для выполнения различных их аспектов. Например, согласование действия, заданного конечным пользователем, с модулем программирования конечного пользователя, может осуществляться посредством нейронной сети, экспертной системы, компонента обработки на основе правил или машины поддержки векторов (SVM).
Классификатор - это функция, которая отображает входной вектор атрибутов X = (x1, x2, x3, x4, …, xn) в уверенность, что вход принадлежит классу, т.е. f(X) = уверенность (класс). Такая классификация может применять вероятностный или статистический анализ (например, разложение на полезности и стоимости анализа) для прогнозирования или вывода действия, которое, по желанию пользователя, должно осуществляться автоматически. В случае модуля программирования конечного пользователя шаблоны событий можно классифицировать для определения, следует ли выполнять одно или несколько из указанных действий. Специалистам в данной области по прочтении этого раскрытия станет очевидно, что можно также использовать другие задачи согласования шаблонов.
SVM является примером классификатора, который можно применять. Действие SVM заключается в отыскании гиперповерхности в пространстве возможных входов, каковая гиперповерхность пытается отделить запускающие критерии от незапускающих событий. Интуитивно ясно, что это делает классификацию правильной для тестирующих данных, которые близки, но не идентичны обучающим данным. Можно применять другие подходы классификации направленной и ненаправленной модели, включающие в себя, например, наивный (критерий) Байеса, байесовы сети, деревья принятия решения и вероятностные классификационные модели, обеспечивающие различные шаблоны независимости. Используемая здесь классификация также включает в себя статистическую регрессию, которая используется для разработки моделей приоритета.
Из описания изобретения следует, что раскрытые и описанные здесь компоненты могут использовать классификаторы, которые обучены в явном виде (например, посредством общих обучающих данных), а также обучены в неявном виде (например, путем наблюдения за поведением пользователя, приема внешней информации). Например, SVM настраиваются на фазе обучения в конструкторе классификаторов и модуле выбора признаков. Таким образом, классификатор(ы) можно использовать для автоматического осуществления ряда функций, включая, но без ограничения определение, должно ли устройство передавать данные.
Следует понимать, что описанные компоненты и способы обеспечивают общие конструкции для программирования конечного пользователя. Примером использования таких компонентов и способов программирования конечного пользователя является создание автоматизированных заданий, заданных конечным пользователем. Также возможна способность совершать аналогичные типы изменений в пакетном режиме применительно к большому количеству файлов, например, путем изменения разрешения каждого из группы файлов изображения. Кроме того, благодаря объединению более сложных модулей, например агрегированных модулей, которые выполняют множественные задания совместно с компонентами искусственного интеллекта, возможно усложненное интеллектуальное поведение.
Рассмотрим один возможный режим работы системы 400 программирования конечного пользователя. Конечный пользователь обращается к интерфейсу 420 программирования конечного пользователя и задает одно или несколько действий, которые, по желанию конечного пользователя, должны выполняться на его компьютере. Интерфейс 420 программирования конечного пользователя создает действие 410, заданное конечным пользователем, из определения, обеспеченного конечным пользователем, а также создает подходящий описатель этого действия, заданного конечным пользователем. Затем интерфейс 420 программирования конечного пользователя направляет описатель по сети 430 на сервер 440 модулей. Сервер 440 модулей направляет описатель на компонент 450 согласования. Компонент 450 согласования осуществляет поиск в библиотеке 460 модулей для отыскания модуля, который будет обеспечивать функциональные возможности, указанные пользователем. Затем компонент согласования выдает список найденных модулей на сервер 450 модулей.
Сервер 450 модулей направляет список найденных модулей по сети 430 на интерфейс 420 программирования конечного пользователя. Конечный пользователь выбирает один или более модулей из списка и направляет свои варианты выбора по сети 430 на сервер 450 модулей. Затем выбранные модули поступают по сети 430 на интерфейс 420 программирования конечного пользователя и устанавливаются на машине конечного пользователя.
На фиг.5 показана системная блок-сх